The World’s Okayest Election Forecast
Simplified VA House of Delegates forecasts as an example
The next set of elections coming up with a bunch of districts in a single state is Virginia’s, this November. These elections are a traditional test case for midterm strategy for a variety of reasons, including the convenient timing and complete lack of campaign finance limits. For me, they’re a chance to start mocking up forecasts for the midterms and getting a sense of the thermostatic swing from the presidential. The primary isn’t over until June 17th so anything you do right now is utterly candidate agnostic, and can’t include incumbency, but that doesn’t mean it’s too early to make a toy model.
Personally, I think hyper simple models are useful both as a predictive tool and as a learning tool. By playing around with different uniform (or uniform-ish) swings you can get a sense of what the plausible possibilities of outcome are which I don’t think you can develop any other way.
Virginia House of Delegates
All 100 seats in the VA House are up in 2025. Right now, Democrats control the chamber 51-49.
The last election for these seats was in 2023, and the results can be found here. I am 80% using this as an example because VPAP makes VA results easy to access. I can’t stress enough how much of election forecasting is trying to get election results and incumbency codings. This is very easy for the Senate and shockingly hard for everything else. You also want Presidential results by whatever district level you’re looking at- in this case, House of Delegates. This is also often *very annoying*, but VPAP gives it to us here.
Normally I would pull in earlier election results as well, but the House of Delegates districts were renumbered in 2023 and I can’t be bothered to handle crosswalking earlier results right now.
The first step is to smush both sets of election results down to 2 way vote share, D votes / (D votes + R votes). In places with high and varying third party vote share, you may want to be more careful about this, but generally it’s fine. It does fall apart completely in multi-member seats, but this is the World’s Okayest Forecast, not the world’s most generalizable forecast. Multimember districts are a whole separate problem that break this simple model entirely, and if VA House had them I would not be using it as an example.
The second step is to do your preferred form of spreadsheet nonsense to join the two datasets together.
This looks like a bunch of data points indicating nothing much.
Marginally better! Now you can see that presidential results and HD results are highly correlated, when the HD race is actually contested. Sidenote, I looked up HD 69 (that uncontested Republican held seat where the Presidential vote share was .49) and the Democrat Lindsey Fogarty seems to have withdrawn after an uncontested primary election. Weird.
Eyeballing For Dramatic Shifts
One nice thing about having both of those bits of information is you can do an eyeball check for the likely validity of applying uniform swing. If the Presidential results were really dramatically different than the last House of Delegates results, you might worry that there was something unusual happening at this specific level of the ballot. This does not appear to be the case here. There’s maybe something going on in the more Republican seats where they’re drifting increasingly Democratic, but it’s not strong enough to particularly bother me.
You might be able to handwave these results by saying that 2023 was immediately preceding the 2024 election, so of course the results are related, but the pattern of strongly correlated results like this holds across states and elections. Because most voting is driven by partisanship, and partisanship is relatively stable, you get high correlations like this. As ticket splitting decreases across elections, this correlation gets even stronger.
For mechanical forecasting purposes, this is great, since you can treat any given election as a likely predictor of the following election. There is still some variation from partisan baselines, especially at lower levels of the ballot, and I prefer to use past election results in the same election type as a baseline where I can get it.
At this point, you have two main pieces of information: what happened last time these House of Delegates elections occurred, and what happened in the most recent election on record in those geographies.
Guessing at Uniform Swing
Of course, time continues to rudely pass between the 2024 election and the 2025 VA elections. You shouldn’t expect the results to match the 2024 results exactly, especially since we can clearly see backlash to Trump’s various shitty actions in his approval polling.
To account for that, starting with the most recent election results for these races, I’m going to apply a uniform swing. This assumes that Democratic vote share will go up or down in an approximately uniform way across all seats, and it is a common overall pattern in election results. Estimating what the uniform swing should *be* relies on guesswork and background research.
In VA, the Presidential race was Biden 54%-Trump 44% in 2020, and Harris 52%-Trump 46% in 2024. That’s a shift in the 2way from 55% Dem to 53% Dem, not an incredible sign for the direction of the state, but not a dramatic one either. However, what matters for predicting the 2025 races is not so much the relationships of the Presidential races to each other, but the relationship of the VA election immediately after a presidential to that presidential result.
To say that another way: In 2021, VA had its House of Delegates elections in the year after the 2020 election. Those elections were reflective of some kind of backlash and reaction to that 2020 Presidential result (as well as other things). This year, we should expect the 2025 elections to be partially a reaction to the 2024 Presidential result.
In 2021, the VA elections were surprisingly Republican leaning. Dems lost 7 seats in the House of Delegates, and you saw nearly every locality voting more Republican in the Gubernatorial race than 4 years previous. The Dem 2way in that Gov election was 49%, -6 from Biden’s result. At the time, I roughly attributed that to a backlash against Democratic policies, particularly around covid. School closures in particular were a huge issue in the state. Plus, basic thermostatic politics expects that when a party takes power, voters immediately start moving against them, and this was clearly happening in 2021.
In 2025, we’ve got Trump in the White House and Republican trifecta control of the federal government. The backlash to this control has shown up in approval polling, as mentioned above, and in the couple of special elections that we’ve had so far. I feel solid about saying that we’re going to see a swing towards Democrats. How large exactly? Ehhhh.
Let’s work through some options. To handle those uncontested seats, I’m going to fill them with the 2024 presidential result from that same district. This is less good than using some other nonfederal contest, like Governor, but there aren’t any 2023 or 2024, so this is what we’ve got.
I’ve also switched from labeling each seat by its District to labeling them by their relative ordering, from most Democratic to least. This is useful because it lets you easily track which seat is the 51st in this projected ordering, and so which party will hold the majority in the chamber. I prefer this to having to count from one side every time or add another line to the chart.
Swing Options
The nice thing about having first established that House of Delegates results are highly correlated with presidential is you can then use national level information about environment, swing, and backlash to take a guess at swing. As established above, we also know that the previous presidential to House swing was -6%, with a Dem president. Estimating the shift against Trump is difficult, especially with how lousy public polling is right now. With this structure, you can easily work through a range of options.
First option is a tiny little swing towards Dems, 1%, taking the overall 2way from 53% to 54%.
This is barely a visible shift at this level of zoom out. If you focus wayyyyy in on the handful of close races, you can see that this relatively tiny shift puts 6 new seats either at or over the 50% line, moving Democratic control from 51 seats to 57 seats.
If you want to compare multiple options for shift, I find it a little easier to overlay new lines, marking 50% minus shift (or + shift if you’re looking at shifts towards Republicans) and then look at how many seats wind up above the new 50% line.
Again here’s the zoom in
If I had to guess, I think somewhere between 5% and 10% shift is likely. VA is a pretty college educated state with a lot of federal employees, who are getting absolutely wrecked by Trump’s policies. 10% would be a dramatic shift in a normal year (that -6% post Biden’s election shift felt massive at the time!), but it’s possible given the current environment. If I was forced to make a choice, I would probably say 8% shift.
Here’s that 8% swing in a slightly nicer chart
Chamber Control?
It seems near certain that Dems are going to control the chamber after these House of Delegates elections. Losing ground this year seems extremely unlikely, and even tiny Democratic shifts can swing enough seats for a fairly comfortable majority. Specifically, I feel confident in D chamber control because of a combination of midterm effects and the specific dynamics of VA.
At that 8% shift I pulled out of a hat, Dems would control 70 seats. Democrats haven’t had that many seats since 1980, where they controlled 74. It would be an impressive thing! We’ll see!
The Use of Lazy Forecasts
I started this whole post with an admission that this is a mediocre attempt at a VA forecast. I threw this together in an afternoon with publicly available data, and without even trying to pull in further back election results. What I’m interested in demonstrating is that you can take a half decent guess at election results with minimal information and be extremely transparent about the assumptions you’re building in. In VA particularly, you can see that even a tiny shift towards Dems would cause them to control the chamber. You can also look at the distribution of seats and start to look for cutpoints where a tiny shift nets far more seats due to several seats being the same distance from 50%.
Personally, I think understanding the shape of the election and how the various seats line up is a huge piece of making accurate forecasts. It lets you step back from agonizing about point estimates and think in terms of ranges of outcome. Plus, once you start throwing other past election results in the mix, it becomes clear that the set of close seats really doesn’t vary that much, even in dramatic elections. Looking at tipping point seats on which chamber control pivots lets you focus donations and energy with high efficiency even very far out from the actual election.
Notes: The underlying data is downloadable from either VPAP or the DataWrapper chart, so feel free to poke around. Once VA has its primaries, we’ll have more information on what incumbents are running and what seats are more in play, which is another layer to add.
Great read!