Skip to content

Food-Truck Row — Bloc STAR: the same majority sweeps both seats

Generated from bv2210_fvg8y8_bloc_star_sweep.yaml — do not edit by hand. Regenerate: python STARVote_LH_tabulation_engine/tools_adam/scripts/build_yaml_pages.py.

Method: Bloc STAR (multi-winner, majoritarian) · 2 seats · Expected winners: Arepa, Bao

▶ Live on BetterVoting: vote · results ↗ (election fvg8y8 · test BV2210).

Scenario

One 100-voter electorate, two food-truck spots, five counts — this file is the Bloc STAR count (score ballots, two sequential STAR winners). The savory side is a 57-voter OUTRIGHT MAJORITY split across three trucks (Arepa 20 first choices, Bao 19, Churro 18); the sweet side is a disciplined 43-voter minority on two (Donut 22, Eclair 21). Same opinions on every ballot; only the counting rule changes: SNTV hands the majority ZERO seats (Donut+Eclair), Bloc STAR and Bloc Ranked Robin hand it BOTH (Arepa+Bao), STAR-PR and STV share them one per side (Arepa+Donut). THE HEADLINE HERE: score ballots cure the split (the majority's support pools across all three savory trucks) — but a BLOC count then hands 57% of the room 100% of the seats. This file also carries the engine's blocs: declaration, so the on-screen report prints the [Vote-splitting check]: 'the Savory bloc is an outright majority (57 vs Donut's 22) but split across 3 candidates, so Donut won Choose-One. STAR elected Arepa.' Majoritarian is a feature for ONE seat and a choice to make deliberately for many. Full lesson: README.md in this folder. Live on BetterVoting (Test ID BV2210): https://bettervoting.com/fvg8y8 — all five races agree with the LH engine, no genuine tie anywhere. Live results: https://bettervoting.com/fvg8y8/results

Parameters (from the YAML)

blocs:
  Savory: [Arepa, Bao, Churro]
  Sweet: [Donut, Eclair]

Ballots

Row 1 = candidate names; each later row is one voter's 0–5 scores (a N × prefix = N identical ballots).

Arepa,Bao,Churro,Donut,Eclair
20: 5,4,3,0,0
19: 4,5,3,0,0
18: 4,3,5,0,0
22: 0,0,0,5,4
21: 0,0,0,4,5

What the engine says

The count, step by step — the rounds and how the winner is reached:

[Divergence from STAR]
  STAR                   = Arepa
  Choose-One (Plurality) = Donut   (differs from STAR)

[Vote-splitting check]
  Choose-One first choices: Donut 22, Eclair 21, Arepa 20, Bao 19, Churro 18
  Plurality winner: Donut (22, 22.0%)
  Bloc 'Savory' = Arepa, Bao, Churro: combined 57 (57.0%); winner Donut is OUTSIDE it.
  => VOTE SPLITTING: the 'Savory' bloc is an outright majority (57 vs
     Donut's 22) but split across 3 candidates, so Donut won Choose-One.
     STAR elected Arepa.
  Bloc 'Sweet' = Donut, Eclair: combined 43 (43.0%); winner Donut is INSIDE it.
  => No vote splitting: the bloc's own front-runner (Donut) also wins
     Choose-One overall.

--- Bloc STAR Voting Method (2 winners) ---

[Bloc STAR]
 Tabulating 100 ballots to fill 2 seats.
Count × Arepa,Bao,Churro,Donut,Eclair
   22 ×     0,  0,     0,    5,     4
   21 ×     0,  0,     0,    4,     5
   20 ×     5,  4,     3,    0,     0
   19 ×     4,  5,     3,    0,     0
   18 ×     4,  3,     5,    0,     0

[Bloc STAR: Round 1: Scoring Round]
 The two highest-scoring candidates advance to the next round.
   Arepa         -- 248 -- First place
   Bao           -- 229 -- Second place
   Churro        -- 207
   Donut         -- 194
   Eclair        -- 193
 Arepa and Bao advance.

[Bloc STAR: Round 1: Automatic Runoff Round]
 The candidate preferred in the most head-to-head matchups wins.
   Arepa         -- 38 -- First place
   Bao           -- 19
   Equal Support -- 43
 Arepa wins.
   Runoff math:
     100  ballots cast
   −  43  Equal Support (no preference between the two finalists)
     ───
      57  voters with a preference  (majority = 29)
           Arepa 38 (67%)  ·  Bao 19 (33%)

──────────────────────────────────────────────────

[Bloc STAR: Round 2: Scoring Round]
 The two highest-scoring candidates advance to the next round.
   Bao           -- 229 -- First place
   Churro        -- 207 -- Second place
   Donut         -- 194
   Eclair        -- 193
 Bao and Churro advance.

[Bloc STAR: Round 2: Automatic Runoff Round]
 The candidate preferred in the most head-to-head matchups wins.
   Bao           -- 39 -- First place
   Churro        -- 18
   Equal Support -- 43
 Bao wins.
   Runoff math:
     100  ballots cast
   −  43  Equal Support (no preference between the two finalists)
     ───
      57  voters with a preference  (majority = 29)
           Bao 39 (68%)  ·  Churro 18 (32%)

[Bloc STAR: Winners — Bloc STAR Voting Method (2 winners)]
 Arepa
 Bao

Full audit — preference matrix, Condorcet, and score distribution

--- Preference Matrix ---
Head-to-head / pairwise comparison
Legend: For - Equal Support - Against
        Informational only — not part of the 2-winner count below,
        so no Top-2 finalists are marked.
                 |     Arepa    |     Bao     |    Churro   |    Donut    |    Eclair   |
-----------------------------------------------------------------------------------------
         Arepa > |     ---      |38 - 43 - 19 |39 - 43 - 18 |57 -  0 - 43 |57 -  0 - 43 |
           Bao > | 19 - 43 - 38 |    ---      |39 - 43 - 18 |57 -  0 - 43 |57 -  0 - 43 |
        Churro > | 18 - 43 - 39 |18 - 43 - 39 |    ---      |57 -  0 - 43 |57 -  0 - 43 |
         Donut > | 43 -  0 - 57 |43 -  0 - 57 |43 -  0 - 57 |    ---      |22 - 57 - 21 |
        Eclair > | 43 -  0 - 57 |43 -  0 - 57 |43 -  0 - 57 |21 - 57 - 22 |    ---      |

[Condorcet Winner]
  Condorcet Winner: Arepa — matches the STAR winner

[Condorcet Loser]
  Condorcet Loser: Eclair — loses every head-to-head matchup

[Score Distribution] (how many ballots gave each star rating)
                   Score
Candidate   5   4   3   2   1   0  | Total   Avg
Arepa      20  37   0   0   0  43  |   248   2.5
Bao        19  20  18   0   0  43  |   229   2.3
Churro     18   0  39   0   0  43  |   207   2.1
Donut      22  21   0   0   0  57  |   194   1.9
Eclair     21  22   0   0   0  57  |   193   1.9

Everything in one file: the _tabulated mirror (regenerated on every run; every analysis forced on).

Run it yourself:

python STARVote_LH_tabulation_engine/starvote_larry_hastings.py method_comparisons/food_truck_row/cases/bv2210_fvg8y8_bloc_star_sweep.yaml

See also

More cases in this set: bv2210_fvg8y8_bloc_rr_sweep · bv2210_fvg8y8_sntv_split · bv2210_fvg8y8_star_pr_share · bv2210_fvg8y8_stv_share