the small model · IL-9 2026 primary archive →

Biss wins more than 99 times out of 100

in 10,000 simulations of Illinois’ 9th District.

Elleson’s best night loses by 33.8 points.

Hey, I’m Fivey. I was 538’s mascot before Disney killed me, and Ryan’s inspiration to build this model.
Biss10,000
Elleson0
simulations10,000

This is the small model, a forecast of the 2026 general election in Illinois’ 9th District, written in one night in 155 lines of Python: the most compact precinct-by-precinct model I could manage without giving up accuracy.

Every precinct starts from its 2024 baseline and takes three shocks each simulation, a national swing, a swing shared with precincts that resemble it, and a little noise of its own (the δenv, δc(i), and εi of the methods note below), all applied in log-odds space so the safest precincts move the least.

For a more detailed model, and one that is actually useful rather than a one-night project, go to the VoteHub forecast. Hover any of the 435 precincts below; click one for its full card.

Who’s favored to win each precinct?

Hover any of the 435 precincts for its forecast; click one for its full card.

fig 1. Projected 2026 two-party margin.
R+50D+50

73.9% median Biss two-party · 71.3–76.2 80% interval · >99.9% win probability · ≈287,000 ballots · 155 lines of Python

Where does every precinct land?

Each dot is one precinct, sized by expected ballots, stacked at its projected margin.

fig 2. Every precinct as one dot, sized by expected ballots, arranged by projected margin. Hover a dot for its precinct.
435 precincts arranged by projected margin, from a few McHenry County precincts right of even to lakefront wards past D+80; the district’s projected margin is D+47.8.

What do 10,000 simulations look like?

Each dot is one simulated outcome. Hover a dot to see the district under it.

fig 3. Each dot is one of the model’s simulated outcomes, a representative sample of its 10,000 runs. The hard right shoulder is the elasticity at work: a district this blue has little room left to gain. Hover a dot to see the district under that outcome.
The model’s simulated outcomes cluster between 71% and 76% Biss two-party share; the median is 73.9%, and the distribution has a soft ceiling near 77%.

The swing is applied in log-odds space, so safe precincts move less than even ones; a shared draw per demographic cluster keeps the errors honest, because when one heavily Asian precinct moves right its cousins probably are too; and turnout comes from an ecological regression discounted by how much of its presidential electorate each group typically keeps in a midterm. The whole method fits on two pages: read the methods note (PDF), or see the code on GitHub.

What are the closest precincts?

The knife-edge precincts, with the range each one covers across the simulations.

table 1. Unusual and not-so-unusual outcomes, according to the simulations.

fig 4. The methods note, both pages. Open the PDF.
Page one of the methods note: abstract, data, and the vote-share model Page two of the methods note: turnout model, results, limitations, and references