Skip to content

Equal ranks — Costa withdraws, and Split-IRV's winner flips to Alma

Generated from equal_rank_clone_without.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: Alma

Scenario

The clone-free half of Figure 9 from Théo Delemazure & Dominik Peters, "Generalizing Instant Runoff Voting to Allow Indifferences" (EC'24, arXiv:2404.11407). Same 45 voters, same cast, same ballots as equal_rank_clone_with.yaml with exactly one change: Costa is not running. Same cast because it is the same election with one thing changed. With the clone gone, Split-IRV elects Alma; with the clone in the race it elects the Chen/Costa ticket. Nothing about how anyone feels changed — only how many names their top preference was spread across. That flip is Split-IRV failing independence of clones, the axiom Tideman proved ordinary strict-ballot IRV satisfies and that gives instant runoff its main claim over Choose-One voting. Approval-IRV keeps the axiom (Theorem 3.2) and elects Alma in both files. STAR elects Alma here and in the companion file, so the clone is inert for STAR too — worth stating plainly rather than claiming: a score ballot already lets a voter rate two allies identically, so adding one changes no total that was not already recorded. For the Approval-IRV and Split-IRV counts run tools_adam/pref_voting_tabulation_engine/approval_irv_report.py.

Ballots

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

Count:Alma,Bruno,Chen
27:5,0,5    # Alma and Chen equal-first
12:3,5,0    # Bruno first, Alma second
6:3,0,5     # Chen first, Alma second

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 45 ballots.
Count × Alma,Bruno,Chen
   27 ×    5,    0,   5
   12 ×    3,    5,   0
    6 ×    3,    0,   5

[STAR Voting: Scoring Round]
 The two highest-scoring candidates advance to the next round.
   Alma          -- 189 -- First place
   Chen          -- 165 -- Second place
   Bruno         --  60
 Alma and Chen advance.

[STAR Voting: Automatic Runoff Round]
 The candidate preferred in the most head-to-head matchups wins.
   Alma          -- 12 -- First place
   Chen          --  6
   Equal Support -- 27
 Alma wins.
   Runoff math:
     45  ballots cast
   − 27  Equal Support (no preference between the two finalists)
     ──
     18  voters with a preference  (majority = 10)
           Alma 12 (67%)  ·  Chen 6 (33%)

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

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
                 |    * Alma    |    Bruno    |   * Chen    |
-------------------------------------------------------------
        * Alma > |     ---      |33 -  0 - 12 |12 - 27 -  6 |
         Bruno > | 12 -  0 - 33 |    ---      |12 -  0 - 33 |
        * Chen > |  6 - 27 - 12 |33 -  0 - 12 |    ---      |

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

[Condorcet Loser]
  Condorcet Loser: Bruno — 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
Alma       27   0  18   0   0   0  |   189   4.2
Bruno      12   0   0   0   0  33  |    60   1.3
Chen       33   0   0   0   0  12  |   165   3.7

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 method_comparisons/equal_rank_irv/cases/equal_rank_clone_without.yaml

See also

More cases in this set: equal_rank_clone_with · equal_rank_cohesive_consecutive · equal_rank_cohesive_wide_gaps · equal_rank_five_voters · equal_rank_majority_alternative