Skip to content

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 (aliases RCV_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.yaml It 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 the pref_voting engine) 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-RRthe 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_voting calls 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

Learn more — external