Skip to content

What is EPF?

EPF (Electricity Price Forecasting) is a machine-learning system that predicts day-ahead electricity market prices for Spain, Portugal, France, and Germany up to 7 days ahead. Spain runs at 15-minute resolution (OMIE); Portugal, France, and Germany run hourly (ENTSO-E / EPEX SPOT).

Two Forecast Products

EPF delivers two operationally distinct forecasts per country, aligned with OMIE market publication times:

  • D+1 Day-Ahead — prices for tomorrow, delivered before OMIE gate closure at ~10:00 UTC (96 quarter-hour slots for ES; 24 hourly slots for PT/FR/DE)
  • D+2–D+7 Strategic — six days of forward-looking prices, delivered at ~15:00 UTC using published D+1 actuals as model input

Key Capabilities

  • 4-country coverage — ES, PT, FR, DE — with per-country model tuning and feature gating
  • 7-day horizon, hourly and 15-minute resolution
  • Single-model XGBoost with residual_1w target transform (depth=12, q=0.55, price-weighting 3× above 60 EUR/MWh)
  • Country-aware feature engineering — Z1 country-specific holidays, Z2 generation-forecast targets, Z4 solar elevation, plus price lags / rolling stats / renewable mix / weather interactions / commodity dynamics
  • Per-country cross-price gating via EPF_CROSS_PRICE_COUNTRIES — ablation showed cross-country prices hurt ES/FR/PT; only DE keeps them
  • Confidence intervals via split conformal prediction (50% and 90% bands)
  • Walk-forward backtesting with comprehensive evaluation metrics
  • Cloud Run Jobs per country × horizon group for prediction compute; VM PostgreSQL for persistence

Data Sources

SourceScopeData
REE/ESIOSSpain16 electricity system indicators (demand, generation mix, prices, interconnections) at hourly + 15-min
ENTSO-EES/PT/FR/DEDay-ahead prices, actual generation by type, generation forecast, total load
Open-MeteoAll 4 countriesWeather forecasts (temperature, wind, irradiance, cloud cover) from population-weighted stations
yfinanceAll 4 countriesTTF gas, Brent crude, EU ETS carbon

Current Performance

145-day backtest window, 2025-11-01 → 2026-03-25 (post Z3 ablation, April 2026):

CountryD+1 MAED+1 winnerStrategic MAEStrategic winner
ES13.99 EUR/MWhv12.0 ablation (beats v11.0 14.26)17.35 EUR/MWhv11.0
PT21.94 EUR/MWhv6.0 ablation24.67 EUR/MWhv6.0 with cross-prices
FR24.52 EUR/MWhv6.0 ablation28.47 EUR/MWhv5.0
DE27.64 EUR/MWhv6.0 (only country with cross-prices)35.99 EUR/MWhv6.0

ES MAE floor is regime-dependent: during stable months (e.g. February 2026) PT DA MAE can drop to 14 EUR/MWh. Strategic MAE is higher across the board because D+2 to D+7 requires forecasting weather and commodity moves, not just pattern-matching yesterday.

See the methodology changelog for the full experiment history — including the v10.x LSTM retraction and the Phase 5 / Z3 ablation.