Methodology
Everything on this site is built from public poll data with a method simple enough to check by hand.
Data source
Polls come from the VoteHub Polling API, which publishes U.S. approval, favorability and generic-ballot polls under the Creative Commons Attribution 4.0 license. For each poll we keep the pollster, sponsors, field dates, sample size, population (adults, registered or likely voters), whether it is an internal campaign poll, a link to the source and the result for every answer.
We also read The New York Times poll list through PollResults.org (also CC BY 4.0), which adds many more approval polls and polls of individual Senate, House and governor races. When both sources carry the same poll — same subject, end dates within a day, and the same pollster or the same sample and start date — we keep the VoteHub copy, hide the duplicate and redirect its page there, so no poll is counted twice. The Times' feed also tags each candidate's party, which we use to color candidates from both sources.
Races, odds and results
The Races pages bring three kinds of data together for each Senate, House and governor contest and for control of each chamber:
- Prediction-market odds from Kalshi and Polymarket, refreshed every 15 minutes. A contract's price (0–100¢) is read as the chance of that outcome; each market's prices are scaled to add up to 100% and, where both markets cover a race, averaged. We store one closing price per day to draw the history charts. Market prices are traders' bets, not forecasts or advice.
- Poll averages — the mean of every poll of the race that ended within 30 days of the newest one; the margin is the Democrat's share minus the Republican's.
- Election results from civicAPI, checked twice a day before an election and every 5 minutes from election day until results settle.
How often data updates
- Live refresh: every 30 minutes, polls that ended in the last 30 days are downloaded again, so new polls and late corrections appear quickly.
- Archive check: every 7 days the whole history is re-checked. Historical polls rarely change, so they aren't re-downloaded more often.
- Removed polls: if the source withdraws a poll, it disappears from charts and averages and its page answers 410 Gone.
8,271 polls are currently tracked.
How the average works
For every date on which at least one poll ended, the average for each answer is the plain mean of all polls that ended in the 21 days up to and including that date.
- Every poll counts once, whatever its sample size or pollster.
- No house-effect, recency or quality adjustments are applied.
- Charts show up to four answers per topic — those that appear in the most polls.
Limitations
- The source API is in beta; coverage of pollsters and topics may change.
- We don't re-weight polls or correct for differences between adults, registered voters and likely voters. Filter by population to compare like with like.
- Pie charts show any share that doesn't add up to 100% as "undecided / other."
Reuse the data
Every filtered view can be downloaded as CSV — one row per poll answer — from the poll list, or directly at /polls/export.csv. Please credit the original source of each poll (VoteHub or The New York Times), as the CC BY 4.0 license requires.


