Jump to content

Software

From electowiki

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

Image
A diagram on Nicky Case's To Build a Better Ballot, allowing users to move around both the candidates and the voters.
Image
Screenshot of "Nonmonotonicity City" section in Ka-Ping Yee's 2005 paper. The diagrams here are now frequently referred to as Yee diagrams.


These tools focus on explanation, simulation, or visualizing method behavior.

Calculators/playgrounds

see also: online poll

These tools calculate results or let users compare voting methods from ballot data.

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.

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.

Cookies help us deliver our services. By using our services, you agree to our use of cookies.