Voting Rules for
 Accurate
Democracy

Different uses for voting need different types of voting.

Review the goals for democracy.

Tally Software

Printouts for Accurate Democracy
Hand Tallies for elections and policies.
Ballot Data-Entry Forms for elections and policies.
Single-Winner Tallies  for chairperson and policies.
Multi-Winner Elections  for representative councils,  Online tools.
Select Projects to start and fund one time. New
Adjust Budgets for agencies and departments. New
Electoral Simulations for teaching and research.

Key:
= common plurality rule's erratic flip flops.
= better one-winner rules such as Instant Runoff Voting.
= Condorcet rules for a central and broadly-popular winner.
= Single Transferable Vote for fairly distributed winners.
= Loring Ensemble Rules for a centrally-balanced council.

This easy-to-use software for the best voting rules makes democratic decisions faster, easier and more accurate.  It leads to better councils, policies and budgets for schools, clubs, coops, unions, companies and towns.  It strengthens civil society and shames politicians who refuse to modernize public decision making.

Tallies must avoid corruption and assure voters that their ballots are faithfully counted.  Therefore the public has long had a right to observe the tally process in as much detail as possible.  For tallies involving software, that right has to include inspection of the software code.  So a healthy democracy requires “open source software.”  OSS programs have priority on this list.  Programmers who adapt some code from an open source program are obliged to salute the work they build on and make their own code available for others.

This site develops free voting tools to electcentrally- balanced councils, enactcentral policies, and allocatefair-share funding for projects and agencies.  A dozen sites listed here offer software to tally Condorcet or PR rules.  Those programs can be combined to create centrally- balanced councils.  All these sites distinguish themselves from the hundreds that give away little more than hot air in political rumors or self-serving opinions.

A group can test drive a new rule in a survey. Or they can turn into a “committee of the whole” to vote, tally and report the result to enact by the usual rules.

Hand Tallies

For groups with 10 to 100 voters:

A quick show of hands can tally most rules to decide elections or policies for about 100 voters.  (Voters might be easier to count if they are able to move into “preference groups”.)

Hand counting paper ballots is easy for a tally with a few dozen votes.  But some of the best Condorcet and STV rules cannot be hand counted.

Condorcet’s pairwise rule is usually best for enacting one policy and sometimes to select a list of projects.  Each voter grades or ranks most proposals on the ballot (A, B, C, or 1st, 2nd, 3rd.)  In a hand-tally process, one person enters tick marks in a Pairwise table while two or three people read aloud a ballot's preferences and confirm the tick marks.  If ballots include the option "Fund no more." the tally can show which projects have majority support.

FairVote explains a hand count of ballot papers for Single Transferable Vote takes some care.  But these hand tallies have elected reps in Australia and Ireland and in private organizations for almost 100 years.  STV is a form of Proportional Representation.

STVAction offers STV Count Calculators to help some steps in a hand count.

The Movable-Vote Workshop teaches small groups to use paper cards for quick votes.  It offers the best rules for budgets, reps and projects.

Ballot Data-Entry Forms

Most of the tally programs below can read ballot data typed into a plain text file.  A simple spreadsheet to check accuracy can help the data entry clerks.

The Australian Capital Territory's electronic voting and tally system uses personal computers as voting terminals linked to a server in each polling location using a secure local area network.  The ballot, server, and tally programs were written by Software Improvements, Free, Open source, in C, 2004.

The Open Voting Foundation electronic voting and tally system advocates public observation of vote counting.  They say tallies by proprietary hidden software make public observation impossible.  Promotes adoption of open source voting.

The New Haven Advocate has an excellent IRV Ballot for a mock U.S. presidential election 2007.  In JavaScript, © 2007.

The Smithsonian Museum of American History history of ballot technology from the 1800s to 2012.

Online voting services let each user enter their own ballot.  But any online or mail-in voting system is susceptible to vote buying, and possible pressure on voters from friends, family and bosses.

Tools for Single-Winner Tallies

Jeffrey O'Neill’s application includes multi-winner rules, so it is listed there.

Kristofer Munsterhjelm’s application also includes multi-winner rules, so it is listed there.

Robert LeGrand's Ranked-ballot voting calculator can tally 15 single-winner voting rules: Baldwin, Black, Borda, Bucklin, Carey, Combs, Copeland, Dodgson, Hare (Instant Runoff), Nanson, Raynaud, Schulze method (Beat Path), Simpson, Small, and Tideman's Ranked Pairs.
      You can find a series of winners for a multi-winner election or selection of projects by using the option to "Enter candidates to ignore." The tally reports the first winner when no one is ignored, the second is the winner when the first winner is ignored, etc.
      One page briefly describes each method, and another evaluates each one .  Free, Open source in JavaScript.  Save the page on your disk if you want to run tallies offline.

Blake Cretney offers three programs and their source code at SourceForge:
VoteEngine tallies more than a dozen one-winner rules including the Schulze method (Beat Path), Borda, IRV, Minmax, and Tideman's Ranked Pairs.  It is intended to run on any computer with the Python language installed.  (Python is free to download and the VoteEngine code is very easy to read.)  Free, Open source in Python, © 2000.
RPVote tallies Ranked Pairs, arguably the best Condorcet- completion rule.  The Windows version is very easy to download, install and use.  The source code for RPVote can be compiled to run on any computer with a C++ compiler.  Free, Open source in C++, © 2001.
RPWeb tallies Ranked Pairs online.

Selectricity was designed and built in the MIT Media Lab in the Computing Culture group. The team includes Courtland Allen, C. Scott Ananian, John Dong, Benjamin Mako Hill, Justin Sharps and Alyssa Wright. “Voting machinery for the masses!” Schulze Method, Online voting and talllies, Copyleft 2006-2010, Open source available, in Ruby.

Brian Olson Better Polls can tally 15 single-winner voting rules: Borda, Bucklin, Combs, Instant Runoff, Schulze (Beat Path), Tideman (Ranked Pairs) and a Normalized Ratings rule similar to Merrill's Standard Score.  Copyrighted, free for non-commercial use; in Java, some in C, C++ or Perl.

Jochen Voss wrote debian-vote-0.8.tar.gz to tally the Schulze method as used to set policies at Debian. Free, Open source, 2008, Creative Commons Attribution-Share Alike 3.0 License.

Rob Lanphier offers an online Condorcet tally in PERL 5, Free Open source, GNU Revision 1.1 1996. and Electowidget Revision 0.1.0, Free Open source, in PHP.

Eric Gorr offers online Condorcet tallies for MiniMax, Beatpath and Ranked Pairs.  Ranked Pairs; Free, Open source in C++.

Andrew Myers of the Cornell University Computer Science Dept. has built a Condorcet internet voting service.  The completion rules include Schulze, CIVS Ranked Pairs, Maximize Affirmed Majorities, and CIVS Condorcet Runoff which is the same as David Hill's rule.  The programming language is not specified.  NOT open source.

Wiley offers a "Voting Methods Calculator" to accompany Mathematics Beyond the Numbers by Gilbert and Hatcher.  It tallies simple plurality, plurality with runoff, Borda count and Condorcet.  in Java NOT open source.

Peter A. Taylor offers elect1.pas which "implements a variety of single-seat election systems." Approval, Black, Borda, Condorcet, Dodgeson, IRV, Nansen, Smith set, Young.  Free, Open source (GNU) in Pascal.  Last modified 12-30-2000.

Tally Borda, Condorcet, IRV or plurality with a program from David Lovelock; Department of Mathematics; University of Arizona; Tucson, Arizona.  A stable DOS program with simple menus.  Copies may be found in the UA archive.  Free, version 1.01 © 1992-1993.  Archived instructions for this voting program.

Alan Johnsrud developed a voting rule from his work in war game simulations which model competing forces as a matrix of vectors.  A candidate gets points for each rival she beats, more points for besting a strong rival, fewer for defeating a weak one who wins few comparisons.  Free, Open source for QBasic © 2000.

Lucien Saumur offered a, "Voting machine with tools for preferential ballots and Condorcet tallies.  A copy is in the A.D. archive.  Coded in Visual Basic 3 © 1996.

Tools for Multi-Winner Tallies

All of these voting tools tally single- and multi-winner elections by Single Transferable Vote. STV is commonly known as Alternative Vote, Choice Voting, Hare rule, Instant Runoff, Preference Vote or Ranked-Choice Voting in various countries.

Jeffrey O'Neill and others programmed OpenSTV-version 2.0 to tally most versions of STV including ERS97 and Meek.  It also tallies several Condorcet rules: IRV on Smith Set, Borda on Smith Set, and Schulze on Schwartz Set.  $5 for individuals, $99 for non-profits with less than 30 employees, to $999 for companies and large non-profits, Open source in Python; installs on MS Windows, Mac OS X, and Linux; GNU © 2011. The last free version is easy to find by searching for “OpenSTV 1.6” or “OpenSTV 1.6.1”.
There is a simple and free web service that uses OpenSTV: instantstv

Voting Solutions developed ChoicePlus™ Pro primarily to tally STV elections.  It is used by the city of Cambridge Massachusetts.  It was $15,000, but the newest version, 2.3.4, “is yours to use free of charge, but with no support.” It is open source in Java, © 1993-2009.
PRMaster was an earlier version.
They offer ChoicePlus Lite, it tallies up to 500 candidates and 5000 voters and includes STV, Borda, Condorcet, and Cumulative rules. Proprietary code in C++ for Windows, © 2000.

Jonathan Lundell worked on OpenSTV, and has started “Droop”, a Python-based package for STV tallies. It compliments his Proportional Representation Foundation website. The design can make it easy to add new versions of STV and new user interfaces. v0.8; © 2010, GNU General Public License v3.
(He offered online tallies by the Droop, Meek or Warren methods in STV.pm, but cautions it is now deprecated. Open source in PERL © 2004-2007, all rights reserved.)

Celect by Kristofer Munsterhjelm tallies multi winner rules: CPO-STV, CFPRM, and D'Hondt (without lists);  Condorcet rules: Dodgson, Simpson, Tideman, Copeland, and Schulze;  and older single winner rules: plurality, Borda, Hare, and Nanson.  It is Open source, written in C++; an initial version, Spring 2005.

The Australian Capital Territory's electronic voting and tally system used personal computers as voting terminals linked to a server in each polling location using a secure local area network.  The ballot, server, and tally programs were written by Software Improvements, and were Free, Open source, in C, 2004.

Joe Otten and the Electoral Reform Society of England offer eSTV with clear menus for easy use.  It includes the ERS97 version of STV.  It is free: The trial version is for non-commercial use and is limited to 12 candidates and 60 voters.  A version for 50 candidates and 1000 voters is now available but requires registration with ERS.  Windows (32bit), Proprietary code in Delphi (Object Pascal for Windows), © 2000.  (Note: their server often does not respond.)

Lee Naish offers a program to tally STV with a thousand ballots and over ten candidates.  It is Free, Open source, coded in NU-Prolog 1996-97.

The Institute of Mathematical Statistics uses STV to elect its board and offers an STV program written in the very high-level programming language of the statistical package S-Plus; Free, Open source; 2002.

Cambridge University students programmed Juliet to tally the Newland- Britton version of STV, which they use at Cambridge.  Free, Open source in Java; 2001.  juliet.tar.gz

I. D. Hill, and B. A. Wichmann wrote MEEK and published it in "Algorithm 123 - The Single Transferable Vote by Meek's Method" co-authored by D. R. Woodall in the Computer Journal of the British Computer Society 30 No. 3, 1987.  Slight modifications were made later by T. Nicolaus Tideman.  MEEK allows for up to 40 candidates and an unspecified number of voters, as long as the product of the number of candidates times (1 plus the average number of preferences specified by voters) is less than 20,000.  Free, Open source, in Pascal , © 1987 (updated 2000) A more recent version may be available from the authors.  (Note: The link above is to the web archive because it is no longer available at the British Computer Society web site.)

PolyVote tallies the same voting rules as PoliticalSim but without menus for research, demonstrations or games.  It uses uncommon terms and options.  Macintosh and Windows, Free, Open source in Excel 4 through Excel 2001, © 1991-2000.

Voting Systems Toolbox is "intended to make implementations of voting systems freely available in Java." Roy Ward has programmed Meek's version of STV:  version 0.4, Summer 2002.

Hans Aberg offered Election 1.1.2, to tally Voting By Priorities, his blend of STV with the greatest remainder list-PR rule.  It uses a new quota and can use Meek's vote transfer method for STV.  Macintosh (could be compiled for Windows), free, Open source in C++, © 1997.

New Zealand wrote a program to tally Meek's STV for cities and towns that vote to use it.  It is not available to other organizations.  It is now proprietary code, in Visual Basic 6.0, and is © 2002.

[ Dr Mark Porter BSc FRCA STV for Macintosh in C 1996.]

[ An MIT site had an online STV ballot and tally limited to 5 candidates.]

[ VoteBot pages and software have disappeared.]

Multi-Winner Voting Online

Any online or mail-in voting system is susceptible to vote buying, and possible pressure on voters from friends, family and bosses.

Brad Beattie offers Modern Ballots, with online preference ballots that allow tied ranks and write-in candidates. It tallies Schulze STV, Schulze PR or “Non-proportional ordering”. His tally software includes Schulze's Condorcet completion method.  It is written in Python, Free, Open source, © 2009-2012.

Dave Robinson offers DemoChoice with online preference ballots (with no ties allowed) and online tallies using OpenSTV.  You can setup public or private polls for free. It works on web-enabled mobile devices and on facebook.  It is written in Python, VBScript and PHP.  Free, Open source, GNU © 2001-2012.

Craig Simon moved his ChoiceRanker website to facebook, so it requires users to share their “basic information” with the ballot system.

Paul Lockett offers a Single Transferable Vote Counter with an online form for entering in 1 ballot at a time. Ties cannot be entered in this bubble form. Open source in JavaScript; GNU AGPL © 2009.

Brian Lack designed Simply Voting to tally the Single Transferable Vote with Droop quota and fractional transfers. The online ballot allows no tied votes. An election with 100 voters costs $200; one with 1000 voters costs $500.

GroupDecision.com says they can provide transparent and secure elections services online.  Proprietary code; free for up to 100 voters.

Everyone Counts (E1C) offers online elections and surveys that handle ranked ballots.  Proprietary code.

Electionz.com Ltd, of New Zealand, offers an online STV demo  This software elects the board of the Fonterra Co-operative Group Ltd, a US$6.8 billion company.  You must request a login PIN in advance to run a demo.

Multi-Winner Tools Not Available

Brian Wichman wrote a program to tally Tideman's CPO-STV.  In Pascal.

T. Nicholas Tideman supervised Yingjia Ding and Xingming Tan at Virginia Tech in programming STV using the Newland- Britton quota.  in Pascal for DOS, version 2.2, May 23, 1994.

Tools for Funding Projects

Twin Oaks Community has allocated budgets for projects by Movable Money Votes.  The community’s board of directors set the final budgets, based on voting by members, tallied with software written by Dr. Robert Tupelo-Schneck.  (His method for Fair-share Spending can work with departmental budgets also.)  He tested it with ballots and results from the Electoral Reform Society and other sources.  Based on OpenSTV, the tally was written in Python and was an open-source project at Code.Google.  You can download the code to run in Python on your own computer. His new version is entirely rewritten in Java.  His newest ballot is written in JavaScript.

Simulation and Tally:  This simulation of fair-share spending lets users play with election data and see its results all on a "neighborhood map."  The Excel file tallies 25 voters and 16 project proposals.  Version 2.1, January 2009, current version 524K.  This version tallies Movable Money Votes based on 'voting cards'.  The workshop on movable votes uses cards as a physical analogy.  It helps voters understand the logic and welcome a computer's help with a large tally.

Older versions:
Macintosh format 320K, Windows format 280K. 2009
The lower-resolution version of this participatory budgeting tool may work better on older computers.  Version 2.0, June 2006, 66K.  There is also an older simulation of fair-share spending based on the advanced ballot method. Version 1.2, August 2004, 133K.

The page on project-funding software offers several Excel ballots and tally programs for selecting projects and setting their budgets.

Tools for Setting Budgets of
Departments, Agencies, or Programs

Dr. Schneck's ballot is fun and easy. It lets a voter click or drag candidates onto his own list of favorites, then change their ranks by dragging them up or down his list.

Fair-share Spending needs the voters to rank the candiddates just once. The budget-setting programs below need the voters to adjust their ballots several times, causing and countering budget changes.

Excel spreadsheets often work in Open Office, which is free for computers with Windows, Macintosh OS-X or Linux.  To use the online versions at Google, write to voting - site at gmai l.  No dashes, dots or spaces.

You may download the Excel version to change the department names and current budgets.  Then upload it to use on the Web in your own Google account.  Or use it through a local network where you can give each page a different password.

Each spreadsheet is Free, Open source, and © 2007 under a GNU copyright.  So you must give credit to the original source: AccurateDemocracy.com.

Budget Refill Voting (BRV)  Each of these four programs has a different way to limit how much one voter may change one department’s budget.  The first two are easy for voters; the next two are harder to use and probably no better.

Budget Priorities  A voter grades or ranks departments.  The item with the highest grade has the highest utility value.  So it gets the maximum grant allowed.  Each lower grade gets a bit less.  BRV Budget Priorities Online version at Google:  Budget Priorities  August 2007.  655KB.

BRV Budget Limits lets a voter grant a department as little or as much as he wants up to a maximum.  That max is a fraction of its current budget.  Some voters like to add the max to as many as they can afford, and add nothing to the other departments. August 2007.  469KB; 36 voters.nbsp; Online budget setting program (Google might not allow 36 simultaneous users.)

BRV Budget Grant-Tax A voter pays no tax to grant a department his share of its current budget.  The more he tries to change that "neutral grant" the more tax he pays.  Budget Grant-Tax Voting   August 2007.  131KB; 9 voters. online version at Google.

BRV Budget Influence Points: This more sophisticated program lets up to 100 voters use BIP to set ongoing budgets for departments, trade votes and watch the changes as they happen.  Instructions for installing the tally sheet and ballots are on Read_Me.doc.
Budget Influence Points Free, Open source in Excel 97, © 2000-2003. for setting more than 50 budgets by taking a series of ballots.  The zipped file is about 511KB.  July 2003.
Download ballots and tally program for setting less than 50 budgets on a single ballot.  The zipped file is about 440KB.  version 1.0, April 22, 2003.
Earlier version for up to 9 voters: download.  Excel 5, 290KB.  in version 1.2, April 21, 2003.

Median Voter Process (MVP):   This program lets up to 9 voters negotiate one-to-one as they adjust agency budgets.  Median Voter Process© 2003-2007.  192KB.
The online MVP ballots and tally helps voters pass messages for vote trading.

Voting Simulations for Teaching

PoliticalSim, is the only program designed primarily for visual and statistical comparisons of two dozen voting rules for lectures and research.  Free, Open source in Excel, © 1991-1999.

James Marshall offers PoliSim, a very concise program to explore agents competing for territory in a simple plurality-rule election.  Runs quickly online.  Mr. Marshall welcomes users to add more voting rules.  Free, Open source in Java 1.0, © 1996.  “The big square represents the political positions of the voting public, who are evenly distributed.” [This distribution makes IRV look bad.  Chamberlin and others found that sims which spread voters normally or in realistic clumps give IRV a much better “Condorcet Efficiency”, electing the most central candidate.

Carlton Chai offered a "Voting Cellular Automata" Vote.java.  It has vanished from the web without a trace but a copy is in the AD archive.

Ascape (The Brookings Institution) Repast (University of Chicago) and Swarm are "agent" simulations for exploring patterns in games such as the Prisoner dilemma, Life and Sugarscape.  Games involving responsive agents as candidates and voters are possible.  Review of Ascape These programs require some work to install with Java.  All are big, Free, with some Open source in Java.

Voting Animations for Teaching

The Choice Voting Explained by FairVote shows votes transfer between candidates’ jars.  Flash; © 2008.

The Single Transferable Vote Simulator by HumanCube shows STV votes transfer between candidates’ bar charts.  Very limited ballot input. Shockwave Flash; website © 2008, Human Cube Inc.

An election database from Ireland shows STV vote transfers between candidates on bar charts.  Available online or download. Java; © 1999-2001 Ciaran Quinn.

An IRV ballot and tally from Chris Gates shows each step of an IRV tally transferring votes from the weakest candidate to more popular ones.  Adobe Flash Player 9.

An animated tally by Meek's STV, as used in New Zealand, shows votes transfer from the weakest candidate to more popular ones.  Adobe Flash Player 9.

Warren D. Smith offered a Voting system testing program to create random voters (either honest or strategic) then tally their preferences by several one-winner rules: Approval, Borda, Bucklin, Condorcet, Copeland, Coombs, Ranked Pairs, STV by Hare's or Meek's rules (not tested for elections with more than 1 seat).  He also offered a program to calculate voting power of factions on a council.  Both are Free, Open source, in C © October 2000.  (They were tested only in LINUX and compiled with gcc.)

More Downloads

Printouts   This web page downloads a concise 9-page article on the best voting rules.  It is easier to study than the screen version.  Updated 98-08-03.

View the whole Download directory!

Print.    español   Chinese

Search Accurate Democracy