Day-ahead price forecasting (DE-LU)
Linear regression, Random Forest, XGBoost, LSTM and GRU compared on SMARD data with 10-fold walk-forward validation.
GRU with causal features reaches MAE ≈ 24 €/MWh (R² ≈ 0.83), vs. ≈ 60 €/MWh for persistence.

Forecasting the 24 hourly day-ahead prices for the German-Luxembourg bidding zone, using only information available before the market’s noon deadline.
Approach
- Data: historical prices, demand forecasts and generation forecasts from SMARD. All features are strictly causal, using data up to D 23:00 to predict D+1.
- Features: lags (1, 24, 48, 168 h), rolling statistics (24 h and 168 h windows) and calendar features.
- Models: linear regression, Random Forest, XGBoost, LSTM and GRU.
- Validation: 10-fold walk-forward cross-validation with 168-hour input windows, preserving temporal order.
- Interpretability: feature attribution with Integrated Gradients (Captum) and SHAP.
Result
The GRU with causal features reached MAE ≈ 24 €/MWh (R² ≈ 0.83), compared with ≈ 60 €/MWh for a persistence baseline.