Skip to main content

Documentation

The guides live alongside the code so that implementation details and setup instructions can be updated together.

v3 voting application

Voting methods

The current v3 application implements two voting types:

MethodHow 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.

Tally and what-if tools

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.

Contribute a change

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.