Exercise 10 — Later-no-harm: the generous ballots¶
Generated from ex10_generous.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: Bess
▶ Live on BetterVoting: vote · results ↗ (election yyhj9x · test BV2196).
Scenario¶
The same nine voters as ex10_reticent.yaml, but Amir's four fans now score honestly: Amir 5, Bess 3, Cato 0 — they genuinely like Bess second. Those twelve extra points lift Bess from 13 to 25: scoring round Bess 25, Amir 24, Cato 15 — and Bess beats Amir in the runoff 5-4. The fans' generosity cost their favorite the win: a LATER-NO-HARM failure, live. The counter-reading: Bess is this electorate's Condorcet winner (beats Amir 5-4, Cato 6-3) and is scored 1+ by all nine voters — the reticent ballots didn't protect Amir so much as HIDE Bess. STAR gives up later-no-harm on purpose: protecting favorites by hiding compromises is exactly what it declines to reward. Exercise: ex10_later_no_harm.md. Ballots and cast are this repo's own. Live on BetterVoting (Test ID BV2196): https://bettervoting.com/yyhj9x/results — with an RCV-IRV race (still Amir: IRV keeps later-no-harm precisely by center-squeezing the Condorcet winner Bess).
Ballots¶
Row 1 = candidate names; each later row is one voter's 0–5 scores (a N × prefix = N identical ballots).
Amir,Bess,Cato
5,3,0 # 4 voters: Amir fans, honest about liking Bess second
5,3,0
5,3,0
5,3,0
2,5,0 # 2 voters: Bess first, mild nod to Amir — unchanged
2,5,0
0,1,5 # 3 voters: Cato first, a token point to Bess — unchanged
0,1,5
0,1,5
What the engine says¶
The count, step by step — the rounds and how the winner is reached:
[Divergence from STAR]
STAR = Bess
Choose-One (Plurality) = Amir (differs from STAR)
RCV-IRV = Amir (differs from STAR)
Note: no ballots had tied scores, so RCV-IRV vs STAR here is a genuine
method difference, not a tie-breaking artifact.
Note: Ranked Robin (RCV-RR) agrees with STAR, so RCV-IRV is the lone
outlier — the classic center-squeeze signature.
Full round-by-round reports (generated for review):
RCV-IRV rounds: cases_tabulated/ex10_generous_RCV-IRV_tabulated.txt
--- STAR Voting Method (single winner) ---
[STAR Voting]
Tabulating 9 ballots.
Count × Amir,Bess,Cato
4 × 5, 3, 0
3 × 0, 1, 5
2 × 2, 5, 0
[STAR Voting: Scoring Round]
The two highest-scoring candidates advance to the next round.
Bess -- 25 -- First place
Amir -- 24 -- Second place
Cato -- 15
Bess and Amir advance.
[STAR Voting: Automatic Runoff Round]
The candidate preferred in the most head-to-head matchups wins.
Bess -- 5 -- First place
Amir -- 4
Equal Support -- 0
Bess wins.
Runoff math:
9 ballots cast
− 0 Equal Support (no preference between the two finalists)
─
9 voters with a preference (majority = 5)
Bess 5 (56%) · Amir 4 (44%)
[STAR Voting: Winner — STAR Voting Method (single winner)]
Bess
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
| * Amir | * Bess | Cato |
-----------------------------------------------------
* Amir > | --- |4 - 0 - 5 |6 - 0 - 3 |
* Bess > | 5 - 0 - 4 | --- |6 - 0 - 3 |
Cato > | 3 - 0 - 6 |3 - 0 - 6 | --- |
[Condorcet Winner]
Condorcet Winner: Bess — matches the STAR winner
[Condorcet Loser]
Condorcet Loser: Cato — loses every head-to-head matchup
[Score Distribution] (how many ballots gave each star rating)
Score
Candidate 5 4 3 2 1 0 | Total Avg
Amir 4 0 0 2 0 3 | 24 2.7
Bess 2 0 4 0 3 0 | 25 2.8
Cato 3 0 0 0 0 6 | 15 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 01_STAR/05_Practice/cases/ex10_generous.yaml
See also¶
- Methods disagree on this election — its entry in the divergence review ledger
- Condorcet efficiency (topic hub)
- Runoff reversal (worked set)
- Glossary · all cases by method
More cases in this set: ex01_district_combined · ex01_district_east · ex01_district_west · ex02_bella_exits · ex02_nine_ballots · ex02_tenth_ballot · ex03_five_verdicts · ex04_olympics_1994 · ex05_center_squeeze · ex06_bullet_backfire · ex06_bullet_honest · ex07_vanishing_votes · ex08_minimal_reversal_2c · ex08_minimal_reversal_3c · ex09_game_night_cycle · ex10_reticent · ex11_spoiler_added · ex11_two_way_base · ex12_bloc_sweep · ex12_proportional_share · ex13_approve3 · ex13_approve4 · ex13_bullet · ex13_opinions · ex14_two_novels · ex14_two_novels_fullranks · ex15_approval_pairwise · ex15_approval_yes_no · ex15_score_profile