Skip to content

Abstentions — blank and abstaining ballots in STAR

Generated from abstentions.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: Dog

Scenario

Five CAST ballots, only three of which can decide the runoff: a 5-5 Equal Support ballot and an all-zero ballot count as cast but express no preference between the finalists. Teaches the runoff denominator: Dog beats Cat 2-1 among voters WITH a preference, and the two-line runoff summary (show_runoff_percent) reconciles 5 cast = 3 decided + 2 Equal Support, so the percentages never look like votes went missing.

Ballots

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

# Ballot as marked Dog Cat
1 A 0–5 STAR ballot — Dog  — a clear preference (decides the runoff): Dog 5, Cat 0. 5 0
2 A 0–5 STAR ballot — Dog  — a clear preference (decides the runoff): Dog 4, Cat 0. 4 0
3 A 0–5 STAR ballot — Cat  — a clear preference (decides the runoff): Dog 0, Cat 5. 0 5
4 A 0–5 STAR ballot — Equal Support — a CAST ballot that rates both finalists the same: Dog 5, Cat 5. 5 5
5 A 0–5 STAR ballot — all-zero — a CAST ballot that supports neither (an explicit zero): Dog 0, Cat 0. 0 0
6 A 0–5 STAR ballot — blank — a true ABSTENTION: no score recorded for anyone: Dog left blank (counts as 0), Cat left blank (counts as 0). - -

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

Markers on these ballots: - blank · ~ race abstention · & candidate abstention · ? spoiled · % spoiled+reissued — all tabulate as 0 (reported honestly).

Dog,Cat
5,0 # Dog  — a clear preference (decides the runoff)
4,0 # Dog  — a clear preference (decides the runoff)
0,5 # Cat  — a clear preference (decides the runoff)
5,5 # Equal Support — a CAST ballot that rates both finalists the same
0,0 # all-zero — a CAST ballot that supports neither (an explicit zero)
-,- # blank — a true ABSTENTION: no score recorded for anyone

What the engine says

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

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

[STAR Voting]
 Tabulating 6 ballots. Note: 1 of 6 ballots is marked as an abstention.
Dog,Cat
  5,  0
  4,  0
  0,  5
  5,  5
  0,  0
  -,  -
  ('-' = 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.
   Dog           -- 14 -- First place
   Cat           -- 10 -- Second place
 Dog and Cat advance.

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

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

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
               |   * Dog    |  * Cat    |
-----------------------------------------
       * Dog > |    ---     |2 - 3 - 1  |
       * Cat > | 1 - 3 - 2  |   ---     |

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

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

[Score Distribution] (how many ballots gave each star rating)
                Score
Candidate  5  4  3  2  1  0  Abs  | Total  Avg all  Avg rated
Dog        2  1  0  0  0  2    1  |    14      2.3        2.8
Cat        2  0  0  0  0  3    1  |    10      1.7        2.0
  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 01_STAR/02_Examples/cases/abstentions.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 · bv2182_tg4779_faq_runoff_reversal · bv2184_fyy886_lunch_vote · bv2187_qrw6wb_ann-bob-cal · 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