RunasSudo
2987eca0c3
Do not defer a surplus distribution if it exactly equals the difference between the 2 trailing candidates (as, depending on tie-breaking rules, this could change the order of exclusion)
OpenTally
OpenTally is an application for counting various preferential voting elections, with an academic focus, and emphasis on configurability.
OpenTally may be used in a number of different ways:
- as an online web application, no installation or special software required
- as a standalone command line application
- as a Rust library within another application
Features
OpenTally accepts data in the BLT file format, and can count votes using:
- weighted inclusive Gregory STV (e.g. Scottish STV)
- unweighted inclusive Gregory STV (e.g. Australian Senate STV)
- exclusive Gregory STV (e.g. PRSA 1977 and ERS97)
- Meek STV – with tree-packed ballots for efficient computation
- Wright STV
OpenTally is highly customisable, including options for:
- different quotas and quota rules (e.g. exact Droop, Hare)
- calculations using fixed-point arithmetic, guarded fixed-point (quasi-exact) or exact rational numbers
- different tie breaking rules (backwards, random, manual) with auditable deterministic random number generation
- multiple constraints (e.g. affirmative action rules)
- equal rankings
Online usage
See the quick start guide for how to use OpenTally online.
Command line usage
OpenTally may also be invoked as a command line application. Run ./opentally --help
to view help.
For example, run ./opentally stv path/to/blt_file.blt --ties backwards random --random-seed foobar
.
Description
Languages
Rust
85%
JavaScript
8.3%
HTML
3.6%
CSS
1.5%
Ruby
0.9%
Other
0.7%