Skip to content

v4.2 — Crisis-Responsive Features

Date: March 4, 2026

What Changed

Sprint 3 added 24 new features designed to capture volatile market conditions — commodity price momentum, volatility regime detection, price curve shape, demand ramps, and multi-week seasonal lags. Motivated by the Iran conflict driving gas/electricity price spikes, these features encode exactly the kind of regime shifts that standard lag-based models struggle with.

Feature Design Logic

The 24 features are organised into five groups, each targeting a specific mechanism by which market conditions propagate to electricity prices:

  • Commodity derivatives capture how gas and carbon price momentum signals impending cost pressure on thermal generation. When gas prices rise sharply over 7 or 30 days, gas-fired plants become more expensive, and those costs pass through to electricity prices at the hours when gas plants set the marginal price.
  • Volatility regime indicators detect when the market has entered a high-uncertainty state. A model that knows the market is currently in a high-volatility regime can allocate its capacity differently — prioritising tail coverage over point accuracy.
  • Price curve shape features encode intraday stress. The ratio of peak to base prices and the steepness of morning and evening demand ramps indicate how much upward pressure exists within a given day, beyond what aggregate daily signals can capture.
  • Demand ramps capture sudden load changes that require expensive peaking capacity to respond. When demand rises steeply while gas prices are already elevated, the interaction creates disproportionately high price spikes.
  • Multi-week lags provide a longer seasonal reference that the standard 168-hour (one-week) lag cannot capture. Two- and three-week lags help the model anchor to recent seasonal patterns rather than extrapolating from a single week.

New Features

Commodity Derivatives (10 features)

FeatureFormulaPurpose
gas_price_change_7dgas(t) - gas(t-7d)Short-term gas momentum
gas_price_change_30dgas(t) - gas(t-30d)Medium-term gas trend
gas_price_pct_change_7d(gas(t) - gas(t-7d)) / gas(t-7d)Normalized gas momentum
oil_price_change_7doil(t) - oil(t-7d)Oil price momentum
oil_price_change_30doil(t) - oil(t-30d)Oil price trend
oil_gas_ratiooil / gasEnergy substitution signal
gas_carbon_ratiogas / carbonFuel switching signal
marginal_cost_gasgas * 1.9 + carbon * 0.37Gas plant breakeven cost
clean_spark_spreadprice - marginal_cost_gasGeneration profitability
gas_x_residual_demandgas * residual_demandCommodity-demand interaction

Volatility Regime Indicators (5 features)

FeatureWindowPurpose
price_iqr_24h24hInterquartile range — robust volatility
price_skewness_7d7dDistribution asymmetry (spike tendency)
extreme_price_count_7d7dCount of hours beyond 2 standard deviations
vol_regime7dBinary: high-vol if IQR > median IQR
price_acceleration_24h24hRate of change of price momentum

Price Curve Shape (3 features)

FeaturePurpose
price_peak_to_base_ratioPeak/off-peak ratio — market stress indicator
price_slope_morning06:00–10:00 ramp rate — morning demand pressure
price_slope_evening18:00–22:00 ramp rate — evening peak dynamics

Demand Ramps (2 features)

FeaturePurpose
demand_ramp_4h4-hour demand change — captures ramping events
demand_ramp_x_gas_priceDemand ramp times gas price — expensive ramps

Multi-Week Lags (4 features)

FeaturePurpose
price_lag_336h2-week lag — captures biweekly patterns
price_lag_504h3-week lag — captures longer seasonal cycles
price_same_weekday_4w_avg4-week same-weekday average — stable seasonal reference
price_same_weekday_4w_std4-week same-weekday std — seasonal volatility

Configuration

ParameterValue
Loss functionQuantile 0.55
Ensemble3 models (HistGBT, LightGBM, XGBoost)
Features~100 (76 from v4.1 + 24 new)
Feature selectionNo
Peak-splitNo

Results

149-day backtest (Oct 2025 – Feb 2026), ensemble models:

Productv4.1 MAEv4.2 MAEChange
Dayahead13.4214.95+11.4% (regression)
Strategic20.7820.36-2.0%

February 2026 (crisis period):

Productv4.1 MAEv4.2 MAEChange
Dayahead9.728.95-8.0%

The new features help during volatile periods but add noise during stable months (Oct–Jan). Strategic forecasting improved because commodity momentum and multi-week lags are more informative at longer horizons. Dayahead regressed because the 22 additional features increased overfitting risk on a model that was already well-tuned.

Decision: v4.1 remained the production baseline; v4.2 features were retained for the v4.3 feature selection pipeline to prune the noise.