Skip to content

Ann, Bob, Cal - the canonical leading example (single-winner STAR)

Generated from bv2187_qrw6wb_ann-bob-cal.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: Bob

▶ Live on BetterVoting: vote · results ↗ (election qrw6wb · test BV2187).

Scenario

THE repo's leading example - the exact election shown in the root README, the YAML authoring template, and "Why YAML test cases". One file, three voters, three candidates: the smallest STAR election where both rounds do visible, different work. If a page needs "a STAR election" and nothing scenario-specific, it should show THIS one (see 07_Concepts/tips/TIPS_canonical_elections.md).

Live results: https://bettervoting.com/qrw6wb/results (BetterVoting election qrw6wb, Test ID BV2187; write-ins disabled - the candidate list is locked).

What each ballot teaches: - Voter 1 (5,4,0): likes BOTH Ann (5) and Bob (4) - no vote-splitting fear. In the runoff her ballot is one full vote for Ann (5 > 4): a near-tie in scores is still a whole vote in the runoff. - Voter 2 (3,5,2): a Bob fan who honestly scores the others too. - Voter 3 (0,3,5): loves Cal, rates Bob a lukewarm 3 - and that honest 3 is exactly what makes Bob everyone's acceptable choice.

The count: Scoring Round totals Bob 12, Ann 8, Cal 7 -> finalists Bob & Ann. Automatic Runoff: Bob is preferred on 2 ballots, Ann on 1 -> Bob wins 2-1. Bob leads the scores AND wins the runoff - deliberately no twist, so the PROCEDURE is the whole lesson. (Bob is also the Condorcet winner.)

CANONICAL = FROZEN: never edit these ballots. A lesson needing different ballots gets a new scenario with a new cast of names.

Ballots

The ballots as marked — the filled bubble is the score given, and the score is the number in its column:

Ballot as marked Ann Bob Cal
A 0–5 STAR ballot — Voter 1: Ann 5, Bob 4, Cal 0. 5 4 0
A 0–5 STAR ballot — Voter 2: Ann 3, Bob 5, Cal 2. 3 5 2
A 0–5 STAR ballot — Voter 3: Ann 0, Bob 3, Cal 5. 0 3 5

The same ballots as the file records them:

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

Ann,Bob,Cal
5,4,0
3,5,2
0,3,5

What the engine says

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

[Divergence from STAR]
  STAR                   = Bob
  Choose-One (Plurality) = Ann   (differs from STAR)

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

[STAR Voting]
 Tabulating 3 ballots.
Ann,Bob,Cal
  5,  4,  0
  3,  5,  2
  0,  3,  5

[STAR Voting: Scoring Round]
 The two highest-scoring candidates advance to the next round.
   Bob           -- 12 -- First place
   Ann           --  8 -- Second place
   Cal           --  7
 Bob and Ann advance.

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

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

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
               |   * Ann    |  * Bob    |    Cal    |
-----------------------------------------------------
       * Ann > |    ---     |1 - 0 - 2  |2 - 0 - 1  |
       * Bob > | 2 - 0 - 1  |   ---     |2 - 0 - 1  |
         Cal > | 1 - 0 - 2  |1 - 0 - 2  |   ---     |

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

[Condorcet Loser]
  Condorcet Loser: Cal — 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
Ann        1  0  1  0  0  1  |     8   2.7
Bob        1  1  1  0  0  0  |    12   4.0
Cal        1  0  0  1  0  1  |     7   2.3

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/02_Examples/cases/bv2187_qrw6wb_ann-bob-cal.yaml

See also

More cases in this set: 02a_c3_b1_three-candidates · 02b_c3_b2_three-candidates · 03a_c3_b3_style-bullet-vote · 03b_c3_b3_1_style-protest-vote · 03b_c3_b3_2_expand_style-protest-vote · 03c_c6_b8_style-gallery · 03d_c5_b5_style-gallery-five-more · 04b_c4_b3_display-options-all · 05a_c5_b3_unanimous-ballots · 06a_c9_b3_large-field-equal-support · 06b_c9_runoff-overturns-leader · 09_c4_b100_tennessee-capital · abstentions · bv2182_tg4779_faq_runoff_reversal · bv2184_fyy886_lunch_vote · bv2256_c8h3tb_traditional_style · bv2263_xw23m9_over_50_percent · csv_ambiguity_ex1_c4_b8 · display_options_demo · equal_support_runoff_demo · quorum_demo_c3_b6 · quorum_fail_demo_c3_b6 · same_mean_different_spread_c2_b5 · star_ala_approval · three_winners_cw_score_runoff · vote_splitting · vote_splitting2 · vote_splitting3 · vote_splitting_scenario1_spoiler · vote_splitting_scenario2_bloc_leads · vote_splitting_scenario3_outsider_wins