Open-source election counting https://yingtongli.me/opentally/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
RunasSudo e825ca1491
Update for Rust 1.62
10 months ago
docs Update documentation 12 months ago
homepage Update documentation 12 months ago
html Use "ballots" consistently vs "ballot papers" 1 year ago
src Update for Rust 1.62 10 months ago
tests Autodetect when to normalise ballots, remove explicit --normalise-ballots 1 year ago
.gitignore Update documentation 12 months ago
COPYING Initial commit 2 years ago
Cargo.lock Update wasm-bindgen 12 months ago
Cargo.toml Update for Rust 1.62 10 months ago
README.md Rename docs files to avoid reserved Windows paths 1 year ago
build_docs.sh Implement constraint matrix logic and test case 2 years ago
build_wasm.sh Don't reapply wasm-bindgen/wasm-opt if no changes 2 years ago
coverage.sh Update rustfilt path 2 years ago
rustc_bs.sh Add code coverage calculation 2 years ago
test.csp Add subcommand for BLT/CSP file conversion 2 years ago

README.md

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.