Oklahoma U.S. Senate · Democratic runoff · 25 August 2026

OK Senate Simulator: Priest vs Thomas

Thomas led June by 21.3 points; 52,249 votes were freed when Green, Yen and Cassity were eliminated, and all three endorsed Priest. Drag the levers that decide the runoff. Everything else is held at values measured from the Oklahoma voter file and the certified precinct results.

Win probability splits held within 2 pts
Priest
Thomas
band = bloc splits ±8, turnout 88k–110k, retention 0–5,000; the August-only split is held where you set it. The win probability is a different quantity: it samples the measured uncertainty and reports how often Priest finishes above 50%.

Scenarios

jump to

The scenario travels in this page's address. Paste the link alongside the file and opening the file with that address restores the exact slider positions.

Where the sliders start, and why

This page opens on the model's own assumptions, not on a neutral 50/50. Every default below is set from something measured, and the evidence is stated next to each lever. The three bloc defaults average to 65%, the centre of the analysis's 45–75% prior, with the tilts between them set from measured precinct association.

LeverOpens atBecause
Green to Priest67% Strongest measured association: Green precinct strength predicts the Priest two-way at +0.353 (t = 15.7)
Cassity to Priest65% Association +0.222 (t = 9.5)
Yen to Priest59% No measurable association (+0.041, t = 1.7). Lowest of the three; above 50 only for the endorsement
Total turnout98,000 Centre of the measured 88k–110k band: 38.2–47.8% retention of the 176,412 June Democrats, plus the 23.4% August-only pool
Differential retention+1,500 Bracketed 0 to 5,000 votes across estimators; measured at −0.51 to +0.77 points. Direction only just favours Priest, magnitude near nothing
August-only voters50% They arrive with no June preference. No evidence either way

The freed blocs — 52,249 votes, 31.0% of June

Each bloc gets its own lever. All three candidates endorsed Priest, but the geography says their voters are not one bloc: Green's precincts are strongly Priest-associated, Yen's are not. No poll of any of them exists — this is the unmeasured axis that drives 64.7% of the outcome variance.

The decisive bloc: 64.1% of the freed vote. Working-class lane. Precinct association with the Priest two-way +0.353 (t = 15.7), the strongest signal of the three, and the endorsement points the same way.

Centrist-crossover lane. Association +0.041 (t = 1.7) — statistically nothing. His voters sit in precincts that do not otherwise lean Priest, so this is the bloc most exposed to drifting back to Thomas.

Smallest bloc, older lower-information voters. Association +0.222 (t = 9.5).

The rest of the machinery

Does Priest's older coalition return better than Thomas's? Measured by two ecological estimators biased in opposite directions: −0.51 to +0.77 points. There is no meaningful gap — the earlier hope of a 27-point advantage is dead. Bracketed 0–5,000 votes; the slider opens at zero because the measured bracket's midpoint is approximately zero. Anything above zero is a scenario you are asserting, not evidence.

23.4% of an August D electorate never voted in June (24.2 / 22.0 / 23.9% across 2018/2020/2022) — about 22,900 people the standard win number ignores entirely. Every point here cuts the freed-bloc requirement by about one.

June absentee voters returned in August 2022 at 74.9% against 40.1% for election-day voters, so each conversion is worth about 0.35 of a ballot that would not otherwise be cast. The conversions must come from June's 148,231 election-day voters — the 19,799 who already voted early or absentee are already in the high-retention pool and converting them adds nothing.

How the converted ballots break. NOT MEASURED. The 34.8-pt absentee lift observed in June is a selection effect (people who choose absentee differ from people who get converted to it), not a persuasion effect, so this defaults to 50%. A program that targets Priest-leaning precincts can push it up — but that is a targeting claim you are asserting with this slider, not a fact the model knows.

Where the votes come from

SourcePoolPriestThomas
Own June voters returning
Green voters returning
Yen voters returning
Cassity voters returning
August-only voters
Added by the absentee program
Total

Which assumption actually decides this

Seven levers do not carry equal weight. Each bar is the swing in the final Priest margin produced by moving that one lever across its whole range, holding everything else where you have it now. The longest bar is the only conversation worth having.

The early-vote clock — 10 to 22 August

Absentee requests close 10 August, 17:00; in-person early voting runs 20–22 August; and on the night the county boards report mail and early totals before the precinct boxes. In June, 12.24% of the Democratic Senate vote arrived that way (4.52% mail, 7.72% in-person early) — and it was very much not a neutral sample. Enter what is published as it is published; the clock reads it both ways.

Three things this cannot do. June's pre-day share is not August's — it is the only same-electorate benchmark that exists, and August's will run higher (the projected electorate is older and absentee retention is 74.9%), so the default is a floor, not a fact. Requests are not returns — the return-rate slider is a judgement, applied to mail only. And above all, the early vote leans Priest by a measured +4.78 points: his June pre-day two-way was 39.6% against a 34.8% final. Mail alone ran 46.7% Priest against 33.9% on election day. An early Priest lead on the night is partly composition, not persuasion, and the clock subtracts the measured lean before projecting. If his campaign runs the absentee program, the August lean will be even larger than June's.

County benchmarks: the 50% + 1 vote line

The benchmark is the WIN LINE, not the scenario above: what each county has to give Priest for the statewide total to land at 50% plus one vote, at the turnout the turnout slider sets, distributed across counties by June geography. On the night of 25 August, enter each county as it reports, votes and Priest share. Banked votes re-solve the line live.

hover a county for its number

CountyJune votesJune P%Expected Aug votes Needs P%Reported votesReported P%vs needed

Three limits, stated plainly. Expected county turnout distributes the slider's statewide total by each county's share of the modelled AUGUST Democratic vote (June votes weighted by the county's August-2022 D credit share); the toggle switches back to the June basis. D-side pacing ratios run 0.60 to 2.31, so the two bases disagree materially. The needed-share map spreads the remaining gap by uniform swing from June geography, so it is the path of least surprise, not the only path. And a county beating its number can mean persuasion or turnout; this page cannot tell them apart.

Regional splits — the seven regions, separately

Above this section each bloc split is one number, applied to all 77 counties. The geography disagrees with that: the Tulsa ring and Little Dixie gain August weight on measured D pacing (1.10 and 1.11), the OKC metro sags (0.93). Turn regional mode on to set each region separately. The turnout slider still sets the statewide total — multipliers redistribute it, they do not add votes.

RegionJune votesAug weightPace June P two-wayTurnout ×Green % Yen %Cassity %P − T
OKC Metro & Exurbs78,21742.85%0.92531.5%
Tulsa Metro & Green Country49,68432.42%1.10233.3%
SE / Little Dixie & East17,05711.25%1.11444.7%
SW / Lawton-Great Plains7,4864.63%1.04539.2%
North-Central / Stillwater-Ponca5,7262.87%0.84641.0%
South-Central5,6322.76%0.82741.0%
NW / Panhandle & Enid5,0943.22%1.06646.8%

Read this before quoting a regional number. Regional mode does not reproduce the statewide model even with identical splits, and that is not a bug: each region returns its June voters at its own measured August pace, while the statewide model applies one rate to everyone. The difference is printed above as the geography effect. The uncertainty band, the paths grid and the win-number line stay statewide. And the regional splits are still assumptions: the precinct association says the blocs are geographically organised, not by how much they break anywhere in particular.

Paths to victory

Neither lever alone is enough. Consolidating the freed bloc without winning the August-only pool loses, and so does the reverse. The green region only opens when both move together. The grid sets all three bloc sliders to the column value; your per-bloc settings are not used here.

The two grids are different quantities. Vote share is the arithmetic under one fixed set of assumptions. Win probability samples the measured uncertainty around that cell and reports how often Priest finishes above 50%. Because it holds each split to within two points, the probability swings from near zero to near certain across a handful of points on the freed axis. That cliff is the argument for buying a poll: measurement, not persuasion, is what collapses it.

Turnout is not a lever

Total August turnoutPriest sharePriest Thomas

Why it cannot move: every bloc scales with turnout, and share is a ratio, so the level cancels exactly. With differential retention at zero, Priest's share is identical to three decimal places at 88,000 and at 130,000. The only turnout effect in the whole model is that differential retention is an absolute vote count, so it dilutes as the electorate grows — and it was measured at −0.51 to +0.77 points. Turnout explains about 0.1% of outcome variance. Any minute spent arguing about how big August will be is a minute not spent on the levers that matter.

Who this electorate is

Two drivers carry almost everything: age and race. They are nearly uncorrelated with each other, so they are separate levers. Density adds nothing; income, education and gender are third-tier. (This section exists because on the Democratic side these variables genuinely predict vote choice; the Governor tool's equivalent section explains why the same analysis is not buildable for the Republican runoff.)

Precinct age decileMean ageTwo-way votes ThomasPriest
1 (youngest)47.513,389 76.4%23.6%
354.114,128 69.9%30.1%
557.911,483 61.1%38.9%
761.39,841 62.9%37.1%
964.36,188 55.8%44.2%
10 (oldest)67.24,871 49.8%50.2%

The oldest decile is the only one Priest carries. Correlation between precinct mean age and Thomas share is −0.626, and it survives controlling for race, urbanicity, income and education.

Age and race interact, and it changes the target

Black share of precinctYoungestYounger OlderOldestAge swing
under 5%73.663.0 56.050.2 -23.4
5 to 15%75.668.0 58.256.9 -18.7
15 to 30%78.073.9 68.763.8 -14.2
30% and above84.8 80.482.1 83.3-1.5

Thomas two-way share. Read across for age, down for race.

The age advantage is a white-electorate effect. Above 30% Black share the age gradient disappears: Thomas holds about 83% whether the precinct is young or old. Priest's universe is not "older Democrats", it is older white Democrats.

June electorate becomes the August electorate

JuneProjected AugustShift
June voters returning176,412 ~75,10043%
Mean age57.2~60 +2.8
Aged 65 and over43.6%~51% +7.4
Black share11.9%~13% +1.2
Early or absentee12.2% ~17%+5

⚠️ These are the RETURNING cohort's numbers, not the whole August electorate's: the ~23% August-only pool is not in them, and its age tilt is inconsistent across cycles (+4.5 / −4.5 / 0.0 years). The direction carries; the magnitudes are cohort magnitudes. Do not quote "the August electorate will be 51% over 65."

The lonely ballot

This is the only statewide race on the Democratic side of the 25 August ballot. The Republican card carries four statewide runoffs (Governor, Superintendent, Insurance, Labor); the Democratic card carries this race plus exactly two local runoffs — Oklahoma County Commissioner District 1 (20,792 June votes) and HD99 (3,925), both inside Oklahoma County. Two consequences. There is no coattail turnout: nothing else on the card brings a Democrat to the polls, so every August voter outside Oklahoma County shows up for this race alone, which is why the measured 38–48% retention band, not the Republican side's higher-salience history, is the right prior. And the one place with extra ballot content is Oklahoma County — Thomas's strongest county (June two-way 52.5% Thomas): the Commissioner runoff is a small structural turnout subsidy to her best geography, worth watching in the county benchmarks above.

What is measured, what is assumed

Measured: certified June result (Thomas 76,271 · Priest 40,282 · freed 52,249: Green 33,472, Yen 11,357, Cassity 7,420). August-only share 23.4%, from 2018/2020/2022. Retention band 38.2–47.8% of the 176,412 June Democrats, so total turnout 88k–110k. Differential retention −0.51 to +0.77 points. Absentee vs election-day retention 74.9% against 40.1%. Per-bloc precinct association (Green +0.353, Cassity +0.222, Yen +0.041). Pre-day vote share 12.24% with a +4.78-point Priest lean. County pacing from August-2022 D credits — the one past cycle with a statewide D runoff on all 77 county ballots, deliberately not pooled with 2020/2024, which had D runoffs in only 40 and 49 counties.

Not measured, and decisive: how each freed bloc splits, and how the August-only pool splits. Together they are 91% of the outcome variance. The precinct association sets the defaults' tilts, but it is ecological evidence and no poll exists. This tool is a way to reason about that uncertainty — it is not a forecast, and no number in it is a prediction.

No campaign in this race has a data operation. Neither Priest nor any of the three endorsers has voter ID or contact history, so the freed bloc cannot be targeted from anyone's list. It has to be reached through precinct geography, and the endorsers work as messengers, not list-providers.