The challenge
Demand forecasting drove real procurement decisions, and the existing model was tuned on a grid that no longer existed — distributed generation had changed the shape of the load curve faster than the model was retrained.
Under-forecasting meant buying on the spot market at the worst possible moment. Over-forecasting meant paying for generation nobody used. Both errors were costly, and the model treated them as equivalent.
What we did
Forecasting agents run per region and are retrained on a schedule tied to how fast that region's generation mix is actually changing, rather than a fixed cadence chosen years earlier.
The loss function was reweighted to reflect the real asymmetry between over- and under-forecasting, which mattered more to the outcome than any architectural change we made.
Every forecast ships with a confidence band, and procurement thresholds are set against the band rather than the point estimate.
Where it landed
Efficiency gains came from the operators trusting the confidence bands enough to act on them — a forecast nobody acts on is worth nothing regardless of its accuracy.
Retraining now runs without engineering involvement, so the model tracks the grid instead of drifting behind it.
Something similar on your side? Tell us the shape of it.