RCV-IRV — the ranked-ballot tabulation (for comparison)¶
STAR uses score ballots (rate each candidate 0–5). The other family taught in this repo uses ranked ballots, counted by instant-runoff (IRV) — what the US usually calls "RCV." It's a genuinely different count: eliminate the candidate with the fewest first choices, transfer those ballots to their next choice, and repeat until one candidate has a majority of the still-active ballots.
Because the count is different, so are its failure modes — center squeeze, exhausted ballots, non-monotonicity — none of which are STAR's. In this repo, ranked ballots are tabulated by a separate engine; STAR / score files never touch it, and vice versa.
This folder is the RCV-IRV slot in the tabulation-engines hub, next to the BetterVoting reader (BetterVoting's display) and reading a STAR report (the LH STAR report). The substantive RCV-IRV explainers live with the other concept pages:
- RCV is a confusing name
- Is IRV "just plurality"?
- Center squeeze
- IRV non-monotonicity
- Exhausted ballots
- IRV isn't summable
Side-by-side with STAR: STAR vs RCV-IRV, step by step · RCV-IRV vs. STAR.
Before you trust a close count from this engine, read its known limitation on elimination ties. The vendored pyrankvote breaks a tie for last on later ranks — second choices, then thirds — which is a real ballot-based ladder. But when that ladder runs out (every candidate tied at every rank), the winner falls out of the order the ballot rows are written in, and the report does not say so. Rare in practice, and worth knowing exists: Batch elimination — what happens when the batch is everyone.
That gap is now measured against RCTab, the certified tabulator real US jurisdictions count on, which makes the same decision through a named tiebreakMode rather than by file layout. Run on the tie cases it agrees on every winner — and its answer holds steady across all 6 (and 24) ballot-row orderings where this engine's changes. The runs are in tools_adam/rctab_tabulation_engine/; the finding is on Batch elimination.