Forecasting load, solar and prices for hundreds of sites at once
I led the development of long-term forecasting models for UK energy-tech firms. They power product features, inform trading decisions and cut balancing costs, across load, solar generation, battery state and market prices.
- Role
- Led model development
- Stack
- Python, PyTorch, MLflow, AWS, Docker
>30%
Lower MAPE than the benchmark
4
Forecast types for load, solar, battery and price

How it works
- 1
Weather data
- 2
Energy history
- 3
Market signals
- 4
Prediction engine
global models
- 5
API
Results
Forecast error against the benchmark
MAPE for load and generation, aggregated across hundreds of production sites and indexed so the benchmark is 100.
- Before
- After
MAPE, indexed
Production evaluation across client sites.
The forecasts powered core features in customer-facing energy management platforms. Sub-hourly forecasts cut balancing costs and penalties.
Key decisions
- 01
One model for many sites
A global model learns shared patterns from hundreds of time series at once. That helps it generalise to sites it has seen little of.
- 02
Transfer what the network learns
Networks reuse what they learned on other sites and tasks. That raised accuracy and cut training time, most of all for sites with little data.
- 03
Test the model families properly
I compared ARIMA, LightGBM ensembles and RNN, LSTM and Transformer networks, and built hybrids that combine statistical and ML models.
- 04
Make every run reproducible
MLflow tracks experiments, versions models and stores results, so any forecast can be traced back to the run that made it.