Spoiler — a split coalition hands the seat to the minority¶
Generated from 01_political_left_split.yaml — do not edit by hand. Regenerate: python STARVote_LH_tabulation_engine/tools_adam/scripts/build_yaml_pages.py.
Method: STAR (single winner) · 1 seat · Expected winner: Labour
Scenario¶
100 voters. A progressive coalition — Green, Labour, and SocialDem — is a clear 66% MAJORITY. One Conservative holds the other 34%.
Under Choose-One Plurality each voter names a single party, so the coalition splits: Green 24, Labour 22, SocialDem 20. The Conservative wins with just 34 of 100 — a candidate two-thirds of voters ranked LAST. That is the spoiler effect at full force.
STAR lets every voter score all four 0–5, so coalition voters can back all three progressive parties. The two highest totals advance, and the automatic runoff elects Labour — the coalition's broad consensus pick — not the minority Conservative. Watch the [Vote-splitting check] confirm it.
Parameters (from the YAML)¶
blocs:
Coalition: [Green, Labour, SocialDem]
Ballots¶
Row 1 = candidate names; each later row is one voter's 0–5 scores (a N × prefix = N identical ballots).
Count:Green,Labour,SocialDem,Conservative
24:5,4,2,0 # Green base — also like Labour
22:4,5,4,0 # Labour base — like the whole coalition
20:2,4,5,0 # SocialDem base — also like Labour
34:0,0,0,5 # Conservative bloc
What the engine says¶
The count, step by step — the rounds and how the winner is reached:
[Divergence from STAR]
STAR = Labour
Choose-One (Plurality) = Conservative (differs from STAR)
[Vote-splitting check]
Choose-One first choices: Conservative 34, Green 24, Labour 22, SocialDem 20
Plurality winner: Conservative (34, 34.0%)
Bloc 'Coalition' = Green, Labour, SocialDem: combined 66 (66.0%); winner Conservative is OUTSIDE it.
=> VOTE SPLITTING: the 'Coalition' bloc is an outright majority (66 vs
Conservative's 34) but split across 3 candidates, so Conservative won
Choose-One. STAR elected Labour.
--- STAR Voting Method (single winner) ---
[STAR Voting]
Tabulating 100 ballots.
Count × Green,Labour,SocialDem,Conservative
34 × 0, 0, 0, 5
24 × 5, 4, 2, 0
22 × 4, 5, 4, 0
20 × 2, 4, 5, 0
[STAR Voting: Scoring Round]
The two highest-scoring candidates advance to the next round.
Labour -- 286 -- First place
Green -- 248 -- Second place
SocialDem -- 236
Conservative -- 170
Labour and Green advance.
[STAR Voting: Automatic Runoff Round]
The candidate preferred in the most head-to-head matchups wins.
Labour -- 42 -- First place
Green -- 24
Equal Support -- 34
Labour wins.
Runoff math:
100 ballots cast
− 34 Equal Support (no preference between the two finalists)
───
66 voters with a preference (majority = 34)
Labour 42 (64%) · Green 24 (36%)
[STAR Voting: Winner — STAR Voting Method (single winner)]
Labour
Full audit — preference matrix, Condorcet, and score distribution¶
--- Runoff (Preference) Matrix ---
Head-to-head / pairwise comparison
Legend: For - Equal Support - Against
* indicates Top 2 Finalist
| * Green | * Labour | SocialDem | Conservative |
-----------------------------------------------------------------------------------------------
* Green > | --- | 24 - 34 - 42 | 24 - 56 - 20 | 66 - 0 - 34 |
* Labour > | 42 - 34 - 24 | --- | 46 - 34 - 20 | 66 - 0 - 34 |
SocialDem > | 20 - 56 - 24 | 20 - 34 - 46 | --- | 66 - 0 - 34 |
Conservative > | 34 - 0 - 66 | 34 - 0 - 66 | 34 - 0 - 66 | --- |
[Condorcet Winner]
Condorcet Winner: Labour — matches the STAR winner
[Condorcet Loser]
Condorcet Loser: Conservative — loses every head-to-head matchup — elected by Choose-One (Plurality)!
[Score Distribution] (how many ballots gave each star rating)
Score
Candidate 5 4 3 2 1 0 | Total Avg
Green 24 22 0 20 0 34 | 248 2.5
Labour 22 44 0 0 0 34 | 286 2.9
SocialDem 20 22 0 24 0 34 | 236 2.4
Conservative 34 0 0 0 0 66 | 170 1.7
Everything in one file: the _tabulated mirror (regenerated on every run; every analysis forced on).
Run it yourself:
python STARVote_LH_tabulation_engine/starvote_larry_hastings.py method_comparisons/split_voting/_main/01_political_left_split.yaml
See also¶
More cases in this set: 00_plurality_vs_majority · 02_icecream_chocolate_split · 03_lunch_veggie_vs_meat · 04_star_wars_vote_split · 05a_residual_split_bullet-voting · 05b_residual_split_expressive-fix · 06_sub_majority_not_spoiled