Dean Shabi
All work

Renewcast · 2026

One forecasting system for portfolios that all look different

Renewcast's forecasting pipeline assumed one ID per plant, with the data already prepared. Portfolios broke that assumption. I modelled plants, meters and the forecasts Renewcast sells as separate things, so each new portfolio reuses the same steps instead of needing its own pipeline.

Role
Designed the framework and built the pipelines
Stack
Python, pvlib, H3, LightGBM, MLflow
Aerial view of an electrical substation and power lines among green fields and woods

How it works

  1. 1

    Plants and weather

  2. 2

    Physics forecast

  3. 3

    Meter correction

    where history exists

  4. 4

    Portfolio total

  5. 5

    Delivered forecast

    asset, zone or portfolio

Sites with meter history get a learned correction. The rest use physics, so the portfolio forecast never leaves a site out.

Results

Forecast against metered energy, 107-site portfolio

Monthly energy in MWh. Each month was forecast without seeing that month's data.

  • Forecast
  • Metered

107-site portfolio, July 2025 to August 2026.

Show data
MeteredForecast
Jul 20252,976 MWh2,898 MWh
Aug 20253,064 MWh3,287 MWh
Sep 20252,228 MWh2,162 MWh
Oct 20251,346 MWh1,280 MWh
Nov 2025697 MWh681 MWh
Dec 2025397 MWh341 MWh
Jan 2026573 MWh673 MWh
Feb 2026862 MWh899 MWh
Mar 20262,527 MWh2,415 MWh
Apr 20262,649 MWh2,667 MWh
May 20263,020 MWh2,908 MWh
Jun 20263,335 MWh3,197 MWh
Jul 20263,266 MWh3,244 MWh
Aug 20262,792 MWh2,791 MWh

By October 2026, four client portfolios ran on the framework, the largest with 1,189 plants. On a 107-site portfolio, hourly forecast error came to 10% of metered energy over 14 months. Monthly totals were off by 5% on average.

Key decisions

  1. 01

    Plants, meters and forecasts are different things

    One meter can measure several plants, and one portfolio can be sold as several forecasts. Modelling those relationships separately lets training follow the meters while delivery follows whatever grouping the client buys.

  2. 02

    Start before every site has meter data

    Sites with usable meter history get a learned correction and the others get the physics forecast. The client gets a complete portfolio forecast without waiting for every site to build up history.

  3. 03

    Build new clients from existing routes

    Forecasting one asset, a whole portfolio, a single zone or meter-level corrections are all routes built from the same steps. A new client requirement is usually a new combination of steps that already exist.

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