Ranked Robin (RCV-RR / Copeland)¶
A ranked method that compares every candidate head-to-head and elects whoever beats the most rivals. Same ranked ballot as IRV, but a completely different — and far more transparent — way of counting it.
→ Run it / tabulated example: summability_demo/ shows the pairwise matrix (the Ranked Robin tally) computed and added across precincts; the pref_voting engine reports the Copeland = Ranked Robin winner on any election (python pref_voting_tabulation.py example_tennessee.yaml). · Topic hub: Summability.
Ranked Robin (abbreviated RCV-RR) is a Condorcet method: it's a round-robin tournament among the candidates. You rank the candidates — and crucially, you may rank candidates equally — then the count compares every pair of candidates head-to-head and elects the one who wins the most matchups (ties broken by the sum of win margins).
Because it's computed entirely from the pairwise matrix (for each pair, how many voters preferred A to B), it has the properties IRV lacks while using essentially the same ballot voters already know.
Sibling branding — "Consensus Choice." The same core Condorcet idea is promoted by Better Choices for Democracy as Consensus Choice (often paired with a "Top 4" open primary front end). It allows equal ranks, compares every pair head-to-head, and is precinct-summable. It differs from Equal Vote's Ranked Robin mainly in packaging and in its cycle-resolution rule ("Most Wins, Smallest Loss" vs. RR's sum-of-margins). Treat "Ranked Robin" and "Consensus Choice" as close cousins in the Condorcet family, not identical algorithms.
Names & family (genus vs. species)¶
These terms are related but not interchangeable — they sit at different levels of generality:
- Round-robin voting — the general family: any ranked method that compares every pair head-to-head (a.k.a. paired-comparison / tournament / Condorcet methods). The umbrella term. → Round-robin voting (Wikipedia)
- Copeland's method — the algorithm underneath: most head-to-head wins, ties count ½. With Ranked Robin's sum-of-margins tiebreak the precise technical name is Copeland//Borda (Copeland, completed by a Borda-style margin score over the tied set) — not to be confused with the Borda count itself, which is a different method. → Copeland's method (Wikipedia)
- Ranked Robin (RCV-RR) — the branded method: essentially Copeland plus a defined cycle tiebreak (sum of win margins). Two people, one year: the tiebreak was proposed as Equal Vote's default by Sass in 2021, and the name coined that same year by Sara Wolk (Equal Vote Coalition) — so a credit that names only the coiner leaves out the count. The idea is ancient, though — the earliest known Condorcet method is Ramon Llull's Ars Electionis (1299), rediscovered by Condorcet and later by Copeland; a closely related Condorcet-with-margin method was popularized by Partha Dasgupta and Nobel laureate Eric Maskin in 2004. → electowiki · Equal Vote
So: round-robin voting (family) ⊃ Copeland (algorithm) ≈ Ranked Robin (the branded Copeland-plus-tiebreak). When you mean the family, say "round-robin" or "Condorcet"; when you mean this specific method, say "Ranked Robin." On sources: electowiki is the canonical definition for the "Ranked Robin" name, but it's a community wiki and Equal-Vote-adjacent — cite it for definitions, and lean on academic sources for critical/limits claims (see honest limits). One nuance electowiki now records: in 2025 the term's originator clarified that she always intended "Ranked Robin" as an approachable synonym for "Condorcet method" in general — not one fixed algorithm. So the specific Copeland-plus-margins procedure on this page is the Equal Vote default recommendation, not the whole meaning of the name — which is exactly why "Ranked Robin" sits at the species level while "Condorcet" is the genus.
Where it sits in the whole ranked family (diagram + alias table): Terminology — the ranked-method family tree. Still tangled by the outside terminology (and why Wikipedia's Round-robin voting and Copeland's method articles overlap)? → Round-robin / Copeland / Ranked Robin — a naming decoder.
A law-review framing of the same idea (useful when an audience wants an authoritative source):
Condorcet's method was to see if any candidate was ranked higher on more ballots than each other candidate, when considering each pair of candidates one-on-one (as in a round-robin sports tournament); because this candidate, when one exists, is preferred by a majority of voters to every other candidate on the ballot, Condorcet considered [it] necessarily the top one.
— Atkinson, Foley & Ganz, University of Illinois Law Review (quoted via Ballotpedia)
Two house-style clarifications on that quote: (1) it describes the Condorcet winner — a way of counting a ranked ballot by head-to-head comparison, i.e. a sibling tabulation to IRV, not a variation of it (RCV names the ballot; IRV and Ranked Robin are different counts of it). (2) "Condorcet's method" (singular) is loose — there's a family of Condorcet methods that all elect the Condorcet winner when one exists but differ in how they resolve a cycle (none exists); Ranked Robin resolves it by sum of win margins.
How it differs from RCV-IRV (Hare)¶
| RCV-IRV (Hare) | Ranked Robin (RCV-RR) | |
|---|---|---|
| Ballot | Rank, no equal ranks | Rank, equal ranks allowed |
| How it counts | Eliminate fewest-first-choice, transfer, repeat | Compare every pair; most head-to-head wins |
| Uses your lower ranks? | Only after higher ones are eliminated | Always — every ranking counts against every opponent |
| Pairwise (head-to-head)? | ❌ No | ✅ Yes |
| Elects the Condorcet winner? | Not always (can center-squeeze) | ✅ Yes, when one exists |
| Monotonic? | ❌ No | ✅ Yes |
| Precinct-summable? | ❌ No | ✅ Yes (add pairwise matrices) |
| Exhausted ballots? | Possible | No — every ballot is read in every pairwise contest |
The headline: the two things people assume "RCV" does — let you mark ties and compare candidates head-to-head — are exactly what RCV-RR (Ranked Robin) does and what RCV-IRV (Instant-Runoff Voting) does not. (See strict_vs_weak_ranks.md and RCV_IRV_and_plurality.md.)
Why it matters¶
Because it reads every ranking against every opponent, Ranked Robin elects the candidate most voters prefer in head-to-head comparison — the "consensus" / Condorcet winner — which is precisely the broadly-liked moderate that IRV can center-squeeze out. It's also monotonic and summable by adding precinct pairwise matrices, so it avoids two of IRV's biggest mechanical problems while keeping a familiar ranked ballot.
A worked example — the consensus center wins the round-robin¶
Thirteen voters, four candidates on a left→right line (Ada, Ben, Cara, Dan). Run it: ranked_robin_consensus_center.yaml (or paste the count:A>B>C block into LeGrand's calculator).
4 : Ada > Ben > Cara > Dan
4 : Dan > Cara > Ben > Ada
3 : Ben > Cara > Ada > Dan
2 : Cara > Ben > Dan > Ada
Step 1 — every head-to-head. Compare each pair across all 13 ballots:
| Matchup | Winner | Matchup | Winner | |
|---|---|---|---|---|
| Ben vs Ada | Ben 9–4 | Cara vs Dan | Cara 9–4 | |
| Ben vs Cara | Ben 7–6 | Ada vs Dan | Ada 7–6 | |
| Ben vs Dan | Ben 9–4 | Cara vs Ada | Cara 9–4 |
Step 2 — the win–loss record (Copeland score). Count each candidate's wins minus losses:
| Candidate | Wins | Losses | Score |
|---|---|---|---|
| Ben | 3 | 0 | +3 ← winner |
| Cara | 2 | 1 | +1 |
| Ada | 1 | 2 | −1 |
| Dan | 0 | 3 | −3 |
Ben wins Ranked Robin by beating everyone head-to-head (he's the Condorcet winner). The kicker: Ada and Dan each had more first-choice votes (4 apiece) than Ben (3) — under Plurality or a first-past-the-post lens, Ben looks like an also-ran. Ranked Robin reads the whole ballot, so the candidate the majority prefers in every matchup wins, not the one with the biggest first-choice pile. (Verified on the engine; the pref_voting cross-check confirms Copeland = Ben, and IRV happens to agree here too.)
For balance — its limits¶
Ranked Robin isn't a cure-all. Like all ranked methods it captures order only, not strength — it can't tell a near-tie from a landslide (scores_vs_ranks.md) — so it carries less information than a scored method like STAR. When there's a Condorcet cycle (A beats B, B beats C, C beats A, with no candidate beating all others), there is no Condorcet winner and the method falls back on a tiebreak rule (sum of margins), which reasonable people can debate. And no method escapes Gibbard–Satterthwaite. Its real-world adoption is limited so far compared with IRV.
Name the tie-proneness properly: Copeland is a known-indecisive rule. This is the sharpest version of the cycle limit above, and it is a documented property of the count, not a quirk of this repo's engine or a symptom of unusually contrived examples. Copeland scores are whole wins, so it can only ever distinguish candidates by how many matchups they took, never by how much they won or lost each one by — and in a cycle every candidate has the same record. Two consequences worth stating out loud:
- Minimax / Simpson is strictly more decisive, precisely because it reads margins rather than win counts, and margins survive a cycle when win counts don't. The minimal tilted cycle is the runnable proof: five voters, Copeland ties all three, minimax names a winner — and the information minimax used was on the ballots the whole time.
- Copeland winners always lie inside the top cycle / Smith set, so Copeland never elects badly in that sense; it just frequently declines to narrow the field further on its own.
That's the honest trade. Copeland's whole-wins arithmetic is what makes Ranked Robin so easy to explain and to audit — a round-robin table anyone can read — and the same arithmetic is what makes it reach for a tiebreak more often than its Condorcet siblings. LH's ladder (margin → lot) is a deliberate patch on exactly this, and where the tie is genuinely forced, no rule could have done better.
Now you can tabulate it — the pref_voting engine¶
The repo's new the pref_voting engine computes this method on any example election, under its academic name, Copeland.
The LH engine now tabulates Ranked Robin first-class. Set
voting_method: RankedRobin(aliasesRCV_RR/Copeland/Consensus) and the engine prints the round-robin report — ballots, the full pairwise table, and each candidate's win-loss record — instead of the RCV-IRV elimination rounds:python STARVote_LH_tabulation_engine/starvote_larry_hastings.py 05_Ranked_Robin/02_Examples/cases/ranked_robin_consensus_center.yamlIt flags a cycle (when the top candidates tie on wins) and points to cycle resolution. For an independent Copeland cross-check,ranked_robin_report.py(in thepref_votingengine) computes the same result a second way.
Options for an RCV-RR YAML file — and what shows where¶
The Ranked Robin path follows the same minimal on-screen report / always-full _tabulated discipline as STAR (reading a STAR report). It honors four options: (the rest of the STAR option block is silently ignored — it doesn't error, it just does nothing for RR):
| Option | Default | Effect on RCV-RR |
|---|---|---|
show_matrix |
true |
On by default — the on-screen report prints the full N×N pairwise matrix; false gives the compact echo without it. The _tabulated mirror always includes it regardless. |
show_smith_set |
false |
When true, the on-screen report adds the Smith set block. The _tabulated mirror always forces it on. |
collapse_ballots |
true |
true → identical ballots shown as N × ballot; false → one row per voter. |
count_separator |
× |
The glyph between the count and the ballot (×, :, or x/X). |
Everything else — matrix_finalists_only, show_condorcet, show_score_counts, show_runoff_percent, brief, show_description — is STAR-specific and has no effect here (RR has no finalists, no score round, and no automatic runoff).
What you'll see. Take this 7-ballot, 3-candidate file:
voting_method: RankedRobin
num_winners: 1
ballots: |-
3:Ada>Ben>Cara
2:Ben>Cara>Ada
2:Cara>Ben>Ada
The on-screen report shows the ballots, the aligned head-to-head list, the full N×N pairwise matrix, the win-loss record table, and the winner. The record table reports the Copeland score (wins + ½·ties, the academic standard) alongside the win-loss count and total margin:
--- Ranked Robin (RCV-RR / Copeland) Method (single winner) ---
Tabulating 7 ballots (ranked ballots).
Ballots:
3 × Ada > Ben > Cara
2 × Ben > Cara > Ada
2 × Cara > Ben > Ada
Round-Robin — every pair, head-to-head (For – Against):
Ben beats Ada 4 – 3
Cara beats Ada 4 – 3
Ben beats Cara 5 – 2
--- Pairwise (Round-Robin) Matrix ---
Head-to-head / pairwise comparison — the Ranked Robin tally
Legend: For - Equal Support - Against (row vs column)
| Ada | Ben | Cara |
--------------------------------------------
Ada > | --- |3 - 0 - 4 |3 - 0 - 4 |
Ben > | 4 - 0 - 3 | --- |5 - 0 - 2 |
Cara > | 4 - 0 - 3 |2 - 0 - 5 | --- |
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 Ben 2–0–0 2 +4 Cara, Ada
2 Cara 1–1–0 1 -2 Ada
3 Ada 0–2–0 0 -2 —
Winner — Ranked Robin (RCV-RR): Ben
beats every opponent head-to-head — the Condorcet winner.
The matrix — the Ranked Robin tally itself — reads For - Equal Support - Against in each cell, row vs column; the middle number is 0 here because these are strict ranks with no equal support. The _tabulated mirror is identical plus the forced-on Smith set block (show_smith_set — opt-in on screen, always in the mirror).
Why this format. The two conventions every source agrees on are the preference (pairwise) matrix and the win-loss record — Equal Vote leads with the record and calls the matrix the tool "for making sense of the ballot data," and the academic Copeland literature treats the outranking matrix as the standard presentation (row = "runner," column = "opponent," diagonal blank). We follow both, and add the academic Copeland score (
wins + ½·ties) as an explicit column, since there's no finalized public-facing spec to defer to. Our tie-break is total margin, then lot order — a deliberate, fully-reported choice (the record table shows the margin that settles it); it differs from Equal Vote's published hierarchy (Favorite / Copeland / Smith-Minimax), which we treat as one option among several until a standard settles. See cycle resolution.
Copeland = Ranked Robin = RCV-RR — the same core method wearing different brand names from different proponent groups:
| Name | Who calls it that |
|---|---|
| Copeland's method | academic social-choice literature (order candidates by pairwise wins − losses) |
| Ranked Robin | the Equal Vote Coalition |
| Consensus Choice | Better Choices for Democracy |
| RCV-RR | this repo's house compound (ranked ballot + Ranked-Robin count) |
They're the same idea: elect whoever wins the most head-to-head matchups (the Condorcet/Copeland winner). They agree on the winner whenever a Condorcet winner exists — i.e. almost always — and differ only in the cycle/tie-break rule (Ranked Robin: sum of margins; Consensus Choice: "Most Wins, Smallest Loss"; textbook Copeland: by score). So treat them as one method with several brands, not byte-identical algorithms.
House naming (which word when). Say Ranked Robin (RR) to people — it's the friendliest adopted name. Use RCV-RR in method comparisons and engine output, exactly parallel to RCV-IRV (ranked ballot + which count). Use Copeland when talking to the engine or academics (it's what
pref_votingcalls it). Mention Consensus Choice once as the sibling advocacy brand, then move on. (Same meet-them-where-they-are rule as Tips — Terminology: RCV vs IRV vs RCV-IRV (and friends).)
# run Copeland (= Ranked Robin) on any election, beside the other methods:
cd STARVote_LH_tabulation_engine/tools_adam/pref_voting_tabulation_engine
python pref_voting_tabulation.py example_tennessee.yaml
# Copeland pref_voting=Nashville (= the Ranked Robin / Consensus winner)
Since BetterVoting ships a Ranked Robin tabulator too, this gives you an independent Python reference to reconcile BV's RCV-RR results against — the same cross-checking we do for STAR and RCV-IRV. Details: Cross-checking the LH engine with pref_voting.
Worked examples — run them yourself¶
Every claim on this page has a runnable election behind it. The case folders live in 05_Ranked_Robin/ — each isolates one idea, and each tabulates on the engines above:
| Case folder | What it shows |
|---|---|
| The worked intro | the election above: the consensus center wins 3–0 over the two poles that hold more first choices |
| Condorcet vs. Ranked Robin | a clean Condorcet winner, a genuine rock/paper/scissors cycle, and a real 0-wins record |
| RR vs. IRV vs. plurality | one ranked ballot set, three different winners — the Tennessee center squeeze, where RR and IRV genuinely part ways |
| The Copeland score — a draw is worth half a win | why "most head-to-head wins" is a shorthand: the ½-credit elects a candidate who lost a matchup |
| Most matchups won ≠ Condorcet winner | its mirror image — strictly the most wins, and still beaten head-to-head; only Copeland decides |
| Tiebreaks | the Equal Support column and the full ladder down to lot order |
| Burial | the signature wart, worked as a sincere/buried pair on both engines |
| STAR vs RR — 30 divergence samples | 30 elections where STAR and RR elect different winners, each stating its own cause |
Related concept pages¶
- Ranked Robin is summable — the pairwise matrix adds across precincts (and the topic hub: Summability)
- Cycle resolution — why Copeland is tie-prone, and why Minimax / Ranked Pairs / Schulze exist (they differ only on cycles)
- Clone independence — crowding, teaming, and the tiebreak — RR passes vote-splitting but can fail teaming in a no-Condorcet-winner cycle (and only under a margin tiebreak)
- Strict vs. weak ranks — Ranked Robin allows equal ranks; IRV doesn't
- Center squeeze — the failure RR avoids and IRV doesn't
- Exhausted ballots — the IRV ballots that stop counting; Ranked Robin never exhausts one (every ballot is read in every pair)
- Is IRV "just plurality"? — why IRV isn't pairwise
- Scores vs. ranks — RR is still order-only, unlike STAR
- RCV-IRV vs. STAR (side-by-side)
- RCV vs. IRV vs. RCV-IRV — terminology
Learn more — external¶
- Ranked Robin (electowiki) (the canonical definition of the "Ranked Robin" name — community wiki, Equal-Vote-adjacent; includes the method's history and the full four-degree Equal Vote tie-break hierarchy)
- Equal Vote Coalition — Ranked Robin (pro-Ranked-Robin advocacy)
- Better Choices for Democracy — Consensus Choice FAQs (advocacy; the same Condorcet idea, "Top 4" + Consensus Choice branding)
- Rob LeGrand — Ranked-ballot voting calculator (paste
count:A>B>Cballots; computes Condorcet methods, Borda, Hare/IRV, Coombs, Bucklin — a quick independent hand-check) - Copeland's method (Wikipedia) (the academic name for Ranked Robin's win-loss-record count)
- Copeland's method (electowiki) (the election-methods community wiki — more depth on the count and its tie-break variants)