Validated against 2019 NSW Senate election

Disable bulk election for Senate STV
Update documentation
This commit is contained in:
RunasSudo 2021-07-23 20:30:14 +10:00
parent efbcfd7f6c
commit 5f48a88bbe
No known key found for this signature in database
GPG Key ID: 7234E476BF21C61A
4 changed files with 45 additions and 20 deletions

View File

@ -4,24 +4,23 @@
The preset dropdown allows you to choose from a hardcoded list of preloaded STV counting rules. These are: The preset dropdown allows you to choose from a hardcoded list of preloaded STV counting rules. These are:
<table> | Method | Description | Exceptions | Validated |
<tr><th>Method</th><th>Description</th><th>Exceptions</th><th>Validated against</th></tr> |-|-|-|-|
<tr><td>OpenTally WIGM</td><td>Recommended set of simple STV rules designed for computer counting, using the weighted inclusive Gregory method and rational arithmetic.</td><td></td><td></td></tr> | OpenTally WIGM | Recommended set of simple STV rules designed for computer counting, using the weighted inclusive Gregory method and rational arithmetic. | | |
<tr><td>Scottish STV</td><td>Rules from the <a href="https://www.legislation.gov.uk/ssi/2011/399/schedule/1/made"><i>Scottish Local Government Elections Order 2011</i></a>, using the weighted inclusive Gregory method.</td><td></td><td><a href="https://web.archive.org/web/20121004213938/http://www.glasgow.gov.uk/en/YourCouncil/Elections_Voting/Election_Results/ElectionScotland2007/LGWardResults.htm?ward=1&wardname=1%20-%20Linn">2007 Linn ward local election</a> (eSTV 2.0.16)</td></tr> | Scottish STV | Rules from the [*Scottish Local Government Elections Order 2011*](https://www.legislation.gov.uk/ssi/2011/399/schedule/1/made), using the weighted inclusive Gregory method. | | ✓ |
<tr><td>Meek STV</td><td>Advanced STV rules designed for computer counting, recognised by the Proportional Representation Society of Australia (VictoriaTasmania) as the superior STV system.</td><td></td><td></td></tr> | Meek STV | Advanced STV rules designed for computer counting, recognised by the Proportional Representation Society of Australia (VictoriaTasmania) as the superior STV system. | | |
<tr><td>&bullet; OpenTally Meek</td><td>Recommended rules for Meek STV. Operates according to the original 1987 HillWichmannWoodall <a href="https://www.dia.govt.nz/diawebsite.NSF/Files/meekm/%24file/meekm.pdf">Algorithm 123</a> specification (<i>The Computer Journal</i> 1987;30(3):27781), except that (a) ties are broken backwards then at random, (b) fixed-point arithmetic with 5 decimal places is used, and (c) candidates are elected on strictly exceeding the quota.</td><td></td><td><a href="https://yingtongli.me/blog/2021/01/04/ers97.html">Ballot papers derived from the ERS97 model election</a> (Algorithm 123)</td></tr> | • OpenTally Meek | Recommended rules for Meek STV. Operates according to the original 1987 HillWichmannWoodall Algorithm 123 specification ([*The Computer Journal* 1987;30(3):27781](https://www.dia.govt.nz/diawebsite.NSF/Files/meekm/%24file/meekm.pdf)), except that (a) ties are broken backwards then at random, (b) fixed-point arithmetic with 5 decimal places is used, and (c) candidates are elected on strictly exceeding the quota. | | ✓ |
<tr><td>&bullet; Meek STV (2006)</td><td>Operates according to Hill's 2006 revisions (<a href="http://www.votingmatters.org.uk/ISSUE22/I22P2.pdf"><i>Voting Matters</i> 2006;(22):710</a>). This is the algorithm referred to in OpenSTV/OpaVote as Meek STV, and forms the basis of New Zealand's Meek STV rules.</td><td>[E1]</td><td>Ballot papers derived from the ERS97 model election (<a href="https://github.com/Conservatory/openstv">OpenSTV 1.7</a>)</td></tr> | • Meek STV (2006) | Operates according to Hill's 2006 revisions ([*Voting Matters* 2006;(22):710](http://www.votingmatters.org.uk/ISSUE22/I22P2.pdf)). This is the algorithm referred to in OpenSTV/OpaVote as Meek STV, and forms the basis of New Zealand's Meek STV rules. | [E1] | ✓ |
<tr><td>&bullet; Meek STV (New Zealand)</td><td>Operates according to Schedule 1A of the <a href="https://www.legislation.govt.nz/regulation/public/2001/0145/latest/DLM57125.html"><i>Local Electoral Regulations 2001</i></a>.</td><td>[E1]</td><td>Ballot papers derived from the ERS97 model election (OpenSTV 1.7, <a href="https://yingtongli.me/blog/2021/07/08/nzmeek.html">Hill's nzmeek 6.7.7</a>)</td></tr> | • Meek STV (New Zealand) | Operates according to Schedule 1A of the [*Local Electoral Regulations 2001*](https://www.legislation.govt.nz/regulation/public/2001/0145/latest/DLM57125.html) | [E1] | ✓ |
<tr><td>Australian Senate STV</td><td>Rules from the <a href="https://www.legislation.gov.au/Details/C2020C00400/Html/Text#_Toc59107700"><i>Commonwealth Electoral Act 1918</i></a>, using the unweighted inclusive Gregory method.</td><td>[E2] [E3]</td><td><a href="https://results.aec.gov.au/24310/Website/SenateDownloadsMenu-24310-Csv.htm">2019 Tasmanian Senate election</a> (AEC EasyCount)</td></tr> | Australian Senate STV | Rules from the [*Commonwealth Electoral Act 1918*](https://www.legislation.gov.au/Details/C2020C00400/Html/Text#_Toc59107700), using the unweighted inclusive Gregory method. | [E2] [E3] | ✓ |
<tr><td>Western Australia STV</td><td>Rules from the <a href="https://www.legislation.wa.gov.au/legislation/prod/filestore.nsf/FileURL/mrdoc_29498.pdf/$FILE/Electoral Act 1907 - [17-a0-06].pdf"><i>Electoral Act 1907</i> (WA)</a>, using the weighted inclusive Gregory method.</td><td>[E2] [E3]</td><td></td></tr> | Western Australia STV | Rules from the [*Electoral Act 1907* (WA)](https://www.legislation.wa.gov.au/legislation/prod/filestore.nsf/FileURL/mrdoc_29498.pdf/$FILE/Electoral%20Act%201907%20-%20[17-a0-06].pdf), using the weighted inclusive Gregory method. | [E2] [E3] | |
<tr><td>Australian Capital Territory STV</td><td>Rules from the <a href="https://www.legislation.act.gov.au/View/a/1992-71/current/PDF/1992-71.PDF"><i>Electoral Act 1992</i> (ACT)</a>, using the exclusive Gregory method.</td><td></td><td><a href="https://www.elections.act.gov.au/elections_and_voting/2020_legislative_assembly_election/ballot-paper-preference-data-2020-election">2020 Kurrajong territory election</a> (eVACS 2016)</td></tr> | Australian Capital Territory STV | Rules from the [*Electoral Act 1992* (ACT)](https://www.legislation.act.gov.au/View/a/1992-71/current/PDF/1992-71.PDF), using the exclusive Gregory method. | | ✓ |
<tr><td><a href="https://www.aph.gov.au/Parliamentary_Business/Committees/House_of_Representatives_Committees?url=em/elect07/subs/sub051.1.pdf">Wright STV</a></td><td>Rules proposed by Anthony van der Craats designed for computer counting, involving reset and re-iteration of the count after each candidate exclusion.</td><td></td><td><a href="https://www.eveonline.com/news/view/meet-the-new-council">EVE Online CSM 15 election</a> (<a href="https://github.com/ccpgames/ccp-wright-stv">EVE reference implementation</a>)</td></tr> | [Wright STV](https://www.aph.gov.au/Parliamentary_Business/Committees/House_of_Representatives_Committees?url=em/elect07/subs/sub051.1.pdf) | Rules proposed by Anthony van der Craats designed for computer counting, involving reset and re-iteration of the count after each candidate exclusion. | | ✓ |
<tr><td><a href="https://www.prsa.org.au/rule1977.htm">PRSA 1977</a></td><td>Simple rules designed for hand counting, using the exclusive Gregory method, with counting performed in thousandths of a vote.</td><td></td><td><a href="https://www.prsa.org.au/example1.pdf">Example 1</a> of the PRSA's <a href="https://www.prsa.org.au/publicat.htm#p2"><i>Proportional Representation Manual</i></a></td></tr> | [PRSA 1977](https://www.prsa.org.au/rule1977.htm) | Simple rules designed for hand counting, using the exclusive Gregory method, with counting performed in thousandths of a vote. | | ✓ |
<tr><td><a href="https://www.electoral-reform.org.uk/latest-news-and-research/publications/how-to-conduct-an-election-by-the-single-transferable-vote-3rd-edition/">ERS97</a></td><td>More complex rules designed for hand counting, using the exclusive Gregory method.</td><td></td><td>Ballot papers derived from the ERS97 model election</td></tr> | [ERS97](https://www.electoral-reform.org.uk/latest-news-and-research/publications/how-to-conduct-an-election-by-the-single-transferable-vote-3rd-edition/) | More complex rules designed for hand counting, using the exclusive Gregory method. | | ✓ |
<tr><td>&bullet; ERS76</td><td>Former rules from the 1976 2nd edition.</td><td>[E4]</td><td></td></tr> | • ERS76 | Former rules from the 1976 2nd edition. | [E4] | |
<tr><td>&bullet; ERS73</td><td>Former rules from the 1973 1st edition.</td><td>[E4]</td><td></td></tr> | • ERS73 | Former rules from the 1973 1st edition. | [E4] | |
<tr><td>Church of England</td><td>Rules from the Church of England <a href="https://www.churchofengland.org/sites/default/files/2020-02/STV Rules 2020 - final.pdf"><i>Single Transferable Vote Rules 2020</i></a>, similar to ERS73.</td><td></td><td></td></tr> | Church of England | Rules from the Church of England [*Single Transferable Vote Rules 2020*](https://www.churchofengland.org/sites/default/files/2020-02/STV%20Rules%202020%20-%20final.pdf), similar to ERS73. | |
</table>
Exceptions: Exceptions:
@ -30,6 +29,8 @@ Exceptions:
* [E3] A tie between 2 candidates for the final vacancy will be broken backwards then at random, rather than the method described in the legislation. * [E3] A tie between 2 candidates for the final vacancy will be broken backwards then at random, rather than the method described in the legislation.
* [E4] The quota is always calculated to 2 decimal places. For full ERS76 (ERS73) compliance, set *Round quota to 0 d.p.* when the quota is more than 100 (100 or more). * [E4] The quota is always calculated to 2 decimal places. For full ERS76 (ERS73) compliance, set *Round quota to 0 d.p.* when the quota is more than 100 (100 or more).
For details of validation, see [validation.md](validation.md).
This functionality is not available on the command line. This functionality is not available on the command line.
## Quota-related options ## Quota-related options

24
docs/validation.md Normal file
View File

@ -0,0 +1,24 @@
# Validation
STV-counting software is frequently validated empirically by comparing the results of election counts to those generated by independent implementations. See, for example, [[15]](#references). The table describes the empirical validation performed on OpenTally to date.
| Method | Election | Comparator | Included test case |
|-|-|-|-|
| Scottish STV | [2007 Glasgow council Linn ward election](https://web.archive.org/web/20121004213938/http://www.glasgow.gov.uk/en/YourCouncil/Elections_Voting/Election_Results/ElectionScotland2007/LGWardResults.htm?ward=1&wardname=1%20-%20Linn) | eSTV 2.0.16 | ✓ |
| OpenTally Meek | [Ballot papers derived from the ERS97 model election](https://yingtongli.me/blog/2021/01/04/ers97.html) | [Algorithm 123](https://www.dia.govt.nz/diawebsite.NSF/Files/meekm/%24file/meekm.pdf) | ✓ |
| Meek STV (2006) | Ballot papers derived from the ERS97 model election | [OpenSTV 1.7](https://github.com/Conservatory/openstv) | ✓ |
| Meek STV (New Zealand) | Ballot papers derived from the ERS97 model election | OpenSTV 1.7, [Hill's nzmeek 6.7.7](https://yingtongli.me/blog/2021/07/08/nzmeek.html) | ✓ |
| Australian Senate STV | [2019 Tasmanian Senate election](https://results.aec.gov.au/24310/Website/SenateDownloadsMenu-24310-Csv.htm) | EasyCount | ✓ |
| Australian Senate STV | [2019 NSW Senate election](https://results.aec.gov.au/24310/Website/SenateDownloadsMenu-24310-Csv.htm) | EasyCount | |
| Australian Capital Territory STV | [2020 Kurrajong Legislative Assembly election](https://www.elections.act.gov.au/elections_and_voting/2020_legislative_assembly_election/ballot-paper-preference-data-2020-election) | [eVACS 2020](https://www.elections.act.gov.au/elections_and_voting/electronic_voting_and_counting) | ✓ |
| Wright STV | [EVE Online CSM 15 election](https://www.eveonline.com/news/view/meet-the-new-council) | [ccp-wright-stv](https://github.com/ccpgames/ccp-wright-stv) | ✓ |
| PRSA 1977 | [*Proportional Representation Manual*](https://www.prsa.org.au/publicat.htm#p2) [example 1](https://www.prsa.org.au/utopiatc.pdf) | [Model result](https://www.prsa.org.au/example1.pdf) | ✓ |
| ERS97 | Ballot papers derived from the ERS97 model election | [Model result](https://www.electoral-reform.org.uk/latest-news-and-research/publications/how-to-conduct-an-election-by-the-single-transferable-vote-3rd-edition/#sub-section-24) | ✓ |
# References
1. Wichmann BA. Checking two STV programs. *Voting Matters*. 2000 Apr; (11): 68. <http://www.votingmatters.org.uk/ISSUE11/P4.HTM>
2. Wichmann BA. Validation of implementation of the Meek algorithm for STV. London: McDougall Trust; 2000 Apr 28. <http://www.votingmatters.org.uk/RES/MKVAL.pdf>
3. Koopman P, Hubbers E, Pieters W, Poll E, de Vries R. Testing the eSTV program for the Scottish local government elections. Nijmegen (NL): Radboud University; 2007 Mar 30. <https://research.utwente.nl/en/publications/testing-the-estv-program-for-the-scottish-local-government-electi>
4. Conway A, Blom M, Naish L, Teague V. An analysis of New South Wales electronic vote counting. *ACSW '17: Proceedings of the Australasian Computer Science Week multiconference*. New York: Association for Computing Machinery; 2017 Jan. [doi: 10.1145/3014812.3014837](http://doi.org/10.1145/3014812.3014837)
5. Abate P, Dawson J, Goré R, Gray M, Norrish M, Slater A. *Formal methods applied to electronic voting systems*. Canberra: Australian National University; c2003. <https://users.cecs.anu.edu.au/~rpg/EVoting/>

View File

@ -480,7 +480,7 @@ function changePreset() {
document.getElementById('selQuota').value = 'droop'; document.getElementById('selQuota').value = 'droop';
document.getElementById('selQuotaMode').value = 'static'; document.getElementById('selQuotaMode').value = 'static';
document.getElementById('chkBulkElection').checked = true; document.getElementById('chkBulkElection').checked = true;
document.getElementById('chkBulkExclusion').checked = true; document.getElementById('chkBulkExclusion').checked = false; // Senate "bulk exclusion" does not permit quota to be exceeded
document.getElementById('chkDeferSurpluses').checked = false; document.getElementById('chkDeferSurpluses').checked = false;
document.getElementById('selNumbers').value = 'rational'; document.getElementById('selNumbers').value = 'rational';
document.getElementById('txtPPDP').value = '0'; document.getElementById('txtPPDP').value = '0';

View File

@ -1,5 +1,5 @@
# Comment: Sample ballot papers for Example 1 in the PRSA manual - PRSA 1977 # Comment: Sample ballot papers for Example 1 in the PRSA manual - PRSA 1977
# Source: https://www.prsa.org.au/type_3fo.xls # Source: https://www.prsa.org.au/type_3fo.xls; https://www.prsa.org.au/utopiatc.pdf
# Contributor: RunasSudo # Contributor: RunasSudo
7 4 7 4
1 1 3 0 1 1 3 0