← Forecast
Methodology

How the Forecast Works

One model produces every number on the forecast page. It is a probability machine, not a crystal ball. This page explains exactly what goes into it, in the order it runs, so you can judge the output for yourself and argue with it where it deserves an argument.


The short version

The model takes each competitive race, blends three independent reads on it (the ratings, the polling, and the state’s underlying partisan lean), adjusts for the national mood, and then simulates the entire map tens of thousands of times. A party’s odds are simply the share of those simulations it wins. Nothing here favors a party by design. The inputs are public, the weights follow from how reliable each input is, and the same recipe runs for a seat in a deep blue state and a seat in a deep red one.

What goes in, step by step

1. Ratings

For each race the model starts with the published competitiveness ratings (Cook Political Report, Sabato’s Crystal Ball, and Inside Elections, where available). A rating like “Lean R” or “Toss-Up” is translated into an expected vote margin using a lookup that was trained on real Senate outcomes from 2014 through 2024. In other words, “Lean R” means whatever “Lean R” races actually did over the last decade, not a number someone picked by feel.

2. Polling, weighted by age

Where a race has polling, the model folds it in. Fresh polls count for more than stale ones. The reliability of a poll degrades as it ages, so an old survey is widened toward uncertainty and pulled back toward the rating-based estimate. A race with no recent polling leans more heavily on its rating and its baseline (below). A race with fresh, plentiful polling lets the polls do more of the talking.

3. Partisan baseline

Every state has an underlying lean that does not move much year to year. The model captures it from the Cook Partisan Voting Index and the 2024 presidential margin, expressed relative to the country as a whole. This is the floor under a race. It keeps an unpolled seat in a lopsided state from drifting on thin evidence, and it gives the model a sane prior when the other two signals are quiet.

4. The national environment

Races do not move independently. When the national mood shifts toward one party, it tends to shift in many places at once. The model carries that shared mood as a single national number and applies it across the board, then lets each race vary around it. That is why a small national swing can move a lot of seats together, and why the forecast does not treat the map as a set of unrelated coin flips.

That national number starts from the generic congressional ballot (the “which party would you vote for” polling average). We do not feed it in raw, and here is the part we want a skeptical reader to see plainly: the generic ballot has historically overstated Democrats, by roughly two points in eight of the last ten cycles. So we shrink the raw number toward zero and apply a Republican-leaning correction for that known bias before the model uses it. If the raw average reads Democrats plus seven, the model works from closer to Democrats plus four. We would rather haircut a figure that flatters one side than report a number our own track record says runs hot.

We also widen the uncertainty on that national number the further we are from Election Day, on a fixed schedule set in advance. Six months out, the honest error bar on the national environment is wide (the generic ballot can be off by five points even on the eve of an election, and more than that this early). As November approaches, the band narrows on a pre-committed timetable, not because anyone decided the race got clearer. A forecast that quietly grew more confident as one party’s position improved would be telling you a story; the schedule keeps it honest.

5. Fusion, weighted by precision

For each race the model now holds three estimates (rating, poll, baseline), each with its own uncertainty. It combines them by trusting the more certain ones more. A confident, fresh poll outweighs a vague rating. A noisy poll defers to the baseline. The result is one combined estimate per race, with an honest error bar attached. No signal is allowed to dominate just because it is loud. It has to be precise to carry weight.

6. The simulation

With a combined estimate and error bar for every race, the model runs the whole map tens of thousands of times. Each run draws one shared national shock (so the races move together, as they do in real life) plus its own local noise for each seat. Every run produces a full seat count. Stack up all the runs and you get a distribution: not a single number, but the range of plausible outcomes and how often each one shows up.

7. Seats and probabilities

From that pile of simulations the model reports the median seat split (the middle outcome), an 80 percent range (the band that contains four out of five simulations), and the probability of a majority (the share of simulations in which a party reaches the threshold: 51 in the Senate, 218 in the House). Joint control of Congress is counted from the same simulations, not multiplied together after the fact, because the two chambers tend to move in the same direction in a given year.

How to read the four views

The forecast page shows the same model from four angles. They are not four models. They are four ways of looking at one.

  • The topline and chamber cards. The headline odds for Congress, plus a card for each chamber with its median seats, its 80 percent range, and its majority odds. This is the answer to “who is favored, and by how much.”
  • How it moved. The change since the prior run. Toward Republicans, toward Democrats, or steady, with the size of the shift and the days between runs. This is the trend, not the level.
  • What each signal says. Where the ratings alone, the polls alone, and the baseline alone each land, before fusion. When they agree, confidence is high. When they disagree, the gap between them is the uncertainty, shown plainly rather than hidden.
  • What if the mood shifts. The seat counts under a few pinned national environments (say, a Democratic-leaning year, a neutral year, and a Republican-leaning year). This shows how sensitive the map is to the one thing nobody can poll yet: the mood on election day.

Where it can be wrong

A model is only as good as its inputs and its assumptions. Ratings can lag a fast-moving race. Polling can be sparse, herded, or systematically off, as it has been in recent cycles. The partisan baseline assumes the recent past still describes the present, which is exactly the assumption a realignment would break. The national-environment estimate is itself uncertain, and the correlation between chambers is a modeling choice, not a measured fact. The forecast reports ranges and probabilities precisely so that none of this is papered over. A 70 percent favorite loses about three times in ten. That is not the model failing. That is the model telling you the truth about how much it does not know.

What it is not

It is not a bet, an endorsement, or a reason to tune out. The point of putting the reasoning on the page (signal by signal, with the error bars showing) is that a forecast you can inspect is a forecast you can hold accountable. Watch whether the races resolve inside the ranges it gave. That is the test, and we will keep score.

← Back to the forecast