Monte Carlo · 100,000 runs · Polymarket + Kalshi probabilities
Running simulations…
Fetching Polymarket + Kalshi prices, then running 100,000 scenarios
First load can take a few minutes — cached for 6h after that
We run the election 100,000 times using betting-market prices as each race's baseline odds. Races don't miss independently: every simulated election draws a shared national swing, a swing per region, and one per state (fat-tailed, so 2016-style systemic misses happen occasionally), then decides each race around its shifted margin. The left chart shows how often Democrats finished with exactly that many seats; bars past the majority line mean Democratic control. The right chart is the same question answered by the markets directly — traders buy seat-count brackets ("Democrats win exactly 51 seats"), so those bars are the market's own distribution, with our simulation overlaid as the dashed line for comparison.
| State | Current | Win % | Mkt margin | Poll avg | '24 Pres | Cook PVI | Fundraising (CoH) | Source |
|---|
Same idea as the Senate section: 100,000 simulated elections on the left, each bar the share of simulations landing on that exact seat count. All 435 districts are simulated — districts without a betting market carry their 2024 margin as a cushion and can still flip when a simulated wave breaches it. On the right, the House seat brackets the markets themselves trade, against the same simulation curve — where the market bars run wider than the dashed line, traders are pricing in more uncertainty than the calibrated model carries.
All 435 districts simulate: — at market prices; the other — carry their 2024 margin as a cushion and can flip when a simulated wave breaches it.
| District | Win % | Mkt margin | Poll avg | '24 Pres | Cook PVI | Fundraising (CoH) | Source |
|---|
A gerrymander wins extra seats by spreading a party's voters efficiently — many districts won by deliberately thin margins. The catch: if the political wind shifts, all those thin seats flip together. That's a "dummymander." The chart counts, across 100,000 simulations, how many engineered seats the drawing party loses; the table lists each engineered seat and its market-implied chance of backfiring.
| Seat | Drawn by | Map | Mkt margin | Poll avg | '24 Pres | P(backfire) |
|---|
Pick any two metrics and see how the races line up. Dots are colored by market win odds and labeled by race; click any dot to open that race's details, and selecting a race in the tables highlights its dot here. Money axes use log scales. When the Y axis is a probability, a fitted logit curve is drawn, and when an axis is the market win probability a yellow line marks each chamber's marginal seat under that ordering — the one on the margin of majority (the time machine re-ranks each day, so the line jumps to whichever seat is marginal on the day shown). '24 presidential margins use The Downballot's 2026-lines calculations; redrawn districts are omitted only from PVI and last-result axes (still old-lines data).
Everything above is a snapshot of right now. This section records one snapshot per day so you can see the story move: control odds drifting, projected seats creeping, and which races are tightening. Gaps in a line mean no snapshot was recorded that day.
Each ridge below is one week's seat distribution (the newest ridge is today's) — like stacking each week's chart behind the next. Ridges getting taller and narrower over time = growing confidence about the outcome. The first pair comes from our simulations, the second directly from the market's seat-count brackets.
Every fresh poll is news — this table asks whether the news mattered. For each recent poll we compare the race's market-priced D-win probability just before the poll landed to where it stood 24 and 48 hours later. Impact is measured from daily snapshots, so a dash means the window isn't covered yet (snapshots build forward from the first recorded day). A move isn't proof the poll caused it — other news moves prices too — but big jumps right after a surprising poll are usually no coincidence.
| Race | Pollster | Asked | Released | D | R | Margin | Rating | Weight | Mkt D win | Market impact (24h / 48h) |
|---|
🎞 animated history-replay chart (GIF, 1080×1080) — rendered in your browser, made for social posts