Skip to content

Prediction Output

Prediction Record Structure

Each prediction row represents a single price forecast for a specific target hour, generated by a specific model on a specific date.

FieldExampleDescription
prediction_date2026-02-26When the forecast was generated
target_date2026-02-27Date being predicted
target_hour14Hour (0-23)
target_minute0Minute (0/15/30/45 for 15-min, always 0 for hourly)
model_nameensemble_dayaheadModel identifier
run_modedayaheadProduct type
predicted_price52.3Point forecast (EUR/MWh)
actual_price48.7Actual price (backfilled after the fact)
model_version2026-02-26Model training date
prediction_lower_9035.190% CI lower bound (5th percentile)
prediction_upper_9068.590% CI upper bound (95th percentile)
prediction_lower_5044.250% CI lower bound (25th percentile)
prediction_upper_5060.450% CI upper bound (75th percentile)

Model Name Convention

Model names encode the model type, approach, and context:

PatternExampleMeaning
{type}ensembleBase hourly model
{type}_{approach}ensemble_expanded15-min approach variant
{type}_backtestensemble_backtestWalk-forward backtest result
naive_persistenceNaive baseline (today = tomorrow)
naive_weeklyNaive baseline (this week = next week)

Model types: histgb, lightgbm, xgboost, ensemble

Run Modes

ValueDescriptionOrigin Time
dayaheadD+1 forecast~10:00 UTC
strategicD+2-D+7 forecast~15:00 UTC
legacyPre-v3.0 (23:00 UTC origin)~23:00 UTC

Confidence Intervals

Intervals are computed using split conformal prediction with asymmetric signed residuals, calibrated per horizon bucket:

  • 90% CI: 90% of actual prices should fall within [lower_90, upper_90]
  • 50% CI: 50% of actual prices should fall within [lower_50, upper_50]

Intervals are asymmetric — the upper bound may extend further than the lower bound, reflecting the right-skewed nature of electricity price errors.