General Elections NYC Primary RCV RCV Analytics
Ballots in Contest
11,350
Elimination Rounds
5
Exhausted Ballots
2,966 (26.1% of contest ballots)
Winner
Shirley Aldebol
Final Round Share
56.0% of active
Margin of Victory
1,006 (12.0pts of active)
Shirley Aldebol led from the start with 30.1% of first-choice votes and held on through 5 rounds of elimination. The largest transfer came when David A. Diaz was eliminated, sending 639 votes (24% of their ballots) to Shirley Aldebol. The final margin was 1,006 votes (12.0 pts of active ballots), while 2,966 exhausted ballots (26.1%) exceeded that margin — meaning those voters' preferences could in theory have influenced the outcome.
Notable: 2,966 ballots exhausted before the final round — more than the winner's final-round margin of 1,006 votes. This means exhausted voters' preferences, had they ranked additional candidates, could in theory have been enough to affect the outcome — though only if they had ranked in ways that changed the transfers.
How to read this: Ranked Choice Voting eliminates the last-place candidate each round, transferring their ballots to each voter's next ranked choice still in the race. Ballots in contest = voters who ranked at least one candidate here. Active votes = ballots still assigned to a remaining candidate in a given round. Exhausted ballots = ballots where all ranked choices have been eliminated. Vote counts shown in each round reflect votes before that round's elimination. Ties broken alphabetically by candidate ID (NYC BOE uses random draw; ties are rare at scale).

First-Choice Votes

Candidate First-Choice Votes Share of Contest Ballots Result
Shirley Aldebol 3,421 30.1% Won
Jacqueline J. Torres 2,376 20.9%
David A. Diaz 2,162 19.0% Elim. R4
John Perez 1,511 13.3% Elim. R3
Joel Rivera 1,188 10.5% Elim. R2
Theona S. Reets-Dupont 692 6.1% Elim. R1

Vote Share — First Choice vs. Final Round

Solid lines = candidates who reached the final round (left dot = Round 1 share, right dot = final-round share). Dashed lines = candidates eliminated before the final round (line ends at elimination, not final round).

Round-by-Round Results

Each bar shows how many active votes each candidate holds going into that round. Step through rounds or press Play to watch candidates gain and lose votes as the race unfolds.

Round 1
Round 1 Eliminated: Theona S. Reets-Dupont 11,350 active votes
Candidate Votes (before elimination) Share of Active Transfers Out
Shirley Aldebol 3,421 30.1%
Jacqueline J. Torres 2,376 20.9%
David A. Diaz 2,162 19.0%
John Perez 1,511 13.3%
Joel Rivera 1,188 10.5%
Theona S. Reets-Dupont 692 6.1% Exhausted: 308 · Shirley Aldebol: 138 · Jacqueline J. Torres: 82 · Joel Rivera: 68 · David A. Diaz: 56 · John Perez: 40
Round 2 Eliminated: Joel Rivera 11,042 active votes
Candidate Votes (before elimination) Share of Active Transfers Out
Shirley Aldebol 3,559 32.2%
Jacqueline J. Torres 2,458 22.3%
David A. Diaz 2,218 20.1%
John Perez 1,551 14.0%
Joel Rivera 1,256 11.4% Exhausted: 589 · David A. Diaz: 228 · Jacqueline J. Torres: 166 · John Perez: 161 · Shirley Aldebol: 112
Round 3 Eliminated: John Perez 10,453 active votes
Candidate Votes (before elimination) Share of Active Transfers Out
Shirley Aldebol 3,671 35.1%
Jacqueline J. Torres 2,624 25.1%
David A. Diaz 2,446 23.4%
John Perez 1,712 16.4% Exhausted: 750 · Shirley Aldebol: 385 · Jacqueline J. Torres: 371 · David A. Diaz: 206
Round 4 Eliminated: David A. Diaz 9,703 active votes
Candidate Votes (before elimination) Share of Active Transfers Out
Shirley Aldebol 4,056 41.8%
Jacqueline J. Torres 2,995 30.9%
David A. Diaz 2,652 27.3% Exhausted: 1,319 · Jacqueline J. Torres: 694 · Shirley Aldebol: 639
Round 5 Final 8,384 active votes
Candidate Votes (before elimination) Share of Active
Shirley Aldebol 4,695 56.0%
Jacqueline J. Torres 3,689 44.0%

Where Did Eliminated Candidates' Votes Go?

When a candidate is eliminated, their supporters' ballots transfer to whoever they ranked next. This panel shows how each eliminated candidate's votes distributed — to the winner, to other remaining candidates, or exhausted (no further choices ranked). Cards are ordered by votes that went to the winner, highest first. Note: "Exhausted" means those voters had no more ranked candidates still in the race — their ballots stopped counting at that point.
David A. Diaz Eliminated R4 2,652 votes redistributed
Exhausted 1,319 (49.7%)
Jacqueline J. Torres 694 (26.2%)
Shirley Aldebol 639 (24.1%)
John Perez Eliminated R3 1,712 votes redistributed
Exhausted 750 (43.8%)
Shirley Aldebol 385 (22.5%)
Jacqueline J. Torres 371 (21.7%)
David A. Diaz 206 (12.0%)
Theona S. Reets-Dupont Eliminated R1 692 votes redistributed
Exhausted 308 (44.5%)
Shirley Aldebol 138 (19.9%)
Jacqueline J. Torres 82 (11.8%)
Joel Rivera 68 (9.8%)
David A. Diaz 56 (8.1%)
John Perez 40 (5.8%)
Joel Rivera Eliminated R2 1,256 votes redistributed
Exhausted 589 (46.9%)
David A. Diaz 228 (18.2%)
Jacqueline J. Torres 166 (13.2%)
John Perez 161 (12.8%)
Shirley Aldebol 112 (8.9%)

Transfer Loyalty Matrix

Each cell shows what share of an eliminated candidate's votes transferred to each remaining candidate. Read across a row to see how that candidate's supporters split their next rankings. ≥50% loyalty   25–49%   <25%   Exhausted
Eliminated →
Received ↓
Aldebol Torres Exhausted
Reets-Dupont R1 19.9% 11.8% 44.5%
Rivera R2 8.9% 13.2% 46.9%
Perez R3 22.5% 21.7% 43.8%
Diaz R4 24.1% 26.2% 49.7%

Candidate Summary

Candidate First Choice Votes at Elimination / Final Transfer Gain / Loss ⓘ Eliminated
Shirley Aldebol ✓ Winner 3,421 4,695 +1,274
Jacqueline J. Torres 2,376 3,689 +1,313
David A. Diaz 2,162 2,652 +490 Round 4
John Perez 1,511 1,712 +201 Round 3
Joel Rivera 1,188 1,256 +68 Round 2
Theona S. Reets-Dupont 692 692 0 Round 1

How Many Candidates Did Voters Choose to Rank?

NYC primary voters may rank up to 5 candidates in order of preference — but they are not required to. This chart shows how many candidates each voter chose to rank (1 = ranked only their top choice; 5 = used all available rankings). Voters who ranked only one candidate are more likely to exhaust — their ballot stops counting once that candidate is eliminated.
Ranked 1 4,805 (42.3%)
Ranked 2 1,465 (12.9%)
Ranked 3 1,008 (8.9%)
Ranked 4 652 (5.7%)
Ranked 5 3,420 (30.1%)