Market-Aligned Origins
Why Origin Time Matters
Electricity price forecasting is time-sensitive. The value of a forecast depends not just on accuracy but on when it becomes available relative to market deadlines. The EPF system aligns its prediction origins with the OMIE (Operador del Mercado Ibérico de Energía) publication schedule to maximize the practical utility of each forecast.
Two-Product System
The system produces two distinct forecast products per day, each aligned to a specific market event:
| Product | Origin | Horizon | Use Case |
|---|---|---|---|
| Day-Ahead | ~10:00 UTC | D+1 (24 hours) | Intraday trading, operational planning |
| Strategic | ~15:00 UTC | D+2 to D+7 (6 days) | Portfolio optimization, risk management |
Day-Ahead Run (~10:00 UTC)
The day-ahead forecast runs at approximately 10:00 UTC, before OMIE publishes the next day’s clearing prices (~13:00 UTC). This timing serves traders who need price estimates to inform their bidding strategy.
Horizon groups:
| Group | Hours Ahead | Target Period |
|---|---|---|
| DA1 | 14–25 | D+1 00:00–11:00 |
| DA2 | 26–37 | D+1 12:00–23:00 |
The split into two groups (morning and afternoon) allows the model to specialize — morning hours have different price dynamics (ramp-up, solar onset) than afternoon hours (peak demand, solar decline).
Origin hour window: Training samples use origins from 08:00–12:00 UTC to build robustness around the target 10:00 UTC execution time.
Strategic Run (~15:00 UTC)
The strategic forecast runs at approximately 15:00 UTC, after OMIE publishes D+1 day-ahead prices. This is the key insight: once tomorrow’s prices are known, they become powerful predictive features for the days beyond.
Horizon groups:
| Group | Hours Ahead | Target Period |
|---|---|---|
| S1 | 33–56 | D+2 (full day) |
| S2 | 57–80 | D+3 (full day) |
| S3 | 81–104 | D+4 (full day) |
| S4 | 105–128 | D+5 (full day) |
| S5 | 129–176 | D+6 and D+7 |
S5 covers two days because forecast skill at 6–7 day horizons is similar, and combining them provides more training samples per model.
Origin hour window: Training samples use origins from 13:00–18:00 UTC.
D+1 Price Features
The strategic run’s key advantage is access to published D+1 prices. These are extracted as features:
| Feature | Description |
|---|---|
d1_mean_price | Average of 24 D+1 hourly prices |
d1_min_price | Minimum D+1 price |
d1_max_price | Maximum D+1 price |
d1_std_price | Price volatility across D+1 |
d1_peak_spread | Peak (hours 8–21) minus off-peak average |
d1_same_hour_price | D+1 price at the same hour as the target |
The d1_same_hour_price feature is particularly strong — tomorrow’s price at 14:00 is a good predictor of the day-after-tomorrow’s price at 14:00.
Origin Filtering in Training
During training, only samples from the appropriate origin window are included:
Day-ahead training: origins at 08:00, 09:00, 10:00, 11:00, 12:00 UTCStrategic training: origins at 13:00, 14:00, 15:00, 16:00, 17:00, 18:00 UTCThis ensures the model learns from realistic information sets — it never sees features that wouldn’t be available at prediction time. A model trained on 10:00 UTC origins will never include D+1 published prices (not yet available), while a model trained on 15:00 UTC origins always includes them.
Legacy Mode
The original system used a single 23:00 UTC origin with 8 horizon groups (H1–H8), each covering 6 consecutive hours across a 7-day horizon. This mode is retained for backward compatibility and benchmarking but is superseded by the market-aligned two-product system.
OMIE Market Timeline
For reference, the daily OMIE schedule that drives the origin alignment:
| Time (UTC) | Event |
|---|---|
| 08:00–10:00 | Gate opens for D+1 bids |
| 10:00 | EPF day-ahead run |
| 12:00 | Gate closes |
| ~13:00 | OMIE publishes D+1 clearing prices |
| 15:00 | EPF strategic run (with D+1 prices as features) |