Backtests: 2022 and 2024
The same model, run with only the data that existed three days before each election, scored against the actual results for both chambers. The statewide misses measured here set the slider presets on the home page and the size of the statewide error term.
2022
Statewide environment
- Frozen as of
- 2022-11-05
- Forecast generic margin
- D+2.3 (polls 73% of the blend)
- Forecast legislative margin
- R+2.7 after the -5.0 legislative offset
- Actual legislative margin
- D+0.7 (House D+1.1, Senate D+0.2): vote-weighted party margin across contested districts
- Statewide miss
- +3.4 (positive = Democrats beat the forecast)
Inputs used: district leans from statewide races before the cycle (exact by town); the ballot: names, parties and incumbency from the results and Wikipedia incumbent tables; NH statewide polls up to the freeze date (governor, US Senate/president, NH-01/NH-02, NH congressional generic). Not available point-in-time: national generic ballot (no archived poll list with sources); district polls; outside ratings; campaign finance.
State Senate
- Seats called correctly
- 20 of 22 contested (90.9%)
- Brier score
- 0.05 (0 = perfect; 0.25 = coin flip)
- Log loss
- 0.157
- Margin error
- MAE 4.8 pts · RMSE 5.8 · bias +4.2
- 90% interval coverage
- 100%
- Democratic seats
- forecast 9.0 [7–12] of 24 · actual 10 · P(D majority) 3%
Misses
| Seat | P(Dem) | Forecast | Actual |
|---|---|---|---|
| S11 | 20% | R+6.4 | D+2.6 |
| S18 | 39% | R+2.1 | D+4.8 |
State House (multi-member)
- Seat events called
- 320 of 360 (88.9%) ("Democrats win at least j seats" for each contested district and j)
- Brier score
- 0.072
- Seat split exactly right
- 145 of 176 contested districts (82%)
- Seat error per district
- 0.25 seats (mean absolute, expected vs actual)
- Party-margin error
- MAE 7.1 pts · bias +5.7
- Democratic seats
- forecast 168.7 [136–204] of 400 · actual 197 · P(D majority) 6%
- Candidate dispersion used
- SD 3.49 pts (1064 candidate-results; incumbents ran 3.1 pts ahead of same-party non-incumbents in 144 districts)
Biggest House misses (expected vs actual Democratic seats)
| District | Seats | Expected D | Actual D | Forecast margin | Actual |
|---|---|---|---|---|---|
| Belknap 5 | 4 | 0.1 | 2 | R+15.6 | R+0.8 |
| Hillsborough 34 | 3 | 1.3 | 3 | R+2.6 | D+12.1 |
| Sullivan 6 | 3 | 0.5 | 2 | R+10.6 | D+3.3 |
| Cheshire 10 | 2 | 0.5 | 2 | R+7.2 | D+6.0 |
| Strafford 4 | 3 | 0.7 | 2 | R+6.1 | D+1.9 |
| Rockingham 29 | 4 | 1.7 | 3 | R+1.7 | D+5.1 |
| Coos 5 | 2 | 0.8 | 2 | R+2.6 | D+9.8 |
| Hillsborough 9 | 3 | 1.9 | 3 | D+1.7 | D+7.7 |
| Merrimack 8 | 3 | 2.0 | 3 | D+4.1 | D+15.1 |
| Merrimack 11 | 1 | 0.0 | 1 | R+18.0 | D+0.9 |
2024
Statewide environment
- Frozen as of
- 2024-11-02
- Forecast generic margin
- D+6.9 (polls 73% of the blend)
- Forecast legislative margin
- D+1.9 after the -5.0 legislative offset
- Actual legislative margin
- R+2.6 (House R+2.6, Senate R+2.7): vote-weighted party margin across contested districts
- Statewide miss
- -4.5 (positive = Democrats beat the forecast)
Inputs used: district leans from statewide races before the cycle (exact by town); the ballot: names, parties and incumbency from the results and Wikipedia incumbent tables; NH statewide polls up to the freeze date (governor, US Senate/president, NH-01/NH-02, NH congressional generic); 2022 legislative results as an extra lean. Not available point-in-time: national generic ballot (no archived poll list with sources); district polls; outside ratings; campaign finance.
State Senate
- Seats called correctly
- 22 of 24 contested (91.7%)
- Brier score
- 0.057 (0 = perfect; 0.25 = coin flip)
- Log loss
- 0.179
- Margin error
- MAE 4.4 pts · RMSE 5.0 · bias -4.2
- 90% interval coverage
- 100%
- Democratic seats
- forecast 10.7 [8–14] of 24 · actual 8 · P(D majority) 13%
Misses
| Seat | P(Dem) | Forecast | Actual |
|---|---|---|---|
| S11 | 79% | D+5.9 | R+1.9 |
| S18 | 72% | D+4.2 | R+2.9 |
State House (multi-member)
- Seat events called
- 342 of 368 (92.9%) ("Democrats win at least j seats" for each contested district and j)
- Brier score
- 0.053
- Seat split exactly right
- 150 of 176 contested districts (85%)
- Seat error per district
- 0.22 seats (mean absolute, expected vs actual)
- Party-margin error
- MAE 4.8 pts · bias -3.5
- Democratic seats
- forecast 198.4 [162–237] of 400 · actual 178 · P(D majority) 44%
- Candidate dispersion used
- SD 3.89 pts (543 candidate-results; incumbents ran 3.1 pts ahead of same-party non-incumbents in 80 districts)
Biggest House misses (expected vs actual Democratic seats)
| District | Seats | Expected D | Actual D | Forecast margin | Actual |
|---|---|---|---|---|---|
| Coos 5 | 2 | 1.4 | 0 | D+3.9 | R+8.7 |
| Hillsborough 29 | 4 | 1.1 | 0 | R+5.0 | R+4.8 |
| Merrimack 12 | 2 | 1.1 | 0 | D+1.6 | R+5.7 |
| Hillsborough 42 | 3 | 1.0 | 0 | R+1.2 | R+5.0 |
| Grafton 1 | 3 | 0.9 | 0 | R+5.5 | R+10.1 |
| Hillsborough 25 | 2 | 1.9 | 1 | D+14.0 | R+5.3 |
| Hillsborough 39 | 2 | 0.9 | 0 | R+2.0 | R+3.3 |
| Hillsborough 8 | 3 | 2.9 | 2 | D+12.2 | R+3.9 |
| Rockingham 16 | 7 | 0.9 | 0 | R+8.6 | R+10.5 |
| Coos 6 | 1 | 0.9 | 0 | D+9.3 | R+9.0 |