election_title: Narrow Bands — a paint-swatch election scored in slivers of the scale
bv_test_id: BV2239
bv_election_id: gyv2qt
bv_results_url: https://bettervoting.com/gyv2qt/results

scenario_description: |-
  The scale-abuse special: nobody here uses the 0-5 ballot as designed. One
  camp scores only in 0-2, one only in 3-5, cliff voters jump 0-to-3, sliver
  voters live in 3-4, plus flat-liners and a protest ballot. Totals come out
  compressed and bunched - photo-finish territory - and the score-distribution
  table turns bimodal. A stress fixture for every place the report says
  'distribution', 'total', or 'margin'.

  The electorate (24 ballots, all individual rows):
    - cool tilt: 9 voters (6 cliff34, 3 harsh)
    - warm tilt: 10 voters (5 cliff35, 5 gentle)
    - drift: 5 voters (3 flat, 2 ranked_style)

  Ballot styles in play (taxonomy:
  01_STAR/01_Learn/voting_styles/README.md):
    - cliff35: cliff ballot: 0 or 3-5, nothing in between
    - cliff34: sliver ballot: 0 or 3-4 only
    - flat: flat-liner: same score for everyone
    - harsh: harsh grader: everything squeezed into 0-2
    - gentle: gentle soul: everything squeezed into 3-5, no zeros
    - ranked_style: uses each score once, like a ranking

  What the frozen seed produced: Scoring Round Azure 61, Beige 61, Coral 61,
  Dune 57. A scoring tie at the finalist line - Beige & Coral advance via
  STAR's official head-to-head tiebreaker. Runoff Beige 9 vs Coral 8 (Equal
  Support 5). STAR winner: Beige. No Condorcet winner - the pairwise order
  wobbles (see the full matrix). Choose-One (Plurality) would elect Azure.
  RCV-IRV would elect Azure. Approval would elect Azure. RCV-RR would elect
  Coral.

  RANDOM-BUT-HUMAN, reproducible: generated by
  06_Other/ballot_style_lab/generate_ballot_styles.py (scenario
  'narrow_bands', seed 239) - 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 narrow_bands

voting_method: STAR
num_winners: 1
ballots: |-
  Azure, Beige, Coral, Dune
      0,     0,     0,    5
      4,     0,     4,    0
      5,     5,     5,    5
      0,     4,     0,    5
      3,     3,     3,    3
      2,     0,     2,    0
      3,     5,     4,    4
      4,     0,     4,    0
      0,     5,     0,    5
      4,     4,     4,    0
      4,     0,     4,    0
      0,     5,     0,    5
      2,     1,     0,    0
      0,     0,     0,    0
      3,     5,     4,    5
      3,     4,     4,    5
      4,     0,     0,    0
      4,     3,     5,    2
      4,     2,     5,    3
      4,     0,     4,    0
      0,     5,     0,    0
      3,     5,     4,    5
      2,     0,     2,    0
      3,     5,     3,    5

expected_winners:
  - Beige

# file: 06_c4_b24_narrow-bands.yaml
