🗳️
Preference Flows
Model election preference flows with IRV/STV counting. Add your own candidates, ballots, and seats to see round-by-round vote transfers.
Candidates
One candidate per line, in display order.Ballots
Format: count: Candidate A > Candidate B > Candidate C. Use multiple lines with the same first candidate to model split preferences.Settings
Choose number of seats and optional AA-reserved seats.Alluvial Diagram
Quota: -Count Summary
Methodology
This tool models an IRV/STV count using weighted ballots and a Droop quota. Ballots are entered in grouped form (for example, 4200: Labor > Greens > Independent), then expanded internally as fractional ballot weights for transfer calculations.
- Set quota threshold: total votes / (seats + 1).
- Allocate current preferences: In each round, every active ballot is assigned to its highest-ranked continuing candidate.
- Elect on quota: If a candidate’s tally is (strictly) greater than the quota threshold, they are elected in that round and marked with a tick.
- Transfer surplus (Gregory-style): If an elected candidate has surplus, each ballot currently with that candidate transfers the same fraction: surplus / candidate total.
- Eliminate lowest: If nobody reaches quota, the lowest candidate is eliminated and their ballots transfer at full current value to the next continuing preference.
- AA tally (optional): Mark candidates with (AA) and set AA seats. Once non-AA seats are filled, an AA stage begins in a separate alluvial chart below the main chart, with only unelected AA candidates continuing from a reset AA table.
- Repeat until seats filled: Counting stops when all seats are filled, or when remaining candidates equal remaining seats.