What you are looking at The Senate in ninety seconds — and why most of the map is grey

The Senate

One hundred seats — two per state, regardless of size. California has 39 million people and two senators; Wyoming has 590,000 and also two. Terms run six years.

Which is why the map misleads if you read it by area: Wyoming looks about sixty times the size of Rhode Island and is worth exactly the same, one seat.

Why most states are grey

Terms are staggered so the chamber never turns over at once. Seats sit in three groups and only one group faces voters every two years.

2026 is that group's turn — 33 seats — plus special elections in Florida and Ohio, whose senators left mid-term for Secretary of State and Vice President. Hence 35 contests. The other 65 senators aren't on any ballot this year.

What winning means

Democrats need 51 seats; Republicans need 50 — the Vice President breaks ties, and JD Vance is a Republican. Republicans hold 53 now. Democrats keep 34 seats that aren't up, so they need 17 of the 35.

A majority sets the agenda and confirms judges and cabinet posts on a simple majority. Most other legislation still needs 60 votes to break a filibuster, so a narrow win is real but well short of a free hand.

Why midterms are different

2026 falls halfway through the presidential term. The president's party usually loses ground — though the Senate is less reliable about that than the House, since which seats happen to be up matters as much as the national mood.

A probability isn't a prediction: a 30% chance should come in about three times in ten. Being surprised is part of the design.

Democrats
—
chance of control

—

Republicans
—
chance of control

The 35 seats up in 2026

—

Shaded by who is favoured. The 15 states with no Senate race this cycle are greyed out — a map cannot show that Wyoming and Rhode Island are worth exactly one seat each, so read the seat distribution below for the count that matters. Hover a state for detail; click for its polls.

Distribution of Senate seats

—

Democratic-caucus seats across — simulations. The line marks the 51 seats Democrats need for a majority.

Forecast over time

—

Democratic probability of Senate control, one point per model run.

National environment

—

The generic congressional ballot, estimated as a latent random walk. Every race is geared to this by its own elasticity, so movement here shifts every contest at once.

—
Generic ballot margin
—

What changed

Generated automatically after each run by diffing against the previous forecast.

Earlier entries

Race by race

Ordered by competitiveness. Click any race for its polls and trajectory.

How this forecast is made

The short version: a Bayesian model estimates where each race stands from the polls, then adds the amount that polls have historically been wrong by. Both halves are described below — including how the second one was measured rather than guessed.

Three things, added together

For every race, on every day, the model estimates one thing: the share of the vote each side would get if the election were held that day. It builds that estimate out of three ingredients.

  1. Where the race starts. Before a single poll is read, how does this place vote? That comes from the 2024 and 2020 presidential results there, plus whether an incumbent is on the ballot. Think of it as the answer you would give if the national mood were exactly tied.
  2. Which way the country has moved since. Hundreds of national polls ask which party people would back for Congress. Those give a single number for the national mood, and the model tracks it drifting day by day rather than treating today’s polls as the last word.
  3. What is happening in this race in particular. A strong candidate, a scandal, a spending blitz — movement that is about this contest rather than the whole country.

Add the three together and you have the estimate for that race on that day. One more adjustment: races differ in how hard they swing when the country swings. A district packed with voters who have already picked a side barely moves; a competitive suburb moves a lot. The model works out that sensitivity for each race rather than assuming everywhere responds alike.

What comes out is a range, not a number

The model never settles on one answer per race. It keeps thousands of versions of the whole map — every one internally consistent, some good for Democrats, some good for Republicans — and counts how often each side ends up with a majority across all of them. That count is the percentage at the top of this page.

This is why a race can be described as a 70% favourite and still lose without the forecast having been wrong. Thirty out of a hundred is not nothing.

Why it is built this way

The starting point assumes a tied country. That sounds like a technicality and is the opposite. If a race’s starting point already had a good Democratic year baked into it, and the national mood were then added on top, the same swing would be counted twice and every forecast would be too extreme.

Races move in groups. If Michigan drifts toward Democrats, Wisconsin probably did too. Treating them as unrelated throws that information away, and it matters most in the unpolled races — the ones with nothing of their own to go on.

But those group movements have to average out. The third ingredient is supposed to capture how a race moves compared with everywhere else. The country’s own movement is already the second ingredient, measured from hundreds of national polls. If the third one is left free to drift the whole map at once, the two are describing the same thing, and the model cannot tell which is which — in practice the per-race term wins, because it has one knob per race to do it with.

That is not hypothetical. It showed up as a House forecast that did not budge when ten states’ new district maps moved its starting point by thirteen seats. The per-race term had quietly absorbed the change.

The model is fitted with PyMC, which explores the range of settings consistent with the polls rather than hunting for a single best fit. The seat forecast comes from running all — races together many times.

The same thing, as an equation

Everything is tracked on the log-odds of the Democratic share of the two-party vote. Each race r, on each day t, is:

θr,t = αr + λr·ηt + εr,t

αr
Where the race starts — its baseline at a tied national environment, from presidential lean in 2024 and 2020 plus incumbency.
ηt
The national environment, a random walk driven by generic-ballot polls. One number for the whole country on a given day.
λr
Elasticity — how hard this race swings when the country swings. Estimated per race, pooled toward 1.
εr,t
The race’s own drift, constrained to sum to zero across races at every step.