A detailed index of free (open-source) software around preferential voting.
Rules: The entries must be significant, free, and documented. They must be currently maintained, tested, and must have received a minimum of recognition for their seriousness and reliability.
Pull request welcome!
- Condorcet Voting Open Source Ecosystem Map
Specification of a free format, representing an Election an her data (parameters, candidates, votes). 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.
Developped by David Hill for the tideman data set.
Custom format used by Debian project.
- Condorcet program includes command line tools (and also php api) to convert some formats to other formats. Including Debian, David-Hill, Civs, CondorcetElectionFormat.
Documentation: www.condorcet.io
Main technologies: PHP 8
Supported input formats: Shell, interactive shell, Condorcet Election format, Debian Format, David Hill Format
Methods:Condorcet / Borda (+ Nauru variant) / Copeland / Dodgson (2 Approximations) / FTPT / Instant-runoff (alternative vote) / Kemeny–Young / Minimax (+ variants) / Ranked Pairs (+ variants) / Schulze (+ variants) / Single Transferable Vote (STV) / Comparison of Pairs of Outcomes by the Single Transferable Vote (CPO-STV) / Highest Averages Methods (Sainte-Laguë, Jefferson/D'Hondt, and variants) / Largest Remainder Methods (with different quotas)
Command line interface including an interactive mode, complete statistics and the management of huge elections on a modest hardware. Various installation method including Docker, Github codespace or PHP (Phar, Composer).
Main technologies: Perl
Methods:Schulze
Official voting system processor of the Linux Debian project.
Methods:
Schulze / STV
Main technologies: OCaml
Online version: vote.belenios.org/admin
Methods:
Condorcet / Schulze (+ variants) / Kemeny-Young / Ranked Pairs (+ variants) / Minmax (+variants) / Borda / FTPT / Copeland / Dodgson / Dowdall / Instant-Runoff (alternative vote)
Main technologies: PHP / Mysql / Docker
Online version: www.condorcet.voteAn open-source demo for a web ovting application based on Condorcet as backend.
Supported input formats: Civs format
Main technologies: Perl
Online version: civs1.civs.us.
Methods:
Cumulative / Condorcet / Borda / Instant-Runoff (alternative vote) / Coombs / Majority judgment / FTPT
Main technologies: Java
Online version: pollen.cl
Documentation: www.condorcet.io
Supported input formats: PHP Api with methods for Json/String/Object, Condorcet Election format, Debian Format, David Hill Format
Methods:Condorcet / Borda (+ Nauru variant) / Copeland / Dodgson (2 Approximations) / FTPT / Instant-runoff (alternative vote) / Kemeny–Young / Minimax (+ variants) / Ranked Pairs (+ variants) / Schulze (+ variants) / Single Transferable Vote (STV) / Comparison of Pairs of Outcomes by the Single Transferable Vote (CPO-STV) / Highest Averages Methods (Sainte-Laguë, Jefferson/D'Hondt, and variants) / Largest Remainder Methods (with different quotas)
Condorcet PHP provides an election engine with a high-level interface to manage all aspects of an election and to run simulations. It's supporting many input methods and various tools & helpers. The modular architecture is easy to extend. It supports simple elections with ease or billions of votes in low resource environment. Condorcet is intensively tested (1500+ tests), documented, and highly polyvalent.
Methods:
Ranked Pairs
Methods:
Condorcet / Schulze / Ranked Pairs / STV
Methods:
Schulze
Documentation: lzear.github.io/votes
Methods:Coombs / Copeland's method / FPTP / Instant-runoff / Kemeny–Young / Minimax Condorcet method / Minimax-TD / Nanson / Random candidate / Random dictator / Ranked pairs / Schulze / Smith's method / Maximal lotteries / Randomized Condorcet / Majority Judgements
npm library written in Typescript.
Methods:
RCIPE (VoteFair Popularity / Representation / Party)
This C/C++ code calculates results for RCIPE (Ranked Choice Including Pairwise Elimination) voting. It's a compromise between instant-runoff voting (IRV, often called "ranked choice voting") and Condorcet methods. It eliminates "pairwise losing candidates" when they occur, and it counts shared preference levels (which IRV discards as "overvotes"). It implements both single-winner and multi-winner versions.
To fill
Collection of elections ballots for testing methods theories and implementations.
Also expanded and calculated on this project >>> Condorcet_Tideman_Election_Collection
- Condorcet provides a vote random generator to generate votes (crypto-safe engine, or predictive randomness with seed and many engines). Usage as a PHP API only, no command-line support.