loadcast · live day-ahead load forecasts
Every day at 09:00 UTC each model forecasts tomorrow's hourly electricity load, using the weather forecast available at that time, and is scored against ENTSO-E actuals and the TSO's own forecast. Code & method
Models and runs
One menu per model: tick any of its training runs (several at once to compare them). Solid line: newest run
of a model; dashed and dotted: older runs. Runs listed in live.yaml forecast every day.
Forecast
Actual vs forecast
Hourly load (MW, UTC). Black: actual.
Leaderboard
Median forecast scored hourly against ENTSO-E actuals; sorted by MAPE. Bias = mean(forecast − actual). Pinball and coverage need the 10% and 90% quantiles; coverage should be close to 80%. Compare runs on the same number of days.
Daily error
MAPE (%) per forecast day.
Trainings
Pick runs and models: every selected (run, model) pair is shown, so one run with all its models, one model across runs, or any mix. Validation = the 90 days used for early stopping. Held-out test = the last days before the end of the data, never seen in training or early stopping (runs trained since held-out tests exist); DM < 0: more accurate than the TSO on those days.
Learning curves
One panel per selected model, one colour per selected run. Pinball loss per epoch (boosting round for XGBoost), log scale: solid = validation, dashed = training data. The dot marks the weights that were kept (early stopping). Neural losses are on the normalised scale, XGBoost in MW.
All runs
MAPE (%) per run and model on each run's own held-out test days (validation days, marked v, for runs without a test), so runs trained on different dates are not scored on the same days. The like-for-like comparison is on the Live results tab.
Backtest
Expanding-window backtest with realised weather (SPEC.md §7): every test year is forecast by models retrained with the run's code and settings on all years before it. It scores the recipe of a run, not its saved models. DM < 0: more accurate than the TSO.
Daily jobs
One forecast job per day (GitHub Actions, 09:20 UTC), plus a rerun whenever live.yaml changes.