The guides live alongside the code so that implementation details and setup instructions can be updated together.
The current v3 application implements two voting types:
| Method | How it is used |
|---|---|
| Single Transferable Vote (STV) | Voters rank candidates. The Meek STV engine counts the ballots for the configured number of seats. |
| Yes / No / Abstain (YNA) | Voters choose yes, no, or abstain on an issue. |
See the voting implementations for the supported options and tally behavior.
The monitoring tools guide covers tally input formats and command-line tools. The v3 STV implementation and the what-if tool share the Meek STV engine in monitoring/stv_tool.py.
The STV tally and what-if examples show how to change the seat count, exclude a candidate, or select a runoff field. For new tallies, use the v3 vote-results.json export.
Open a pull request against the trunk branch. For Python changes, follow the formatting, linting, and type-checking instructions in AGENTS.md.
Website sources are in site/. The site README explains how to build the website and preview a change.
For design discussions or questions about the code, join the community.