====================================================================== SOURCE FILE: crowded_field_c7_approval.yaml TABULATED FILE: crowded_field_c7_approval_tabulated.txt ====================================================================== election_title: "Crowded field, rung 7 — 7 candidates, 65 voters, counted by Approval" scenario_description: |- RUNG 3, counted by Approval. Felix wins on 36 while the Condorcet winner Diego takes 22 — third from last, on the same fixed approve-at-4 rule that elected him at both earlier rungs. Diego's collapse is the crowded-field effect in a form all its own. He is nearly everyone's second or third choice, but a wider field pushes each bloc's approval line past him: the blocs at 12 and 16 now have Clara, Elsa or Felix sitting where Diego used to be on their ballot. Approval reads where you drew the line, not whom you preferred. Same caveat as rung 2, doubled — quote this column only with the cutoff attached. Same 65 voters and the same fixed candidate positions as crowded_field_c7_star.yaml; the approval ballot is that file's 0–5 ballot thresholded at 4 (approve everyone you would score 4 or 5). Change the cutoff in build_ladder.py and this file changes with it. Construction: build_ladder.py in this folder. 65 voters in seven blocs at 0, 4, 8, 12, 16, 20, 24 (sizes 6, 10, 13, 9, 12, 8, 7); candidates fixed at Ana 1 · Bruno 6 · Clara 9 · Diego 11 · Elsa 14 · Felix 16 · Greta 22; utility = minus distance; scores = each bloc's own min-max scaling onto 0–5. Nothing is tuned, and no count at any rung is settled by a tie-break. voting_method: Approval num_winners: 1 lot_numbers: [Ana, Bruno, Clara, Diego, Elsa, Felix, Greta] ballots: |- Count:Ana,Bruno,Clara,Diego,Elsa,Felix,Greta 6:1,1,0,0,0,0,0 # bloc at 0 10:1,1,1,0,0,0,0 # bloc at 4 13:0,1,1,1,0,0,0 # bloc at 8 9:0,0,1,1,1,1,0 # bloc at 12 12:0,0,0,0,1,1,0 # bloc at 16 8:0,0,0,0,1,1,1 # bloc at 20 7:0,0,0,0,0,1,1 # bloc at 24 expected_winners: - Felix ====================================================================== TABULATION RESULTS ====================================================================== --- Approval Voting (single winner) --- Tabulating 65 ballots (any non-zero score = approval). Ballots: columns = Ana, Bruno, Clara, Diego, Elsa, Felix, Greta (1 = approve; 0 = not approved) 6 × 1,1,0,0,0,0,0 10 × 1,1,1,0,0,0,0 13 × 0,1,1,1,0,0,0 9 × 0,0,1,1,1,1,0 12 × 0,0,0,0,1,1,0 8 × 0,0,0,0,1,1,1 7 × 0,0,0,0,0,1,1 Felix -- 36 (55%) -- Elected Clara -- 32 (49%) Bruno -- 29 (45%) Elsa -- 29 (45%) Diego -- 22 (34%) Ana -- 16 (25%) Greta -- 15 (23%) [Approval Distribution] (how many candidates each ballot approved) 179 approvals across 65 ballots — average 2.8 of 7 (range 2–4). approved 2: 25 ballots approved 3: 31 ballots approved 4: 9 ballots [Co-Approval Matrix] Of the voters who approved the ROW candidate, the % who ALSO approved the COLUMN candidate. | Felix | Clara | Bruno | Elsa | Diego | Ana | Greta | ----------------------------------------------------------------------- Felix | -- | 25% | 0% | 81% | 25% | 0% | 42% | Clara | 28% | -- | 72% | 28% | 69% | 31% | 0% | Bruno | 0% | 79% | -- | 0% | 45% | 55% | 0% | Elsa | 100% | 31% | 0% | -- | 31% | 0% | 28% | Diego | 41% | 100% | 59% | 41% | -- | 0% | 0% | Ana | 0% | 62% | 100% | 0% | 0% | -- | 0% | Greta | 100% | 0% | 0% | 53% | 0% | 0% | -- | Winner — Approval Voting (single winner) Felix