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 |
|---|---|---|---|
![]() |
5 | 4 | 0 |
![]() |
3 | 5 | 2 |
![]() |
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¶
- Condorcet efficiency (topic hub)
- Ties & tie-breaking (topic hub)
- Vote splitting (worked set)
- Runoff reversal (worked set)
- Glossary · all cases by method
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


