49.5 expected D seats
Pick an exact model world, change one part of the electorate, or draw one complete simulated election night. The distributions, maps, and story update together while the published forecast stays untouched.
Exact 100,000-draw governed world; no interpolation and no legacy distribution.
This is the active forecast across the Senate, House, and 36 governor races. Democrats win Senate control 42 in 100 and House control 59 in 100. Expected: 49.5 Senate seats, 222 House seats, 17.1 governorships.
49.5 expected D seats
222 expected D seats
17.1 of 36 governorships expected
42% Democratic control
59% Democratic control
No majority threshold applies
Map colors show the selected world’s margin. Hypothetical values never overwrite published race pages.
Click a state to zoom to its districts; hover any district for its exact scenario margin. Selecting a district opens the published race page — scenario values never overwrite the forecast.
senate No point-call flips
house No point-call flips
governors No point-call flips
senate SEN-AK
house TX-28
governors GOV-IA
Every race on this site carries our model's own demographic breakdown — each group's share of the electorate and how it splits. Slide a group's turnout or its vote margin and every map recomputes, seat by seat, from those tables. This is deterministic arithmetic on the model's published numbers — it shows margins and tallies, never win probabilities, because the simulation didn't run at your setting and we don't print probabilities we didn't compute.
The published crosstab splits white voters by degree and leaves Black and Hispanic/other voters whole — there is no education row for them to split on, so this dimension cannot be two.
The starting values are the selected chamber's current race-average model estimates: turnout is the group's share of the electorate and margin is D−R within the group. Turnout shares shown are renormalized so each dimension's groups always sum to 100. Sliders apply your change — a relative turnout shift (±50%) or a margin shift (±30points) — to every covered race's own baseline in all three chambers, so switching chambers re-bases the readouts without changing any numbers. Changes across demographic families combine as shifts from their neutral baselines. Your scenario lives in the page address as you slide — copy the URL to share it.
The mechanic: within one demographic dimension, each group g has a share of the electorate sg and a two-party margin mg from our crosstabs. Your sliders reweight them — implied = Σ sg·(1+turnoutg)·(mg+shiftg) ÷ Σ sg·(1+turnoutg) — and the race's new margin is the model's forecast margin plus the change: m0 + implied(sliders) − implied(neutral). Anchoring to the delta means the neutral position reproduces today's map exactly (the build asserts it for all 506 races), and the sliders move the forecast by what the crosstabs imply rather than replacing the model.
Combined controls: each demographic family contributes its change from its own neutral baseline. The tool adds those shifts for exploration; it does not claim the families are independent or turn the result into a probability.
Where the numbers come from: every demographic row here is a model estimate — our county-composition work raked to Census marginals with 2024 national exit-poll baselines, not survey data (the current crosstab file carries no state-survey rows). Small subgroups carry wide modeled uncertainty bands; the sliders move point estimates only. 0 House seats with same-party top-two generals are locked to their certain party, and 16 races the crosstab file doesn't cover hold still at the model's forecast no matter what you do.
Not a forecast: no win probabilities appear on this page, by rule. A 2-point margin in your scenario is not "a 60% chance" of anything — it's the arithmetic consequence of the shifts you chose, applied uniformly to every race's own demographic mix.