metadata
language:
- en
- nl
license: apache-2.0
tags:
- time-series-forecasting
- energy-forecasting
- electricity-demand
- day-ahead-prices
- lightgbm
- tabular-regression
- conformal-prediction
- netherlands
- europe
- entsoe
pipeline_tag: tabular-regression
datasets:
- hsilvosa/entsoe-day-ahead
metrics:
- mae
- rmse
- pinball_loss
- winkler_score
model-index:
- name: netherlands-price-forecaster
results:
- task:
type: tabular-regression
name: Electricity Price Forecasting
dataset:
name: ENTSO-E Netherlands Bidding Zone (NL)
type: hsilvosa/entsoe-day-ahead
metrics:
- name: MAE
type: mae
value: 8.314
- name: RMSE
type: rmse
value: 21.564
- name: Empirical Interval Coverage (80% Nominal)
type: coverage
value: 76.7%
Day-Ahead Electricity Price Forecaster for Netherlands (NL)
High-accuracy calibrated quantile LightGBM model for forecasting Netherlands price. Resolution: hourly intervals. Trained on multi-year data (2023β2026) from ENTSO-E, featuring multi-scale lags, cyclical encodings, and conformal calibration for well-calibrated 80% prediction intervals ($P10, P50, P90$).
Model Highlights
- Country / Zone: Netherlands (
NL) - Target: Day-Ahead Electricity Price in
EUR/MWh - Resolution: hourly intervals
- Outputs: Point forecast ($P50$), 80% prediction interval ($P10$ to $P90$)
- Algorithm: LightGBM Multi-Quantile Regressor with Conformal Calibration & Monotonicity
- Dataset: ENTSO-E European Transparency Platform (Zone:
NL) - Training Samples: 24,571 observations (2023β2026)
Performance & Benchmark Comparison
Evaluated on out-of-sample test sets against official seasonal persistence benchmarks:
| Metric | LightGBM Forecaster | 7-Day Seasonal Persistence | Improvement |
|---|---|---|---|
| MAE | 8.314 EUR/MWh | 42.456 EUR/MWh | +80.4% |
| RMSE | 21.564 EUR/MWh | β | β |
- WAPE: 8.27% | P10 Pinball Loss | 2.184 | β | β | | P90 Pinball Loss | 2.381 | β | β | | P10βP90 Interval Coverage | 76.7% | β | Target: 75β85% | | Winkler Score | 45.648 | β | β |
Quickstart: Python Inference
import pandas as pd
from huggingface_hub import hf_hub_download
import joblib
# 1. Download model artifacts
model_path = hf_hub_download(repo_id="ORGANIZATION/netherlands-price-forecaster", filename="models.joblib")
models = joblib.load(model_path)
# 2. Predict P10, P50 (point), and P90 quantiles
X_test = pd.read_csv("sample_input.csv")
p10 = models[0.1].predict(X_test)
p50 = models[0.5].predict(X_test)
p90 = models[0.9].predict(X_test)
print("Forecast Point Estimate:", p50[:5])
print("80% Lower Bound (P10):", p10[:5])
print("80% Upper Bound (P90):", p90[:5])
Features Used
The model uses 37 leakage-safe features:
hourquarterday_of_weekday_of_yearmonthis_weekendis_holidayis_morning_peakis_evening_peaksin_hourcos_hoursin_day_of_weekcos_day_of_weeksin_day_of_yearcos_day_of_yearlag_1hlag_2hlag_3hlag_4hlag_24hlag_48hlag_7dlag_14ddiff_1hdiff_2hdiff_24hdiff_7dacceleration_1hema_4stepema_12steprolling_std_4steprolling_mean_24hrolling_std_24hrolling_min_24hrolling_max_24hrolling_mean_7drolling_std_7d
Intended Use & Advisory
This model is intended for research, energy market analytics, grid load planning, and educational forecasting demonstrations. It is advisory only and not intended for automated trading execution or real-time grid dispatch.
Citation & Attribution
Data published under the ENTSO-E Transparency framework:
- Transparency Platform: https://transparency.entsoe.eu/