Scores v5 pre-registered forecast of the November 3, 2026 Governor's race by town (plan decision I).

    SCORES_OUT=<scores_v4 folder> SCORES_POLLS=<site-design/polling-page/polling_data.json> ASOF=2026-10-30 python3 v4_forecast.py

Forecast margin (D minus R, two-party) for each rated town = the town's relative lean (scores_towns.csv; v4 called it Natural Lean, v5 adds the district lean back, see v5_scores.py) + the statewide two-party
polling margin of the race on the as-of date (the site's polling-average rule: each pollster's last poll in the final 21 days before
the as-of date, weighted by grade x sqrt(n/600) x sponsor; polling-page/README.md). Also written: the "last presidential margin"
rule (the town's 2024 President margin as the forecast) that the ratings will be compared with, and the top-50 most competitive towns
under each rule (the targeting back-test).

Scoring after certification (both against the official town returns, two-party margin, towns with a result line):
  geographic   replace the polling margin with the actual statewide two-party margin: does the relative lean place towns correctly?
               (mean absolute error, r, and the same for the 2024-President rule shifted by the same statewide swing)
  operational  the file as frozen: mean absolute error and the share of towns whose winner was called;
  targeting    of the 50 towns each rule called most competitive, how many were decided by under 5 points.
The frozen file is forecast_<asof>.csv in forecast_2026-11-03/; nothing in it changes after the freeze date.


Freezes (each file is final once written):

- As of 2026-10-17: 5 pollsters' last polls since 2026-09-26; weighted statewide two-party margin Hannah Pingree minus Bobby Charles = +12.8. Towns forecast Democratic: 180 of 504; within 5 points: 66. Top-50 overlap between the two targeting rules: 12 towns. (first freeze, carried from v4; it used v4 Natural Lean — its column is `natural_lean`.)
- As of 2026-10-30: 5 pollsters' last polls since 2026-10-09; weighted statewide two-party margin Hannah Pingree minus Bobby Charles = +8.9. Towns forecast Democratic: 139 of 504; within 5 points: 55. Top-50 overlap between the two targeting rules: 37 towns. Frozen on 2026-10-29 ~15:30 ET by the Workflow Tasks processor (Matt approved P-200 a), with polling_data.json as built by check C that morning (polling v0.4.7); a poll ending Oct 30 would not be in it. Marist (Oct 25, 44–44) carries the largest weight and pulls the average down from about +13.7 (the other four) to +8.9.
