election_title: Cliff City food trucks — everyone scores 0 or 3-5, nothing between
bv_test_id: BV2235
bv_election_id: fm8cbv
bv_results_url: https://bettervoting.com/fm8cbv/results

scenario_description: |-
  A whole town votes like it's Approval-with-a-volume-knob: every ballot is
  either 0 ('not my truck') or 3-5 ('one of mine'). Nobody uses 1 or 2 - the
  middle of the scale is a ghost town. Cliff ballots are the halfway house
  between Approval (one bit) and full STAR expressiveness; the test is what
  the all-or-mostly ballots do to the score distribution and how much
  runoff-deciding information survives the cliff.

  The electorate (40 ballots, all individual rows):
    - Arepa crowd: 8 voters (6 cliff35, 1 slate, 1 cliff34)
    - Bao crowd: 16 voters (12 cliff35, 2 slate, 2 cliff34)
    - Churro crowd: 9 voters (5 slate, 3 cliff34, 1 cliff35)
    - grazers: 7 voters (3 cliff34, 2 chaos, 1 anyone_but, 1 flat)

  Ballot styles in play (taxonomy:
  01_STAR/01_Learn/voting_styles/README.md):
    - cliff35: cliff ballot: 0 or 3-5, nothing in between
    - slate: partisan slate: equal 5s for the in-group, 0 outside
    - anyone_but: 5 for everyone except the villain (0)
    - cliff34: sliver ballot: 0 or 3-4 only
    - chaos: pure noise (fuzzing voter)
    - flat: flat-liner: same score for everyone

  What the frozen seed produced: Scoring Round Bao 100, Churro 99, Arepa 52,
  Dumpling 46. Runoff Churro 15 vs Bao 14 (Equal Support 11). STAR winner:
  Churro. Condorcet winner Churro (agrees). Choose-One (Plurality) would elect
  Bao. RCV-IRV would elect Bao. The engine flags the classic center-squeeze
  signature (RCV-IRV the lone outlier).

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

voting_method: STAR
num_winners: 1
ballots: |-
  Arepa, Bao, Churro, Dumpling
      0,   5,      4,        0
      0,   5,      0,        0
      5,   -,      -,        -
      5,   0,      5,        5
      0,   5,      0,        0
      0,   5,      4,        0
      4,   0,      0,        4
      0,   3,      4,        0
      5,   0,      0,        0
      0,   0,      5,        0
      0,   0,      5,        0
      1,   3,      4,        0
      0,   5,      0,        4
      0,   5,      4,        0
      0,   5,      0,        0
      0,   4,      4,        0
      0,   4,      4,        0
      0,   5,      0,        4
      0,   0,      0,        4
      0,   0,      4,        0
      0,   0,      5,        0
      0,   5,      0,        4
      5,   0,      4,        0
      -,   5,      -,        -
      0,   5,      5,        0
      0,   0,      5,        5
      3,   3,      3,        3
      0,   0,      3,        5
      0,   4,      0,        0
      4,   0,      4,        0
      5,   4,      5,        0
      5,   0,      0,        0
      5,   0,      4,        0
      0,   0,      5,        0
      -,   5,      5,        5
      0,   0,      4,        3
      0,   5,      0,        0
      0,   5,      0,        0
      5,   0,      0,        0
      0,   5,      0,        0

expected_winners:
  - Churro

# file: 02_c4_b40_cliff-city.yaml
