# Model comparison

[Open the interactive report](report.html).

Eight fitted model variants use the same four benchmark receiver gages and individual daily station histories.
All eight methods are fitted anew with the monitored network; earlier donor-only predictions remain a separate reference.
The methods are the custom linear daily model, temporal convolution network, Ridge, Linear SVR, RBF SVR, XGBoost, Transformer, and NMFk with a Ridge readout.
All 50 gages supply measured inputs, including permitted past measurements from all four benchmark gages shared across the four forecast outputs. Benchmark inputs update through each example's observation cutoff, including permitted earlier 2025–2026 measurements; later discharge never enters that example's inputs. This tests the joint contribution of all four benchmark histories and does not isolate each gage's own history from the other three.
Every day in each requested history remains represented; no monthly or basin aggregates replace the input histories.
Rolling training targets use a five-day cadence; evaluation remains daily.
Models remain frozen within their chronological outer blocks.

## Model definitions

All eight variants fit log1p-transformed flow targets. Most use squared-error fitting; SVR uses epsilon-insensitive loss on the same transformed targets. Converting a log-flow estimate back does not generally recover mean flow, which can contribute to underprediction of high flows and seasonal volume. This alone does not explain overprediction in the test period. The report evaluates errors in the original physical units.

- **Linear daily model:** Custom linear daily model: learned station projection and individual daily-lag weights; fitted anew with the monitored network, rather than importing earlier baseline predictions.
- **Temporal convolution network:** Temporal convolution network: stride-one daily convolutions cover the complete requested history; fitted anew with the monitored network.
- **Ridge:** Standard Ridge regression over individual daily station values, availability masks, and known calendar features; regularization is selected from earlier chronological labels. The exact dual fit divides the full-design dot product by its feature count without aggregating input days. Calendar and issue-history contributions are additive in log-flow space, so one January history shifts a shared daily calendar pattern rather than interacting with its shape.
- **Linear SVR:** Linear support-vector regression over individual daily station values, availability masks, and known calendar features. Its exact linear kernel divides the full-design dot product by feature count. This is a support-vector model, not the retained linear daily baseline; calendar and issue-history contributions remain additive in log-flow space.
- **RBF SVR:** Support-vector regression with a radial-basis-function kernel over individual daily station values, availability masks, and known calendar features. Its squared full-design distances are divided by feature count; the nonlinear kernel can express interactions between issue history and target calendar.
- **XGBoost:** Gradient-boosted decision trees use individual daily station values, availability masks, and known calendar features.
- **Transformer:** Full self-attention encodes every individual daily token with explicit padding masks and a learned station projection; no temporal patches, pooling, or predefined summaries replace the daily history.
- **NMFk (daily factors + Ridge readout):** NMFk selects nonnegative daily input factors from the earlier predictor archive through the last fitted history cutoff, then freezes that basis. Factor fitting samples source days deterministically every five days, using full-prefix input scalers, eight starts and 300 iterations for ranks 2, 3, 4, and 6. Every individual requested history day is then projected and enters the Ridge readout with availability and known target calendar. Calendar and issue-history contributions are additive in log-flow space. This factor-plus-readout model differs from the earlier streamflow latent-transition NMFk forecasts. Permitted past measurements from all four benchmark gages are included in the shared input basis and daily projection under the selected receiver-history policy; future measurements remain excluded.

### NMFk bounded fitting diagnostics

Individual factorization convergence flags are unavailable; the iteration cap does not establish convergence.
Completed NMFk jobs with readable diagnostics: 60.
Selected rank counts: {"2": 21, "3": 9, "4": 27, "6": 3}.
Inner selections using the no-stable-rank fallback: 0.
Selected Ridge readout heads reaching their solver cap: inner 0/216; refit 0/216.

## Historical window candidates

Candidates minimize historical daily RMSE through 2022 with matched finite coverage; they are model-dependent comparisons, not universally optimal windows.
Validation and already inspected 2025–2026 errors never choose a candidate history.

The cross-model historical score uses all finite pairs for the chosen history; window selection uses dates shared across that model's candidate histories.
Historical coverage can differ between models, so compare their scores on common target dates.

The interactive benchmark-history contribution table compares donor-only and monitored-network forecasts on exact shared target dates and jointly finite predictions with identical observed truth.
It reports each history by period and target year, including separate 2025 and 2026 rows; negative RMSE change favors the monitored network.
These are descriptive input-policy comparisons and never select a history using recent errors.

### One day

| Receiver | Model | Candidate history | Matched days | Years | 7 days RMSE | 30 days RMSE | 90 days RMSE |
| --- | --- | --- | --- | --- | --- | --- | --- |
| USGS-09439000 | daily_linear | 7 days | 5478 | 16 | 322.2 | 333.5 | 324 |
| USGS-09439000 | nmfk | 30 days | 3652 | 10 | 468.7 | 466.3 | 470.2 |
| USGS-09439000 | ridge | 30 days | 5478 | 16 | 353.3 | 327.6 | 331 |
| USGS-09439000 | svr_linear | 7 days | 5478 | 16 | 292.4 | 323.2 | 341.6 |
| USGS-09439000 | svr_rbf | 7 days | 5478 | 16 | 285.9 | 306.7 | 345.7 |
| USGS-09439000 | tcn | 90 days | 5478 | 16 | 314.2 | 317.6 | 298 |
| USGS-09439000 | transformer | 30 days | 5478 | 16 | 371.3 | 338.6 | 344.2 |
| USGS-09439000 | xgboost | 7 days | 5478 | 16 | 319.8 | 319.9 | 320.8 |
| USGS-09447000 | daily_linear | 90 days | 8035 | 22 | 116.8 | 117.7 | 116.6 |
| USGS-09447000 | nmfk | 7 days | 8035 | 22 | 125.3 | 125.9 | 126.1 |
| USGS-09447000 | ridge | 90 days | 8035 | 22 | 119.7 | 122.6 | 119.4 |
| USGS-09447000 | svr_linear | 7 days | 8035 | 22 | 114.5 | 122 | 124.5 |
| USGS-09447000 | svr_rbf | 7 days | 8035 | 22 | 115.1 | 119.4 | 122.4 |
| USGS-09447000 | tcn | 30 days | 8035 | 22 | 121.8 | 116.7 | 208.2 |
| USGS-09447000 | transformer | 30 days | 8035 | 22 | 111.3 | 109.7 | 112.3 |
| USGS-09447000 | xgboost | 7 days | 8035 | 22 | 118.8 | 119.2 | 119.5 |
| USGS-09466500 | daily_linear | 7 days | 8035 | 22 | 536.5 | 931.7 | 1,103 |
| USGS-09466500 | nmfk | 7 days | 8035 | 22 | 697.3 | 701 | 698.9 |
| USGS-09466500 | ridge | 90 days | 8035 | 22 | 617.8 | 488.5 | 477.8 |
| USGS-09466500 | svr_linear | 7 days | 8035 | 22 | 468.1 | 468.2 | 516.6 |
| USGS-09466500 | svr_rbf | 30 days | 8035 | 22 | 414.1 | 382.1 | 480.5 |
| USGS-09466500 | tcn | 7 days | 8035 | 22 | 381.8 | 410.7 | 479.4 |
| USGS-09466500 | transformer | 30 days | 8035 | 22 | 537.3 | 488.1 | 492 |
| USGS-09466500 | xgboost | 30 days | 8035 | 22 | 480.2 | 478.5 | 479.8 |
| USGS-09468500 | daily_linear | 90 days | 7837 | 22 | 269.8 | 271 | 267.6 |
| USGS-09468500 | nmfk | 90 days | 7837 | 22 | 281 | 281.1 | 280.7 |
| USGS-09468500 | ridge | 7 days | 7837 | 22 | 273.6 | 277.2 | 276.6 |
| USGS-09468500 | svr_linear | 7 days | 7837 | 22 | 269.4 | 278.2 | 278.1 |
| USGS-09468500 | svr_rbf | 7 days | 7837 | 22 | 270.2 | 274.4 | 278 |
| USGS-09468500 | tcn | 7 days | 7837 | 22 | 273.9 | 283.1 | 274.6 |
| USGS-09468500 | transformer | 90 days | 7837 | 22 | 258.8 | 257.1 | 255.1 |
| USGS-09468500 | xgboost | 7 days | 7837 | 22 | 271.5 | 273.3 | 273.9 |


### One week

| Receiver | Model | Candidate history | Matched days | Years | 1 month RMSE | 3 months RMSE | 6 months RMSE |
| --- | --- | --- | --- | --- | --- | --- | --- |
| USGS-09439000 | daily_linear | 6 months | 5478 | 16 | 1,169 | 463.2 | 400.2 |
| USGS-09439000 | nmfk | 1 month | 3652 | 10 | 442 | 448.1 | 452.1 |
| USGS-09439000 | ridge | 1 month | 5478 | 16 | 370 | 385.8 | 387.3 |
| USGS-09439000 | svr_linear | 1 month | 5478 | 16 | 369.7 | 379.7 | 383.9 |
| USGS-09439000 | svr_rbf | 1 month | 5478 | 16 | 368.3 | 381.3 | 387.5 |
| USGS-09439000 | tcn | 1 month | 5478 | 16 | 371.9 | 399.9 | 372.6 |
| USGS-09439000 | transformer | 6 months | 5478 | 16 | 388.8 | 398.7 | 387.8 |
| USGS-09439000 | xgboost | 6 months | 5478 | 16 | 368.6 | 370.1 | 368.5 |
| USGS-09447000 | daily_linear | 3 months | 8035 | 22 | 127.9 | 127.1 | 127.3 |
| USGS-09447000 | nmfk | 1 month | 8035 | 22 | 127.6 | 128 | 127.8 |
| USGS-09447000 | ridge | 6 months | 8035 | 22 | 127.3 | 128 | 127.1 |
| USGS-09447000 | svr_linear | 3 months | 8035 | 22 | 128.3 | 127.1 | 127.4 |
| USGS-09447000 | svr_rbf | 3 months | 8035 | 22 | 128.1 | 127.2 | 127.5 |
| USGS-09447000 | tcn | 3 months | 8035 | 22 | 127.9 | 127.1 | 127.2 |
| USGS-09447000 | transformer | 3 months | 8035 | 22 | 128.8 | 125.9 | 127 |
| USGS-09447000 | xgboost | 6 months | 8035 | 22 | 127.3 | 127 | 126.5 |
| USGS-09466500 | daily_linear | 1 month | 8035 | 22 | 734.7 | 804 | 738 |
| USGS-09466500 | nmfk | 1 month | 8035 | 22 | 655.2 | 671.6 | 668.8 |
| USGS-09466500 | ridge | 1 month | 8035 | 22 | 632 | 659.2 | 670.9 |
| USGS-09466500 | svr_linear | 6 months | 8035 | 22 | 687.7 | 665.2 | 658.2 |
| USGS-09466500 | svr_rbf | 1 month | 8035 | 22 | 632.1 | 655.4 | 667.9 |
| USGS-09466500 | tcn | 6 months | 8035 | 22 | 635.8 | 678.6 | 630.1 |
| USGS-09466500 | transformer | 3 months | 8035 | 22 | 669 | 649.5 | 673.5 |
| USGS-09466500 | xgboost | 3 months | 8035 | 22 | 640.5 | 638.3 | 640.4 |
| USGS-09468500 | daily_linear | 3 months | 7837 | 22 | 281.2 | 280.6 | 281.1 |
| USGS-09468500 | nmfk | 1 month | 7837 | 22 | 282.3 | 282.7 | 282.4 |
| USGS-09468500 | ridge | 1 month | 7837 | 22 | 281.7 | 282.1 | 282.4 |
| USGS-09468500 | svr_linear | 1 month | 7837 | 22 | 281.9 | 282.3 | 282.4 |
| USGS-09468500 | svr_rbf | 1 month | 7837 | 22 | 281.9 | 281.9 | 282.3 |
| USGS-09468500 | tcn | 6 months | 7837 | 22 | 281.8 | 281.9 | 281.3 |
| USGS-09468500 | transformer | 3 months | 7837 | 22 | 281.8 | 281.3 | 281.9 |
| USGS-09468500 | xgboost | 1 month | 7837 | 22 | 281.9 | 281.9 | 282 |


### Six months

| Receiver | Model | Candidate history | Matched days | Years | 6 months RMSE | 12 months RMSE | 24 months RMSE |
| --- | --- | --- | --- | --- | --- | --- | --- |
| USGS-09439000 | daily_linear | 24 months | 5478 | 16 | 412.9 | 417.3 | 409.9 |
| USGS-09439000 | nmfk | 6 months | 3652 | 10 | 683 | 813.2 | 819.9 |
| USGS-09439000 | ridge | 6 months | 5478 | 16 | 408.9 | 410.3 | 413.6 |
| USGS-09439000 | svr_linear | 6 months | 5478 | 16 | 407.7 | 413.4 | 412.9 |
| USGS-09439000 | svr_rbf | 6 months | 5478 | 16 | 406.9 | 408.3 | 412.5 |
| USGS-09439000 | tcn | 24 months | 5478 | 16 | 414.9 | 414.2 | 405.9 |
| USGS-09439000 | transformer | 6 months | 5478 | 16 | 406.2 | 406.5 | 408.5 |
| USGS-09439000 | xgboost | 12 months | 5478 | 16 | 404.6 | 403.3 | 406.8 |
| USGS-09447000 | daily_linear | 6 months | 8035 | 22 | 132.1 | 132.3 | 154 |
| USGS-09447000 | nmfk | 6 months | 8035 | 22 | 130.5 | 131.4 | 133.5 |
| USGS-09447000 | ridge | 24 months | 8035 | 22 | 130.2 | 130.1 | 130 |
| USGS-09447000 | svr_linear | 12 months | 8035 | 22 | 130.8 | 130.6 | 130.8 |
| USGS-09447000 | svr_rbf | 12 months | 8035 | 22 | 130.6 | 130.4 | 130.7 |
| USGS-09447000 | tcn | 24 months | 8035 | 22 | 131.5 | 131.3 | 131.1 |
| USGS-09447000 | transformer | 12 months | 8035 | 22 | 131 | 130.9 | 131.2 |
| USGS-09447000 | xgboost | 6 months | 8035 | 22 | 130.2 | 130.6 | 130.5 |
| USGS-09466500 | daily_linear | 6 months | 8035 | 22 | 794.7 | 3,500 | 4.735e+05 |
| USGS-09466500 | nmfk | 6 months | 8035 | 22 | 742.2 | 802.2 | 1,296 |
| USGS-09466500 | ridge | 24 months | 8035 | 22 | 786.5 | 753.9 | 749.7 |
| USGS-09466500 | svr_linear | 12 months | 8035 | 22 | 769.4 | 753.5 | 755 |
| USGS-09466500 | svr_rbf | 24 months | 8035 | 22 | 762.9 | 757.3 | 752.9 |
| USGS-09466500 | tcn | 24 months | 8035 | 22 | 763.8 | 756.1 | 754.4 |
| USGS-09466500 | transformer | 6 months | 8035 | 22 | 753.8 | 757.4 | 755.4 |
| USGS-09466500 | xgboost | 6 months | 8035 | 22 | 748.5 | 751.6 | 751.4 |
| USGS-09468500 | daily_linear | 6 months | 7837 | 22 | 283.3 | 366.7 | 812.5 |
| USGS-09468500 | nmfk | 6 months | 7837 | 22 | 282.7 | 282.9 | 283.3 |
| USGS-09468500 | ridge | 12 months | 7837 | 22 | 283.1 | 283 | 283 |
| USGS-09468500 | svr_linear | 12 months | 7837 | 22 | 283.3 | 283.1 | 283.3 |
| USGS-09468500 | svr_rbf | 24 months | 7837 | 22 | 283.2 | 283.2 | 283.2 |
| USGS-09468500 | tcn | 12 months | 7837 | 22 | 283.5 | 283.2 | 283.4 |
| USGS-09468500 | transformer | 12 months | 7837 | 22 | 283.4 | 283.4 | 283.4 |
| USGS-09468500 | xgboost | 24 months | 7837 | 22 | 283 | 282.9 | 282.9 |


### January → April–July

| Receiver | Model | Candidate history | Matched days | Years | 6 months RMSE | 12 months RMSE | 24 months RMSE |
| --- | --- | --- | --- | --- | --- | --- | --- |
| USGS-09439000 | daily_linear | 12 months | 1830 | 15 | 142.9 | 142.5 | 190.8 |
| USGS-09439000 | nmfk | 24 months | 1220 | 10 | 137.8 | 145.7 | 119.8 |
| USGS-09439000 | ridge | 6 months | 1830 | 15 | 148.1 | 149 | 151 |
| USGS-09439000 | svr_linear | 6 months | 1830 | 15 | 149.4 | 149.4 | 151.6 |
| USGS-09439000 | svr_rbf | 6 months | 1830 | 15 | 148.1 | 149.1 | 151.3 |
| USGS-09439000 | tcn | 24 months | 1830 | 15 | 144.7 | 145.9 | 128.9 |
| USGS-09439000 | transformer | 6 months | 1830 | 15 | 124.8 | 143.2 | 157.8 |
| USGS-09439000 | xgboost | 24 months | 1830 | 15 | 141.5 | 149.5 | 137.5 |
| USGS-09447000 | daily_linear | 6 months | 2684 | 22 | 13.3 | 14.23 | 14.2 |
| USGS-09447000 | nmfk | 12 months | 2684 | 22 | 14.91 | 13.15 | 14.84 |
| USGS-09447000 | ridge | 12 months | 2684 | 22 | 12.86 | 12.62 | 13.16 |
| USGS-09447000 | svr_linear | 6 months | 2684 | 22 | 12.85 | 13 | 13.42 |
| USGS-09447000 | svr_rbf | 6 months | 2684 | 22 | 12.95 | 13.07 | 13.43 |
| USGS-09447000 | tcn | 12 months | 2684 | 22 | 14.91 | 14.87 | 16.88 |
| USGS-09447000 | transformer | 24 months | 2684 | 22 | 14.97 | 14.92 | 14.54 |
| USGS-09447000 | xgboost | 12 months | 2684 | 22 | 12.84 | 12.51 | 13.58 |
| USGS-09466500 | daily_linear | 6 months | 2684 | 22 | 216.5 | 222.4 | 222.1 |
| USGS-09466500 | nmfk | 6 months | 2684 | 22 | 209.1 | 214.7 | 213.6 |
| USGS-09466500 | ridge | 6 months | 2684 | 22 | 217.8 | 223.1 | 225.2 |
| USGS-09466500 | svr_linear | 6 months | 2684 | 22 | 213.5 | 221.8 | 230.2 |
| USGS-09466500 | svr_rbf | 6 months | 2684 | 22 | 218.3 | 221.9 | 228.7 |
| USGS-09466500 | tcn | 12 months | 2684 | 22 | 198.8 | 195.9 | 250 |
| USGS-09466500 | transformer | 6 months | 2684 | 22 | 219 | 248.2 | 286.5 |
| USGS-09466500 | xgboost | 24 months | 2684 | 22 | 224.1 | 224.7 | 212.6 |
| USGS-09468500 | daily_linear | 24 months | 2671 | 22 | 114.4 | 114.5 | 114 |
| USGS-09468500 | nmfk | 24 months | 2671 | 22 | 114.2 | 114.1 | 114.1 |
| USGS-09468500 | ridge | 12 months | 2671 | 22 | 114.1 | 114 | 114 |
| USGS-09468500 | svr_linear | 24 months | 2671 | 22 | 114.1 | 114.1 | 114.1 |
| USGS-09468500 | svr_rbf | 24 months | 2671 | 22 | 114.1 | 114 | 114 |
| USGS-09468500 | tcn | 6 months | 2671 | 22 | 114.1 | 114.2 | 114.4 |
| USGS-09468500 | transformer | 24 months | 2671 | 22 | 114.3 | 114.2 | 114.1 |
| USGS-09468500 | xgboost | 12 months | 2671 | 22 | 114.1 | 114 | 114 |


## Saved matched comparisons

January → April–July, Historical hindcasts: 24m versus 12m reduces daily RMSE in 13/32 matched receiver/model cells, increases it in 19, and ties in 0.
January → April–July, Historical hindcasts: 12m versus 6m reduces daily RMSE in 13/32 matched receiver/model cells, increases it in 19, and ties in 0.
January → April–July, Historical hindcasts: 24m versus 6m reduces daily RMSE in 13/32 matched receiver/model cells, increases it in 19, and ties in 0.
January → April–July, 2025–2026 retrospective comparison: 24m versus 12m reduces daily RMSE in 19/32 matched receiver/model cells, increases it in 13, and ties in 0.
January → April–July, 2025–2026 retrospective comparison: 12m versus 6m reduces daily RMSE in 14/32 matched receiver/model cells, increases it in 18, and ties in 0.
January → April–July, 2025–2026 retrospective comparison: 24m versus 6m reduces daily RMSE in 18/32 matched receiver/model cells, increases it in 14, and ties in 0.
January → April–July, Validation comparison: 24m versus 12m reduces daily RMSE in 9/32 matched receiver/model cells, increases it in 23, and ties in 0.
January → April–July, Validation comparison: 12m versus 6m reduces daily RMSE in 13/32 matched receiver/model cells, increases it in 19, and ties in 0.
January → April–July, Validation comparison: 24m versus 6m reduces daily RMSE in 13/32 matched receiver/model cells, increases it in 19, and ties in 0.
One day, Historical hindcasts: 90d versus 30d reduces daily RMSE in 12/32 matched receiver/model cells, increases it in 20, and ties in 0.
One day, Historical hindcasts: 30d versus 7d reduces daily RMSE in 10/32 matched receiver/model cells, increases it in 22, and ties in 0.
One day, Historical hindcasts: 90d versus 7d reduces daily RMSE in 11/32 matched receiver/model cells, increases it in 21, and ties in 0.
One day, 2025–2026 retrospective comparison: 90d versus 30d reduces daily RMSE in 10/32 matched receiver/model cells, increases it in 22, and ties in 0.
One day, 2025–2026 retrospective comparison: 30d versus 7d reduces daily RMSE in 11/32 matched receiver/model cells, increases it in 21, and ties in 0.
One day, 2025–2026 retrospective comparison: 90d versus 7d reduces daily RMSE in 11/32 matched receiver/model cells, increases it in 21, and ties in 0.
One day, Validation comparison: 90d versus 30d reduces daily RMSE in 11/32 matched receiver/model cells, increases it in 21, and ties in 0.
One day, Validation comparison: 30d versus 7d reduces daily RMSE in 15/32 matched receiver/model cells, increases it in 17, and ties in 0.
One day, Validation comparison: 90d versus 7d reduces daily RMSE in 13/32 matched receiver/model cells, increases it in 19, and ties in 0.
One week, Historical hindcasts: 3m versus 1m reduces daily RMSE in 12/32 matched receiver/model cells, increases it in 20, and ties in 0.
One week, Historical hindcasts: 6m versus 1m reduces daily RMSE in 15/32 matched receiver/model cells, increases it in 17, and ties in 0.
One week, Historical hindcasts: 6m versus 3m reduces daily RMSE in 13/32 matched receiver/model cells, increases it in 19, and ties in 0.
One week, 2025–2026 retrospective comparison: 3m versus 1m reduces daily RMSE in 16/32 matched receiver/model cells, increases it in 16, and ties in 0.
One week, 2025–2026 retrospective comparison: 6m versus 1m reduces daily RMSE in 11/32 matched receiver/model cells, increases it in 21, and ties in 0.
One week, 2025–2026 retrospective comparison: 6m versus 3m reduces daily RMSE in 12/32 matched receiver/model cells, increases it in 20, and ties in 0.
One week, Validation comparison: 3m versus 1m reduces daily RMSE in 13/32 matched receiver/model cells, increases it in 19, and ties in 0.
One week, Validation comparison: 6m versus 1m reduces daily RMSE in 12/32 matched receiver/model cells, increases it in 20, and ties in 0.
One week, Validation comparison: 6m versus 3m reduces daily RMSE in 17/32 matched receiver/model cells, increases it in 15, and ties in 0.
Six months, Historical hindcasts: 24m versus 12m reduces daily RMSE in 13/32 matched receiver/model cells, increases it in 19, and ties in 0.
Six months, Historical hindcasts: 12m versus 6m reduces daily RMSE in 17/32 matched receiver/model cells, increases it in 15, and ties in 0.
Six months, Historical hindcasts: 24m versus 6m reduces daily RMSE in 15/32 matched receiver/model cells, increases it in 17, and ties in 0.
Six months, 2025–2026 retrospective comparison: 24m versus 12m reduces daily RMSE in 23/32 matched receiver/model cells, increases it in 9, and ties in 0.
Six months, 2025–2026 retrospective comparison: 12m versus 6m reduces daily RMSE in 19/32 matched receiver/model cells, increases it in 13, and ties in 0.
Six months, 2025–2026 retrospective comparison: 24m versus 6m reduces daily RMSE in 28/32 matched receiver/model cells, increases it in 4, and ties in 0.
Six months, Validation comparison: 24m versus 12m reduces daily RMSE in 16/32 matched receiver/model cells, increases it in 16, and ties in 0.
Six months, Validation comparison: 12m versus 6m reduces daily RMSE in 22/32 matched receiver/model cells, increases it in 10, and ties in 0.
Six months, Validation comparison: 24m versus 6m reduces daily RMSE in 21/32 matched receiver/model cells, increases it in 11, and ties in 0.

Positive bias indicates overprediction; whole-year bootstrap intervals describe sampling uncertainty.
Current historical archives do not establish exact past publication latency or future operational skill.
Missing observations remain gaps, valid zeros remain zeros, and sparse calibration stays unavailable.
Keep report.html, plotly.min.js, and the method-data directory together for offline use.
The report loads one selected model at a time and retains at most two decoded models.

[Daily forecasts](predictions.csv) · [Errors and coverage](metrics.csv) · [Matched comparisons](paired_comparisons.csv) · [Aggregate daily paths](aggregate_predictions.csv)
