Skip to content

Exercise 4 — Lillehammer 1994: nine judges, three skaters, two winners

Generated from ex04_olympics_1994.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: Baiul

Scenario

The real final ordinals of the 1994 Winter Olympics ladies figure skating: nine judges ranked Oksana Baiul, Nancy Kerrigan, and Chen Lu — five judges put Baiul first (Kerrigan second), four put Kerrigan first; Lu is ranked third by seven judges and second by two. Ranks are mapped to 0-5 scores with the repo's standard order-preserving map (top=5, mid=3, bottom=1). Scoring round: Kerrigan 35, Baiul 33, Lu 13 — KERRIGAN leads the scores. Automatic runoff: five of the nine judges prefer Baiul, so BAIUL wins 5-4 — matching the real 5-4 judging split that decided the gold medal. Score voting and STAR genuinely diverge on real data; and Chen Lu can never win under ANY honest scoring, because every single judge ranks Kerrigan above her (Pareto dominance). The exercise is ex04_olympics_1994.md. Ordinals as reproduced in Brendan W. Sullivan, "An Introduction to the Math of Voting Methods" (2022), ch. 5.

Ballots

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

Baiul,Kerrigan,Lu
5,3,1 # judges 1-5: Baiul > Kerrigan > Lu
5,3,1
5,3,1
5,3,1
5,3,1
3,5,1 # judges 6-7: Kerrigan > Baiul > Lu
3,5,1
1,5,3 # judges 8-9: Kerrigan > Lu > Baiul
1,5,3

What the engine says

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

[Divergence from STAR]
  STAR     = Baiul
  Approval = Kerrigan   (differs from STAR)

[Runoff Reversal]
 - Score Round Winner(s) = (Kerrigan)
 - Runoff Round Winner   = (Baiul)
  Candidate Kerrigan earned the highest total score, but
  Candidate Baiul won the automatic runoff — not a malfunction,
  STAR working as designed: the runoff elects the finalist preferred
  by the majority (of voters with a preference).

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

[STAR Voting]
 Tabulating 9 ballots.
Count × Baiul,Kerrigan,Lu
    5 ×     5,       3, 1
    2 ×     3,       5, 1
    2 ×     1,       5, 3

[STAR Voting: Scoring Round]
 The two highest-scoring candidates advance to the next round.
   Kerrigan      -- 35 -- First place
   Baiul         -- 33 -- Second place
   Lu            -- 13
 Kerrigan and Baiul advance.

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

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

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
                 |   * Baiul    | * Kerrigan  |      Lu     |
-------------------------------------------------------------
       * Baiul > |     ---      | 5 - 0 - 4   | 7 - 0 - 2   |
    * Kerrigan > |  4 - 0 - 5   |    ---      | 9 - 0 - 0   |
            Lu > |  2 - 0 - 7   | 0 - 0 - 9   |    ---      |

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

[Condorcet Loser]
  Condorcet Loser: Lu — 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
Baiul      5  0  2  0  2  0  |    33   3.7
Kerrigan   4  0  5  0  0  0  |    35   3.9
Lu         0  0  2  0  7  0  |    13   1.4

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/ex04_olympics_1994.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 · 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_spoiler_added · 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