Skip to content

STAR Reporting — reading and comparing results

One line: how a STAR result is reported — the numbers (scores, runoff counts, percentages), what a "no preference" ballot means (Equal Support vs abstention), and how the two reports in this repo — BetterVoting's visual display and the LH starvote engine's text report — present the same election (and where they occasionally diverge).

This folder is a hub: short, reporting-focused pages that link out to the canonical deep-dives rather than restate them.


What's in a STAR result

A STAR result is a short funnel, and every report shows the same stages:

  1. Counts / scores — add every star; each candidate gets a total. (STAR is summable: precinct totals add up. → STAR summability)
  2. Finalists — the two highest scorers advance.
  3. Automatic Runoff — each ballot goes to whichever finalist it scored higher.
  4. Percentages — the winner needs a majority of the voters with a preference between the two finalists. (→ Runoff percentages — two denominators)
  5. No-preference ballots — ballots that score the two finalists equally are Equal Support (counted in the score round, set aside from the runoff percentage); a fully blank ballot is an abstention. (→ GLOSSARY)

The two reports

Page What it covers
How the LH engine reports the text/audit report — score distribution, matrix, both rounds, the self-reconciling runoff line + "Runoff math" funnel
How BetterVoting reports the live visual — scoring bars, runoff bars/pie, the two percent columns, abstention count
Where the two reports differ same winner, different abstention/score-total bookkeeping — the flat-ballot reconciliation
Two views of the same scores not a disagreement — a division of labour: LH reads the ballot grid down the columns (per candidate), BetterVoting's nerd stats read it across the rows (per voter)

Report elements, up close

Page What it explains
Score Distribution the per-score breakdown (how many 5s, 4s … 0s, blanks); Total and Avg; 0 vs blank
Range of Scores vs Score Distribution the two margins of the ballot grid, and which report answers which question
Preference Matrix & Condorcet head-to-head For – Equal Support – Against; two-candidate vs full N×N; show_condorcet
Reporting true ties how a tie shows up in each report; why the runoff-percentage line is suppressed on an exact tie
LH reporting options what each options: flag (show_matrix, show_condorcet, brief, show_runoff_percent …) adds to or removes from the report

Canonical deep-dives (linked, not duplicated)

Worked examples — always two views

House rule: every reporting example carries two views of the same election — the BetterVoting result (by its BV election ID) and the LH engine result (the BV JSON tabulated by LH, i.e. the _tabulated mirror). Compare them side by side.

Example BetterVoting (election ID) LH engine (tabulated mirror)
Pet race, 461 ballots petbettervoting.com/pet/results best_pet_c7_b461_tabulated.txt · lesson
3-candidate flat-scores dq2dmm flat_scores_abstention_c3_b8_tabulated.txt · lesson
2-candidate minimal 3w6v4b small_abstention_c2_b5_tabulated.txt · lesson
Runoff tie (create one — see ties) 02b_c3_b2_three-candidates_tabulated.txt