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.

  1. Set quota threshold: total votes / (seats + 1).
  2. Allocate current preferences: In each round, every active ballot is assigned to its highest-ranked continuing candidate.
  3. 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.
  4. Transfer surplus (Gregory-style): If an elected candidate has surplus, each ballot currently with that candidate transfers the same fraction: surplus / candidate total.
  5. Eliminate lowest: If nobody reaches quota, the lowest candidate is eliminated and their ballots transfer at full current value to the next continuing preference.
  6. 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.
  7. Repeat until seats filled: Counting stops when all seats are filled, or when remaining candidates equal remaining seats.