How the Oracle actually works
No black boxes. Here is every step between a raw poll and the numbers on this site.
A forecast in active development — calibration and backtesting are still in progress, so treat every probability as an early-stage model output.
What this is
This site is an election forecast in active development. Its foundation is a set of weighted polling averages — polls are weighted by a hybrid pollster-quality score and recency, as of the date stamped on each page. On top of that foundation, the Senate Forecast page runs a probabilistic simulation of chamber control and compares the result against prediction-market prices. The shaded bands on the tracker charts are confidence intervals around the polling average.
Where it stands
The probabilities published here come from a Monte Carlo simulation that has not yet been backtested across past election cycles, so treat them as an early-stage model output rather than a settled prediction. As calibration work completes, the uncertainty parameters and market-blend weights will be tuned against historical results and this page will be updated to reflect that.
The generic-ballot “estimated seats” figure is an illustrative translation from a static historical slope. It is a directional indicator only, not a seat projection.
The three trackers
- Presidential approval — weighted average of job-approval polls, with a daily trend and CI band.
- Generic ballot — weighted average of the national D-vs-R congressional preference, reported as a margin.
- Senate — per-race weighted polling averages, with win probabilities and the control simulation on the Senate Forecast page.
Comparison & nowcast layers
- Model comparison (homepage) — our approval average shown alongside Silver Bulletin’s published model, an unweighted VoteHub poll average, and 50+1 when available. Each line is that source’s own output; we don’t blend them.
- NYT vibes adjustment (Senate) — an experimental, bounded (±3 pt) overlay on the base race average derived from sentiment-scored New York Times coverage. Full explainer on the Senate page. Off by default.
- Senate control simulation — 1,000 Monte Carlo simulations of the key races with correlated national polling error, optionally blending Polymarket/Kalshi implied odds at a tunable weight. Today it answers “if the election were held now”; as backtesting across past cycles completes, it will mature into a full election-day forecast.
Data & refresh
Polling data is refreshed daily by a scheduled job that runs the model pipeline and publishes static JSON. The heavier hierarchical state-space estimates are intentionally excluded from the published data for performance reasons.
Last updated: Jun 20, 2026, 11:56 AM
TRACKER — weighted polling averages only, not a forecast
