CAISO logo

Renewables Actuals

Hourly renewable generation actuals for the CAISO footprint, broken out by renewable resource type such as solar and wind.

Native record
renewable trading hub x resource type x operating hour
hourly publication cadence
Evidence
Observed market data
Published observations from the named source
Time basis
Interval-start records
UTC · event_time

Overview

This dataset shows how much renewable output was physically contributing to the California grid in each hour, making it central to net-load analysis and to understanding ramps around sunrise and sunset. Paired with actual load and real-time prices, it helps explain when renewable production is easing supply conditions or when falling output is creating evening ramp pressure. The public source is CAISO Today's Outlook.

Query contract

Preserve one row per event_time, trading_hub, and renewable_type before aggregating.

Analysis rules

  • For CAISO-wide solar or wind output, query at one exact common event_time, group by renewable_type, and sum mw across NP15, SP15, and ZP26 in SQL. Do not retrieve six hub rows and reconstruct resource totals by array position.
  • Do not add observations from different event times or market_run values.

Interpretation

  • This dataset contains solar and wind actuals only. It does not contain the all-resource generation denominator required for a share of total supply mix.
  • CA ISO-TAC load is demand, not total generation supply. Do not substitute load as the denominator when the user asks for share of supply mix; return solar/wind MW and state that the requested percentage is unsupported.

Access

Query from your own tools

Use the guarded HTTP endpoint directly, or connect an MCP client and load the dataset contract with describe_data before calling query_data.

HTTP endpoint
POST /api/v1/datasets/caiso_renewables_actual_hourly/query

Schema7

Column
Type
event_timeDateTime64(6, 'UTC')
trading_hubLowCardinality(String)
renewable_typeLowCardinality(String)
mwNullable(Float64)
market_runNullable(String)
labelNullable(String)
ingested_atDateTime64(6, 'UTC')

Sample data

event_timetrading_hubrenewable_typemwmarket_runlabelingested_at
2026-09-29 03:00:00.000000ZP26Wind47.30413ACTUALRenewable Forecast Actual Generation2026-09-29 04:15:32.680747
2026-09-29 03:00:00.000000ZP26Solar8.06244ACTUALRenewable Forecast Actual Generation2026-09-29 04:15:32.680747
2026-09-29 03:00:00.000000SP15Wind4589.05346ACTUALRenewable Forecast Actual Generation2026-09-29 04:15:32.680747
2026-09-29 03:00:00.000000SP15Solar-36.72449ACTUALRenewable Forecast Actual Generation2026-09-29 04:15:32.680747
2026-09-29 03:00:00.000000NP15Wind696.24347ACTUALRenewable Forecast Actual Generation2026-09-29 04:15:32.680747
2026-09-29 03:00:00.000000NP15Solar-7.72006ACTUALRenewable Forecast Actual Generation2026-09-29 04:15:32.680747
2026-09-29 02:00:00.000000ZP26Wind51.32994ACTUALRenewable Forecast Actual Generation2026-09-29 04:15:21.194304
2026-09-29 02:00:00.000000ZP26Solar8.18346ACTUALRenewable Forecast Actual Generation2026-09-29 04:15:21.194304
2026-09-29 02:00:00.000000SP15Wind4658.91049ACTUALRenewable Forecast Actual Generation2026-09-29 04:15:21.194304
2026-09-29 02:00:00.000000SP15Solar-39.98155ACTUALRenewable Forecast Actual Generation2026-09-29 04:15:21.194304
2026-09-29 02:00:00.000000NP15Wind704.90068ACTUALRenewable Forecast Actual Generation2026-09-29 04:15:21.194304
2026-09-29 02:00:00.000000NP15Solar-8.63814ACTUALRenewable Forecast Actual Generation2026-09-29 04:15:21.194304
2026-09-29 02:00:00.000000ZP26Wind51.32994ACTUALRenewable Forecast Actual Generation2026-09-29 03:15:33.118783
2026-09-29 02:00:00.000000ZP26Solar8.18346ACTUALRenewable Forecast Actual Generation2026-09-29 03:15:33.118783
2026-09-29 02:00:00.000000SP15Wind4658.91049ACTUALRenewable Forecast Actual Generation2026-09-29 03:15:33.118783
2026-09-29 02:00:00.000000SP15Solar-39.98155ACTUALRenewable Forecast Actual Generation2026-09-29 03:15:33.118783
2026-09-29 02:00:00.000000NP15Wind704.90068ACTUALRenewable Forecast Actual Generation2026-09-29 03:15:33.118783
2026-09-29 02:00:00.000000NP15Solar-8.63814ACTUALRenewable Forecast Actual Generation2026-09-29 03:15:33.118783
2026-09-29 01:00:00.000000ZP26Wind43.72224ACTUALRenewable Forecast Actual Generation2026-09-29 03:15:21.686562
2026-09-29 01:00:00.000000ZP26Solar160.10631ACTUALRenewable Forecast Actual Generation2026-09-29 03:15:21.686562
2026-09-29 01:00:00.000000SP15Wind4843.80508ACTUALRenewable Forecast Actual Generation2026-09-29 03:15:21.686562
2026-09-29 01:00:00.000000SP15Solar327.28127ACTUALRenewable Forecast Actual Generation2026-09-29 03:15:21.686562
2026-09-29 01:00:00.000000NP15Wind593.38171ACTUALRenewable Forecast Actual Generation2026-09-29 03:15:21.686562
2026-09-29 01:00:00.000000NP15Solar109.79788ACTUALRenewable Forecast Actual Generation2026-09-29 03:15:21.686562
2026-09-29 00:00:00.000000ZP26Wind53.52437ACTUALRenewable Forecast Actual Generation2026-09-29 02:15:22.021064

Coverage

100.0% complete0 gap days1,337 days with data
Show coverage history
Coverage: 100.0%Days with data: 1,337Gaps: 0
2026
2025
2024
2023
gaplessmore