Range / Score Voting¶
Every voter grades each candidate on a fixed scale — canonically 0–9; the candidate with the highest total score wins. No runoff, no elimination — just add up the grades. Range is the most expressive single-mark method: Approval with more than one bit, and STAR without the runoff.
→ Run it: the canonical 0–9 case range_101_0to9_c3_b5.yaml (page) · the same election on STAR's 0–5 scale range_101_c3_b5.yaml (tabulated) · the Black Curtain, read as Range → The Black Curtain, read as Range / Score voting · Engine: the Range engine (pref_voting). · Family: Approval · STAR · Majority Judgment (the same ballot, counted by the median) · fidelity ladder.
Non-EVC method. Range is what STAR improves on, so this library teaches about it rather than promoting it — it lives in other methods, not the numbered root folders. The honest comparison is the point.
How it works¶
The ballot is a score grid — grade every candidate independently. Here is the canonical one, from the 0–9 case: five neighbours picking a tree for Main Street, each ballot beside the numbers the file records.
The ballots as marked — the filled bubble is the score given, and the score is the number in its column:
| # | Ballot as marked | Ash | Birch | Cedar |
|---|---|---|---|---|
| 1 | ![]() |
9 | 7 | 0 |
| 2 | ![]() |
9 | 6 | 1 |
| 3 | ![]() |
0 | 8 | 9 |
| 4 | ![]() |
1 | 9 | 8 |
| 5 | ![]() |
0 | 9 | 7 |
Counting is a single sum: Birch 39, Cedar 25, Ash 19 → Birch wins, though nobody made it their favourite. No finalists, no rounds.
It is not a STAR ballot — two differences worth naming¶
A STAR ballot is a score grid too, and the two get confused constantly. What separates them on paper:
| Range / Score | STAR | |
|---|---|---|
| Scale | 0–9 | 0–5 |
| The rungs are drawn as | plain circled digits | stars |
Neither difference is cosmetic-only, and neither is part of the arithmetic. The stars are STAR Voting's house style — Wikipedia's score-voting article uses star glyphs only for STAR and for consumer ratings (IMDb, Amazon), never for score voting generally. And 0–9 is Range's own default: that article's sample ballot runs 0–9 as circled digits with the instruction "0 is worst; 9 is best", and rangevoting.org prints rows as Andrews [0 1 2 3 4 5 6 7 8 9 NO OPINION]. (Warren Smith prefers 0–99 for expressiveness but says outright that "simpler is 0 to 9" and does not insist. rangevoting.org is advocacy-adjacent, so it is cited here for the ballot's form, not for a verdict — see how this repo sources claims.)
One thing our ballots leave off deliberately: rangevoting.org's NO OPINION column. It is genuinely canonical, but it means "leave me out of this candidate's average" — and this library's engines count a blank as a 0, which is a different rule. Drawing a column whose semantics we don't tabulate would be the same class of error as the stars, so the cases here use blank = 0 and say so.
The same election on STAR's scale¶
Because the difference is the paper and not the count, the same election reads fine at 0–5 — this is the 101 case, and these are exactly the marks a STAR ballot would have collected, minus the stars:
The ballots as marked — the filled bubble is the score given, and the score is the number in its column:
| # | Ballot as marked | Amy | Beth | Cole |
|---|---|---|---|---|
| 1 | ![]() |
5 | 4 | 0 |
| 2 | ![]() |
5 | 3 | 1 |
| 3 | ![]() |
0 | 4 | 5 |
| 4 | ![]() |
1 | 5 | 4 |
| 5 | ![]() |
0 | 5 | 5 |
Same rule, same shape of result: Beth 21, Cole 15, Amy 11 → Beth wins. What the coarser scale costs is resolution — on 0–9 a voter can separate a 7 from a 6, and on 0–5 they cannot. That is not always harmless: compressing a 0–9 ballot to 0–5 can change who reaches STAR's runoff, and through that who wins — see scale granularity can flip the winner. Wider scales still (0–10, 0–99) work exactly the same way; our Sullivan case runs 0–10.
Where it sits in the scored family¶
- Approval is Range at 1-bit resolution — grades restricted to
{0, max}. - STAR is Range's score round + an automatic runoff. The runoff exists precisely to blunt Range's strategy problem (below).
- So the three are one family at increasing resolution/robustness: Approval → Range → STAR. See the fidelity ladder.
Pros and cons¶
| Pros | Cons |
|---|---|
| ✅ Maximally expressive — say how much you like each candidate, independently. | ⚠️ Strategy-exposed. A voter's rational play is often to give only max/min (exaggerate), which collapses Range toward Approval. |
| ✅ No vote-splitting / spoiler in the choose-one sense — scoring a new candidate never lowers another's score. | ⚠️ Not majoritarian. A candidate a slim majority strongly prefers can lose to one a broad group mildly likes. Range fails the Majority Criterion — pushed to the extreme in Range Voting's paradoxes, where one enthusiastic grade overrules three majorities. |
| ✅ Precinct-summable & simple to tally — just add columns; none of RCV-IRV's round-by-round machinery. | ⚠️ The scale / normalization problem. Honest voters using the scale differently — or a shifted "where's my line" — changes results (the approval-line issue, one notch up). |
| ✅ Monotone — more support never hurts a candidate (unlike IRV). | ⚠️ Fails Later-No-Harm — grading a compromise can cost your favorite. |
| ✅ Passes the Equal Vote / balance test and elects the utilitarian/consensus winner. | ⚠️ Scale granularity can flip the winner — see the 301 case. |
The one-line summary: Range asks the richest question, but rewards exaggeration; STAR keeps Range's expressive ballot and adds a runoff to make honesty safer. Which trade-off you want is the whole debate.
A worked comparison — one electorate, four cardinal methods¶
Ballot data adapted, with attribution, from Brendan W. Sullivan, An Introduction to the Math of Voting Methods (2022, ISBN 978-1-958469-03-3), Examples 5.1–5.3. The numbers are reused for method comparison; all commentary below is original.
Ten voters grade four candidates A, B, C, D on a 0–10 scale. Range just sums the grades:
Total score (sum of all grades):
C 70 ← winner
A 61
D 58
B 47
C wins with 70 — not because C is everyone's favorite, but because C collected many 10s: support that's both broad and strong. Now hold those exact ballots fixed and change only the method:
| Method (same ballots) | Winner | Why |
|---|---|---|
| Range / Score (mean) | C — 70 pts | highest total |
| Score, median variant (greatest-median) | C — median 8.5 | half the electorate gave C 8.5 or higher |
| STAR (score + automatic runoff) | C | C leads scoring at 70, then wins the runoff over A, 6–3 |
| Approval (a 1-bit score) | A | in Sullivan's companion Example 5.1, A has 8 approvals to C's 7 |
The lesson: the cardinal ballot's resolution can change the winner. Collapse the 0–10 scale down to a single approve / don't-approve bit and A — with more approvers but fewer enthusiasts — overtakes C. Give voters room to say how much, and C's wall of 10s wins under Range, median-Range, and STAR alike. (Mean and median happen to agree here, but they needn't — some Score variants use the median precisely because a few extreme scores can't drag it the way they drag an average. Medians: A 7.0, B 5.0, C 8.5, D 5.5. For an election where they don't agree — the same ballots, Score electing one candidate and the median electing another — see MJ vs Score.)
Run it: range_sullivan_score_c4_b10.yaml (tabulated) — the range engine (pref_voting score_voting) confirms C by both the hand sum and the median cross-check. STAR on the same ballots also elects C — worked, with the how-to for running LH on a non-standard scale, in Unorthodox STAR — a scale wider than 0–5.
Ballot examples¶
06_Other/Range/cases/range_101_c3_b5.yaml— the intro above (0–5, three candidates).06_Other/Range/cases/range_sullivan_score_c4_b10.yaml— Sullivan's Example 5.2 (0–10, four candidates; the worked comparison above).- Black Curtain, read as Range — the four Black Curtain elections tabulated by the range engine: The Black Curtain, read as Range / Score voting. Range elects the broadly-liked candidate (Bob, Cal, Ann…) where STAR's runoff hands the seat to the majority's favorite — the sharpest illustration of the Range-vs-STAR trade-off.
Links¶
- The Center for Range Voting — rangevoting.org — Warren D. Smith's canonical range-voting site (research, Bayesian-regret simulations, and strong advocacy — read it as an advocate's case, alongside the cons above).
- Equal Vote Coalition — STAR and the scored family.
- Glossary: Score / Range voting — Glossary — voting methods & criteria.
Tabulation (the details)¶
Range files here are tabulated by Range / Score voting tabulation engine, which wraps pref_voting's score_voting and cross-checks it against a hand sum. Full report for the 101 case: range_101_c3_b5_RANGE_tabulated.txt.
--- Range / Score Voting (single winner) ---
Range / Score Voting 101 — highest total score wins
Tabulating 5 ballots on a 0–5 scale (range/score: highest total wins, no runoff).
Total score (sum of all grades):
Beth 21 ← winner
Cole 15
Amy 11
Cross-check — pref_voting score_voting: Beth (✓ agrees with the hand count)
Winner — Range / Score Voting (single winner)
Beth









