Dean Shabi
All work

Renewcast · 2025 to 2026

Cutting solar forecast error from 15% to 6% in five months

Renewcast sells solar production forecasts to European energy companies. I rebuilt its forecasting stack so a physical model of each plant does most of the work and machine learning only fixes what physics gets wrong. Portfolio error fell every month for five months.

Role
Owned the solar forecasting stack
Stack
Python, pvlib, LightGBM, MLflow, Databricks
Rows of ground-mounted solar panels over tall grass, with woodland behind

How it works

  1. 1

    Weather and plant data

  2. 2

    Plant physics

  3. 3

    Learned correction

  4. 4

    Production forecast

Physics produces the forecast and a learned model corrects it. If data or the model fails, serving falls back to physics alone.

Results

Solar forecast error after the rebuild

Monthly average error as a share of plant capacity.

Renewcast solar portfolio, May to October 2025.

Show data
Portfolio nMAE
May 202515.3%
Jun 202511.1%
Jul 202510.1%
Aug 20259.4%
Sep 20257.4%
Oct 20256.2%

Portfolio error fell from 15.3% to 6.2% between May and October 2025, lower every month.

Under the new release rule, six of twelve hand-picked models failed to beat what was already in production.

Key decisions

  1. 01

    Learn only the error physics leaves

    Each plant gets a calibrated physical model. LightGBM trains on the gap between that model and what the plant actually produced, measured as a share of capacity, so one model works for plants of any size.

  2. 02

    Stop trusting the configured capacity

    The capacity in the config was often wrong. I detect real capacity changes from the data and filter out outages and curtailment, so a temporary cap never becomes something the model learns.

  3. 03

    Release a model only when it beats production

    A new model replaces the current one only if it beats the forecasts customers actually received by more than two standard errors, over at least four weeks. The winning run writes the serving config itself, so nobody edits it by hand.

  4. 04

    Keep forecasts going when parts fail

    If data is missing or the learned model breaks, serving drops to a lighter model and then to physics alone. Accuracy can dip. Customers still get a forecast.

Have a machine learning system that has to hold up in production? I'd like to hear about it.