Quota Circus — STAR-PR with cliff, slate and gentle ballots (6 cand, 2 seats)¶
Generated from 08_c6_b29_quota-circus-pr-2-seats.yaml — do not edit by hand. Regenerate: python STARVote_LH_tabulation_engine/tools_adam/scripts/build_yaml_pages.py.
Method: Allocated Score (proportional STAR) · 2 seats · Expected winners: Amir, Bree
▶ Live on BetterVoting: vote · results ↗ (election qdh9qp · test BV2246).
Scenario¶
Proportional STAR meets the style circus: a north side voting in cliffs, slates and bullets (0s and 5s, nothing between) against a south side of gentle souls and sliver voters (3-5 only, zeros never) - plus floaters of pure noise. Two seats, six candidates. The question quota allocation has to answer: when one camp's ballots SHOUT (max scores) and the other camp's ballots hum (inflated 3-4s everywhere), whose quota fills first, and what's left to decide the second seat after the reweighting?
The electorate (29 ballots, all individual rows): - north side: 17 voters (7 cliff35, 6 bullet, 4 slate) - south side: 8 voters (4 gentle, 3 cliff34, 1 nuanced) - floaters: 4 voters (2 chaos, 1 anyone_but, 1 flat)
Ballot styles in play (taxonomy: 01_STAR/01_Learn/voting_styles/README.md): - cliff35: cliff ballot: 0 or 3-5, nothing in between - cliff34: sliver ballot: 0 or 3-4 only - bullet: choose-one transplant: favorite 5, rest 0/blank - slate: partisan slate: equal 5s for the in-group, 0 outside - chaos: pure noise (fuzzing voter) - gentle: gentle soul: everything squeezed into 3-5, no zeros - anyone_but: 5 for everyone except the villain (0) - nuanced: full 0-5 range, honest gaps, ties allowed - flat: flat-liner: same score for everyone
What the frozen seed produced: Seats: Amir, Bree. north side seats 2 of its 2-name slate; south side seats 0 of its 2-name slate. Final seat round (reweighted totals): Bree 39.25 vs Cato 36.94.
RANDOM-BUT-HUMAN, reproducible: generated by 06_Other/ballot_style_lab/generate_ballot_styles.py (scenario 'quota_circus', seed 34) - 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 quota_circus
Ballots¶
Row 1 = candidate names; each later row is one voter's 0–5 scores (a N × prefix = N identical ballots).
Markers on these ballots: - blank · ~ race abstention · & candidate abstention · ? spoiled · % spoiled+reissued — all tabulate as 0 (reported honestly).
Amir, Bree, Cato, Della, Enzo, Faye
5, 5, 0, 0, 0, 0
0, 0, 4, 4, 0, 0
5, 0, 0, 0, 0, 0
5, 0, 0, 0, 0, 0
-, 5, -, -, -, -
5, 5, 0, 0, 5, 0
1, 2, 2, 0, 2, 4
0, 0, 4, 4, 0, 4
1, 5, 2, 5, 3, 1
5, 5, 0, 0, 0, 0
5, 4, 0, 0, 0, 0
5, 0, 0, 0, 0, 0
0, 0, 4, 4, 0, 0
4, 4, 5, 5, 3, 4
5, 4, 0, 0, 0, 0
5, 5, 0, 0, 0, 0
5, 5, 0, 0, 0, 0
3, 4, 5, 4, 3, 3
5, 5, 5, 5, 5, 0
5, 5, 0, 0, 0, 0
0, 5, 0, 0, 0, 0
0, 1, 5, 3, 0, 3
5, 4, 0, 0, 0, 0
-, 5, -, -, -, -
5, 5, 0, 0, 0, 0
3, 3, 5, 4, 3, 3
5, 0, 0, 0, 0, 0
5, 4, 5, 5, 3, 4
0, 0, 0, 0, 0, 0
What the engine says¶
The count, step by step — the rounds and how the winner is reached:
--- Allocated Score Voting Method (2 winners) ---
[Allocated Score Voting]
Tabulating 29 ballots to fill 2 seats.
Count × Amir,Bree,Cato,Della,Enzo,Faye
6 × 5, 5, 0, 0, 0, 0
4 × 5, 0, 0, 0, 0, 0
3 × 5, 4, 0, 0, 0, 0
2 × 0, 0, 4, 4, 0, 0
2 × -, 5, -, -, -, -
1 × 5, 5, 0, 0, 5, 0
1 × 1, 2, 2, 0, 2, 4
1 × 0, 0, 4, 4, 0, 4
1 × 1, 5, 2, 5, 3, 1
1 × 4, 4, 5, 5, 3, 4
1 × 3, 4, 5, 4, 3, 3
1 × 5, 5, 5, 5, 5, 0
1 × 0, 5, 0, 0, 0, 0
1 × 0, 1, 5, 3, 0, 3
1 × 3, 3, 5, 4, 3, 3
1 × 5, 4, 5, 5, 3, 4
1 × 0, 0, 0, 0, 0, 0
('-' = left blank / abstained; '0' = scored zero — both count as 0 stars.)
[Allocated Score Voting: Round 1]
The highest-scoring candidate wins a seat.
Amir -- 92 -- First place
Bree -- 90
Cato -- 46
Della -- 43
Enzo -- 27
Faye -- 26
Amir wins a seat.
[Allocated Score Voting: Round 1: Ballot allocation round]
Allocating 14+1/2 ballots.
[Allocated Score Voting: Round 1: Ballot allocation round: Round 1]
Allocating 16 ballots at score 5.
This allocation overfills the quota. Returning fractional surplus.
Allocating only 90.62% of these ballots.
Keeping these ballots, but multiplying their weights by 3/32.
16 ballots reweighted from 1 to 3/32.
[Allocated Score Voting: Round 2]
The highest-scoring candidate wins a seat.
Bree -- 39+ 1/4 -- First place
Cato -- 36+15/16
Della -- 33+15/16
Faye -- 22+ 3/8
Enzo -- 15+ 7/32
Bree wins a seat.
[Allocated Score Voting: Winners — Allocated Score Voting Method (2 winners)]
Amir
Bree
Full audit — preference matrix, Condorcet, and score distribution¶
--- Preference Matrix ---
Head-to-head / pairwise comparison
Legend: For - Equal Support - Against
Informational only — not part of the 2-winner count below,
so no Top-2 finalists are marked.
| Amir | Bree | Cato | Della | Enzo | Faye |
-------------------------------------------------------------------------------------------------------
Amir > | --- | 8 - 14 - 7 |14 - 6 - 9 |15 - 6 - 8 |15 - 12 - 2 |16 - 10 - 3 |
Bree > | 7 - 14 - 8 | --- |14 - 7 - 8 |14 - 8 - 7 |17 - 12 - 0 |16 - 10 - 3 |
Cato > | 9 - 6 - 14 | 8 - 7 - 14 | --- | 4 - 24 - 1 | 8 - 19 - 2 | 9 - 19 - 1 |
Della > | 8 - 6 - 15 | 7 - 8 - 14 | 1 - 24 - 4 | --- | 9 - 18 - 2 | 8 - 20 - 1 |
Enzo > | 2 - 12 - 15 | 0 - 12 - 17 | 2 - 19 - 8 | 2 - 18 - 9 | --- | 3 - 21 - 5 |
Faye > | 3 - 10 - 16 | 3 - 10 - 16 | 1 - 19 - 9 | 1 - 20 - 8 | 5 - 21 - 3 | --- |
[Condorcet Winner]
Condorcet Winner: Amir — matches the STAR winner
[Condorcet Loser]
Condorcet Loser: Enzo — loses every head-to-head matchup
[Score Distribution] (how many ballots gave each star rating)
Score
Candidate 5 4 3 2 1 0 Abs | Total Avg all Avg rated
Amir 16 1 2 0 2 6 2 | 92 3.2 3.4
Bree 12 6 1 1 1 8 0 | 90 3.1 3.1
Cato 6 3 0 2 0 16 2 | 46 1.6 1.7
Della 4 5 1 0 0 17 2 | 43 1.5 1.6
Enzo 2 0 5 1 0 19 2 | 27 0.9 1.0
Faye 0 4 3 0 1 19 2 | 26 0.9 1.0
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.
Hare quota is 29/2.
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 06_Other/ballot_style_lab/cases/08_c6_b29_quota-circus-pr-2-seats.yaml
See also¶
More cases in this set: 01_c3_b31_graders-divide · 02_c4_b40_cliff-city · 03_c4_b33_bullet-storm · 04_c4_b47_noise-soup · 05_c3_b38_squeeze-survives · 06_c4_b24_narrow-bands · 07a_c5_b36_herb-council-bloc-3-seats · 07b_c5_b36_herb-council-pr-3-seats · 09_c7_b44_park-bloc-4-seats