2026 Senate forecastThe Upper Chamber

How the model works

Methodology

The Upper Chamber forecasts the 2026 Senate elections by blending a weighted polling average with a fundamentals model, then simulating the election 10,000 times with correlated errors. This page is the whole model: every formula, every weight, and how it scored against every Senate race since 2012. No secret sauce is held back, mostly because there isn’t any. The values below are read straight from the model’s committed parameter file (model_params.toml, v4), so the site physically cannot show you different numbers than the model uses.

In brief

The short version

Thirty-five seats are on the ballot; Democrats and their allies hold 34 seats that are not up, Republicans 31. For each race the model builds two estimates of the Democratic-minus-Republican margin: a polling average that weights each poll by recency, sample size, population, and pollster quality, and a fundamentals estimate built from state partisan lean, incumbency, the national environment, and fundraising. The two are blended: the more real polling weight a race has, the more the polls decide it. The blended margins then go through 10,000 Monte-Carlo simulations that share national, regional, and state-level errors, because polling misses are correlated: when polls are wrong, they tend to be wrong in the same direction in similar places. Seat outcomes are counted across simulations, which is where every probability on this site comes from. A forecast of 63 in 100 means the candidate won 6,300 of the 10,000 simulated elections. It also means they lost the other 3,700, which is worth sitting with.

Step one

The polling average

Every poll of a race enters a weighted average of its Democratic-minus-Republican margin. A poll’s weight is the product of four factors:

weight = recency × sample size × population × pollster quality

Poll-averaging parameters
ParameterValueWhat it does
recency_half_life_days10A poll's weight halves every 10 days of age, measured from the middle of its field period. A three-week-old poll carries about a quarter of a fresh one.
sample_size_ref1600The sample factor is √(n / ref), capped at n = 5000. Polls that do not report a sample are treated as n = 400.
quality.floor0.05Pollster quality scales from this floor up to 1.0 with 538's 0–3 numeric grade. A bottom-rated pollster keeps 5% of its weight; discrimination is deliberately hard.
quality.unrated_grade1.5Pollsters 538 has never rated are scored as slightly below the rated median (≈2.0).
dedupe_factor0.5A pollster's newest poll counts fully; each older poll from the same shop is halved again, so one very chatty pollster cannot flood the average.

Population weights prefer polls of likely voters: likely voters 1, definite voters 0.95, registered voters 0.9, all adults 0.8, unreported 0.85.

House effects. Some pollsters lean consistently toward one party. Each pollster’s deviation from the rest of the average is measured across its own polls, shrunk toward 538’s published bias figure for that pollster (the prior counts as 3 points of summed poll weight), and subtracted from its polls, capped at ±5 points so no correction can overwhelm the poll itself. Every race page lists the exact weight and house adjustment applied to each poll.

Step two

The fundamentals

Polls are sparse in most Senate races, and in some they simply don’t exist. The fundamentals estimate predicts the same D−R margin from structural facts alone, no polling required, as the sum of four terms:

margin = state lean + incumbency + national environment + fundraising

Fundamentals parameters
ParameterValueWhat it does
lean weights0.75 / 0.25State partisan lean blends the 2024 and 2020 presidential margins (relative to the national margin), weighted 75/25 toward the more recent race.
independent_factor0.5An independent running as the de-facto Democratic-side candidate inherits only half the state's partisan lean; party labels carry information that a candidate without one does not.
elected_bonus2.5 ptsA running incumbent who has won the seat before starts with this margin bonus.
appointed_bonus1.0 ptsAn appointed incumbent who has never faced the state's voters for this seat gets a reduced bonus.
midterm_penalty−3.0 ptsThe president's party pays the historical average midterm penalty.
approval_coef0.08Points per point of net presidential approval (approve − disapprove), credited to the president's party.
econ coefficients0.5 / −1.0Points per percent of real disposable-income growth (year over year), and per point of 12-month unemployment change. A growing economy helps the party in power; rising unemployment does the opposite.
fundraising.coef1.5Points of margin per factor-of-ten advantage in FEC total receipts, capped at a 10:1 ratio. Money is a signal of candidate strength more than a cause of votes, so the term is deliberately small.

The environment terms are computed in president’s-party points and sign-flipped to the D−R scale (the president is a Republican in the 2026 cycle, so a bad environment for the White House helps the Democratic column). The backtest left every fundamentals coefficient at its prior value: tuning them scored better in-sample but worse out-of-sample, which is the classic tell of overfitting, so the priors stand.

Step three

Blending the two

The final margin estimate is a weighted average of the polling and fundamentals estimates. The poll side’s share is

w = W / (W + k), where k = 0.25 + 0.5 × (days to election / 100)

W is the race’s total summed poll weight, so a race with lots of fresh, high-quality polling is decided almost entirely by its polls, while a race with one stale poll leans on the fundamentals. Races with no polls at all use the fundamentals alone. Because the 10-day half-life already erodes stale polls, k barely needs to grow with time: even months out, real polling is trusted where it exists. Every race page shows this decomposition: the poll average, the fundamentals estimate, and the blend weight that combined them.

Step four

The simulation

A margin estimate is not a forecast. The forecast lives in the error bars, and polling errors are correlated. In 10,000 simulated elections, each race’s margin is perturbed by the sum of three normal draws: one national error shared by every race, one shared by races in the same Census region, and one per state.

Simulation error parameters
ParameterValueWhat it does
sigma_national±3.9 ptsOne draw per simulation, applied to every race: a uniform national polling miss.
sigma_regional±2 ptsOne draw per Census region per simulation, for regional misses like 2016's Midwest.
sigma_state±4.9 ptsIndependent per-state error on top of the shared components.
sparse_extra_sigma+3.5 × (1−w)Extra state-level spread in proportion to how little the polls informed the race; poll-poor races get honestly wider distributions.
third_party_sigma±3 ptsShare noise on true third candidates; minor-candidate share is reserved at 2 points when shares are built from a fundamentals margin alone.

These σ values were fit to the model’s own out-of-sample errors across 2012–2024, and they came out wider than the values the model was first built with. Humbling, but that’s the point: the honest spread of a Senate forecast a few weeks out is about ±4.9 points per state before the shared errors are added.

Georgia’s runoff. If no candidate clears 50% in a simulation, the seat goes to a simulated runoff: the general-election margin plus a fresh N(0, ±3) draw. Only two general-to-runoff shifts exist in recent history (2020 and 2022, both moved a few points toward the Democrat), and two data points are not much to build a law of nature on, so the mean stays at zero with a spread that covers both observations.

Simulations are deterministic given the same inputs, parameters, and seed; every published forecast records all three and is never overwritten. Chamber control is counted per simulation from the 65 seats not on the ballot plus each simulated winner’s caucus; Democrats need 51 seats for a majority since the tie-breaking Vice President is a Republican. Race ratings are buckets on the same probabilities: Solid beyond 95 in 100, Likely beyond 80, Lean beyond 60, and Toss-up inside that.

The receipts

Backtest, 2012–2024

The whole pipeline was replayed against 225 Senate races across eight cycles (2012–2024), 3,214 historical polls and reconstructed fundamentals included, scoring the forecast it would have published at each distance from the election. Parameters were tuned with leave-one-cycle-out validation (each cycle scored by a model tuned only on the other seven), and the tuned values are exactly the ones published above.

2468604530211471Fundamentals, 60 days out: 7.18Fundamentals, 45 days out: 7.18Fundamentals, 30 days out: 7.12Fundamentals, 21 days out: 7.12Fundamentals, 14 days out: 7.13Fundamentals, 7 days out: 7.15Fundamentals, 1 day out: 7.19FundamentalsPolls only, 60 days out: 6.08Polls only, 45 days out: 5.73Polls only, 30 days out: 5.55Polls only, 21 days out: 5.31Polls only, 14 days out: 5.02Polls only, 7 days out: 4.68Polls only, 1 day out: 4.52Polls onlyBlend, 60 days out: 7Blend, 45 days out: 5.15Blend, 30 days out: 4.68Blend, 21 days out: 4.44Blend, 14 days out: 4.22Blend, 7 days out: 3.92Blend, 1 day out: 3.7Blend
Average miss of the forecast margin, in points, by days until the election

The blend beats both of its own ingredients at every horizon from 45 days out, which is the whole point of blending. Two months out, with almost no polling in the archive, it rides the fundamentals; by election eve it misses the margin by 3.70 points on average against polls alone at 4.52.

0.0250.0500.0750.100604530211471Blend, 60 days out: 0.092Blend, 45 days out: 0.069Blend, 30 days out: 0.061Blend, 21 days out: 0.057Blend, 14 days out: 0.058Blend, 7 days out: 0.053Blend, 1 day out: 0.050Blend
Brier score of the win probabilities (lower is better; 0.25 = coin flips)

Probabilities are scored with the Brier score, the average squared gap between the forecast probability and what happened. Always guessing 50/50 scores 0.25, so anything below that beats a coin. Calibration at the extremes is essentially exact: races the model put under 10 in 100 won 0 of 75 times in the final week, and races over 90 in 100 won 74 of 75. The full scorecard:

Backtest scorecard by days until the election
Days outPolled racesMAE blendMAE pollsMAE fund.BiasBrier
6031/2257.006.087.18+2.320.092
45157/2255.155.737.18+0.330.069
30198/2254.685.557.12+0.260.061
21202/2254.445.317.12+0.020.057
14207/2254.225.027.13−0.160.058
7222/2253.924.687.15−0.450.053
1225/2253.704.527.19−0.40.050

MAE is the mean absolute error of the D−R margin in points; bias is the signed mean (positive = forecasts leaned Democratic). Each row scores all 225 scoreable races; “polled” counts how many had at least one poll by that date. Horizons stop at 60 days because the historical poll archive only carries polls inside 61 days of each election.

Inputs

Data sources

  • Polls: parsed from Wikipedia’s 2026 Senate race pages every six hours, deduped, with occasional manual entries (flagged as such) for polls Wikipedia lacks. Every poll row records its source and fetch time.
  • Pollster ratings: 538’s combined pollster ratings (numeric grade and published bias), 2024 methodology.
  • Election results: certified presidential results by state for partisan lean; MIT Election Lab statewide returns for incumbency history and backtest actuals.
  • National environment: net presidential approval from Wikipedia’s approval polling tables; real disposable income and unemployment from FRED.
  • Fundraising: FEC total receipts per nominee, refreshed daily.

The pipeline runs every six hours. A new forecast is published when the inputs have actually changed, and at least once a day either way; published forecasts are append-only, so the timeline on each race page is the record of what the model said at the time, never a reconstruction.

Honesty

What this model can't do

  • Nothing is validated beyond 60 days out; the historical poll archive simply has no earlier polling, so long-horizon behavior is extrapolation from the fundamentals’ scored accuracy.
  • The backtest’s economic series are today’s revised vintages, not the numbers known at the time, and FEC receipts are end-of-cycle totals rather than as-of-date snapshots.
  • One error structure serves every horizon (fit at 14 days out). The final-week numbers hint it is slightly too wide at the very end. If the model must err, that is the humble direction.
  • Candidate fields are today’s: until each state’s primary resolves, the model forecasts the likely nominees, and a surprise nominee changes the fundamentals overnight.
  • A 10,000-simulation forecast is a statement of uncertainty, not a prediction of a winner. 20-in-100 outcomes happen. About one time in five, in fact.

Parameters are versioned (v4 today); any change to a published value is logged, and past forecasts are never recomputed under new parameters without being republished as new runs.