Machine-readable page content
Canonical: https://semiotic.nteract.io/examples/ballot-transfer-ledger
The 7,197-Vote Corridor
103,922votes behindGarcia after Round 5
205,440late votes gainedGarcia across three pools
108,715late votes gainedAdams across three pools
140,202inactive at finish14.9% of the Round 5 ledger
01 / The questionHow can a six-figure lead nearly vanish without changing hands?
A round-by-round scoreboard shows the narrowing margin. The transfer ledger shows its mechanism: which eliminated tally released each batch, where that batch landed, and how many ballots stopped participating before the final comparison.
02 / Follow the ledger942,031 ballots through the final three eliminations
The count begins at Round 5. Read left to right; select a pool below or click a transfer ribbon to audit it.
Eric AdamsKathryn GarciaInactive ballots
Garcia receives more ballots than Adams from every late transfer pool, closing 96,725 votes of a 103,922-vote deficit. Adams finishes 7,197 votes ahead; 140,202 ballots are inactive.
The first fan records the Round 5 balances. Later ribbons are the Board of Elections’ published transfers. The three-candidate joint elimination remains combined because the certified recap does not publish separate destinations for it.
Round 7 → Final
Maya Wiley eliminated
254,728 ballotsKathryn Garcia
130,38451.2% Inactive ballots
74,48829.2% Adams lead87,7257,197Garcia closes 80,528 votes in this transfer.
03 / What moved the margin
The largest pool was also the most directional.
Consistent direction3 of 3Every late pool sent more ballots to Garcia.
That pattern is small in the first two transfers, then becomes decisive when Wiley’s tally is redistributed.
Wiley transfer80,528One pool erased 77.5% of the starting deficit.
Garcia received 130,384 of Wiley’s 254,728 ballots; Adams received 49,856. The gap fell from 87,725 to 7,197.
Third destination140,202Inactive ballots became a major final account.
The inactive lane grows at every transfer. It records ballots without a continuing valid choice, not support for either finalist.
04 / The endpointsThe scoreboard is accurate. It is simply missing the middle.
Garcia added nearly twice as many late-round ballots as Adams. That extraordinary gain still fell 7,197 votes short because the transfer sequence began with Adams more than 100,000 ahead.
AccountRound 5Final
Eric Adams295,798404,513
Kathryn Garcia191,876397,316
Inactive ballots8,062140,202
05 / Source and methodA conservation check on the certified recap
This view transcribes the official NYC Board of Elections ranked-choice rounds beginning at Round 5. Each elimination pool sums exactly to its published source total. At the finish, Adams (404,513), Garcia (397,316), and inactive ballots (140,202) sum back to all 942,031 ballots in the opening ledger.
The recap reports McGuire, Morales, and Stringer as one joint transfer. Keeping them together is an evidentiary boundary: their combined destinations are known, but candidate-specific paths inside that pool are not.
PRIMARY SOURCE / CERTIFIED JULY 20, 2021NYC Board of Elections — Official Ranked Choice RoundsOpen the official round-by-round table ↗06 / Rebuild the viewThe ledger is encoded as timed, conserved transfers
Reusable lanes keep each round compact after an eliminated account closes. Temporal pairing and crossing-aware ordering keep the source and destination edges aligned while the ballot values determine ribbon width.
JSX
import { ProcessSankey } from "semiotic" <ProcessSankey nodes={nodes} edges={certifiedTransfers} domain={[4, 7.6]} axisTicks={roundTicks} nodeLabel="label" colorBy="category" colorScheme={candidateColors} pairing="temporal" packing="reuse" laneOrder="crossing-min+inside-out" maxValueScale={0.00038} lanePlacement="hug" ribbonLane="both" lifetimeMode="half" showLaneRails accessibleTable /> // One edge is one certified destination total—not an inferred voter path. { source: "WILEY", target: "GARCIA", value: 130384, startTime: 6.85, endTime: 7.15 }