Next week, we’ll launch our midterms model, with complete forecasts of the 435 U.S. House races, 35 Senate races, and 36 gubernatorial races on the ballot this November, as well as the overall likelihood of each party controlling each chamber and all kinds of other details.1
The model performed quite well in 2018 after the code was basically rewritten from scratch, and again in 2022 after some further tweaks mostly to reflect increasing political polarization.
asserted
code → launch → polarization
So we’re not looking to reinvent the wheel.
asserted
we → look → wheel
However, AI tools are helpful for refining existing code, so we’ve cleaned up some minor inconsistencies, made the code faster, and tested a few hypotheses that should help around the margin.
asserted
that → refine → margin
We feel pretty safe about the timing because we got the model basically fully “working” over the weekend.
asserted
model → feel → weekend
Still, we need a day or two to make some further coding refinements, a day to write up the documentation, a day or two to test out some further empirical improvements on our punch list, a day or so to finalize the graphics, and some time to double-check everything and kick the tires on anything that looks weird.
asserted
that → need → anything
We’ll also surely have some “take” for you about Michigan after Abdul El-Sayed and Haley Stevens have their primary on Tuesday night.
asserted
Sayed → have → night
That’s a finite amount of work, but it probably lands us at early next week, not this week, for model launch.
asserted
it → ’ → launch
We greatly appreciate your patience and are looking forward to having a model-heavy autumn with both the midterms and ELWAY.
asserted
We → appreciate → midterms
In line with our protocol for 2024, we’ll publish polling averages of key races for everyone, while the probabilities and forecasts themselves will be for paying subscribers.
asserted
probabilities → publish → subscribers
Full disclosure: we typically increase our monthly pricing for new subscribers when we have a time-sensitive model like the midterm forecast running.
asserted
model → increase → forecast
This will not affect annual pricing, and it will not affect any existing paid subscribers.
asserted
it → affect → subscribers
Pricing at Substack is always grandfathered in permanently, so long as you remain continuously subscribed.
asserted
you → grandfathere → Substack
In fact, you can still lock in our “off-season” pricing until the model officially launches next week.
asserted
model → lock → pricing
Yesterday, I chatted with Eli about the model, the midterms and Michigan — and Trump’s approval rating, which once again recently hit a record low in our tracking.
asserted
which → chat → tracking
You can find the video below, though it’s choppy in places2 so there’s also a lightly edited transcript below.
asserted
it → find → places2
Hey Eli, how are you doing?
asserted
you → do → ?
Eli McKown-Dawson: Doing pretty well.
asserted
Dawson → do → ?
I’m going to have some news for you and for Silver Bulletin in a minute that explains why I’m sadly kind of bleary-eyed.
asserted
I → go → minute
The model is working, which is good.
asserted
which → work → ?
That doesn’t mean it’s done, but it means that it takes these files that we — mostly you — spent months gathering.
asserted
we → mean → months
I think there are 68 different input files that we use in the program.3
asserted
we → think → program.3
It goes through 14,000 lines of code, and it spits out coherent projections for the state and the national picture.
asserted
it → go → state
There are a lot of things we still have to vet.
asserted
we → be → things
By the way, you almost gave me a heart attack last night.
asserted
you → give → attack
One of the variables that we use is a candidate experience variable, which runs on a scale of 0 for never elected to anything to 3 for a senator or governor.
asserted
which → use → senator
In the [data] we were using, a candidate with no experience got coded as a 9.
asserted
candidate → use → 9
Nine is sometimes used for missing data.
asserted
Nine → use → data
The model interpreted a 9 as you’re fucking Gandhi crossed with Reagan crossed with Obama crossed with the Pope.
asserted
you → interpret → Pope
You’re the most popular incumbent ever.
asserted
You → ’re → ?
So it had all these [inexperienced challengers] crushing [incumbents]4, and I’m like, “wow, we’re really out of consensus.
asserted
we → have → consensus
That’s interesting.”
asserted
That → ’ → ?
And then we fixed that, and it became more normal.
asserted
it → fix → that
I will say, we are going to spend a little bit more time debugging, vetting, building better graphics, and looking at new features.
asserted
we → say → features
My guess, in true honesty, readers, is that we will launch the model a week from Monday, so the 10th.
asserted
we → launch → Monday
It’s not official — we’ll talk about it in our planning meeting.
asserted
we → ’ → meeting
If life depended on it, we could probably launch this week.
uncertain
we → depend → it
We have a big primary this week in Michigan, which we’re going to talk about a lot.
asserted
we → have → lot
But basically, we are on the final lap, I would say, Eli.
asserted
I → say → lap
I do just want to say, I saw that message yesterday about the nine versus the zero coding.
asserted
I → want → coding
I’m fairly certain your original message about that did say to code those people as nines.
asserted
message → ’m → nines
…and 529 more, not listed.