Open-source election counting https://yingtongli.me/opentally/
Go to file
2022-06-18 02:00:07 +10:00
docs 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) 2022-06-18 01:59:29 +10:00
homepage Start a glossary 2022-04-20 20:16:32 +10:00
html Use "ballots" consistently vs "ballot papers" 2022-04-20 20:03:20 +10:00
src --subtract-nontransferable requires --surplus wig 2022-06-18 02:00:07 +10:00
tests Autodetect when to normalise ballots, remove explicit --normalise-ballots 2022-04-20 19:54:58 +10:00
.gitignore Build docs as HTML 2021-10-28 01:23:55 +11:00
build_docs.sh Implement constraint matrix logic and test case 2021-06-27 17:49:28 +10:00
build_wasm.sh Don't reapply wasm-bindgen/wasm-opt if no changes 2021-09-11 21:17:35 +10:00
Cargo.lock Return Result from CSP parse_reader, better error messages 2021-10-17 17:18:14 +11:00
Cargo.toml Allow opting out of building default wasm bindings 2021-10-18 18:06:42 +11:00
COPYING Initial commit 2021-05-28 20:03:55 +10:00
coverage.sh Update rustfilt path 2021-10-26 00:55:04 +11:00
README.md Rename docs files to avoid reserved Windows paths 2022-01-04 18:26:15 +11:00
rustc_bs.sh Add code coverage calculation 2021-06-12 15:37:41 +10:00
test.csp Add subcommand for BLT/CSP file conversion 2021-08-20 02:29:47 +10:00

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:

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.