Different uses for voting
need different types of voting.
Hand Tallies for elections and policies.
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.
A dozen sites listed here offer software to tally Condorcet or Proportional Representation rules. Those programs can be combined to create centrally-balanced councils. This site also offers free voting tools to allocate fair-share funding for projects and agencies. All these sites distinguish themselves from the hundreds that give away little more than hot air in political rumors, untested schemes, 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 their old rules.
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 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 online voting, like mail-in ballots, is susceptible to vote buying, and possible pressure on voters from friends, family and bosses. Online voting if also subject to hacking.
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.
Blake Cretney offers three programs and their source code at SourceForge:
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.
Michael Clarkson, Stephen Chong and Andrew Myers, of the Cornell University Computer Science Dept. have 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.
Stephen Checkoway of ucsd.edu offers Module elections.irv Free, Open source in Python, © 2011, All rights reserved.
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.
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.4.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.7”.
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.
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.
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.
Electionz offers commercial management of elections, including STV. http://www.electionz.com/home/
Joe Otten and the Electoral Reform Society of Great Britain offered eSTV with clear menus for easy use. It included the ERS97 version of STV. It was free: The trial version was for non-commercial use and was limited to 12 candidates and 60 voters. A version for 50 candidates and 1000 voters was available and required 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.
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.]
Any online or mail-in voting system is susceptible to vote buying, and possible pressure on voters from their family, friends and bosses. Online voting has added the risk of hacking attacks.
Online voting is inherently less secure than online banking and commerce – whose managers often can detect and mitigate small frauds and big cyberattacks because each customer’s account has a unique ID. A company can review the record of a customer’s data as it went through each step in a transaction.
But most voting depends on anonymous, secret ballots. So each ballot must not have an identifiable, tracable voter, which would expose how Bob voted and how each vote on his ballot moved through the tally process.
In contrast, paper ballots have high degrees of both anonymity and security if they are guarded properly. Most jurisdictions scan their paper ballots so computers can tally the data – and so other computers can recheck those tallies.
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.
Civinomics has prototype Ranked-Choice Ballots and tallies online. “...soon, anyone will be able to set up ranked choice voting polls or ballots on Civinomics.” Retrieved September, 2015.
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.
Jeffrey O'Neill put OpenSTV online as OpaVote It can 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.
Craig Simon moved his ChoiceRanker website to facebook, so it requires users to share their “basic information” with the ballot system.
Brian Lack designed Simply Voting to tally the Single Transferable Vote with Droop quota and fractional transfers. The online ballot allows no tied votes. It can also tally Condorcet Ranked Pairs and plurality rules. 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. “FairVote has partnered with E1C to run private sector elections.”
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.
Demokracie 2.1 s.r.o. , of Prague offers its own kind of Cumulative Voting. It was originally intended to fill two seats by giving each voter a ballot allowing four votes, one of which may be a negative vote against a candidate.
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
History: Each year for ten years, this 100-member cooperative community used FSV. They even used it to adjust their many ongoing budgets up and down. But that made the ballots too complicated for most voters to manage well. The community’s board set the final budgets, based on the tally results.
Dr. Schneck wrote the first version in OCaml, then in Python. One version was based on the open source versions of OpenSTV. He and Robert Loring tested it with ballots and results from the Electoral Reform Society and other sources. You can download the code from Code.Google to run in Python on your own computer. You can get the Java code from the author.
The Stanford Participatory Budgeting Platform is by the Stanford Crowdsourced Democracy Team at Stanford University. It includes the plain ranked choice voting used for PB in Dieppe, Canada. It may lack the cost-awareness essential to picking the best projects.
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.
The page on project-funding software offers several Excel ballots and tally programs for selecting projects and setting their budgets.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
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.
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.
Voting Simulations for Teaching
James Marshall offers PoliSim, a very concise program to explore agents competing for territory in a simple plurality-rule election. 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 unrealistic distribution makes IRV look bad.
Carlton Chai offered a "Voting Cellular Automata" Vote.java. It has vanished from the web 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 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 DownloadsPrintouts 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.
U.S. Reforms Future rules