Changelog

Reverse-chronological log of methodology updates, accuracy improvements, bug fixes, and feature launches. Builds trust the only way that scales: by being auditable.

Recent

2026-09-11 | model

Governor races now include state-filed campaign finance; previously the money features covered federal races only

The Senate and Governor forecast (sengov-2026-govmoney-v1) adds a governor money input: the Democratic share of two-party candidate receipts through June 30 of the cycle, read from state disclosure board filings (Iowa, Nebraska, Oklahoma, Hawaii, Massachusetts) and Transparency USA's state finance records, with its own trained coefficient. Until now the model's only candidate money input was FEC receipts, which exist for Senate races only; every governor race read as "no money data". Governor races without a strictly pre-cutoff filing still read that way, exactly as Senate races without FEC data do. Historical coverage: 44 of 142 governor races from 2014 to 2024 carry a pre-cutoff money figure, concentrated in 2018 (18 races) and 2022 (20). Gate: pooled leave one cycle out Brier improved on every 2014 to 2024 holdout cycle (lower by 0.00030 pooled; governor races lower by 0.00084; Senate races unchanged at plus 0.00007), and the stacked out of sample score improved from 0.0986 to 0.0978 on the same folds. The governor subgroup improved in every cycle that has any governor money on file; 2016, which has none, moved by plus 0.00017 on the refit alone. Transparency USA's season totals were not used for training because they run past the election; per-quarter series through June 30 were used instead. This refit also recalibrated the model's overall sharpening; several races moved from that recalibration rather than from money data, including the largest single moves. See /methodology.

2026-09-07 | model

House calibration checked, no correction applied; Senate/Governor methodology copy corrected to match the served model

Two model hygiene checks, run against the sanity gate hold and the unbacktested behavioral dimensions. House: the 35 districts the sanity gate is holding were checked against a hypothesis that the model is overconfident in its extreme probability bins, which would explain a hold that data alone does not. A pooled leave one cycle out reliability check across all four 2018 to 2024 holdouts (1,727 district predictions) found the opposite: the 95 to 100 percent predicted bin actually wins 99.50 percent of the time against a mean predicted probability of 98.94 percent, and the 0 to 5 percent bin loses 98.21 percent of the time against a mean predicted probability of 1.05 percent. Both gaps sit under one percentage point and in the safe direction; the model is not overconfident at the extremes it is being held for. No temperature or Platt correction was fit or applied, model_version house-2026-panel-v1 is unchanged, and all 35 districts remain held exactly as they were: by a genuine mismatch between an extreme call and a lean under the gate's 15 point bar, not by a calibration artifact. Senate/Governor: a review of the served model sengov-2026-lean-v2's actual trained feature set found the site's own methodology page had drifted from what the model does. The page's backtest coverage paragraph claimed Money and Pulse contribute to live forecasts without independent backtesting; the served model's coefficients show neither is a model input at all; both are display only and always have been under this model version, consistent with what the page's own display dimensions section already said. The same paragraph described Risk and Isolation as having partial historical coverage; both are full leave one cycle out backtested features in the served model, the same as every other dimension in its behavioral block, and Risk is a top three driver in ten of the fifteen largest Senate/Governor moves on record (see docs/MODEL_CALIBRATION.md). The paragraph is rewritten to state this correctly. No coefficient, weight, or p_dem changed for any 2026 race under this entry. See /methodology.

2026-08-30 | data

House lean input upgraded from 2020 to 2024 presidential results

The House model's partisan lean input now uses 2024 presidential results measured on current district lines, replacing 2020 results measured on the previous lines. The model standardizes lean within each cycle, so the coefficients are unchanged; a district's probability moves only where its standing within the 2026 map moved. This also restored the districts held earlier today: with every district measured on its current boundaries, 400 of 435 now serve, and the 35 still held are held by the sanity gate rather than by missing data. Gates run before the change was written: the five unchanged control districts reproduced within 0.014 against a 0.06 tolerance, expected Democratic share of served seats moved 0.3 points against a 5 point limit, no district shifted more than 0.55 standard deviations in its rank within the cross section, and every one of the fifteen largest movers was checked against a real world cause. Utah's 1st, the single district crossing from near certain one way to near certain the other, is the Salt Lake County seat created by the court ordered map. California's 1st, 3rd, 41st and 48th moved because Proposition 50 redrew them. Missouri's 5th and Tennessee's 9th moved because their legislatures targeted them. Texas's 15th and Florida's 9th, 14th and 27th moved with the documented 2024 swing in South Texas and Miami Dade, on unchanged lines. Baseline for the new input is the certified 2024 national two party Democratic share, 0.49250, replacing 2020's 0.5227. See /methodology.

2026-08-30 | data

Districts forecast on old lines: found, held, being re-measured

We found that 181 House districts in seven states that redrew their maps for 2026 were being forecast on old district lines. We held them, are re-measuring on current lines, and restore them as each one passes. External market prices helped us catch it: a comparison against a prediction market's own House prices showed our number and theirs disagreeing in a way that our internal checks could not flag, because the district's partisan lean and its forecast were both measured on the superseded map and therefore agreed with each other perfectly. Texas's 9th is the clearest case: redrawn from a seat Biden won by 27 points into one rated Solid Republican, while we still served it at 99.99% Democratic on the old boundary. Two fixes shipped alongside the hold. The corrected current-lines lean now lives in its own permanent column that a model promotion cannot overwrite, which is how the earlier correction was lost. And the sanity gate now compares the lean a district is scored on against that corrected value, so a forecast can no longer pass by being consistently wrong with its own inputs. Coverage counts on every page read live from what is actually served, so they fell the moment the hold landed. See /corrections.

2026-08-28 | model

Senate/Governor model adds 2024 presidential margin as a lean input

The Senate and Governor forecast (sengov-2026-lean-v2) now uses each race's 2024 presidential D-R margin alongside the existing within-cycle z-scored partisan lean, rather than lean alone. Why: even after the prior lean-refit (2026-08-27), the model's implied logit-per-point of lean was still about 4.6x flatter than the House model's dedicated slope, leaving close-race calls under-sharpened relative to the underlying partisan signal. Adding 2024's presidential result as a second, more recent lean signal improved leave-one-cycle-out Brier on every individual 2014-2024 holdout cycle tested, not just the pooled average. Four races (governor-2026-NM, governor-2026-IA, senate-2026-ME, governor-2026-ME) remain on a manual hold that predates this change and is unrelated to it -- see /corrections. See /methodology.

2026-08-27 | model

Senate chamber-control simulation method evaluated, not promoted

Tested replacing the Senate P(control) simulation (a correlated Poisson-binomial mixture with a fixed tau=0.545 spread) with the same two-independent-draws Monte Carlo the House and Governor chamber-control estimates already use, with swingSigma/envSigma derived live from Senate's own state_lean coefficient instead of a hand-picked constant. This is a simulation-method change only: individual race forecasts (P(Dem) per Senate race) are completely unaffected either way -- only the shared national-swing/environment draw inside the chamber-control Monte Carlo would change. Result: P(D Senate control) moved from 15.5% under the current method to 61.7% under the tested method, with an implied seat standard deviation of 1.76. The promotion gate for this kind of change requires a seat sd between 2 and 5; 1.76 falls short, so the new method was not promoted and the site continues to serve the original tau-mixture. Root cause: Senate's own state_lean coefficient produces a much flatter swing/environment sensitivity than the House model's dedicated PVI slope does at the same 3pp/4pp scale, so directly transplanting the House/Governor formula under-disperses for Senate -- a different sigma scale (or swing source) would need to be derived before this change could pass its own gate. No serving change resulted from this evaluation.

2026-08-26 | model

House chamber-control estimate corrected from 100% D to 83% D

The House forecast moved from an initial 100% D chance of controlling the chamber to 83% D. Why: (a) the House model was previously fit on the 2022 cycle alone, carrying that year's specific national environment into 2026; it is now trained across 2016-2024 with a midterm-correction term, and beats the old model's Brier on every out-of-sample holdout cycle tested (2018: -0.0083, 2020: -0.0029, 2022: -0.0063, 2024: -0.0115, all improvements). (b) The chamber-control simulation now includes a separate national-environment-uncertainty draw (a Gaussian on the district-swing scale, sd matched to a +/-4pp historical range of president's-party House vote swings) on top of a correctly re-scaled idiosyncratic district swing -- the earlier swing scale was a Senate/Governor value transplanted onto a model with a much steeper points-to-probability slope, which understated the true uncertainty and produced an implausible 100% headline. Seat expectation under the corrected simulation: 239.2 D-favored seats of 435, +/- 23.75 (versus 218 needed for a majority). Senate and Governor forecasting methods are unchanged by this correction (Governor's chamber-control simulation gained the same environment-uncertainty draw, but its underlying per-race model and idiosyncratic-swing scale were not touched). See /methodology.

2026-08-26 | model

House model now trained across 2016-2024 with a midterm term

The House forecast was retrained on five pooled midterm and presidential cycles (2016-2024) instead of 2022 alone, adding a long-run midterm-correction term matched to the Senate/Governor model. The prior House model was fit on 2022 alone and carried that cycle's specific environment forward into 2026 unchanged. The new model beat the prior one on every out-of-sample holdout cycle tested (2018, 2020, 2022, 2024). Districts redrawn for 2026 (North Carolina, Texas) continue to score on their already-corrected 2026-map lean, not the prior map. See /methodology.

2026-06-11 | model

Improved challenger-money signal and midterm correction

The forecast now accounts for how competitively a challenger is funded, and applies a long-run midterm correction for the president's party. It also holds back from sharpening a call when a race's structural position and its mood reading point in opposite directions, rather than forcing a confident number out of conflicting evidence. Accuracy improved to a pooled out-of-sample Brier of 0.119 against a 0.250 coin-flip baseline. See /calibration.

2026-06-04 | model

Open-seat races handled correctly

Races where the incumbent is retiring are now treated as genuinely open rather than as defended seats, applied consistently in both scoring and live forecasts, backed by a full audit of retirements since 2014. This changed several 2026 races that the prior version had mis-classified, most notably North Carolina's senate race. The race universe also expanded to include five contests previously missing.

2026-06-01 | model

Civic participation data error corrected

We found and fixed an error in how civic participation was measured, and switched to a more reliable turnout source. An earlier version had posted a better-looking accuracy score, but that gain came from the data error rather than genuine skill, so we retired it and shipped the corrected version despite its slightly worse number. The historical scoring record was also extended back to 2014. Details in /corrections.

2026-06-01 | feature

Albers USA SVG map replaces tile-grid choropleth

Real state shapes from us-atlas TopoJSON. AK / HI insets. Click-through to /race/:race_id on senate and governor maps.

2026-06-01 | feature

Datum Signals logo + shared site chrome

Final brand mark selected from three concepts. Header, footer, favicon, and OG cards unified.

2026-05-31 | model

Candidate-quality signal fixed for uncontested seats

The candidate-quality signal was being distorted in races with no meaningful opposition. Corrected, with a small accuracy improvement.

2026-05-30 | feature

Forecast page redesign + 10 inline graphics

Section structure: Hero National Index, Top 5 Presidential, Race Maps, Movers, Mood Rankings, State Composite Map, Dimension by Race Heatmap.

Forecast accuracy over time, including how the current model scores on past cycles, is published at /calibration.