Skip to content

Topic: Ties & Tie-Breaking

Topic hub — a cross-method view. Real elections occasionally produce exact ties — two candidates with the same score, the same pairwise record, or the same first-choice count. Every method needs a defined, reproducible rule for resolving them; the rules (and how often ties even arise) differ by method.

The one idea to take away: a tie-break should be deterministic and disclosed, not a coin toss after the fact. This repo uses an official lot-number order (lot_numbers:) so any tie resolves the same way every run — auditable, not arbitrary.

Where ties happen — and where each is treated

Method Where a tie can occur How it's resolved Full page
STAR scoring round (which two advance) or the automatic runoff official tiebreak protocol, then lot order Tie-breaking in STAR
STAR (reporting) how a tie is displayed in the result reported explicitly, not hidden reporting ties
RCV-IRV (Hare) which candidate to eliminate when two are tied for last by statute — lot / prior round Which RCV-IRV? § tie-breaks
Ranked Robin a pairwise tie, or a Condorcet cycle the published degrees of ties — 1st Degree, then 2nd Degree, then lot order degrees of ties · cycle resolution

The engine-by-engine reference: Tiebreak ladders — every method, every engine states every implementation's ladder rung by rung — LH, BetterVoting, pyrankvote, RCTab, pref_voting, abcvoting — with the four floors a ladder can end on and the disclosure differences. This hub says where ties happen; that page says exactly what each engine does about them.

The "dead rung" gotcha (STAR). STAR's ladder is pairwise → five-star → lot, and the five-star step counts only votes of score 5 (the scale max). If the tied candidates have no 5s (or equal 5s), that rung reads 0–0 — a dead rung — and the tie drops straight to the lot; it never steps down to the 4s. So on a low-scoring or coarse ballot the lot decides earlier and more often than the ladder's length suggests. Mnemonic: "it counts fives, not fours." → The "dead rung".

"Break the tie by margins" is not a rule until you say margins over what (Ranked Robin). Degrees of ties — the tied candidates become finalists, and the published protocol then asks two different questions in order: the 1st Degree wants the greatest sum of win margins over the other finalists, the 2nd Degree the same sum over the whole field. The pool moves between the rungs, and that alone changes winners. For exactly two finalists the 1st Degree simply is their head-to-head. Neither engine in this library implemented the ladder, and they failed in opposite directions: this one had no 1st Degree rung at all until 2026-08-19 — adding it changed the winner on 11 of the repo's 100 Ranked Robin cases — while BetterVoting has no rung for three or more tied candidates, so every three-candidate cycle drops straight to its shuffle.

Runnable tie cases (flat-score ballots engineered to tie) live in Flat_scores_ties/ — useful for seeing exactly when each round produces a tie and how the lot order settles it — and the dead-rung cases isolate the five-star-vs-lot step (with a generator for more).

Cross-method deep dive: Tie-Breaking: STAR vs. RCV-IRV — Fewer Ties, or Easier Ties? — why RCV-IRV's strict ranks make a tie harder to resolve deterministically (fewer signals, bigger consequence), not easier.

Why the contrived cases? Why Build "Silly" Tie Elections? — the value of deliberately-degenerate probes (5,5,5 / 4,4,4, rotations), plus a flow-chart map of every single-winner STAR tie case and the test that covers it.

When the tie strikes mid-count: Parallel Universe Tiebreaking — every method above resolves a tie at the end of the count, but an elimination method can tie over who to eliminate, and whichever candidate you cut changes every round after it. PUT refuses to choose: it runs every legal elimination order and elects the union of the winners. A four-voter case where standard RCV-IRV reports one winner and PUT reports two — cross-checked against pref_voting — plus what our own IRV engine's random.seed(0) really buys.

When the batch is everyone: Batch elimination — the tie clause most statements of instant-runoff leave out. "Eliminate the candidate with the fewest first choices" is undefined when several are tied for fewest; one standard answer removes all of them at once. Push it and every remaining candidate can be tied, the batch takes the whole field, and the count stops with all of them tied for the win — which on a symmetric profile is the only answer a fair rule is allowed to give. Three runnable cases, the Coombs mirror, the case where it declares a tie in an election that has a clear Condorcet winner, and the six row-orderings that show our own engine deciding by data-entry order instead.

When the coin flip is doing real work: The load-bearing tiebreak — a 34-voter election where an IRV first-round tie decides the winner, and the two legal branches turn out to be the answers of two different families of voting theory: eliminate A and you get Coombs' winner, eliminate B and you get what every Condorcet cycle-resolution rule elects. The profile is a cycle, so no outside standard can adjudicate — and Coombs reaches its answer with no tie at all, which is what proves the indeterminacy belongs to IRV's elimination criterion rather than to the ballots. Three engines, three different disclosure behaviours, and only the certified one prints that it broke a tie.

When the report never mentions it: The silent tiebreak — every entry above is a tie somebody could see. This one is a three-way tie that a library broke by ballot-column order and printed as a single decisive committee, in a case file whose own description says "no tie, no drama" — and the committee it picked agreed with three other rules and with the answer key, so nothing in the output looked wrong. Rearranging the columns elects somebody else, which makes it a neutrality failure of exactly the kind the impossibility theorem below predicts, and the general shape — one API, a default that varies per function, consumed by a loop — is not specific to voting software. Includes the two probes that catch it in any engine.

When you go looking for the ones you have not met: Coarse ballots and the tie ladder — shrink the range voters actually use to 0/1/2 and ties stop needing to be designed, so a sweep can ask whether this hub's list is complete. 445,154 small elections across the Equal Vote methods produced no tie category with no lesson behind it — but they did show that a coarse ballot silently shortens STAR's ladder, because the second rung counts fives and a three-star electorate has none: the lot then decides nearly six times as often as it does at full scale. Includes four ballots that elect different winners depending only on whether the paper says the top is 5 or 2, the all-zeros election at the very bottom, and the reporting bug the sweep found in this library's own machine-readable results.

Why ties exist at all: Ties Are Forced — the small impossibility theorem (Moulin 1983) proving that anonymity + neutrality + Pareto cannot coexist with always naming one winner, and that every even electorate has a forced tie. It supplies the theory the rest of this hub assumes: the four ways out, what each one costs, and why LH (fixed lot order), BetterVoting (random) and pref_voting (returns the tied set) are three defensible answers to a choice the theorem makes unavoidable.

How often each method ties, measured: How often does each Condorcet method tie? — this hub opens by saying tie frequency differs by method and never says by how much. It does now, on a conjecture left unanswered on Talk:Copeland's method since 2021. At a 101-voter electorate Copeland ties 2.6–3.2× as often as Schulze or Minimax, and given a cycle at three or four candidates it ties always — arithmetically, it cannot break one. But the conjecture reverses on an even electorate, which nobody in that discussion raised: drawn matchups are margins of zero, so the margin-readers go blind and Copeland's half-a-win still separates. On ten voters Copeland ties less than half as often as Schulze. Includes the sampler bug that first reported a clean, quotable, entirely false 0.00%.

Glossary: lot numbers · dead rung.


This is a topic hub (cross-method index). The authoritative write-ups live in the per-method folders linked above. See the topics index for the other topic hubs.