2021-06-13 23:09:45 +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
2022-01-04 18:26:15 +11:00
OpenTally accepts data in the [BLT file format ](https://yingtongli.me/git/OpenTally/about/docs/blt-fmt.md ), and can count votes using:
2021-06-13 23:09:45 +10:00
* weighted inclusive Gregory STV (e.g. [Scottish STV ](https://www.legislation.gov.uk/ssi/2011/399/schedule/1/made ))
* unweighted inclusive Gregory STV (e.g. [Australian Senate STV ](https://www.legislation.gov.au/Details/C2020C00400/Html/Text#_Toc59107700 ))
* exclusive Gregory STV (e.g. [PRSA 1977 ](https://www.prsa.org.au/rule1977.htm ) and [ERS97 ](https://www.electoral-reform.org.uk/latest-news-and-research/publications/how-to-conduct-an-election-by-the-single-transferable-vote-3rd-edition/ ))
2021-06-16 17:20:29 +10:00
* [Meek STV ](http://www.dia.govt.nz/diawebsite.NSF/Files/meekm/%24file/meekm.pdf ) – with [tree-packed ballots ](http://www.votingmatters.org.uk/ISSUE21/I21P1.pdf ) for efficient computation
2021-06-22 16:33:34 +10:00
* [Wright STV ](https://www.aph.gov.au/Parliamentary_Business/Committees/House_of_Representatives_Committees?url=em/elect07/subs/sub051.1.pdf )
2021-06-13 23:09:45 +10:00
OpenTally is highly customisable, including options for:
* different quotas and quota rules (e.g. exact Droop, Hare)
2021-06-14 21:43:43 +10:00
* calculations using fixed-point arithmetic, guarded fixed-point ([quasi-exact](http://www.votingmatters.org.uk/ISSUE24/I24P2.pdf)) or exact rational numbers
2021-06-13 23:09:45 +10:00
* different tie breaking rules (backwards, random, manual) with auditable deterministic random number generation
2021-06-27 23:13:39 +10:00
* multiple constraints (e.g. affirmative action rules)
2021-09-04 02:26:30 +10:00
* equal rankings
2021-06-13 23:09:45 +10:00
## Online usage
2021-10-28 16:28:53 +11:00
See the [quick start guide ](/opentally/docs/quick-start.html ) for how to use OpenTally online.
2021-06-13 23:09:45 +10:00
## 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` .