Skip to content

Noise Soup — weak factions, cross-winds, flat-liners and static

Generated from 04_c4_b47_noise-soup.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: Caleb

▶ Live on BetterVoting: vote · results ↗ (election 74pbyg · test BV2237).

Scenario

The messy-reality fixture: two loose leans instead of crisp camps, a crosswind bloc, pure-noise voters, flat-line no-preference ballots, one race abstention (~), one spoiled ballot (?), and stray blank cells. No clean story planted - whatever structure the count finds, it found in the noise. Watch the full pairwise matrix: weak, noisy electorates are exactly where Condorcet's neat ordering starts to wobble.

The electorate (47 ballots, all individual rows): - leans A-B: 10 voters (4 strong_backup, 3 nuanced, 3 ranked_style) - leans C-D: 13 voters (6 nuanced, 4 slate, 3 weak_backup) - crosswind: 11 voters (5 cliff35, 3 nuanced, 2 anyone_but, 1 protest) - static: 11 voters (6 ranked_style, 3 chaos, 2 flat) - plus 2 marker row(s): 1 spoiled ballot, 1 race abstention

Ballot styles in play (taxonomy: 01_STAR/01_Learn/voting_styles/README.md): - slate: partisan slate: equal 5s for the in-group, 0 outside - flat: flat-liner: same score for everyone - anyone_but: 5 for everyone except the villain (0) - chaos: pure noise (fuzzing voter) - nuanced: full 0-5 range, honest gaps, ties allowed - cliff35: cliff ballot: 0 or 3-5, nothing in between - ranked_style: uses each score once, like a ranking - weak_backup: 5 + a grudging 1 backup, rest 0/blank - strong_backup: 5 + a strong 4 backup, rest 0/blank - protest: all zeros plus a lone least-bad 1

What the frozen seed produced: Scoring Round Beth 120, Caleb 113, Dana 112, Aaron 109. Runoff Caleb 18 vs Beth 16 (Equal Support 13). STAR winner: Caleb. No Condorcet winner - the pairwise order wobbles (see the full matrix). Choose-One (Plurality) would elect Aaron. RCV-IRV would elect Beth. Approval would elect Beth. RCV-RR would elect Beth.

RANDOM-BUT-HUMAN, reproducible: generated by 06_Other/ballot_style_lab/generate_ballot_styles.py (scenario 'noise_soup', seed 217) - 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 noise_soup

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).

Aaron, Beth, Caleb, Dana
    5,    5,     5,    5
    3,    3,     3,    3
    5,    5,     0,    5
    0,    4,     4,    3
    2,    5,     3,    4
    5,    0,     3,    1
    5,    0,     0,    0
    4,    5,     2,    3
    0,    0,     1,    5
    0,    2,     5,    2
    2,    5,     3,    4
    4,    5,     -,    -
    4,    0,     0,    5
    1,    5,     0,    2
    5,    5,     0,    5
    0,    0,     5,    0
    0,    0,     5,    0
    ?,    ?,     ?,    ?
    5,    3,     4,    2
    2,    4,     5,    3
    ~,    ~,     ~,    ~
    5,    0,     0,    0
    0,    0,     0,    0
    1,    5,     0,    2
    0,    2,     5,    2
    1,    -,     -,    5
    3,    4,     5,    2
    0,    5,     0,    5
    5,    4,     2,    3
    3,    0,     5,    4
    -,    -,     1,    5
    5,    2,     2,    0
    2,    5,     0,    0
    -,    5,     5,    5
    0,    0,     5,    3
    4,    5,     0,    0
    5,    4,     2,    0
    5,    3,     5,    0
    0,    3,     4,    5
    5,    0,     5,    0
    5,    3,     2,    4
    4,    2,     3,    5
    0,    0,     4,    5
    -,    5,     4,    -
    0,    0,     1,    0
    4,    5,     3,    2
    0,    2,     2,    3

What the engine says

The count, step by step — the rounds and how the winner is reached:

[Divergence from STAR]
  STAR                   = Caleb
  Choose-One (Plurality) = Aaron   (differs from STAR)
  RCV-IRV                = Beth   (differs from STAR)
  Approval               = Beth   (differs from STAR)
  RCV-RR                 = Beth   (differs from STAR)
  Note: 13 of 47 ballots (28%) 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) sides with RCV-IRV, so STAR is the outlier
        here — STAR need not elect the Condorcet candidate.
  Full round-by-round reports (generated for review):
  RCV-IRV rounds: cases_tabulated/04_c4_b47_noise-soup_RCV-IRV_tabulated.txt
  RCV-RR round-robin: cases_tabulated/04_c4_b47_noise-soup_RCV-RR_tabulated.txt

[Runoff Reversal]
 - Score Round Winner(s) = (Beth)
 - Runoff Round Winner   = (Caleb)
  Candidate Beth earned the highest total score, but
  Candidate Caleb 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 47 ballots. Note: 2 of 47 ballots are marked as abstentions.
Count × Aaron,Beth,Caleb,Dana
    2 ×     5,   5,    0,   5
    2 ×     2,   5,    3,   4
    2 ×     5,   0,    0,   0
    2 ×     0,   2,    5,   2
    2 ×     1,   5,    0,   2
    2 ×     0,   0,    5,   0
    1 ×     5,   5,    5,   5
    1 ×     3,   3,    3,   3
    1 ×     0,   4,    4,   3
    1 ×     5,   0,    3,   1
    1 ×     4,   5,    2,   3
    1 ×     0,   0,    1,   5
    1 ×     4,   5,    -,   -
    1 ×     4,   0,    0,   5
    1 ×     ?,   ?,    ?,   ?
    1 ×     5,   3,    4,   2
    1 ×     2,   4,    5,   3
    1 ×     ~,   ~,    ~,   ~
    1 ×     0,   0,    0,   0
    1 ×     1,   -,    -,   5
    1 ×     3,   4,    5,   2
    1 ×     0,   5,    0,   5
    1 ×     5,   4,    2,   3
    1 ×     3,   0,    5,   4
    1 ×     -,   -,    1,   5
    1 ×     5,   2,    2,   0
    1 ×     2,   5,    0,   0
    1 ×     -,   5,    5,   5
    1 ×     0,   0,    5,   3
    1 ×     4,   5,    0,   0
    1 ×     5,   4,    2,   0
    1 ×     5,   3,    5,   0
    1 ×     0,   3,    4,   5
    1 ×     5,   0,    5,   0
    1 ×     5,   3,    2,   4
    1 ×     4,   2,    3,   5
    1 ×     0,   0,    4,   5
    1 ×     -,   5,    4,   -
    1 ×     0,   0,    1,   0
    1 ×     4,   5,    3,   2
    1 ×     0,   2,    2,   3
  ('-' = left blank / abstained; '0' = scored zero — both count as 0 stars.)

[STAR Voting: Scoring Round]
 The two highest-scoring candidates advance to the next round.
   Beth          -- 120 -- First place
   Caleb         -- 113 -- Second place
   Dana          -- 112
   Aaron         -- 109
 Beth and Caleb advance.

[STAR Voting: Automatic Runoff Round]
 The candidate preferred in the most head-to-head matchups wins.
   Caleb         -- 18 -- First place
   Beth          -- 16
   Equal Support -- 13
 Caleb wins.
   Runoff math:
     47  ballots cast
   − 13  Equal Support (no preference between the two finalists)
     ──
     34  voters with a preference  (majority = 18)
           Caleb 18 (53%)  ·  Beth 16 (47%)

[STAR Voting: Winner — STAR Voting Method (single winner)]
 Caleb

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
                 |     Aaron    |   * Beth    |  * Caleb    |     Dana    |
---------------------------------------------------------------------------
         Aaron > |     ---      |14 - 14 - 19 |20 -  8 - 19 |16 - 11 - 20 |
        * Beth > | 19 - 14 - 14 |    ---      |16 - 13 - 18 |18 - 17 - 12 |
       * Caleb > | 19 -  8 - 20 |18 - 13 - 16 |    ---      |18 - 11 - 18 |
          Dana > | 20 - 11 - 16 |12 - 17 - 18 |18 - 11 - 18 |    ---      |

[Condorcet Winner]
  No Condorcet winner (majority cycle: Aaron > Caleb > Beth > Aaron)

[Score Distribution] (how many ballots gave each star rating)
                   Score
Candidate   5   4   3   2   1   0  Abs  | Total  Avg all  Avg rated
Aaron      13   6   3   4   3  13    5  |   109      2.3        2.6
Beth       15   5   5   5   0  13    4  |   120      2.6        2.8
Caleb      12   5   6   6   3  11    4  |   113      2.4        2.6
Dana       12   4   7   7   1  12    4  |   112      2.4        2.6
  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.

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/04_c4_b47_noise-soup.yaml

See also

More cases in this set: 01_c3_b31_graders-divide · 02_c4_b40_cliff-city · 03_c4_b33_bullet-storm · 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 · 08_c6_b29_quota-circus-pr-2-seats · 09_c7_b44_park-bloc-4-seats