For the last few months, SwingSeat ( THE WEEKLY STANDARD’s Senate Forecast) has been eating data and spitting out predictions—specifically, it's been figuring out what the odds are of Republicans maintaining control of the Senate in January and what the probability of a GOP or Democratic win is in every individual Senate race. Those forecasts have been fueled almost entirely by polling—that is, the model figured out where public opinion is and used past data to translate that into win probabilities.

But, behind the scenes, I’ve been working on some improvements. And today I’m going to roll out the two big ones—the addition of fundamentals to the forecast and a Gary Johnson Estimator. These changes represent real shifts in what the model thinks about when it makes its projections, and they make the model on average significantly more accurate.

One quick note before we get started: The improvements described below change how we project the Election Day outcome. If you want to know about how other parts of the model work (e.g., how we collect polls, how we weight them, how we think about error, etc.) you can read the original methodology statement here.

We’ll start with fundamentals.

Having Fun with Fundamentals

In the previous iteration of the model, I almost exclusively used current and past polling data to generate probabilistic forecast in each race. In English, that means it looked at past elections, looked at the polling we have in 2018 and gave each candidate a win probability somewhere between 0 and 100 percent . That approach works well when you test it on past elections, and it has produced solid, sensible projections.

But we can get a bit more accurate by adding “fundamentals” to the mix. Fundamentals are basically factors outside head-to-head polling (i.e. presidential approval, state-level presidential partisanship, whether an incumbent is running and whether it’s a midterm or presidential year). Specifically, I set up a regression analysis that looks at polling data and fundamentals from past elections to project the outcomes of the 2018 election.

These factors all point basically in the direction you would expect.

The model relies heavily on the polling average—if we were in a totally neutral environment (i.e., a perfect swing state in a presidential year where the president had a zero net approval and neither candidate was an incumbent) the projection wouldn't differ enormously from the current polling average.

But this approach allows the fundamentals to push that projection by a few points. For example, the model expects that candidates from the president’s party tend to lose ground in a midterm election. It also says that candidate’s from the president’s party tend to do poorly when his approval is low (conversely, if presidential approval is high it can counteract the normal drag of a midterm year). The model gives incumbents a slight bonus, and it generally thinks that candidates who are running in friendly territory (i.e. Republicans in very red states and Democrats in very blue states) gain ground over time.

As time goes on, these fundamentals become less influential. And in many races, these fundamentals point in different directions and mostly cancel each other out by the time Election Day rolls around.

It’s worth emphasizing (as I did in my original explainer for the model) that this is just one way to process the data. Every model involves choices about what data to include, how to think about that data and more. Models aren’t magic, and we shouldn’t expect them to be clairvoyant or to replace other methods of gaining knowledge (i.e., traditional reporting, expert analysis).

But they are helpful. When I tested this model on past elections, it correctly “projected” the winner on Election Day (e.g. gave the winning candidate a greater than 50 percent chance of prevailing) about 95 percent of the time. In my view, that’s a pretty solid success rate. But if you simply apply that percentage to the 34 regular Senate races, you would expect it to incorrectly “call” the winner in one or two races. There’s variability around that estimate (i.e., in some years the model will nail it, in others it makes more mistakes), but it suggests that this model is telling us something we might not otherwise know about the state of this election.

So How Does This Change the 2018 Forecast?

The important topline here is that the GOP’s chance of holding the Senate decreases by about 10 percent. The Republicans are still favored, but their odds are closer to 6-in-10 rather than 7-in-10 . Moreover, the model thinks that the most likely outcome is for the Republicans to hold 50 seats in January of 2019, which would, along with Vice President Mike Pence’s tie-breaking vote, give them the narrowest of majorities.

The state-by-state breakdown mostly has good news for Democrats, but it also has some good news for the GOP.

The fundamentals portion of the model pushes Florida hard to the left and sort of taps Missouri in that direction. Instead of being toss-up states, the model now believes that Florida Democratic senator Bill Nelson has a roughly 85 percent win probability and that Missouri Democratic senator Claire McCaskill has a 65 percent win probability.

The logic here is simple—the polls show a close race, but the sum of the fundamentals in Missouri (i.e. that Trump’s low national approval rating and the effects of incumbency and the midterm year are just a bit stronger than the state’s underlying redness) make the model suspect that the race might move left between now and Election Day. That being said, it's still a very close race, with McCaskill as only a 2-to-1 favorite. The model also basically thinks that Florida should look more like Ohio or Pennsylvania—a swing state where, because of the incumbency advantage and the national Democratic environment. So it shifts that projection strongly in favor of the Democrats.

The model also thinks that New Jersey senator Bob Menendez and Minnesota senator Tina Smith are going to end up winning . The current polling suggests a close race for both candidates. But New Jersey is a very blue state and Minnesota is blue-ish purple—which makes the model think that the race will move toward those candidates.

The best news for Republicans comes from Texas. During the summer, Ted Cruz’s win probability slid from 85 percent to 75 percent as Beto O’Rourke made some gains in the polls. But integrating these factors put him back around 85 percent. GOP odds also improved in Tennessee, West Virginia, and Montana. The numbers shifted around a bit in some of the other competitive states, but those changes weren’t big.

Overall, the basic message of this model is clear. SwingSeat thinks that the most likely result is for the GOP to hold their safe states plus Tennessee and Texas and take North Dakota while the Democrats win everywhere else. That would leave the GOP with 50 seats.

The model also knows there’s a *huge* amount of error around that estimate. Polls could be underestimating Republicans (like they did in 2016) or Democrats (like they did in 2012). It’s still reasonable to imagine scenarios where polls underestimate the GOP and they net a few seats in what otherwise looks like a highly Democratic year. It’s also possible to imagine scenarios where the Democrats win every competitive seat, including Texas and Tennessee, giving them a 53-seat majority.

Republicans still have a real advantage in the race for Senate control. The best way to think about it is probably as a “Leans Republican” proposition—a situation where the GOP is still the favorite, but where neither side should take a potentially competitive race for granted.

Accommodating Gary Johnson

The other change to the model is relatively minor. In New Mexico, former Republican Gov. Gary Johnson has decided to run as a Libertarian candidate against Democratic senator Martin Heinrich and Republican Mick Rich. The previous iteration of this model wasn’t equipped to handle major third-party candidates. But I’ve changed that.

I collected polling from past elections where a major third-party candidate ran (I used recent Senate and governor races since there aren’t that many Senate races where a third-party candidate really makes noise) and then told the model to simulate the third-party vote share in addition to the vote share for the Democratic and Republican candidates. The candidate who got the largest percent of the vote won the simulation.

This doesn’t make a big difference in the New Mexico Senate race. Right now, the model treats Johnson as the de-facto Republican and Rich as the third party candidate (since the most recent polling suggests that Johnson has much more support than Rich). Johnson manages to beat Heinrich in a few scenarios, but Rich stays in third place in almost every simulation.

The model currently counts both Johnson and Rich victories are GOP victories. I’ll change that if necessary (e.g., if Johnson tries something Orman-esque), but I doubt it’ll matter much. So far, New Mexico appears to be uncompetitive.

One Final Note on Revisions

I don’t want to make too many more revisions to the model after this point. It’s confusing for readers to see too many big changes in a row, and at some point you risk unconsciously putting your thumb on the scale via making changes. But there may be one or two more changes coming down the pike. Stay tuned.