Skip to content

Bloc STAR baseline — 3 candidates, 2 seats (clean, no tiebreak)

Generated from 00_c3_b3_bloc-baseline-2-seats.yaml — do not edit by hand. Regenerate: python STARVote_LH_tabulation_engine/tools_adam/scripts/build_yaml_pages.py.

Method: Bloc STAR (multi-winner, majoritarian) · 2 seats · Expected winners: Alice, Bruno

Scenario

The smallest Bloc STAR election that actually decides something: 3 candidates, 2 seats, so exactly one candidate is excluded. (A 2-candidate / 2-seat race would be a non-election — both win no matter how anyone votes.)

Bloc STAR fills seats by running single-winner STAR once per seat: elect a winner, remove them, re-run on the same ballots. - Seat 1: score all three. Alice (14) and Bruno (12) are the top two and advance; in the runoff Alice is preferred 2-1, so Alice takes seat 1. - Seat 2: remove Alice and re-run on the remaining two. Bruno (12) beats Clara (3) in the runoff 3-0 and takes seat 2. Clara (total 3) is excluded. Both seats are decided cleanly by the ballots — no rung of the tie-break ladder is ever consulted. This is the control the Bloc tie probes vary from. Bloc is majoritarian: a cohesive majority can take every seat.

Ballots

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

Alice,Bruno,Clara
5,3,1
4,5,2
5,4,0

What the engine says

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

--- Bloc STAR Voting Method (2 winners) ---

[Bloc STAR]
 Tabulating 3 ballots to fill 2 seats.
Alice,Bruno,Clara
    5,    3,    1
    4,    5,    2
    5,    4,    0

[Bloc STAR: Round 1: Scoring Round]
 The two highest-scoring candidates advance to the next round.
   Alice         -- 14 -- First place
   Bruno         -- 12 -- Second place
   Clara         --  3
 Alice and Bruno advance.

[Bloc STAR: Round 1: Automatic Runoff Round]
 The candidate preferred in the most head-to-head matchups wins.
   Alice         -- 2 -- First place
   Bruno         -- 1
   Equal Support -- 0
 Alice wins.
   Runoff math:
     3  ballots cast
   − 0  Equal Support (no preference between the two finalists)
     ─
     3  voters with a preference  (majority = 2)
           Alice 2 (67%)  ·  Bruno 1 (33%)

──────────────────────────────────────────────────

[Bloc STAR: Round 2: Scoring Round]
 The two highest-scoring candidates advance to the next round.
   Bruno         -- 12 -- First place
   Clara         --  3 -- Second place
 Bruno and Clara advance.

[Bloc STAR: Round 2: Automatic Runoff Round]
 The candidate preferred in the most head-to-head matchups wins.
   Bruno         -- 3 -- First place
   Clara         -- 0
   Equal Support -- 0
 Bruno wins.
   Runoff math:
     3  ballots cast
   − 0  Equal Support (no preference between the two finalists)
     ─
     3  voters with a preference  (majority = 2)
           Bruno 3 (100%)  ·  Clara 0 (0%)

[Bloc STAR: Winners — Bloc STAR Voting Method (2 winners)]
 Alice
 Bruno

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.
               |    Alice   |   Bruno   |   Clara   |
-----------------------------------------------------
       Alice > |    ---     |2 - 0 - 1  |3 - 0 - 0  |
       Bruno > | 1 - 0 - 2  |   ---     |3 - 0 - 0  |
       Clara > | 0 - 0 - 3  |0 - 0 - 3  |   ---     |

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

[Condorcet Loser]
  Condorcet Loser: Clara — loses every head-to-head matchup

[Score Distribution] (how many ballots gave each star rating)
                Score
Candidate  5  4  3  2  1  0  | Total   Avg
Alice      2  1  0  0  0  0  |    14   4.7
Bruno      1  1  1  0  0  0  |    12   4.0
Clara      0  0  0  1  1  1  |     3   1.0

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 02_STAR_Bloc/02_Examples/cases/00_c3_b3_bloc-baseline-2-seats.yaml

See also

More cases in this set: 01_c4_b2_bloc-star-2-seats · b484mbm_tie_every_rung · bloc_lot_path_dependence_a_c3_b5 · bloc_lot_path_dependence_b_c3_b5 · bv129_score_tiebreak_bloc · bv130_bloc_pagination_731 · bv130r2_dead_rung_bloc · bv131_guido_bloc · bv132_verify_votes_bloc · bv1525_condorcet_loser_bloc · bv1815_bloc_3c2s_basic · bv1835_8h3yrx_score_leader_no_seat · bv2105_r4dqvd_ice_cream_bloc · bv2105r2_w3vvff_ice_cream_recheck · bv2269_t488h9_race_nobody_can_lose · bv750_tie_breaking_bloc · lackner_skowron_shadow_bloc_star_c7_b12 · race_nobody_can_lose_two_seat_control