Skip to content

Horizon Groups

Horizon groups define which hours share a single trained model. Rather than training one model per hour (fragmenting data) or one model for all hours (losing specialization), EPF groups hours with similar predictability characteristics.

Day-Ahead Groups

Used by the D+1 Day-Ahead product, generated at ~10:00 UTC:

GroupHours AheadTarget PeriodHours
DA114–25D+1 00:00–11:0012
DA226–37D+1 12:00–23:0012

The split at noon reflects the distinct price dynamics of morning (rising demand, renewable ramp-up) versus afternoon/evening (peak demand, solar decline).

Strategic Groups

Used by the D+2–D+7 Strategic product, generated at ~15:00 UTC:

GroupHours AheadTarget PeriodHours
S133–56D+2 full day24
S257–80D+3 full day24
S381–104D+4 full day24
S4105–128D+5 full day24
S5129–176D+6 and D+748

S1 through S4 each cover a single day. S5 combines the final two days into one group because predictability at this distance is similar and merging increases the training data available to the model.

15-Minute Resolution Groups

For 15-minute forecasting, the same structure applies but with quarter-hour slots:

15-Min Day-Ahead

GroupQuarters AheadTarget PeriodSlots
DA156–103D+1 00:00–11:4548
DA2104–151D+1 12:00–23:4548

15-Min Strategic

GroupQuarters AheadTarget PeriodSlots
S1132–227D+2 full day96
S2228–323D+3 full day96
S3324–419D+4 full day96
S4420–515D+5 full day96
S5516–707D+6 and D+7192

How Groups Interact with Models

Each horizon group trains independently. For the full system:

  • Day-ahead: 2 groups × 3 model types = 6 models
  • Strategic: 5 groups × 3 model types = 15 models
  • Total: 21 models per resolution

At inference, the hours_ahead (or quarters_ahead) feature is included in the feature vector, allowing the model to differentiate between individual hours within the same group. This means the DA1 model can produce different predictions for hour 14 vs. hour 25, even though they share the same trained model.

Model Artifact Naming

Models are saved as joblib files with a consistent naming convention:

direct_model_{model_type}_{suffix}_{version}.joblib

Examples:

  • direct_model_histgb_dayahead_2026-02-12.joblib
  • direct_model_xgboost_strategic_2026-02-12.joblib
  • direct_model_lightgbm_15min_pure_dayahead_2026-02-12.joblib

Legacy Groups

For backward compatibility, the original 8-group hourly system (H1–H8) and 7-group daily 15-min system (D1–D7) are still supported. These are used when run_mode is not specified:

GroupHoursDescription
H11–6Very short term
H27–12Same day remaining
H313–24Next day
H425–48Day 2
H549–72Day 3
H673–96Day 4
H797–120Day 5
H8121–168Days 6–7

The two-product system (DA/S groups) supersedes these for production use.