Skip to content

Tabulation engines — who counts the votes, and how we know they're right

Every claim in this library is backed by a runnable election, and every election is counted by a real engine. This section documents the engines and — just as importantly — how they check each other.

The engines

  • LH starvote — the main engine: Larry Hastings' STAR tabulator, vendored as a lightly-documented fork, plus this repo's reporting wrapper. Start here; reading a STAR report decodes the output line by line.
  • BetterVoting — the Equal Vote Coalition's live election platform. Real elections are imported from it and re-tabulated independently, turning them into regression cases.
  • RCV-IRV — the vendored pyrankvote engine that counts ranked ballots (IRV/STV), so ranked-vs-scored comparisons run on a real implementation of each side.

The cross-checks

Outside engines and data

  • RCV Lab (rcv-lab.org) — a free RCV platform that publishes its sample elections as downloadable cast vote records, including three full-size real elections with their rules files. Its "Best Cycle-Breaking Rule" sample is reproduced and re-counted here, matching round for round. It also counts in the other direction: all 64 of our RCV-IRV cases run through its engine, 63 agreeing outright and the 64th exposing a silent tie in one of our own cases.
  • RCTab — the certified tabulator that counts real elections — the federally-tested engine actual US jurisdictions run on election night for RCV-IRV and STV. Wired up: our ranked cases convert to its CSV and run through it, and on the tie cases it agrees on every winner while being anonymous where our engine isn't.
  • RCVis (rcvis.com) — the best-known US ranked-choice results visualizer: Sankey diagrams, round bars, Wikipedia-ready tables. The one entry on this shelf that does no counting — it renders a result some other engine produced, so it is a presentation tool and never a cross-check. Its format library rcvformats is MIT and reusable; the site itself is GPL-3.0.

Up: 07_Concepts · the vendored fork's own ledger: LH_ENGINE_CHANGES.md.