Skip to content

Monotonicity — when more support makes a candidate lose

A voting method is monotonic if raising a candidate on some ballots can never hurt them. RCV-IRV fails this: moving a winner up can change who gets eliminated in an earlier round and cost them the election. STAR doesn't. Each set is a before/after pair — identical except that some voters raise candidate X.

Read the reader-friendly pages (monotonicity_pages/); the .yaml beside each is the tabulatable source.

Page (read this) What it shows src
RCV-IRV — before baseline: X wins .yaml
RCV-IRV — after some voters raise X → X now loses (the paradox) .yaml
STAR — before the STAR counterpart: X wins .yaml
STAR — after raising X keeps X winning — no paradox .yaml

The lesson: read the two IRV pages back to back, then confirm STAR is unmoved by the same change.

The real one — the Upward Monotonicity Paradox, Alaska 2022

The synthetic pair above shows the mechanism; Alaska 2022 is a real election that did it. Had ~6,000 Palin-only voters ranked the winner Peltola first — giving her more first-place support — Peltola would have lost (those votes eliminate Palin first, and Begich then beats Peltola). This is the upward monotonicity paradox ("more is less"); its mirror is the downward paradox ("less is more"). Reproduced on a faithful 200-voter model:

Page (read this) What it shows src
Upward monotonicity (Alaska) — before RCV-IRV: Peltola wins (96–92) .yaml
Upward monotonicity (Alaska) — after raise Peltola on 7 ballots → Begich wins; Peltola loses .yaml

→ Full walk-through, mechanism, and why STAR / Ranked Robin can't do it (Ranked Robin elects Begich — the Condorcet winner — both times, completely unmoved).

And the mirror — the Downward Monotonicity Paradox, San Francisco 2020

The other flavour: shifting a loser down makes them win ("less is more"). Real case — San Francisco Board of Supervisors, District 7, 2020. Shifting the losing candidate Engardio down on ~800 ballots eliminates Melgar first (by 3 votes) and hands Engardio the win. Reproduced on the paper's real full-scale counts:

Page (read this) What it shows src
Downward monotonicity (SF D7) — before RCV-IRV: Melgar wins; Engardio loses .yaml
Downward monotonicity (SF D7) — after shift Engardio down on 800 ballots → Engardio wins .yaml

→ Full walk-through (Ranked Robin elects Melgar — the Condorcet winner — both times; RCV-IRV's result moves off the Condorcet winner under the paradox).

The 301 nuance — STAR fails a stronger variant

STAR passes the standard monotonicity criterion (mono-raise), as the pair above shows. But it does not pass the stronger mono-raise-delete (Woodall 1996): raising X and deleting the candidates now below X on those ballots can harm X — because burying the losers can change which candidate joins X in the runoff. This pair demonstrates it on a real election (X wins → raise X and delete the loser below X → Z wins):

Page (read this) What it shows src
STAR mono-raise-delete — before baseline: finalists X & Y, X wins the runoff .yaml
STAR mono-raise-delete — after raise X, delete Y (now below X) → Y drops below Z, finalists become X & Z, X loses .yaml

Concept & why this is a lab-grade failure (not the everyday promise): STAR & monotonicity. Up: method_comparisons — same ballots, different methods

file: README.md