Skip to content

Condorcet vs. Ranked Robin — worked examples

Five runnable Ranked Robin (RCV-RR / Copeland) elections showing the one distinction that trips everyone up: Ranked Robin and "the Condorcet winner" are the same answer — until there's a cycle. Same three candidates, two electorates, a real 6-candidate case, the cycle with a dominated fourth candidate — the Smith set demo — and the live electowiki example on equal-rank ballots.

Full lesson (the teaching write-up): Ranked Robin vs. Condorcet · deeper math: the math behind Condorcet

Case (page) What it shows Condorcet winner Ranked Robin src
01 — Condorcet winner a Condorcet winner exists → they agree Ada Ada .yaml
02 — cycle, no Condorcet a rock-paper-scissors cycle → they part ways (none) Ada .yaml
03 — real 6-cand sweep real 6-cand sweep case — no Condorcet winner (none) B .yaml
04 — the Smith set the 02 cycle + a dominated 4th → Smith set = (none) Ada .yaml
BV2140 — most wins, no Condorcet winner the electowiki worked example, live — and the repo's first equal-rank ballots: Ava wins 3 of her 4 matchups, yet loses to Bianca 15–14 (none) Ava .yaml

1. Condorcet winner exists → Ranked Robin elects it

Ada beats both rivals head-to-head, so Ada is the Condorcet winner and the Ranked Robin winner. No daylight between them.

Ballots:
     3 × Ada > Ben > Cara
     2 × Ben > Ada > Cara

Win–loss record (most wins; ties broken by total margin, then lot order):
    #  Candidate  W–L–T  Copeland  Margin  Beats
    1  Ada        2–0–0         2      +6  Ben, Cara
    2  Ben        1–1–0         1      +4  Cara
    3  Cara       0–2–0         0     -10  —

Winner — Ranked Robin (RCV-RR): Ada   (beats every opponent — the Condorcet winner)

Full report: …_tabulated/01_condorcet_winner_tabulated.txt

2. A cycle → no Condorcet winner, but Ranked Robin still picks one

Ada beats Ben (5–2), Ben beats Cara (5–2), Cara beats Ada (4–3) — a circle. No candidate beats both others, so there is no Condorcet winner. Everyone is 1–1; Ranked Robin breaks the tie by total margin and elects Ada.

Ballots:
     3 × Ada > Ben > Cara
     2 × Ben > Cara > Ada
     2 × Cara > Ada > Ben

Win–loss record:
    #  Candidate  W–L–T  Copeland  Margin  Beats
    1  Ada        1–1–0         1      +2  Ben
    2  Ben        1–1–0         1      +0  Cara
    3  Cara       1–1–0         1      -2  Ada

Winner — Ranked Robin (RCV-RR): Ada
   *** 3 candidates tie on wins — a Condorcet cycle. Resolved by total margin, then lot order.

Full report: …_tabulated/02_cycle_no_condorcet_tabulated.txt

3. The real one — record 0 from the random sweep (6 candidates)

The first divergent election from tools_adam/random_star_divergence.py. STAR elects B; so does Ranked Robin. But these are score ballots, so Ranked Robin first reads them as a ranking (equal scores stay tied, =). No candidate beats all five rivals, so the Condorcet winner is blank — yet B has the best record (3 wins), so Ranked Robin elects B.

Ballots:
   the ranking Ranked Robin reads ("=" = tied); source scores follow in () per column: A, B, C, D, E, F
     1 × E > A=B=F > D > C      (3, 3, 0, 2, 4, 3)
     1 × E > A=C > B=D > F      (3, 2, 3, 2, 4, 1)
     1 × A=F > C > B=D > E      (4, 1, 2, 1, 0, 4)
     1 × C > B=D > A=F > E      (2, 4, 5, 4, 1, 2)
     1 × B=D > F > E > A=C      (0, 5, 0, 5, 2, 3)

Win–loss record (top rows):
    #  Candidate  W–L–T  Copeland  Margin  Beats
    1  B          3–1–1       3.5      +3  D, E, F      <- best record, NOT 5-0
    2  A          2–1–2         3      +1  C, D

Winner — Ranked Robin (RCV-RR): B   (the most head-to-head wins, 3)

B went 3–1–1, not 5–0 (it loses to C, ties A), so no one beats everyone → Condorcet is blank. The full 6×6 pairwise grid is in the mirror: …_tabulated/03_real_record0_c6_b5_tabulated.txt

4. The Smith set — the cycle plus an outsider

Election 2 with one change: a fourth candidate, Dave, whom every voter ranks last. The Ada/Ben/Cara cycle is untouched, and all three beat Dave 7–0 — so the smallest group that beats everyone outside it is exactly {Ada, Ben, Cara}: the Smith set, the "generalized Condorcet winner." Dave is on every ballot yet provably out of contention. Ranked Robin's pick (Ada, on margins) comes from inside the set — Copeland is Smith-efficient.

Ballots:
     3 × Ada > Ben > Cara > Dave
     2 × Ben > Cara > Ada > Dave
     2 × Cara > Ada > Ben > Dave

Win–loss record:
    #  Candidate  W–L–T  Copeland  Margin  Beats
    1  Ada        2–1–0         2      +9  Ben, Dave
    2  Ben        2–1–0         2      +7  Cara, Dave
    3  Cara       2–1–0         2      +5  Ada, Dave
    4  Dave       0–3–0         0     -21  —

Winner — Ranked Robin (RCV-RR): Ada
   *** 3 candidates tie for the most wins (Ada, Ben, Cara) — a Condorcet cycle.

(LH-only case: BetterVoting's Ranked Robin breaks a Copeland tie randomly, so this deliberate three-way tie isn't freezable there.) Full report: …_tabulated/04_smith_set_c4_b7_tabulated.txt · full lesson: The Smith set — the smallest club that beats everyone outside it

5. The live one — most matchups won, on equal-rank ballots

The electowiki Ranked Robin worked example, run end-to-end as a real BetterVoting election (48hjkv) and the repo's first case built on equal-rank ballots — voters tie candidates outright (Ava=Bianca=Cedric), which RCV-IRV's ballot cannot express. 35 voters, five candidates. Ava wins 3 of her 4 matchups and is elected, yet she is not the Condorcet winner: Bianca beats her 15–14, and Ava/Bianca/Cedric form a three-cycle. Sections 1–4 above make the point on constructed ballots; this makes it on a live election.

Full walkthrough, pairwise grid and BV screenshots: BV2140 — most pairwise wins, no Condorcet winner · .yaml · results ↗


Regenerate any report by re-running the .yaml through the LH engine; the …_tabulated.txt mirrors are generated siblings. Full teaching write-up: ranked_robin_vs_condorcet.md.