blob: 48fdf8964cd3530a16b9e11a15b979abc6a10ca4 [file] [view]
# Vote monitoring tools
Helpers for processing closed-election tallies.
When votes are closed, each monitor historically received an email: a final list of votes with hash ID and timestamp, time-ordered so later ballots sit at the bottom.
## STV (`stv_tool.py`)
Meek STV engine plus `LoadData` (load a **file**, not a directory). v3 (`steve.vtypes.stv`) and `whatif.py` (repo root) call this module.
```shell
./stv_tool.py vote-results.json
./stv_tool.py -s 9 -v raw_board_votes.txt
```
| Input | Behavior |
| --------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| `vote-results.json` (v3 tally JSON) | Source of truth. `labelmap` + votestrings for the STV issue. |
| `raw_board_votes.txt` (+ sibling `board_nominations.ini`) | Old-school emailed format. Non-vote lines ignored; later vote per 32-char hash wins. Warns on stderr. |
| `raw_board_votes.json` (v2 export, labels like `AA`/`AB`) | Not a tally format. Warns and exits. Keep for posterity; pass txt or v3 JSON instead. |
`whatif.py` runs seat / drop / runoff scenarios on the same loaders. `whatif.rb` still wants txt+ini.
## Other STV tools
OpenSTV or the deprecated VoteMain systems. Most modern tools use BLT.
Feed the STV-tally email and write an output file:
```shell
./nstv-rank.py raw_votes.txt > outputFile
```
After installing Voting Systems Toolbox:
```shell
java -cp Vote-0-4.jar VoteMain -system stv-meek -seats 9 outputFile
java -cp Quick_STV_1_2.jar VoteMain -system stv-meek -seats 9 outputFile
```
BLT-oriented tools such as OpenSTV:
```shell
./nstv-rank.py -b raw_votes.txt > outputFile.blt
```
ASF Meek STV settings: precision 6; threshold Droop | Dynamic | Fractional.
## YNA
`yna-summary.pl` tallies Yes / No / Abstain. You can concatenate all final YNA tallies into one file; it pulls out each issue name and result, honoring only the most recent vote per voter.
```shell
./yna-summary.pl all30tally.txt
```
## Voter checks
`monitoring-check.pl` checks that incoming votes are from legitimate voters.