Skip to content

Crowded field, rung 5 — 5 candidates, 65 voters, counted by Approval

Generated from crowded_field_c5_approval.yaml — do not edit by hand. Regenerate: python STARVote_LH_tabulation_engine/tools_adam/scripts/build_yaml_pages.py.

Method: Approval Voting · 1 seat · Expected winner: Diego

Official tie-break (lot) order: Ana > Bruno > Diego > Elsa > Greta — consulted only if every deterministic tiebreaker stays tied (how the ladder works).

Scenario

RUNG 2, counted by Approval. Diego again, 34 to Bruno's and Elsa's 29 — Approval is still with STAR, Score and Ranked Robin at five candidates, while RCV-IRV and Choose-One have already left.

Standing caveat: Approval's answer is the most cutoff-dependent of the six methods on this ladder. Approve-at-3 and approve-at-4 are different elections, which is why there is no such thing as "Approval's result" without the rule attached.

Same 65 voters and the same fixed candidate positions as crowded_field_c5_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.

Ballots

Row 1 = candidate names; each later row is one voter's approvals (1 = approve, 0/blank = not approved).

Count:Ana,Bruno,Diego,Elsa,Greta
6:1,1,0,0,0    # bloc at 0
10:1,1,0,0,0    # bloc at 4
13:0,1,1,0,0    # bloc at 8
9:0,0,1,1,0    # bloc at 12
12:0,0,1,1,0    # bloc at 16
8:0,0,0,1,1    # bloc at 20
7:0,0,0,0,1    # bloc at 24

What the engine says

Full report from the _tabulated mirror (regenerated on every run; every analysis forced on):

--- Approval Voting (single winner) ---
 Tabulating 65 ballots (any non-zero score = approval).

Ballots:
   columns = Ana, Bruno, Diego, Elsa, Greta      (1 = approve; 0 = not approved)
    16 × 1,1,0,0,0
    13 × 0,1,1,0,0
    21 × 0,0,1,1,0
     8 × 0,0,0,1,1
     7 × 0,0,0,0,1

   Diego -- 34 (52%) -- Elected
   Bruno -- 29 (45%)
   Elsa  -- 29 (45%)
   Ana   -- 16 (25%)
   Greta -- 15 (23%)

[Approval Distribution] (how many candidates each ballot approved)
   123 approvals across 65 ballots — average 1.9 of 5 (range 1–2).
     approved 1: 7 ballots
     approved 2: 58 ballots

[Co-Approval Matrix]
 Of the voters who approved the ROW candidate, the % who ALSO approved the COLUMN candidate.
          | Diego  | Bruno  |  Elsa  |  Ana   | Greta  |
   -----------------------------------------------------
   Diego  |   --   |  38%   |  62%   |   0%   |   0%   |
   Bruno  |  45%   |   --   |   0%   |  55%   |   0%   |
   Elsa   |  72%   |   0%   |   --   |   0%   |  28%   |
   Ana    |   0%   |  100%  |   0%   |   --   |   0%   |
   Greta  |   0%   |   0%   |  53%   |   0%   |   --   |

Winner — Approval Voting (single winner)
  Diego

Run it yourself:

python STARVote_LH_tabulation_engine/starvote_larry_hastings.py method_comparisons/crowded_field/cases/crowded_field_c5_approval.yaml

See also

More cases in this set: crowded_field_c3_approval · crowded_field_c3_irv · crowded_field_c3_ranked_robin · crowded_field_c3_star · crowded_field_c5_irv · crowded_field_c5_ranked_robin · crowded_field_c5_star · crowded_field_c7_approval · crowded_field_c7_irv · crowded_field_c7_ranked_robin · crowded_field_c7_star