Methodology

How the Oracle actually works

No black boxes. Here is every step between a raw poll and the numbers on this site.

What this is

A work in progress from the team at Policy y Peaches. 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 charts are confidence intervals around the polling average.

The three trackers

Comparison & nowcast layers

Data & refresh

Polling data is refreshed by a scheduled job that runs the model pipeline twice a day and publishes static JSON — including the hierarchical state-space estimates (house-effect-corrected approval and generic ballot). If a primary feed stops delivering new polls for more than 72 hours, the pipeline tops it up from Wikipedia’s national polling tables and flags the feed below.

FeedPolls in averageMost recent poll
Presidential approval1,833Jul 31, 2026stale
Generic ballot395Jun 28, 2026stale
Senate races112Jul 30, 2026stale

Pipeline last run Aug 4, 2026, 11:07 PM. “Most recent poll” is the newest survey in each feed — if those dates start drifting behind today, the upstream polling sources need a refresh. Reminder to the team: keep the source CSVs current.

A work in progress from the team at Policy y Peaches — learn more here. Data sources: VoteHub, Silver Bulletin, Polymarket, Kalshi, state pollster releases. Code & full poll log on GitHub.

A work in progress from the team at Policy y Peaches. Learn more here.

Last updated: Aug 4, 2026, 11:07 PM