Skip to content

01_STAR/03_Criteria/tactical_maximization — the worked STAR up-voting pair

Level: 201 · for voters

The strategy nobody warns you about, because it doesn't feel like a strategy: you keep your favorite at 5, you lower nobody, you just raise a candidate you're lukewarm about — insurance, in case your favorite can't win. In the Equal Vote taxonomy that's expansive sincerity, also called tactical maximization or up-voting, and it is the one insincere vote that looks generous.

In STAR it has a specific, countable price. A score does two jobs — it picks the finalists in the scoring round, and it sets your preference order in the automatic runoff. Give two candidates the same 5 and you have voted for both in the first job and for neither in the second: your ballot registers Equal Support and sits out the runoff. Hedge onto a candidate who then reaches the final two against your favorite, and you have spent your vote helping them get there and kept nothing back to stop them.

This pair shows exactly that, on nine ballots.

The electorate

A neighborhood association of nine elects a chair: Alma, Bruno, Celia. Their honest ballots, as marked — the first four are the hedgers-to-be:

The ballots as marked — the filled bubble is the score given, and the score is the number in its column:

# Ballot as marked Alma Bruno Celia
1 A 0–5 STAR ballot — Alma's core — Bruno is fine, Celia is not: Alma 5, Bruno 3, Celia 0. 5 3 0
2 A 0–5 STAR ballot — Alma's core — Bruno is fine, Celia is not: Alma 5, Bruno 3, Celia 0. 5 3 0
3 A 0–5 STAR ballot — Alma's core — Bruno is fine, Celia is not: Alma 5, Bruno 3, Celia 0. 5 3 0
4 A 0–5 STAR ballot — Alma's core — Bruno is fine, Celia is not: Alma 5, Bruno 3, Celia 0. 5 3 0
5 A 0–5 STAR ballot — an independent, leaning Alma: Alma 4, Bruno 2, Celia 1. 4 2 1
6 A 0–5 STAR ballot — the Bruno bloc: Alma 1, Bruno 5, Celia 3. 1 5 3
7 A 0–5 STAR ballot — the Bruno bloc: Alma 1, Bruno 5, Celia 3. 1 5 3
8 A 0–5 STAR ballot — the Bruno bloc: Alma 1, Bruno 5, Celia 3. 1 5 3
9 A 0–5 STAR ballot — Celia's one loyalist: Alma 0, Bruno 2, Celia 5. 0 2 5

Two facts to hold onto: Bruno leads on points (31 to Alma's 27), and Celia is nowhere (15 — she cannot reach the runoff from there, and never does in either half).

Half 1 — honest ballots elect Alma

[Divergence from STAR]
  STAR     = Alma
  Approval = Bruno   (differs from STAR)

[Runoff Reversal]
 - Score Round Winner(s) = (Bruno)
 - Runoff Round Winner   = (Alma)
  Candidate Bruno earned the highest total score, but
  Candidate Alma won the automatic runoff — not a malfunction,
  STAR working as designed: the runoff elects the finalist preferred
  by the majority (of voters with a preference).

--- STAR Voting Method (single winner) ---

[STAR Voting]
 Tabulating 9 ballots.
Count × Alma,Bruno,Celia
    4 ×    5,    3,    0
    3 ×    1,    5,    3
    1 ×    4,    2,    1
    1 ×    0,    2,    5

[STAR Voting: Scoring Round]
 The two highest-scoring candidates advance to the next round.
   Bruno         -- 31 -- First place
   Alma          -- 27 -- Second place
   Celia         -- 15
 Bruno and Alma advance.

[STAR Voting: Automatic Runoff Round]
 The candidate preferred in the most head-to-head matchups wins.
   Alma          -- 5 -- First place
   Bruno         -- 4
   Equal Support -- 0
 Alma wins.
   Runoff math:
     9  ballots cast
   − 0  Equal Support (no preference between the two finalists)
     ─
     9  voters with a preference  (majority = 5)
           Alma 5 (56%)  ·  Bruno 4 (44%)

[STAR Voting: Winner — STAR Voting Method (single winner)]
 Alma

Bruno wins the scoring round and loses the runoff — the ordinary runoff reversal, STAR working as designed. Read the last line: 9 of 9 voters had a preference. Alma's 5–4 margin is the four hedgers plus the independent. Their honest 3 for Bruno was worth real points to him and cost them nothing, because in the runoff a 5 over a 3 is a full vote for Alma.

Half 2 — the same four raise Bruno to a 5, and Bruno wins

Nothing else changes. Alma keeps her four 5s and her total of 27. The four simply move Bruno 3 → 5, hedging against a Celia win. On paper the difference is one filled bubble, and it is the whole election:

The ballots as marked — the filled bubble is the score given, and the score is the number in its column:

# Ballot as marked Alma Bruno Celia
1 A 0–5 STAR ballot — Alma's core — hedged, Bruno raised to a 5: Alma 5, Bruno 5, Celia 0. 5 5 0
2 A 0–5 STAR ballot — Alma's core — hedged, Bruno raised to a 5: Alma 5, Bruno 5, Celia 0. 5 5 0
3 A 0–5 STAR ballot — Alma's core — hedged, Bruno raised to a 5: Alma 5, Bruno 5, Celia 0. 5 5 0
4 A 0–5 STAR ballot — Alma's core — hedged, Bruno raised to a 5: Alma 5, Bruno 5, Celia 0. 5 5 0
5 A 0–5 STAR ballot — an independent, leaning Alma — unchanged: Alma 4, Bruno 2, Celia 1. 4 2 1
6 A 0–5 STAR ballot — the Bruno bloc — unchanged: Alma 1, Bruno 5, Celia 3. 1 5 3
7 A 0–5 STAR ballot — the Bruno bloc — unchanged: Alma 1, Bruno 5, Celia 3. 1 5 3
8 A 0–5 STAR ballot — the Bruno bloc — unchanged: Alma 1, Bruno 5, Celia 3. 1 5 3
9 A 0–5 STAR ballot — Celia's one loyalist — unchanged: Alma 0, Bruno 2, Celia 5. 0 2 5

Two filled 5s in one column is what "I have no preference between these two" looks like on a STAR ballot.

[Divergence from STAR]
  STAR                   = Bruno
  Choose-One (Plurality) = Alma   (differs from STAR)
  RCV-IRV                = Alma   (differs from STAR)
  Note: 4 of 9 ballots (44%) had equal non-zero scores, so their ranks were
        decided by candidate priority order. The RCV-IRV result may be an
        artifact of score-to-rank tie-breaking rather than a deep
        difference.
  Note: Ranked Robin (RCV-RR) agrees with STAR, so RCV-IRV is the lone
        outlier — the classic center-squeeze signature.
  Full round-by-round reports (generated for review):
  RCV-IRV rounds: cases_tabulated/tactical_max_c3_b9_hedged_RCV-IRV_tabulated.txt

--- STAR Voting Method (single winner) ---

[STAR Voting]
 Tabulating 9 ballots.
Count × Alma,Bruno,Celia
    4 ×    5,    5,    0
    3 ×    1,    5,    3
    1 ×    4,    2,    1
    1 ×    0,    2,    5

[STAR Voting: Scoring Round]
 The two highest-scoring candidates advance to the next round.
   Bruno         -- 39 -- First place
   Alma          -- 27 -- Second place
   Celia         -- 15
 Bruno and Alma advance.

[STAR Voting: Automatic Runoff Round]
 The candidate preferred in the most head-to-head matchups wins.
   Bruno         -- 4 -- First place
   Alma          -- 1
   Equal Support -- 4
 Bruno wins.
   Runoff math:
     9  ballots cast
   − 4  Equal Support (no preference between the two finalists)
     ─
     5  voters with a preference  (majority = 3)
           Bruno 4 (80%)  ·  Alma 1 (20%)

[STAR Voting: Winner — STAR Voting Method (single winner)]
 Bruno

Three things happened at once, and only the first was intended:

  • Bruno's total went 31 → 39. The hedge worked in the scoring round — which was the round he was already winning.
  • The finalists didn't change. Bruno and Alma, both halves. The insurance bought nothing, because Celia was never the risk.
  • Four of nine voters left the runoff. Voters with a preference: 5 of 9 (4 Equal Support) — the hedgers scored both finalists 5, so STAR reads them as having no preference between them. Alma's 5–4 win becomes a 4–1 loss.

They insured against Celia and paid the premium to Bruno.

The rule this yields

A 5 you give a rival is loud in the scoring round and silent in the runoff. So hedge only against a candidate who can realistically reach the final two — and never against someone you'd want to beat there. Concretely, on a STAR ballot:

  • Equal scores are free when you truly don't care which of the two wins. That's the feature: Equal Support is an honest answer, and the runoff percentage line reports it rather than burying it.
  • Equal scores are expensive when you do care. One point of daylight — 5 and 4 — keeps your full vote in the runoff while giving your hedge nearly all the score support a 5 would have. That is almost always the right move, and it is honest, which is what makes STAR's advice easy: show your real order, use the whole scale.

Reading this fairly

This is a self-inflicted wound, not a criterion failure. STAR did nothing unexpected: it counted a stated indifference as indifference. The four voters got a worse result than honesty would have given them — which is the 1:1 strategy ratio doing its job, since a strategy that backfires this plainly isn't worth attempting. Compare the two directions:

  • Up-voting (here) → you lose your say in the runoff.
  • Down-voting / bullet voting → you lose your say among everyone you flattened to 0, and can knock your own compromise out of the finals.

Both fail for the same structural reason, which is the honest case for STAR's two-round count: exaggeration in either direction costs you information you might have needed. The one place STAR genuinely fails on paper is the top of the ballot — see the favorite-betrayal pair, the repo's concession case.

Run it yourself

python STARVote_LH_tabulation_engine/starvote_larry_hastings.py 01_STAR/03_Criteria/tactical_maximization/cases/tactical_max_c3_b9_honest.yaml
python STARVote_LH_tabulation_engine/starvote_larry_hastings.py 01_STAR/03_Criteria/tactical_maximization/cases/tactical_max_c3_b9_hedged.yaml

Pages: honest · hedged. Sources: tactical_max_c3_b9_honest.yaml · tactical_max_c3_b9_hedged.yaml. Full mirrors: honest · hedged.

LH-only, deliberately. The ballots in half 2 are a counterfactual — nobody cast them — so there is no BetterVoting election to link; the pair is reproducible from these files instead.


Related: the four kinds of insincere vote (the taxonomy hub) · expansive sincerity, across methods · restrictive sincerity — the mirror image · STAR's honest limits · strategic voting.

file: README.md