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.