The Herb Garden Council — Allocated Score / STAR-PR, 3 seats (each quota seats someone)¶
Generated from 07b_c5_b36_herb-council-pr-3-seats.yaml — do not edit by hand. Regenerate: python STARVote_LH_tabulation_engine/tools_adam/scripts/build_yaml_pages.py.
Method: Allocated Score (proportional STAR) · 3 seats · Expected winners: Anise, Basil, Chive
▶ Live on BetterVoting: vote · results ↗ (election pmrq4q · test BV2245).
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: Anise, Basil, Chive. kitchen bloc seats 2 of its 3-name slate; tea caucus seats 1 of its 2-name slate. Final seat round (reweighted totals): Chive 35.58 vs Dill 33.38.
TWIN FILE (identical ballots, other method): 07a_c5_b36_herb-council-bloc-3-seats.yaml tabulates Bloc STAR and seats Basil, Chive, Dill.
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:
--- Allocated Score Voting Method (3 winners) ---
[Allocated Score Voting]
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.)
[Allocated Score Voting: Round 1]
The highest-scoring candidate wins a seat.
Basil -- 103 -- First place
Chive -- 87
Dill -- 83
Anise -- 82
Endive -- 80
Basil wins a seat.
[Allocated Score Voting: Round 1: Ballot allocation round]
Allocating 12 ballots.
[Allocated Score Voting: Round 1: Ballot allocation round: Round 1]
Allocating 20 ballots at score 5.
This allocation overfills the quota. Returning fractional surplus.
Allocating only 60.00% of these ballots.
Keeping these ballots, but multiplying their weights by 2/5.
20 ballots reweighted from 1 to 2/5.
[Allocated Score Voting: Round 2]
The highest-scoring candidate wins a seat.
Anise -- 78+2/5 -- First place
Endive -- 76+2/5
Chive -- 40+1/5
Dill -- 38
Anise wins a seat.
[Allocated Score Voting: Round 2: Ballot allocation round]
Allocating 12 ballots.
[Allocated Score Voting: Round 2: Ballot allocation round: Round 1]
Allocating 13 ballots at score 5.
This allocation overfills the quota. Returning fractional surplus.
Allocating only 92.31% of these ballots.
Keeping these ballots, but multiplying their weights by 1/13.
13 ballots reweighted from 1 to 1/13.
[Allocated Score Voting: Round 3]
The highest-scoring candidate wins a seat.
Chive -- 35+38/65 -- First place
Dill -- 33+ 5/13
Endive -- 21+61/65
Chive wins a seat.
[Allocated Score Voting: Winners — Allocated Score Voting Method (3 winners)]
Anise
Basil
Chive
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.
Hare quota is 12.
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/07b_c5_b36_herb-council-pr-3-seats.yaml
See also¶
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 · 07a_c5_b36_herb-council-bloc-3-seats · 08_c6_b29_quota-circus-pr-2-seats · 09_c7_b44_park-bloc-4-seats