GenerateRandomSearch

Seat Apportionment Generator

Proportional representation has a hard problem at its centre: parties earn fractional seats and parliaments seat whole people. Every rule for resolving that has a known bias — D'Hondt favours large parties, Sainte-Laguë is more even, largest remainder is fairest per seat but can lose a party a seat when the parliament grows. This runs all three on the same votes and shows each party's exact quota alongside what it actually gets.

What this generator does

Generates vote totals and allocates whole seats by the method you choose, showing each party's exact quota beside its allocation. The seats are re-totalled and every quota recomputed before display.

How to use this tool

  1. Choose how many parties and how many seats.
  2. Pick a method and generate.
  3. Compare each party's seats against its exact quota.
  4. Switch methods on the same seed to see the bias directly.

Understanding the controls

How many parties
Between 2 and 8, each with a random vote total. More parties means more rounding to resolve and more visible bias.
Seats to fill
Between 3 and 200. Small parliaments show method bias much more sharply than large ones.
Method
D'Hondt divides by 1, 2, 3 and favours large parties; Sainte-Laguë divides by 1, 3, 5 and is more even; largest remainder hands out whole quotas first and then the leftovers.
Seed
Reproduces the same votes, which is the only way to compare two methods on identical input.

Common use cases

  • Comparing apportionment methods on identical vote totals
  • Teaching why proportional representation still needs a rounding rule
  • Producing worked examples of D'Hondt or Sainte-Laguë
  • Showing how method choice advantages large or small parties
  • Generating seat allocation exercises with checkable answers

How this generator works

The highest-averages methods hand out one seat at a time to whichever party has the largest vote total divided by its next divisor — that divisor sequence is the entire difference between D'Hondt and Sainte-Laguë. Largest remainder instead gives every party the whole part of its quota and then distributes the leftover seats to the largest fractional parts. Before display the seats are re-totalled against the house size, every quota is recomputed from the votes, and no party with fewer votes may hold more seats than one with more.

Randomness and fairness

Uses your browser's cryptographic random source for the vote totals by default. A seed switches to a reproducible sequence, deterministic and not cryptographically secure.

For how randomness is produced across the whole site, see how Generate Random works.

Limitations and good to know

  • Vote totals are generated rather than entered, so this is a demonstration of the methods rather than a calculator for a particular election.
  • Electoral thresholds are not applied, so a party with very few votes still competes for the last seat.
  • Multi-constituency systems apportion within each constituency, which changes the outcome substantially and is not modelled.
  • Modified Sainte-Laguë, used in several countries, adjusts the first divisor and is not offered here.

Privacy and your data

Votes and allocations are generated in your browser and never transmitted, stored or included in analytics.