General Elections NYC Primary RCV RCV Analytics
Ballots in Contest
14,137
Elimination Rounds
4
Exhausted Ballots
2,995 (21.2% of contest ballots)
Winner
Ty Hankerson
Final Round Share
58.7% of active
Margin of Victory
1,948 (17.5pts of active)
Ty Hankerson led from the start with 35.2% of first-choice votes and held on through 4 rounds of elimination. The largest transfer came when Latoya L. LeGrand was eliminated, sending 1,043 votes (37% of their ballots) to Ty Hankerson. The final margin was 1,948 votes (17.5 pts of active ballots), while 2,995 exhausted ballots (21.2%) exceeded that margin — meaning those voters' preferences could in theory have influenced the outcome.
Notable: 2,995 ballots exhausted before the final round — more than the winner's final-round margin of 1,948 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
Ty Hankerson 4,971 35.2% Won
Japneet Singh 3,482 24.6%
Latoya L. LeGrand 2,424 17.1% Elim. R3
Ruben W. Wills 2,015 14.3% Elim. R2
Romeo Hitlall 1,245 8.8% 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: Romeo Hitlall 14,137 active votes
Candidate Votes (before elimination) Share of Active Transfers Out
Ty Hankerson 4,971 35.2%
Japneet Singh 3,482 24.6%
Latoya L. LeGrand 2,424 17.1%
Ruben W. Wills 2,015 14.3%
Romeo Hitlall 1,245 8.8% Exhausted: 606 · Japneet Singh: 390 · Ruben W. Wills: 91 · Ty Hankerson: 86 · Latoya L. LeGrand: 72
Round 2 Eliminated: Ruben W. Wills 13,531 active votes
Candidate Votes (before elimination) Share of Active Transfers Out
Ty Hankerson 5,057 37.4%
Japneet Singh 3,872 28.6%
Latoya L. LeGrand 2,496 18.4%
Ruben W. Wills 2,106 15.6% Exhausted: 1,085 · Ty Hankerson: 445 · Latoya L. LeGrand: 322 · Japneet Singh: 254
Round 3 Eliminated: Latoya L. LeGrand 12,446 active votes
Candidate Votes (before elimination) Share of Active Transfers Out
Ty Hankerson 5,502 44.2%
Japneet Singh 4,126 33.2%
Latoya L. LeGrand 2,818 22.6% Exhausted: 1,304 · Ty Hankerson: 1,043 · Japneet Singh: 471
Round 4 Final 11,142 active votes
Candidate Votes (before elimination) Share of Active
Ty Hankerson 6,545 58.7%
Japneet Singh 4,597 41.3%

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.
Latoya L. LeGrand Eliminated R3 2,818 votes redistributed
Exhausted 1,304 (46.3%)
Ty Hankerson 1,043 (37.0%)
Japneet Singh 471 (16.7%)
Ruben W. Wills Eliminated R2 2,106 votes redistributed
Exhausted 1,085 (51.5%)
Ty Hankerson 445 (21.1%)
Latoya L. LeGrand 322 (15.3%)
Japneet Singh 254 (12.1%)
Romeo Hitlall Eliminated R1 1,245 votes redistributed
Exhausted 606 (48.7%)
Japneet Singh 390 (31.3%)
Ruben W. Wills 91 (7.3%)
Ty Hankerson 86 (6.9%)
Latoya L. LeGrand 72 (5.8%)

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 ↓
Hankerson Singh Exhausted
Hitlall R1 6.9% 31.3% 48.7%
Wills R2 21.1% 12.1% 51.5%
LeGrand R3 37.0% 16.7% 46.3%

Candidate Summary

Candidate First Choice Votes at Elimination / Final Transfer Gain / Loss ⓘ Eliminated
Ty Hankerson ✓ Winner 4,971 6,545 +1,574
Japneet Singh 3,482 4,597 +1,115
Latoya L. LeGrand 2,424 2,818 +394 Round 3
Ruben W. Wills 2,015 2,106 +91 Round 2
Romeo Hitlall 1,245 1,245 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 6,205 (43.9%)
Ranked 2 2,153 (15.2%)
Ranked 3 1,433 (10.1%)
Ranked 4 924 (6.5%)
Ranked 5 3,422 (24.2%)