"Exhausted Ballots" — What FairVote's Word Actually Hides¶
Voting 301 · advanced · an RCV-IRV misconceptions reference¶
The deepest RCV-IRV terminology trap, so this file goes slow. If you remember one thing:
"Exhausted ballot" is ONE word stretched over several very different things. That vagueness is the whole problem: it lets proponents wave the issue away by pointing at the harmless cases, while the method-caused cases — where a voter ranked everyone correctly and still had rankings thrown out — hide under the same label.
This is a clarity document, not a hit piece. We state FairVote's own definition and steelman their defense, then show the distinctions they leave out. Throughout, the contrast is STAR: STAR counts every ballot in both rounds, so nothing is ever "exhausted."
Cues: [DEMO] run a file · [SLIDE] show a slide · [REPO] lesson file.
→ This is one entry in the broader RCV-IRV Misconceptions & False Claims — an index index (which routes every common "RCV" claim to its rebuttal).
1. Precision first: exhaustion is an IRV thing, not a ranked-ballot thing¶
The single most useful correction: ballot exhaustion is a property of IRV's eliminate-and-transfer count, not of ranked ballots in general. The same ranked ballot, counted by Ranked Robin or any Condorcet method, reads every ranking — nothing exhausts. Most voters actually assume that's how their ranked ballot is counted; almost everywhere it isn't (it's IRV).
So the precise sentence is "RCV-IRV has exhausted ballots," never "RCV has exhausted ballots." (See TIPS — Terminology.)
2. What "exhausted" actually conflates — the taxonomy¶
FairVote's own definition (their FAQ) gives three reasons a ballot goes "inactive / exhausted": (1) the voter didn't rank all candidates and all their ranked candidates got eliminated — "voluntary abstention," their most common case; (2) an administrator ranking limit (e.g. cap of 3) eliminated all their ranked candidates — "involuntary"; (3) ballot error, e.g. the same rank twice (rare). Accurate as far as it goes — but it blurs two very different buckets:
Bucket A — "this can happen under Choose-One too" (mostly voter-side): - Overvotes — marking two candidates at one rank; spoils that rank. - Undervotes / skipped ranks — note the trap: in Choose-One an undervote is a blank, uncounted ballot; in RCV-IRV an "undervote" is a single skipped ranking, and the ballot may still count. Same word, different thing. - Voluntary truncation / bullet voting — the voter chose to rank only one or a few.
These are roughly comparable to a Choose-One voter who skips the race or backs a sure loser. Concede them; they're not the interesting part.
Bucket B — "purely a product of the elimination count" (the ones glossed over): - Involuntary truncation (ranking limits). You'd have ranked more, but the ballot only allowed 3–5; all of them got eliminated. You did nothing wrong. - Exhausted-untransferable. Your lower choices were eliminated before your favorite, so when your favorite finally loses, the vote has nowhere left to go. - Nonexhausted-untransferred. Your top remaining choice reaches the final round and loses — your lower preferences are simply never read, because counting stopped. (This one isn't even labeled "exhausted," yet the rankings still don't count — which is exactly why the famous promise is false.)
Bucket B is the part that's purely an artifact of IRV's round-by-round elimination. A voter who ranked everyone, correctly and completely, can still have real preferences discarded. (On the Exhausted Ballots deck these are the yellow box = ranking-limit truncation, red box = exhausted-untransferable, and blue box = nonexhausted-untransferred.) The vetted taxonomy (note that nonexhausted-untransferred is active-but-under-counted, not literally "inactive"):
flowchart TD
R["'Exhausted' is too fuzzy —<br/>discarded / under-counted ballots & rankings"]
R --> A["Voter-side — LESS problematic<br/>(comparable to Choose-One; concede these)"]
R --> B["Count-artifact — PROBLEMATIC<br/>(ranked fully & correctly, yet discarded)"]
A --> A1["Overvote<br/>(two marks at one rank)"]
A --> A2["Undervote / skipped rank"]
A --> A3["Voluntary truncation<br/>(bullet voting, by choice)"]
B --> B1["Inactive / 'exhausted'<br/>(the ballot stops counting)"]
B --> B2["Active but under-counted<br/>(ballot still counts; lower ranks never read)"]
B1 --> Y["Involuntary truncation —<br/>ranking limit (cap of 3–5)"]
B1 --> RR["Exhausted-untransferable —<br/>all ranked candidates eliminated"]
B2 --> BL["Non-exhausted-untransferred —<br/>favorite makes the final two & loses"]
F["FALSE CLAIM: 'If your 1st choice is eliminated,<br/>your next choice will be counted.'<br/>Fails across this whole branch."]
Y -.-> F
RR -.-> F
BL -.-> F
%% stroke-only highlighting: hard-coded fills break dark mode (the site theme
%% controls label color, so light fills get light text); borders work in both.
classDef yellow stroke:#eab308,stroke-width:3px;
classDef red stroke:#ef4444,stroke-width:3px;
classDef blue stroke:#3b82f6,stroke-width:3px;
classDef claim stroke:#ef4444,stroke-width:3px,stroke-dasharray:6 3;
class Y yellow;
class RR red;
class BL blue;
class F claim;
Static version for slides: inactive_ballot_taxonomy.svg
[SLIDE] Exhausted Ballots (deck) — the red-box / blue-box flow chart (see LINKS.md). [REPO] full source notes: Exhausted Ballots (doc), in the same file.
3. The false claim that the vague word protects¶
The line you'll hear: "If your first choice is eliminated, your next choice will be counted." It is false, and the fuzziness of "exhausted" is what lets it pass:
- If your favorite makes the final two and loses, your other rankings are never read — that's the nonexhausted-untransferred case.
- Your next choice may already be eliminated by the time your vote is free to move, so it transfers to nobody.
- Even the softer phrasing — "next choice" instead of "second choice" — is only less wrong, not right. And note the smuggled conflation of "first choice" with "first round."
The honest version is: which of your rankings get counted depends on the order of elimination — something you can't see or control.
A concrete example — which ranks IRV threw away¶
27 voters, three candidates on a spectrum (center_squeeze_star.yaml):
| Voters | Their ballot (full ranking) | What IRV did with it | Rank IRV never read |
|---|---|---|---|
| 12 | Left > Center > Right | Left led every round and won | Center (2nd), Right (3rd) |
| 9 | Right > Center > Left | Right reached the final two, then lost | Center (2nd), Left (3rd) |
| 6 | Center > Left > Right | Center eliminated in round 1; ballot transferred to Left | Right (3rd) |
IRV's rounds: first choices are Left 12, Right 9, Center 6 — so Center is eliminated first; its 6 ballots move to Left, and Left wins 18–9. Now look at the last column: 21 of 27 voters ranked Center second, and IRV read none of those rankings. Left's and Right's voters never transferred (their first choice survived round 1), so their Center-2nd preference was simply never consulted.
What those ignored ranks would have said: Center beats Left head-to-head 15–12 and beats Right 18–9 — Center is the Condorcet (pairwise) winner, the candidate a majority prefers over each opponent. IRV eliminated Center anyway, for having the fewest first choices, without ever making those head-to-head comparisons.
This is the misconception in one line. The public pictures RCV as pairwise — "my second choice gets compared head-to-head." That's a Condorcet count (Ranked Robin), not IRV. IRV only ever looks at each ballot's top surviving mark, so a second choice is read only if your current candidate is eliminated. Here, that meant 21 voters' decisive Center ranking never counted at all.
STAR (and Ranked Robin) read every ballot: STAR elects Center, and the engine prints [Condorcet Winner] = Center. Run both to see it:
python3 06_Other/RCV_IRV/RCV_IRV_tabulation_engine/rcv_irv_tabulation.py method_comparisons/center_squeeze/cases/center_squeeze_star.yaml # Left wins; Center out in round 1
python3 STARVote_LH_tabulation_engine/starvote_larry_hastings.py method_comparisons/center_squeeze/cases/center_squeeze_star.yaml # Center wins; Condorcet = Center
4. The "manufactured majority" — majority of remaining ballots¶
Because exhausted ballots leave the count, IRV's "50% + 1" is a majority of the ballots still active, not of all ballots cast. Alaska 2022 (US House special): when Begich was eliminated, 11,243 ballots exhausted; Peltola's 91,266 votes were 51.5% of the remaining ballots but only 48.4% of all Round-1 ballots — a "majority winner" on a shrinking denominator.
It's systematic, not a one-off. A peer-reviewed study (Burnett & Kogan, Electoral Studies, 2015) of 600,000+ ballots across four California IRV elections found final-round exhaustion from ~9.6% to 27.1% (Oakland's 2014 mayoral race ~24%) — and in all four, the winner won with less than a majority of all ballots cast.
5. The honest steelman — and the precise response¶
FairVote's defense: "In Choose-One, every vote not for the winner is 'wasted' too — so what's new?" Fair, for Bucket A: a first-round bullet vote or a spoiled ballot really is comparable to Choose-One. Concede that cleanly.
The response: the comparison breaks on Bucket B. Those losses happen in later rounds, to voters who ranked fully and correctly — information they did express is discarded purely because of the elimination order. Choose-One has no equivalent, because Choose-One never asked for more than one mark. That asymmetry — not the harmless first-round cases — is the real criticism, and it's the one the overloaded word "exhausted" is so good at hiding.
6. The STAR contrast (the payoff)¶
This is why STAR sidesteps the entire mess: STAR counts every ballot in both rounds. Nothing is eliminated, so nothing exhausts. And a STAR Equal Support ballot (equal scores on the two finalists — "no preference" between them) is the opposite of an exhausted one: it's present data — a voter who declared a tie — that still counted in the scoring round to help pick the finalists. It isn't missing information thrown away; it's information that says "I'm equally happy with either."
That distinction — declared tie (STAR) vs lost voice (IRV exhaustion) — is the hinge, and it's developed in full in the companion episode.
[REPO]
are_equal_score_votes_discounted.md— the STAR-side of this same contrast (Segment B: "declared tie vs lost voice"). [DEMO]equal_support_runoff_demo.yaml— Equal Support ballots that picked the finalists, then stayed neutral in the runoff.
7. The debate — an RCV advocate vs a STAR advocate¶
The claim you'll actually meet isn't a neutral question — it's a reassurance. Here's the same taxonomy as the confrontation: the RCV advocate offering the comforting line, the STAR advocate pulling apart what's true from what's oversold.
RCV Advocate: Ranked Choice means your vote always counts. If your first choice can't win, it just transfers to your next choice. Nobody's vote is wasted.
STAR Advocate: That's the most oversold sentence in the whole debate — because it's only true when your favorite is eliminated early. If your favorite instead makes the final two and loses there, none of your lower rankings are ever read; the count already stopped. And sometimes your second choice is already gone before your ballot can move to it. For a lot of voters, "your next choice will be counted" is simply false.
RCV Advocate: Even so — only a small share of ballots ever "exhaust," and that's the voter running out of choices, not the system failing them.
STAR Advocate: "Exhausted" is one word hiding five different situations — overvotes, skipped ranks, bullet votes, the ranking limit, and the elimination-order cases. Some are the voter's own doing and perfectly fair. But others happen to people who ranked everyone correctly, purely because of the order candidates dropped out. Folding all five under one fuzzy word lets you point at the harmless cases while the harmful ones ride along — including inside the "majority" you report, which is only a majority of the ballots still left.
RCV Advocate: And you'll tell me STAR has no version of this.
STAR Advocate: STAR never eliminates anyone, so nothing exhausts — every ballot is read in both rounds. The nearest thing is an Equal Support ballot: equal scores on the two finalists, a voter saying "I like these two the same." But that's the opposite of an exhausted ballot — it's present data that already counted in the scoring round to help choose those finalists. A declared tie, not a lost voice.
8. How to deploy it¶
- Don't open with this. It's 301, and it requires the audience already grasp IRV's round-by-round elimination. With a general audience, the one-liner ("declared tie, not lost voice") is enough.
- Lead by splitting the word. Half the disagreement evaporates the moment you separate Bucket A (fair) from Bucket B (method-caused).
- Concede Bucket A immediately — the candor is what earns the room for Bucket B.
- End on STAR, not on RCV's flaws: "counts every ballot, in both rounds."
Where this fits in the overall teaching¶
- Level: 301 · deep dive — pairs with
favorite_betrayal_voting_301.md(the other IRV-internals deep dive) andare_equal_score_votes_discounted.md(the STAR no-preference side of this exact contrast). - Terminology: strictly RCV-IRV / IRV here — exhaustion is IRV-specific; Ranked Robin and the Condorcet methods read every ranking.
Cross-references:
- GLOSSARY.md — "Exhausted ballot," "Equal Support / No Preference."
- TIPS_terminology.md — exhaustion is IRV-specific, not all RCV.
- CURRICULUM.md — 301.8.
- LINKS.md → Exhausted Ballots (doc), Exhausted Ballots (deck), Full Deck 2025 ("Ranked Choice Deal Breakers" / exhausted-ballot slides), and the RCV-IRV exhausted-ballot source notes group (wasted-votes glossary, ranking-limit, definition, tabulation-transparency, commentary).