The Herb Garden Council — Bloc STAR, 3 seats (the majority can sweep)¶
Generated from 07a_c5_b36_herb-council-bloc-3-seats.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) · 3 seats · Expected winners: Basil, Chive, Dill
▶ Live on BetterVoting: vote · results ↗ (election 9dx494 · test BV2244).
Scenario¶
One garden, 36 ballots, three seats - and TWO philosophies of 'three winners'. This is a same-ballots TWIN PAIR: file 07a tabulates Bloc STAR (single-winner STAR run once per seat - a cohesive majority can take every seat), file 07b tabulates Allocated Score / STAR-PR on the IDENTICAL rows (each Hare quota of voters fills one seat, ballots spent on a winner are reweighted). A kitchen bloc slates Basil-Chive-Dill; a tea caucus backs Anise & Endive. Same opinions, same styles, same rows - different method, different council.
The electorate (36 ballots, all individual rows): - kitchen bloc: 20 voters (10 slate, 4 bullet, 4 nuanced, 2 gentle) - tea caucus: 16 voters (9 nuanced, 4 slate, 3 cliff35)
Ballot styles in play (taxonomy: 01_STAR/01_Learn/voting_styles/README.md): - nuanced: full 0-5 range, honest gaps, ties allowed - bullet: choose-one transplant: favorite 5, rest 0/blank - slate: partisan slate: equal 5s for the in-group, 0 outside - gentle: gentle soul: everything squeezed into 3-5, no zeros - cliff35: cliff ballot: 0 or 3-5, nothing in between
What the frozen seed produced: Seats: Basil, Chive, Dill. kitchen bloc seats 3 of its 3-name slate; tea caucus seats 0 of its 2-name slate. Per-seat runoff margins: 2, 3, 0. The final seat's runoff is TIED - resolved by STAR's official tiebreaker ladder.
TWIN FILE (identical ballots, other method): 07b_c5_b36_herb-council-pr-3-seats.yaml tabulates allocated and seats Anise, Basil, Chive.
RANDOM-BUT-HUMAN, reproducible: generated by 06_Other/ballot_style_lab/generate_ballot_styles.py (scenario 'herb_council', seed 57) - utilities sampled from the faction model above, then rendered through each voter's ballot style. Per 07_Concepts/topics/simulate_utilities_not_ballots.md this is the 'stress-test the tabulator' job (with human-shaped renderings), not a method-welfare comparison. Regenerate byte-identically: python generate_ballot_styles.py --emit herb_council
Ballots¶
Row 1 = candidate names; each later row is one voter's 0–5 scores (a N × prefix = N identical ballots).
Markers on these ballots: - blank · ~ race abstention · & candidate abstention · ? spoiled · % spoiled+reissued — all tabulate as 0 (reported honestly).
Anise, Basil, Chive, Dill, Endive
5, 0, 2, 1, 4
0, 5, 0, 0, 0
5, 0, 0, 0, 5
5, 0, 0, 0, 5
-, 5, 5, 5, -
-, 5, 5, 5, -
0, 5, 3, 4, 0
0, 5, 5, 5, 0
-, 5, 5, 5, -
5, 1, 0, 1, 4
3, 5, 5, 5, 3
0, 5, 5, 5, 0
5, 0, 0, 0, 5
5, 1, 1, 0, 4
-, 5, 5, 5, -
5, 0, 0, 0, 5
5, 0, 0, 0, 5
-, 5, -, -, -
0, 5, 5, 5, 0
4, 0, 2, 1, 5
0, 5, 5, 5, 0
5, 0, 1, 2, 4
3, 5, 5, 4, 3
3, 0, 2, 1, 5
0, 5, 5, 5, 0
0, 5, 5, 4, 0
0, 5, 5, 5, 0
5, 1, 1, 0, 3
0, 5, 5, 3, 0
5, -, -, -, 5
0, 5, 5, 5, 0
-, 5, -, -, -
-, 5, -, -, -
5, 0, 0, 0, 5
5, 0, 0, 1, 5
4, 0, 0, 1, 5
What the engine says¶
The count, step by step — the rounds and how the winner is reached:
--- Bloc STAR Voting Method (3 winners) ---
[Bloc STAR]
Tabulating 36 ballots to fill 3 seats.
Count × Anise,Basil,Chive,Dill,Endive
7 × 0, 5, 5, 5, 0
6 × 5, 0, 0, 0, 5
4 × -, 5, 5, 5, -
3 × -, 5, -, -, -
1 × 5, 0, 2, 1, 4
1 × 0, 5, 0, 0, 0
1 × 0, 5, 3, 4, 0
1 × 5, 1, 0, 1, 4
1 × 3, 5, 5, 5, 3
1 × 5, 1, 1, 0, 4
1 × 4, 0, 2, 1, 5
1 × 5, 0, 1, 2, 4
1 × 3, 5, 5, 4, 3
1 × 3, 0, 2, 1, 5
1 × 0, 5, 5, 4, 0
1 × 5, 1, 1, 0, 3
1 × 0, 5, 5, 3, 0
1 × 5, -, -, -, 5
1 × 5, 0, 0, 1, 5
1 × 4, 0, 0, 1, 5
('-' = left blank / abstained; '0' = scored zero — both count as 0 stars.)
[Bloc STAR: Round 1: Scoring Round]
The two highest-scoring candidates advance to the next round.
Basil -- 103 -- First place
Chive -- 87 -- Second place
Dill -- 83
Anise -- 82
Endive -- 80
Basil and Chive advance.
[Bloc STAR: Round 1: Automatic Runoff Round]
The candidate preferred in the most head-to-head matchups wins.
Basil -- 6 -- First place
Chive -- 4
Equal Support -- 26
Basil wins.
Runoff math:
36 ballots cast
− 26 Equal Support (no preference between the two finalists)
──
10 voters with a preference (majority = 6)
Basil 6 (60%) · Chive 4 (40%)
──────────────────────────────────────────────────
[Bloc STAR: Round 2: Scoring Round]
The two highest-scoring candidates advance to the next round.
Chive -- 87 -- First place
Dill -- 83 -- Second place
Anise -- 82
Endive -- 80
Chive and Dill advance.
[Bloc STAR: Round 2: Automatic Runoff Round]
The candidate preferred in the most head-to-head matchups wins.
Chive -- 8 -- First place
Dill -- 5
Equal Support -- 23
Chive wins.
Runoff math:
36 ballots cast
− 23 Equal Support (no preference between the two finalists)
──
13 voters with a preference (majority = 7)
Chive 8 (62%) · Dill 5 (38%)
──────────────────────────────────────────────────
[Bloc STAR: Round 3: Scoring Round]
The two highest-scoring candidates advance to the next round.
Dill -- 83 -- First place
Anise -- 82 -- Second place
Endive -- 80
Dill and Anise advance.
[Bloc STAR: Round 3: Automatic Runoff Round]
The candidate preferred in the most head-to-head matchups wins.
Anise -- 16 -- Tied for first place
Dill -- 16 -- Tied for first place
Equal Support -- 4
There's a two-way tie for first.
[Bloc STAR: Round 3: Automatic Runoff Round: First tiebreaker]
The highest-scoring candidate wins.
Dill -- 83 -- First place
Anise -- 82
Dill wins.
[Bloc STAR: Winners — Bloc STAR Voting Method (3 winners)]
Basil
Chive
Dill
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 3-winner count below,
so no Top-2 finalists are marked.
| Anise | Basil | Chive | Dill | Endive |
-----------------------------------------------------------------------------------------
Anise > | --- |16 - 0 - 20 |16 - 4 - 16 |16 - 4 - 16 | 5 - 28 - 3 |
Basil > | 20 - 0 - 16 | --- | 6 - 26 - 4 |10 - 20 - 6 |20 - 0 - 16 |
Chive > | 16 - 4 - 16 | 4 - 26 - 6 | --- | 8 - 23 - 5 |16 - 4 - 16 |
Dill > | 16 - 4 - 16 | 6 - 20 - 10 | 5 - 23 - 8 | --- |16 - 4 - 16 |
Endive > | 3 - 28 - 5 |16 - 0 - 20 |16 - 4 - 16 |16 - 4 - 16 | --- |
[Condorcet Winner]
Condorcet Winner: Basil — matches the STAR winner
[Condorcet Loser]
No strict Condorcet loser; jointly weak Condorcet losers: Dill, Endive (winless — pairwise ties)
[Score Distribution] (how many ballots gave each star rating)
Score
Candidate 5 4 3 2 1 0 Abs | Total Avg all Avg rated
Anise 13 2 3 0 0 11 7 | 82 2.3 2.8
Basil 20 0 0 0 3 12 1 | 103 2.9 2.9
Chive 15 0 1 3 3 10 4 | 87 2.4 2.7
Dill 12 3 1 1 6 9 4 | 83 2.3 2.6
Endive 11 4 3 0 0 11 7 | 80 2.2 2.8
Avg all = Total / all ballots — a blank counts as 0, so this is the Total the Scoring Round ranks on, per ballot.
Avg rated = Total / the ballots that scored this candidate (Abs excluded) — support among voters who had an opinion.
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 06_Other/ballot_style_lab/cases/07a_c5_b36_herb-council-bloc-3-seats.yaml
See also¶
- Ties & tie-breaking (topic hub)
- The tie-breaking ladder (full chain)
- Runoff reversal (worked set)
- Ballot & terminology basics
- Glossary · all cases by method
More cases in this set: 01_c3_b31_graders-divide · 02_c4_b40_cliff-city · 03_c4_b33_bullet-storm · 04_c4_b47_noise-soup · 05_c3_b38_squeeze-survives · 06_c4_b24_narrow-bands · 07b_c5_b36_herb-council-pr-3-seats · 08_c6_b29_quota-circus-pr-2-seats · 09_c7_b44_park-bloc-4-seats