NonpartisanIndependent, data-first coverage of US elections — polls, forecasts, and prediction markets, refreshed daily.Updated daily.What's new·Methodology·Send feedback
Changelog

What's changing

PoliAgg ships improvements continuously. This page tracks every shipped change — new features, data updates, scraper fixes, model experiments. Entries are dated and tagged so you can scan the parts that affect you most. Got feedback on something? See the contact page.

v0.8
June 13, 2026

Home redesign, recent-window topic movers, pollster grades

  • FeatureHomepage "Top races" simplified to match the latest design — one headline poliagg forecast-margin value plus a single sparkline of that margin over time, with a hover tooltip. When several races share an election date they're ordered by recency-weighted poll volume (busiest, freshest first).
  • FeatureTopic movers now rank by what actually moved recently — the largest change over the last 7 / 30 / 60 / 90 days — instead of all-time change (cannabis legalization's +45 since the 1980s no longer reads as a "mover"). Each sparkline gained a date · value hover tooltip.
  • Feature"In the news" rebuilt to match the race-detail card style (favicon tile · source · headline · race tag), paginated 10 per page, and scoped to race coverage. News is refreshed daily by the pipeline (the news + verify steps from the retired hourly run were folded into the daily run).
  • FeatureHomepage map now matches the national /map view — small Northeastern states (+ HI) pulled into a side chip column, visible state outlines, and the whole country fits the frame (no more clipped top/bottom).
  • DataPollster accuracy grades (A+ … F) now appear on the latest-polls feed and pollsters page. Scoring was broadened to grade each firm's final poll in every completed race it covered — ~1,100 firms now carry a grade, up from ~160. Aggregation weights still use the stricter final-21-day track record, so the forecast model is unchanged.
  • FixPrimary sub-pages (/primary-d, /primary-r) now show the candidate field for post-primary races whose only polls are primary polls — they previously read "Field of 0 candidates" with no winner. The candidate list is now derived from primary polling when no general matchup has been polled yet.
  • FixRemoved the model-explainer text blocks from the primary forecast section on race-detail pages.
v0.7
May 17, 2026

Race-detail redesign + bigger endorsement coverage

  • FeatureRace-detail page: new NYT-style probability-bar hero, 3-card forecast comparison (Ensemble · Bayesian · Market-implied), prediction-markets section with cross-platform diff banner, redesigned polling chart with end-labels + election-day marker, and endorsement-ratio bar at the top of the endorsements section.
  • FeatureSite-wide beta status banner under the masthead with links to changelog · methodology · feedback.
  • DataEndorsement scraper rewritten — now reads the state-umbrella Wikipedia article (not just per-district articles), scopes each Endorsements heading to its parent District N section, and uses a 'declared challenger' fallback for multi-candidate primaries with anonymous endorsement sections. Added ~950 new endorsement rows on first pass.
  • DataSearch index now includes candidate names and full state names. "Vindman" / "Florida" / "Cotton" all return the right race; previously the race entries only carried state code + type + cycle.
  • FixPolls-table trust-signal glyphs are now optically centered (used to drift up-left on retina). Added a Leader column showing surname + margin (e.g. "Cotton +22").
  • FixSources page tabs no longer scroll horizontally and the URL query-param tab switcher actually works (client-side toggle since the site is fully static).
  • FixFeatured-race cards on the homepage: clicks now go to the race page instead of /races, candidate names truncate cleanly with ellipsis, sparkline tooltip and dot markers render correctly.
v0.6
May 16, 2026

Markets coverage + chamber chart polish

  • DataPolling scrape upgrade — now picks up primary-style poll tables (no `(D)`/`(R)` party tags in headers) by inferring party from the section heading. Added ~570 new polls across 50+ races including AL R primary, FL D primary, etc.
  • FeatureChamber charts (Senate / House / Both) — added hover tooltip with state + seat + rating, configurable bucket coloring (safe / lean / tilt / tossup), and fixed dot overlap in both-chamber view.
  • FixMoney-in-race totals on race detail now combine committee receipts + IE (not just IE), matching the per-candidate "Raised" stats below the headline.
  • FeatureDays-to-election now reads "5 months 19 days to election" instead of "169 days" for races more than a month out.
v0.5
May 15, 2026

Model v18 + v19 — null results documented

  • DataThree model experiments shipped and rejected after honest backtests: v17 (markets-removed: neutral signal on history), v18 (recency-weighted training: monotonic regression), v19 (ACS demographics: collinear with PVI). At our data scale the model appears feature-limited, not parameter-limited.
  • PerfPollster-upsert hardened against name-collision crashes (two slugified ids colliding on the same display name no longer crash the scrape).
v0.4
May 14, 2026

Endorsements data quality + comparison fixes

  • FixEndorsement scraper rejects garbage entries — Wikipedia poll-strength chart axis labels (`50, 60%`, `[ 36 ]`) were being parsed as endorser rows. Purged 2,302 stale garbage rows from the DB.
  • DataEndorsements section now shows a card per candidate in the active phase (with a clear empty state for candidates with no endorsements yet) rather than silently dropping un-endorsed candidates.
v0.3
May 8, 2026

Initial public preview

  • FeatureFirst public beta. ~3,500 races across 2012-2026 cycles, ~12,000 verified polls, FEC fundraising + IE spending, prediction-market quotes across Polymarket / Kalshi / PredictIt / Manifold, daily Wikipedia + GDELT ingest.
  • FeatureRace detail, state pages, pollsters, ballot measures, daily report, sources page, embed builder.