Netzlast-Prognose (grid load forecast)

Calibrated probabilistic day-ahead forecast of German grid load (hourly, region DE).

Latest forecast (median, 50/80/90 % intervals)

2026-10-26T15:23:10.344320 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/

Data: Bundesnetzagentur | SMARD.de (CC BY 4.0)

Backtest (pooled)

Modelcrpsmaemapecov_50cov_80cov_90width_80n_origins
lgbm_cqr1,2021,6863.180.5010.8010.8985,516730
lgbm_qr1,2651,6863.180.2860.5290.6543,064730
lgbm_cqr_dp1,2011,6863.180.5040.7980.8985,568730
lgbm_aci1,2021,6863.180.5020.8030.9025,568730
lgbm_cqr_wx1,1301,5832.980.5010.8000.8985,226730
mstl_ets1,6962,2094.230.6740.8910.9379,738730
naive_week2,0712,7825.290.4870.7740.8637,961730
naive_day4,5326,21711.950.5010.8000.89722,272730
tso_reference1,3561,8933.590.4700.7700.8705,716730

Run test-v1 · 2024-10-01 – 2026-09-30 · git 91470fc764 · store 5a0c9ddb2597 · 694 s

Caveats. The operators' reference is SMARD filter 411, treated here as their day-ahead forecast; that assignment was checked against a single value of the SMARD chart, publication time and vintage are unknown, and the reference may hold information the model does not. The tso_reference quantiles are our own construction from the residuals of the last 56 days, not a forecast by the operators. CRPS is the 19-quantile grid approximation (2/(K+1) times the sum of pinball losses), not the exact integral. The figures come from the pre-registered rolling-origin backtest with a monthly refit (each month scored by the model trained before it) and do not evaluate the served model, which was trained through the end of the test period. lgbm_cqr_wx uses Open-Meteo Previous Runs weather and exists in the backtest only; its comparison with lgbm_cqr covers only the 638 origins from 2025-01-01. The lgbm_cqr_wx table row pooled over all 730 origins is not that comparison: weather exists only from 2024 on and is largely missing in the first months. The store hash shown belongs to a data snapshot that can no longer be reconstructed; the evidence (release assets, checksums) and a digest over the protocol window are in docs/backtest.md. Details: docs/backtest.md

Reliability diagram: nominal against empirical

2026-10-26T15:23:10.417447 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/

Data: Bundesnetzagentur | SMARD.de (CC BY 4.0) · Weather data by Open-Meteo.com (CC BY 4.0)

PIT histogram lgbm_cqr (flat = calibrated)

2026-10-26T15:23:10.491441 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/

Data: Bundesnetzagentur | SMARD.de (CC BY 4.0) · Weather data by Open-Meteo.com (CC BY 4.0)

CRPS by local hour

2026-10-26T15:23:10.558207 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/

Data: Bundesnetzagentur | SMARD.de (CC BY 4.0) · Weather data by Open-Meteo.com (CC BY 4.0)

CRPS by month

2026-10-26T15:23:10.640823 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/

Data: Bundesnetzagentur | SMARD.de (CC BY 4.0) · Weather data by Open-Meteo.com (CC BY 4.0)

Live forward period: rolling CRPS (28 days)

Preliminary: fewer than eight weeks of scored days. Live numbers are quoted only after that. (0/56)

Method and protocol: repository