aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 7f9fb16973008af0bcfa0ea03bad7c4dc93a7a56 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
1# OpenTally
2
3OpenTally is an application for counting various preferential voting elections, with an academic focus, and emphasis on configurability.
4
5OpenTally may be used in a number of different ways:
6
7* as an online web application, no installation or special software required
8* as a standalone command line application
9* as a Rust library within another application
10
11## Features
12
13OpenTally accepts data in the [BLT file format](https://yingtongli.me/git/OpenTally/about/docs/blt.md), and can count votes using:
14
15* weighted inclusive Gregory STV (e.g. [Scottish STV](https://www.legislation.gov.uk/ssi/2011/399/schedule/1/made))
16* unweighted inclusive Gregory STV (e.g. [Australian Senate STV](https://www.legislation.gov.au/Details/C2020C00400/Html/Text#_Toc59107700))
17* 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/))
18* [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
19* [Wright STV](https://www.aph.gov.au/Parliamentary_Business/Committees/House_of_Representatives_Committees?url=em/elect07/subs/sub051.1.pdf)
20
21OpenTally is highly customisable, including options for:
22
23* different quotas and quota rules (e.g. exact Droop, Hare)
24* calculations using fixed-point arithmetic, guarded fixed-point ([quasi-exact](http://www.votingmatters.org.uk/ISSUE24/I24P2.pdf)) or exact rational numbers
25* different tie breaking rules (backwards, random, manual) with auditable deterministic random number generation
26* multiple constraints (e.g. affirmative action rules)
27* equal rankings
28
29## Online usage
30
31See the [quick start guide](/opentally/docs/quick-start.html) for how to use OpenTally online.
32
33## Command line usage
34
35OpenTally may also be invoked as a command line application. Run `./opentally --help` to view help.
36
37For example, run `./opentally stv path/to/blt_file.blt --ties backwards random --random-seed foobar`.
Contact (issues, pull requests, etc.) at git@yingtongli.me. Generated by cgit.