Arte SheetsLearn. Try. Understand.

Political Economy, Governance & Resource Allocation

d’Hondt vs Sainte-Laguë Seat Apportionment Formula

Compare Victor d’Hondt (divisors 1, 2, 3) against André Sainte-Laguë (odd divisors 1, 3, 5) highest-averages apportionment using LARGE and COUNTIF across multi-party seat allocations.

See how switching divisors from (1, 2, 3) to (1, 3, 5) shifts seats from large parties to smaller entrants!

Whether apportioning parliamentary seats, corporate committee slots, or integer server pods across 4 divisions, Highest-Averages Divisor Methods divide each group’s vote total V_i by successive divisors and award K seats to the K largest quotients via LARGE! Victor d’Hondt’s method (Thomas Jefferson’s method, divisors 1, 2, 3, ...) systematically favors larger parties because a 2nd seat requires only V_i / 2; André Sainte-Laguë’s method (Daniel Webster’s method, odd divisors 1, 3, 5, ...) is mathematically unbiased between large and small parties because a 2nd seat requires V_i / 3!

Verify on a 100,000-vote, 5-seat election (Seats_K = 5 in J2): Party_A = 42,000 (B2), Party_B = 31,000 (B3), Party_C = 16,000 (B4), and Party_D = 11,000 (B5). Under d’Hondt (divisors 1, 2, 3 in C2:E5), the 5th-highest quotient is LARGE(C2:E5, 5) = 15,500 (Party B’s 31,000 / 2 > Party D’s 11,000 / 1!), awarding (2, 2, 1, 0) seats and shutting 11%-vote Party D out completely! Under Sainte-Laguë (odd divisors 1, 3, 5 in F2:H5), Party B’s 2nd quotient drops to 31,000 / 3 = 10,333.33 < 11,000, so the 5th cutoff is LARGE(F2:H5, 5) = 11,000 and seats shift to (2, 1, 1, 1) — awarding Party D its proportional seat!

Party & Votes (Total = 100,000, K = 5 Seats)d’Hondt Quotients (1, 2, 3) -> Cutoff 15,500Sainte-Laguë Quotients (1, 3, 5) -> Cutoff 11,000
Party_A (42,000 — 42%)42,000 | 21,000 | 14,000 -> 2 Seats42,000 | 14,000 | 8,400 -> 2 Seats
Party_B (31,000 — 31%)31,000 | 15,500 | 10,333 -> 2 Seats31,000 | 10,333 | 6,200 -> 1 Seat
Party_C (16,000 — 16%)16,000 | 8,000 | 5,333 -> 1 Seat16,000 | 5,333 | 3,200 -> 1 Seat
Party_D (11,000 — 11%)11,000 | 5,500 | 3,667 -> 0 Seats!11,000 | 3,667 | 2,200 -> 1 Seat!

K-th Winning Quotient Cutoff LARGE(Matrix, K) Formula

Evaluate LARGE across the full 2D quotient matrix so changing total seats K (from 1 to 6) updates the winning threshold automatically.

=IF(OR(J2 < 1, J2 > 8, INT(J2) <> J2), "Require Integer 1 <= K <= 8", ROUND(LARGE(C2:E5, J2), 2))

Party Seat Count via COUNTIF(Row_Quotients, ">=" & Cutoff) Formula

Count how many of a party’s quotients clear the K-th winning threshold under d’Hondt vs Sainte-Laguë.

=COUNTIF(F5:H5, ">=" & LARGE($F$2:$H$5, $J$2))

Try the example

Use the original values or change them to test your understanding.

Further reading