Skip to content

BV parity — Ranked Robin: Condorcet winner (equal ranks allowed)

Generated from BV_Library_ranked_robin_single_winner.yaml — do not edit by hand. Regenerate: python STARVote_LH_tabulation_engine/tools_adam/scripts/build_yaml_pages.py.

Method: Ranked Robin (RCV-RR / Copeland) · 1 seat · Expected winner: Alice

Scenario

Ported from BetterVoting's tabulator unit tests (RankedRobin.test.ts :: "Single winner test"). BetterVoting supplies rank ballots (1 = best) including EQUAL ranks and an abstention. Converted here to score ballots for the LH engine (higher score = more preferred, equal scores = equal rank, blank = unranked): rank 1->4, 2->3, 3->2, 4->1, unranked->0. One original out-of-bounds mark (rank -1 for Dave) becomes a blank. Alice wins every head-to-head (Condorcet winner); Copeland scores match BetterVoting (Alice 3, Bob 2, Carol 1, Dave 0).

Ballots

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

Alice,Bob,Carol,Dave
4,3,2,0
4,3,2,1
4,3,2,1
4,4,3,2
4,4,3,2
3,4,2,1
3,4,2,1
3,2,4,1
3,2,1,4
-,-,-,-
3,2,1,-

What the engine says

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

--- Ranked Robin (RCV-RR / Copeland) Method (single winner) ---
 Tabulating 11 ballots (score ballots).

Ballots:
   the ranking Ranked Robin reads ("=" = tied); source scores follow in () per column: Alice, Bob, Carol, Dave
     1 × Alice > Bob > Carol > Dave      (4, 3, 2, 0)
     2 × Alice > Bob > Carol > Dave      (4, 3, 2, 1)
     2 × Alice=Bob > Carol > Dave      (4, 4, 3, 2)
     2 × Bob > Alice > Carol > Dave      (3, 4, 2, 1)
     1 × Carol > Alice > Bob > Dave      (3, 2, 4, 1)
     1 × Dave > Alice > Bob > Carol      (3, 2, 1, 4)
     1 × Alice=Bob=Carol=Dave      (0, 0, 0, 0)
     1 × Alice > Bob > Carol > Dave      (3, 2, 1, 0)

Round-Robin — every pair, head-to-head (For – Against):
   Alice  beats Bob     6 – 2
   Alice  beats Carol   9 – 1
   Alice  beats Dave    9 – 1
   Bob    beats Carol   9 – 1
   Bob    beats Dave    9 – 1
   Carol  beats Dave    9 – 1

--- Pairwise (Round-Robin) Matrix ---
Head-to-head / pairwise comparison — the Ranked Robin tally
Legend: For - Equal Support - Against   (row vs column)
          |   Alice   |   Bob    |  Carol   |  Dave    |
--------------------------------------------------------
  Alice > |    ---    |6 - 3 - 2 |9 - 1 - 1 |9 - 1 - 1 |
    Bob > | 2 - 3 - 6 |   ---    |9 - 1 - 1 |9 - 1 - 1 |
  Carol > | 1 - 1 - 9 |1 - 1 - 9 |   ---    |9 - 1 - 1 |
   Dave > | 1 - 1 - 9 |1 - 1 - 9 |1 - 1 - 9 |   ---    |

Win–loss record — Copeland score = wins + ½·ties (highest score wins; ties broken by total margin, then lot order):
    #  Candidate  W–L–T  Copeland  Margin  Beats
    1  Alice      3–0–0         3     +20  Bob, Carol, Dave
    2  Bob        2–1–0         2     +12  Carol, Dave
    3  Carol      1–2–0         1      -8  Dave
    4  Dave       0–3–0         0     -24  —

Winner — Ranked Robin (RCV-RR): Alice
   beats every opponent head-to-head — the Condorcet winner.

Full audit — preference matrix, Condorcet, and score distribution

--- Smith Set (the generalized Condorcet winner) ---
The smallest group whose every member beats every candidate outside it —
the honest answer to "who is even in contention?".
   Smith set (1 of 4): Alice
   Outside (3):        Bob, Carol, Dave
   One member ⇒ Alice is the Condorcet winner, beating every rival head-to-head.
   Ranked Robin (RCV-RR) winner Alice is INSIDE the Smith set. ✓
      Guaranteed: Ranked Robin (Copeland) is Smith-efficient — every member of
      the set outscores every outsider, so the top of the win–loss table is
      always inside the set, however the tie among them is then broken.
   More: 07_Concepts/topics/smith_set.md

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/BV_Library/cases/BV_Library_ranked_robin_single_winner.yaml

See also

More cases in this set: BV_Library_approval_single_winner · BV_Library_plurality_single_winner · BV_Library_ranked_robin_ties · BV_Library_star_condorcet_winner · BV_Library_star_pr_basic_two_seats · BV_Library_star_pr_fractional_surplus · BV_Library_star_pr_voters_fewer_than_seats · BV_Library_star_runnerup_tie · BV_Library_star_runoff · BV_Library_star_runoff_score_tie_five_star · BV_Library_star_runoff_tie_score_resolves