1 Who votes?
Pick how to group voters, then drag the sliders. Starting values are real data for each council district.
Adjust individual districts
Each district's sliders move that district only. The city-wide sliders above move every district by the same proportion.
2 Who wins?
Four ways to elect the council. The score is how closely the council mirrors the voters (100 = a perfect match).
3 Under the hood
Everything a skeptic should want to check: how each seat was awarded, every STV count round, the assumptions, and the data.
Assumptions and known limits
- Bloc voting. Every voter ranks only candidates from their own group, and every group runs enough candidates to fill every seat. This exaggerates how “tribal” voting is. Real STV elections transfer votes across groups, which usually helps small groups a little more than shown here.
- Party is measured by the 2023 at-large council vote. Voters could mark up to 5 names, so a Democrat and a Working Families candidate can share one ballot, and the parties fielded 5, 2 and 2 candidates. Dividing each party’s votes by its number of candidates is the fairest simple reading; the raw totals (77% Democratic) would flatter the largest party and the top-candidate reading gives the same shares within a point. Switch to “Party (2024 presidential)” to see the lopsided general-election picture instead.
- People, not ballots. Census categories count residents (adults, households or workers, as labelled), not registered voters or turnout. Party uses actual votes cast. Non-citizens are included in census counts.
- Today's at-large rule. Philadelphia's charter lets each voter choose 5 of the 7 at-large seats and each party nominate only 5. Under bloc voting that hands the largest group 5 seats and the second-largest 2, whatever their size. That is exactly how it has played out for parties (5 Democrats + 2 others every cycle); for other groupings it is a simplification.
- Districts. Single-member districts are decided by plurality: the biggest group in the district wins. The five combined districts simply pair today's districts with their neighbours (1+2, 3+4, 5+7, 8+9, 6+10); no lines were redrawn.
- STV count. Droop quota, weighted inclusive Gregory surplus transfers, lowest candidate eliminated when nobody reaches quota. Ties are broken in favour of the group listed first, which never changed a result in the default data.
- One dimension at a time. A voter is only a party, or only a race, or only a renter. Real coalitions cut across all of these.
- Groups of five or fewer. Small “Other” buckets are kept so the totals add to 100%, but a 4% group cannot expect a seat under any system with fewer than about 25 seats.