Skip to content

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