====================================================================== SOURCE FILE: 05_c3_b38_squeeze-survives.yaml TABULATED FILE: 05_c3_b38_squeeze-survives_tabulated.txt ====================================================================== election_title: Does the squeeze survive noise? Two poles, one consensus middle bv_test_id: BV2238 bv_election_id: td7jfy bv_results_url: https://bettervoting.com/td7jfy/results scenario_description: |- The center-squeeze profile - two big poles who each rate consensus-Ben an honest second - but built from NOISY utilities and mixed ballot styles instead of clean textbook blocs. The question the textbook can't answer: does the squeeze still happen once real-world mess is layered on? Tabulate and see whether RCV-IRV's first-choice tunnel vision eliminates the candidate the pairwise count says beats everyone. The electorate (38 ballots, all individual rows): - Ava pole: 13 voters (6 ranked_style, 3 strong_backup, 3 nuanced, 1 harsh) - Cora pole: 20 voters (11 weak_backup, 4 ranked_style, 3 nuanced, 2 slate) - Ben middle: 5 voters (4 nuanced, 1 gentle) Ballot styles in play (taxonomy: 01_STAR/01_Learn/voting_styles/README.md): - gentle: gentle soul: everything squeezed into 3-5, no zeros - nuanced: full 0-5 range, honest gaps, ties allowed - strong_backup: 5 + a strong 4 backup, rest 0/blank - weak_backup: 5 + a grudging 1 backup, rest 0/blank - ranked_style: uses each score once, like a ranking - slate: partisan slate: equal 5s for the in-group, 0 outside - harsh: harsh grader: everything squeezed into 0-2 What the frozen seed produced: Scoring Round Cora 124, Ben 111, Ava 80. Runoff Ben 19 vs Cora 18 (Equal Support 1). STAR winner: Ben. Condorcet winner Ben (agrees). Choose-One (Plurality) would elect Cora. RCV-IRV would elect Cora. Approval would elect Cora. The engine flags the classic center-squeeze signature (RCV-IRV the lone outlier). RANDOM-BUT-HUMAN, reproducible: generated by 06_Other/ballot_style_lab/generate_ballot_styles.py (scenario 'squeeze_survives', seed 51) - utilities sampled from the faction model above, then rendered through each voter's ballot style. Per 07_Concepts/topics/simulate_utilities_not_ballots.md this is the 'stress-test the tabulator' job (with human-shaped renderings), not a method-welfare comparison. Regenerate byte-identically: python generate_ballot_styles.py --emit squeeze_survives voting_method: STAR num_winners: 1 ballots: |- Ava, Ben, Cora 3, 5, 3 0, 2, 5 5, 4, - 5, 4, - 0, 5, 1 5, 4, 3 5, 2, 0 3, 4, 5 0, 1, 5 -, 1, 5 0, 0, 5 5, 4, 3 0, 4, 5 5, 4, 3 3, 4, 5 0, 1, 5 3, 4, 5 -, 1, 5 2, 1, 0 5, 4, 3 5, 4, 3 -, 5, 1 5, 3, 0 0, 5, 5 5, 2, 0 0, 5, 2 0, 1, 5 5, 4, 3 -, 1, 5 0, 5, 2 3, 0, 5 -, 1, 5 5, 4, 0 0, 1, 5 -, 1, 5 3, 4, 5 0, 1, 5 0, 5, 2 expected_winners: - Ben # file: 05_c3_b38_squeeze-survives.yaml ====================================================================== TABULATION RESULTS ====================================================================== === Does the squeeze survive noise? Two poles, one consensus middle === The center-squeeze profile - two big poles who each rate consensus-Ben an honest second - but built from NOISY utilities and mixed ballot styles instead of clean textbook blocs. The question the textbook can't answer: does the squeeze still happen once real-world mess is layered on? Tabulate and see whether RCV-IRV's first-choice tunnel vision eliminates the candidate the pairwise count says beats everyone. The electorate (38 ballots, all individual rows): - Ava pole: 13 voters (6 ranked_style, 3 strong_backup, 3 nuanced, 1 harsh) - Cora pole: 20 voters (11 weak_backup, 4 ranked_style, 3 nuanced, 2 slate) - Ben middle: 5 voters (4 nuanced, 1 gentle) Ballot styles in play (taxonomy: 01_STAR/01_Learn/voting_styles/README.md): - gentle: gentle soul: everything squeezed into 3-5, no zeros - nuanced: full 0-5 range, honest gaps, ties allowed - strong_backup: 5 + a strong 4 backup, rest 0/blank - weak_backup: 5 + a grudging 1 backup, rest 0/blank - ranked_style: uses each score once, like a ranking - slate: partisan slate: equal 5s for the in-group, 0 outside - harsh: harsh grader: everything squeezed into 0-2 What the frozen seed produced: Scoring Round Cora 124, Ben 111, Ava 80. Runoff Ben 19 vs Cora 18 (Equal Support 1). STAR winner: Ben. Condorcet winner Ben (agrees). Choose-One (Plurality) would elect Cora. RCV-IRV would elect Cora. Approval would elect Cora. The engine flags the classic center-squeeze signature (RCV-IRV the lone outlier). RANDOM-BUT-HUMAN, reproducible: generated by 06_Other/ballot_style_lab/generate_ballot_styles.py (scenario 'squeeze_survives', seed 51) - utilities sampled from the faction model above, then rendered through each voter's ballot style. Per 07_Concepts/topics/simulate_utilities_not_ballots.md this is the 'stress-test the tabulator' job (with human-shaped renderings), not a method-welfare comparison. Regenerate byte-identically: python generate_ballot_styles.py --emit squeeze_survives --- Runoff (Preference) Matrix --- Head-to-head / pairwise comparison Legend: For - Equal Support - Against * indicates Top 2 Finalist | Ava | * Ben | * Cora | ------------------------------------------------------------- Ava > | --- |14 - 1 - 23 |13 - 1 - 24 | * Ben > | 23 - 1 - 14 | --- |19 - 1 - 18 | * Cora > | 24 - 1 - 13 |18 - 1 - 19 | --- | [Condorcet Winner] Condorcet Winner: Ben — matches the STAR winner [Condorcet Loser] Condorcet Loser: Ava — loses every head-to-head matchup [Divergence from STAR] STAR = Ben Choose-One (Plurality) = Cora (differs from STAR) RCV-IRV = Cora (differs from STAR) Approval = Cora (differs from STAR) Note: 2 of 38 ballots (5%) had equal non-zero scores, so their ranks were decided by candidate priority order. The RCV-IRV result may be an artifact of score-to-rank tie-breaking rather than a deep difference. 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/05_c3_b38_squeeze-survives_RCV-IRV_tabulated.txt [Runoff Reversal] - Score Round Winner(s) = (Cora) - Runoff Round Winner = (Ben) Candidate Cora earned the highest total score, but Candidate Ben won the automatic runoff — not a malfunction, STAR working as designed: the runoff elects the finalist preferred by the majority (of voters with a preference). --- STAR Voting Method (single winner) --- [STAR Voting] Tabulating 38 ballots. Count × Ava,Ben,Cora 6 × 5, 4, 3 5 × 0, 1, 5 5 × -, 1, 5 4 × 3, 4, 5 3 × 0, 5, 2 2 × 5, 4, - 2 × 5, 2, 0 1 × 3, 5, 3 1 × 0, 2, 5 1 × 0, 5, 1 1 × 0, 0, 5 1 × 0, 4, 5 1 × 2, 1, 0 1 × -, 5, 1 1 × 5, 3, 0 1 × 0, 5, 5 1 × 3, 0, 5 1 × 5, 4, 0 ('-' = left blank / abstained; '0' = scored zero — both count as 0 stars.) [Score Distribution] (how many ballots gave each star rating) Score Candidate 5 4 3 2 1 0 Abs | Total Avg all Avg rated Ava 12 0 6 1 0 13 6 | 80 2.1 2.5 Ben 7 14 1 3 11 2 0 | 111 2.9 2.9 Cora 19 0 7 3 2 5 2 | 124 3.3 3.4 Avg all = Total / all ballots — a blank counts as 0, so this is the Total the Scoring Round ranks on, per ballot. Avg rated = Total / the ballots that scored this candidate (Abs excluded) — support among voters who had an opinion. [STAR Voting: Scoring Round] The two highest-scoring candidates advance to the next round. Cora -- 124 -- First place Ben -- 111 -- Second place Ava -- 80 Cora and Ben advance. [STAR Voting: Automatic Runoff Round] The candidate preferred in the most head-to-head matchups wins. Ben -- 19 -- First place Cora -- 18 Equal Support -- 1 Ben wins. Runoff math: 38 ballots cast − 1 Equal Support (no preference between the two finalists) ── 37 voters with a preference (majority = 19) Ben 19 (51%) · Cora 18 (49%) [STAR Voting: Winner — STAR Voting Method (single winner)] Ben