{
  "id": "grand-isle-wind-2025-v1",
  "version": "1.0.0",
  "fixedBeforeFitting": "2026-10-21",
  "station": "8761724",
  "period": "2025-01-01T00:00:00Z/2025-12-31T23:00:00Z",
  "target": "Retained annual quality-screened observed minus predicted height, ft MLLW, exact UTC hour",
  "weather": "NOAA CO-OPS wind and air_pressure, interval=h, units=english, time_zone=gmt. On-the-hour six-minute weather observations, not hourly averages. Wind knots; pressure millibars (hPa).",
  "quality": "Exact hour; finite numeric values; wind s>=0 and 0<=d<=360 with f=0,0; pressure v>0 with f=0,0,0. No interpolation. Duplicate/off-grid/out-of-period timestamps and wrong station fail. Calm speed zero permits missing direction with valid flags; components zero.",
  "lagsHours": [0, 3, 6, 12, 24],
  "commonSample": "Target eligible; current pressure; wind at every candidate lag; previous-hour target for persistence benchmark. All models compared on identical hours. Report exclusion reasons on all 8760 hours.",
  "split": {"trainStart": "2025-01-01", "trainEndExclusive": "2025-06-28", "validationStart": "2025-07-01", "validationEndExclusive": "2025-09-28", "testStart": "2025-10-01", "testEndExclusive": "2026-01-01", "boundaryGapHours": 72},
  "models": "OLS with intercept. Season: annual sine/cosine with 8760-hour period. Pressure: current (mb-1013.25)/10. Wind: eastward=-s*sin(d), northward=-s*cos(d), one candidate lag. Compare zero correction (tide alone), training mean, season, season+pressure, season+wind, season+pressure+wind and previous-hour residual persistence. No test-period fit or refit.",
  "selection": "Choose one lag by validation MAE of season+pressure+wind; ties use first listed lag. Keep training-only coefficients fixed; report all candidate validation errors and final test comparisons at selected lag. No selection by test results.",
  "primaryComparison": "Test MAE reduction adding wind to season+pressure, in feet and percent; report RMSE and signed mean error (estimate minus observation) too. Same-hour residual estimation with observed weather, not future-weather forecasting or causality.",
  "uncertainty": "Paired circular moving-block bootstrap of test per-hour absolute-error improvement on full test grid; retain missing rows; 72-hour blocks, 2000 draws, seed 8761724; 24-hour sensitivity. Percentile 2.5/97.5 bounds are within-this-period descriptive resampling, not population/climate confidence.",
  "episodes": "Illustrate highest and lowest test-period daily mean residual among UTC days with at least 20 eligible common-sample hours. Show +/-48h context and explain selection on target extrema, not typicality or model fit.",
  "limits": "Single station and year; observational, autocorrelated; simple annual harmonic trained on half-year is an imperfect seasonal control, so also report mean and pressure controls. No river, offshore wind field, sensor-height adjustment or historical maintenance control. No catch, current, access-depth or safety conclusion. Independent scientific review pending."
}
