Analytics

Detailed outputs for forecasting, storage dispatch, PPA hedging, and capture — with uncertainty ranges where available.

Last updated 19 Aug 2026, 14:00

Day-Ahead Forecast (next 24h)

hybrid_da_forecast

critical

Point estimate

€115.82/MWh

medium confidence · 200 paths

Quantiles

P10
€94.41/MWh
P50
€115.82/MWh
P90
€137.11/MWh

Key metrics

n samples
31750.0000
residual std
21.1900
train mae
11.8610
test mae
13.3730
Explanation & assumptions
{
  "method": "structural_merit_order + LEAR_elasticnet_residual",
  "ood_gate": {
    "triggered": false,
    "distance": 2.4748,
    "threshold": 4,
    "confidence_cap": "medium",
    "reason": "within_training_hull"
  },
  "capacity_delta_mw": 0
}

Capture w/ +storage (counterfactual)

capture_causal

advisory

Point estimate

0.9196

low confidence · 4 paths

Quantiles

P10
0.9195
P50
0.9196
P90
0.9197

Key metrics

base negative hour ratio
0.0071
cf negative hour ratio
0.0071
base daily spread
251.1400
cf daily spread
251.1300
base capture rate
0.9195
cf capture rate
0.9196
capture uplift
0.0001
spread reduction proxy
0.0306
Explanation & assumptions
{
  "module_tier": "advisory",
  "headline_track": "structural_counterfactual_simulation",
  "audit_track": "double_ml_partial_effect + shift_share_iv",
  "dml_theta_spread_per_bess_ratio": -20348.7618,
  "dml_se": 4203.0931,
  "iv_first_stage_corr": -0.8427,
  "assumption": "storage_reduces_negative_hours_and_spreads",
  "ood": {
    "triggered": true,
    "distance": 10.1532,
    "threshold": 4,
    "confidence_cap": "low",
    "reason": "zscore_exceeds_threshold"
  },
  "bess_delta_mw": 15,
  "bess_delta_requested_mw": 30,
  "tracks_agree": false,
  "identification_note": "single_bidding_zone_advisory_only"
}

15-min Paths (168h)

qh_generator

critical

Point estimate

€124.69/MWh

medium confidence · 20 paths

Quantiles

P10
€52.52/MWh
P50
€124.69/MWh
P90
€173.95/MWh

Key metrics

qh points per path
672.0000
n paths
50.0000
Explanation & assumptions
{
  "method": "conditional_block_bootstrap + gaussian_copula_coupling",
  "granularity": "PT15M",
  "fundamental_conditioning": true
}

BESS Dispatch (model)

bess_dispatch

critical

Point estimate

€587.76

medium confidence · 20 paths

Quantiles

P10
€-10.77k
P50
€587.76
P90
€18.16k

Key metrics

expected value eur
587.7600
realistic value p50 eur
587.7600
perfect foresight p50 eur
25198.1300
foresight gap mean
23372.8000
realistic pct of perfect
2.3300
n scenarios
50.0000
Explanation & assumptions
{
  "policy": "rolling_da_lp_soc_cycle_limits",
  "headline_track": "realistic_rolling_da",
  "upper_bound_track": "perfect_foresight_lp",
  "foresight_gap_mean": 23372.8,
  "constraints": "soc_power_efficiency_max_cycles_per_day"
}

PPA Tail Risk

ppa_tail

critical

Point estimate

85%

medium confidence · 12 paths

Quantiles

P10
30%
P50
85%
P90
85%

Key metrics

optimal sold fraction
0.8500
expected pnl
1318835.7700
cvar 5
1119027.3100
shortfall probability
0.0000
tail low gen high price freq
0.2000
n scenarios
200.0000
Explanation & assumptions
{
  "objective": "maximize mean_pnl + 0.5*cvar_5 - shortfall_penalty",
  "risk_measures": [
    "CVaR_Rockafellar_Uryasev",
    "shortfall_probability"
  ],
  "paths": "copula_coupled_joint_scenarios"
}

Crisis Alpha (advisory)

crisis_alpha

advisory

Point estimate

€21.78k

medium confidence · 10 paths

Quantiles

P10
€7.94k
P50
€21.78k
P90
€32.93k

Key metrics

base policy value
5095.7300
enhanced policy value
26876.9800
alpha uplift
21781.2500
mean foresight gap
21781.2500
crisis conditional gap
21843.5800
Explanation & assumptions
{
  "module_tier": "advisory",
  "method": "value_of_information_foresight_gap",
  "crisis_definition": "low_wind_and_low_solar",
  "crisis_hour_ratio": 0.0143,
  "forecast_error_mean": -0.114,
  "forecast_error_std": 11.055,
  "literature_bound_pct": "1-8pct_perfect_foresight_overstatement",
  "validation": "requires_out_of_sample_by_crisis_type",
  "degenerate_reasons": [],
  "trustworthy": true
}