Software
There is a wide range of electoral software, including visualization tools, calculators/playgrounds, libraries and developer tools, polling tools, and ballot-data formats. This page is a work-in-progress directory of software and websites related to voting methods, elections, and electoral reform.
Main category: Category:Software
See also: Category:Voting software
Categories
Software below is grouped by primary use. Some projects fit more than one section.
Visualization


These tools focus on explanation, simulation, or visualizing method behavior.
- Nicky Case: Creator of To Build a Better Ballot, a 2D explorable explanation of six voting methods.
- Ka-Ping Yee: His Yee diagrams changed many perspectives in the world of electoral reform.
- Quadelect: Draw Yee maps, calculate Bayesian regret, and determine election winners.
- IEVS: Infinitely extendible voting system comparison engine (C, non-commercial use only).
- Voteline: 1D simulator for FPTP, Approval, Borda, Condorcet, and IRV (Flash, online).
- Serial Approval Vote Election (SAVE): Thomas Edward Cavin's site for Serial Approval Vote Election, with interactive models and simulated electorates.
- Smart Voting Simulator: 2D interactive guide to voting methods.
- Votekit: Rough draft of a 2D and 1D interactive simulator.
- Arrow’s Theorem: Visualizing 3-Candidate, 3-Voter Elections with Hexagons. Video. GitHub.
- election_simulator: Simulates elections to test election algorithms.
- vse-sim: Methods for running simulations to calculate Voter Satisfaction Efficiency (VSE) of various voting systems in various conditions.
- sim_one_seat: a simulator by Brian Olson
- redistricter: Open-source impartial algorithmic redistricting.
- How to Fix the Election
Calculators/playgrounds
- see also: online poll
These tools calculate results or let users compare voting methods from ballot data.
- Condorcet.Desktop: Election playground for comparing 25+ methods.
- Condorcet.Vote: Free online tool that supports text-based ballot entry and public polling.
- Pairwise Methods Demonstration by RobLa: Calculates the Condorcet, Copeland, and Smith winners, but runs slowly because it is only available archived.
- Ranked-ballot voting calculator by Rob LeGrand, inspired by RobLa's Pairwise Methods Demonstration (European mirror, Internet Archive mirror): Supports text-based ballot entry and calculates methods including Baldwin, Black, Borda, Bucklin, Coombs, Copeland, Hare/Instant-runoff voting, Schulze, Minmax, and Ranked pairs.
- Eric Gorr’s Condorcet Matrix, inspired by the Ranked-ballot voting calculator: Supports text-based ballot entry and calculates Condorcet, Beatpath, Ranked Pairs, and Ranked Choice results.
- VoteCalc: Uses IEVS to calculate winners with over 60 methods; supports text-based ballot entry, rated ballots, and ranked ballots with approval thresholds.
- DistributedVote: Archived and no longer available.
- Sass' STAR Voting Calculator (bit.ly/STAR-Calculator): Google Sheet that calculates STAR Voting elections using cell formulas.
- Sass' Ranked Robin Calculator (bit.ly/robin-calc): Google Sheet that calculates Ranked Robin elections using cell formulas and formats ballot sets in standard notation.
- Maximal Lotteries: Simulates Maximal Lotteries with a dedicated GUI for ballot entry and calculates a handful of other methods.
- Method of Equal Shares: Online Computation Tool: Calculates the results of an MES election using a participatory budgeting voting file.
- ABIF Web Tool: Supports text-based ballot entry in Aggregated Ballot Information Format and produces beatpath diagrams, preference matrices, Ranked Choice results, and STAR results.
Libraries and developer tools
These projects are mainly command-line tools, libraries, tabulators, source code, or developer-facing packages.
- abiftool (GitHub): Command-line tool and Python library for parsing, converting, and analyzing ABIF and related election-data formats.
- Condorcet PHP: Command-line application and PHP library natively including dozens of methods under a single interface, plus a modular framework for implementing more.
- RCTab (GitHub, documentation): Open-source Java tabulator for RCV elections, including single-winner RCV and multi-winner STV. It is maintained by Bright Spots and the RCV Resource Center.
- RCTabPlus (GitHub): Open-source Java fork of RCTab. RCTabPlus adds options to eliminate pairwise losing candidates and to count overvotes when a single marked candidate remains continuing.
- JavaScript library votes: Includes more than 16 voting systems. NPM, GitHub, demo.
- votelib: Open-source Python library for calculating results of many election systems ranging from mixed-member proportional to Bucklin voting and many Condorcet methods.
- Vote::Count: Perl library supporting a large number of RCV and Range methods, including IRV, Borda, Condorcet, and MinMax.
- voteutil: Counts votes with a variety of algorithms in C, Python, Go, and Java; also includes a Histogram class with the same interface.
- voting: Implements different apportionment methods in Python.
- IVXV: Source code of Estonia's online voting system.
Polling and administration
These tools host polls, collect votes, or support real election administration.
- BetterVoting (bettervoting.com): Simple tool for public and private polling primarily using STAR Voting, Approval, and Ranked Robin. Also includes options for Choose-One Plurality, single-winner and multi-winner Ranked Choice Voting, Proportional STAR, and Single Transferable Vote. It was previously star.vote, which now redirects to BetterVoting; the older version can be accessed at classic.star.vote/.
- Better Choices for Democracy (app): Provides a polling app for Consensus Choice Voting.
- Assortment of STAR Voting polling tools: Includes star.vote, a Google Forms add-on, and a Google Sheet.
- Condorcet Internet Voting Service: Free tool for public and private polling, created by Andrew C. Myers. Methods include Minmax, Schulze, Maximize Affirmed Majorities, Ranked Pairs, Condorcet//IRV, and Bottom-Two Runoff (BTR). Python's 2018 governance vote used CIVS; see PEP 8001.
- StrawPoll: Tool for hosting public and private polls. Free and paid versions are available. Supports Approval, Choose One (FPTP), and Borda.
- Helios Voting: Open-source, end-to-end verifiable online election system. Source code is available at benadida/helios-server.
- OpaVote: Premium tool for hosting secure elections. Supports Choose One, Approval, Ranked Choice, STV, Beatpath, Condorcet hybrids, Copeland, Coombs, Borda, and Bucklin.
- Stable Voting: Free tool for hosting public and private polls using Stable Voting.
- vote.electionscience.org: Free tool for hosting public and private Approval Voting polls.
- SIV: Digital voting service emphasizing privacy, verifiability, and publicly auditable code.
- LiquidFeedback: Free software for political opinion formation and decision-making based on liquid democracy.
- star.vote: Website source code.
Petition tools
- Ballot Initiative: Open-source tool to automate signature validation for ballot initiatives, tailored to D.C. petition forms.
Data formats
Data formats make ballot and result data portable between tools.
- Aggregated Ballot Information Format (ABIF) ― This format is designed to be a universal format for expressing aggregated ballot sets from elections, regardless of whether voters are asked to provide rankings (i.e. "ordinal voting") or ratings (i.e. "cardinal voting"). It's loosely based on a format that has been used on the election-methods mailing list and in other places since 1996.
- BLT ― A compact ballot-file format associated with OpenSTV, OpaVote, Droop, and other STV/RCV tabulation software.
- Condorcet Election Format ― This format is a free election description specification. The objective of this format is to be easily written and read by a human, with the rigor and precision necessary for ingestion by a program.
- Cast vote record formats ― CVR formats are used to publish ballot-level data from voting systems. Examples include the NIST Cast Vote Records Common Data Format, San Francisco CVR format, St. Louis Hart Verity XML CVR format, and RCTab CVR formats.
- Election Markup Language ― This format was created by an OASIS working group chartered "to develop a standard for the structured interchange of data among hardware, software, and service providers who engage in any aspect of providing election or voter services to public or private organizations."
- NIST Election Results Reporting Common Data Format ― A NIST common data format for election results reporting.
- PrefLib formats ― Research-oriented preference-data formats for election and preference datasets.