Skip to content

Exercise 11 — Recruit a spoiler: Axl enters the race

Generated from ex11_spoiler_added.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: Alba

▶ Live on BetterVoting: vote · results ↗ (election 93gjx6 · test BV2198).

Scenario

The same nine voters as ex11_two_way_base.yaml, plus a third name on the ballot: Axl, a near-clone of Alba (recruited, in the exercise's story, by Brett's campaign to split Alba's vote). Alba's five-voter camp splits its FIRST choices 3-2 between the clones but scores both 4-5; Brett's four voters are unchanged. Choose-One now elects BRETT (4 first choices vs 3 and 2) — the spoiler worked. STAR shrugs: scoring round Alba 23, Axl 22, Brett 20 — the CAMP keeps both finalist slots and the runoff is Alba vs Axl, which Alba wins 3-2 (Brett's four voters score the clones 0-0: Equal Support). RCV-IRV also survives this one: Axl is eliminated first and his votes come home to Alba — crowding by pure clones is the one spoiler variant IRV genuinely handles. The dirty trick only pays under Choose-One. (Axl shares Alba's initial ON PURPOSE — they are clones; the distinct-initials naming rule yields to the lesson here.) Exercise: ex11_recruit_a_spoiler.md. Ballots and cast are this repo's own. Live on BetterVoting (Test ID BV2198): https://bettervoting.com/93gjx6/results — four races: Choose-One falls for the clone (Brett); RCV-IRV, STAR, and Ranked Robin all hold (Alba).

Ballots

Row 1 = candidate names; each later row is one voter's 0–5 scores (a N × prefix = N identical ballots).

Alba,Axl,Brett
5,4,0 # 3 voters: Alba's camp, Alba first among the clones
5,4,0
5,4,0
4,5,0 # 2 voters: Alba's camp, Axl first among the clones
4,5,0
0,0,5 # 4 voters: Brett's camp, unchanged
0,0,5
0,0,5
0,0,5

What the engine says

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

[Divergence from STAR]
  STAR                   = Alba
  Choose-One (Plurality) = Brett   (differs from STAR)

--- STAR Voting Method (single winner) ---

[STAR Voting]
 Tabulating 9 ballots.
Count × Alba,Axl,Brett
    4 ×    0,  0,    5
    3 ×    5,  4,    0
    2 ×    4,  5,    0

[STAR Voting: Scoring Round]
 The two highest-scoring candidates advance to the next round.
   Alba          -- 23 -- First place
   Axl           -- 22 -- Second place
   Brett         -- 20
 Alba and Axl advance.

[STAR Voting: Automatic Runoff Round]
 The candidate preferred in the most head-to-head matchups wins.
   Alba          -- 3 -- First place
   Axl           -- 2
   Equal Support -- 4
 Alba wins.
   Runoff math:
     9  ballots cast
   − 4  Equal Support (no preference between the two finalists)
     ─
     5  voters with a preference  (majority = 3)
           Alba 3 (60%)  ·  Axl 2 (40%)

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

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
               |   * Alba   |  * Axl    |   Brett   |
-----------------------------------------------------
      * Alba > |    ---     |3 - 4 - 2  |5 - 0 - 4  |
       * Axl > | 2 - 4 - 3  |   ---     |5 - 0 - 4  |
       Brett > | 4 - 0 - 5  |4 - 0 - 5  |   ---     |

[Condorcet Winner]
  Condorcet Winner: Alba — matches the STAR winner

[Condorcet Loser]
  Condorcet Loser: Brett — loses every head-to-head matchup — elected by Choose-One (Plurality)!

[Score Distribution] (how many ballots gave each star rating)
                Score
Candidate  5  4  3  2  1  0  | Total   Avg
Alba       3  2  0  0  0  4  |    23   2.6
Axl        2  3  0  0  0  4  |    22   2.4
Brett      4  0  0  0  0  5  |    20   2.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 01_STAR/05_Practice/cases/ex11_spoiler_added.yaml

See also

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_generous · ex10_reticent · 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