Mustang Analytics

California grid

We forecast California's grid and publish the miss

CAISO, the operator that runs most of California's grid, posts statewide demand and the generation mix at five-minute intervals through its public Today's Outlook feed. We chart those readings, converting demand to gigawatts for display, and project demand three hours ahead with a model we built. Then we grade the model the way we grade our own work: yesterday's projections go up against yesterday's actuals, and the average miss appears further down this page in plain numbers, refreshed daily, so the forecast carries its track record with it.

Source: CAISO Today's Outlook · Refreshes hourly · Last build June 21, 2026 at 5:55 PM Pacific

Current demand
26.0 GW
17:50 Pacific
Renewable share
89%
of current supply
Natural gas & coal
3%
of current supply
Forecast peak (3h)
27.2 GW
our active machine learning model

Demand · five-minute readings

Electricity demand through the day

Each point is the power the grid served at that moment, measured every five minutes and shown in gigawatts. The dashed line is the forecast we generate for the next three hours, starting from the latest reading.

28.224.721.117.614.100:0003:0006:0009:0012:0015:0018:0021:00Gigawatts
Actual demand (GW) Our forecast (next 3 hours)

Generation mix · latest reading

What is serving the load

89%renewables
  • Renewables 89%
  • Nuclear 8%
  • Natural gas & coal 3%

Batteries are charging at about 0.1 GW right now, storing surplus supply rather than serving load, so they are not in the mix above.

Forecast score · updated daily

Yesterday's miss, measured

We ran the same model at five points through yesterday and compared each three-hour forecast to what the grid used. This is the average miss.

6.7%average miss (Machine Learning model) over a three-hour horizon

The Machine Learning model was dynamically selected because its average forecast error yesterday (6.7%) was lower than the baseline model (7.5%). Scored against 2026-06-20 actuals.

Method

How the forecast works

We pull the last seven days of demand from CAISO and average them into a typical load curve for each time of day. To forecast the next three hours, we anchor that curve to recent actual demand, and then adjust it dynamically using a Ridge Regression model. The model is trained on the fly on the last 14 days of demand, learning the relative impact of Sacramento's temperature and cloud cover deviations from the National Weather Service. This Machine Learning model was active because it outperformed the baseline yesterday.

On the data: Readings come from CAISO's public Today's Outlook feed, which updates at five-minute intervals. The forecast and the scoring are ours. This page rebuilds hourly, so the charts show the latest reading we pulled at build time, with the timestamp above. If the feed is unreachable at build time, the affected chart reads "data unavailable" rather than a filled-in guess.