CAISO logo

Wind and Solar Curtailment

Published wind and solar curtailment from CAISO's Daily Renewable Report HTML, by report hour, fuel, economic/self-schedule/operator-instruction category, and local/system reason.

Native record
report hour x fuel x curtailment category x local/system reason
daily report (hourly observations) publication cadence
Evidence
Observed market data
Published observations from the named source
Time basis
Date-labelled records
UTC · event_time

Overview

curtailment_mwh is hourly curtailed energy; curtailment_mw is the hourly maximum curtailed power, not average MW. event_time preserves the report's UTC chart labels for its reporting date; use the report-day basis for daily totals, not an assumed UTC dispatch clock for price joins. The former Production and Curtailments workbook was retired on 2025-06-01. This renewable-curtailment report is distinct from the generator outage/availability report.

Query contract

Read FINAL to retain one current revision per report hour, fuel, category and reason. The source HTML encodes report-hour labels with Date.UTC; event_time retains those labels, not an independently verified UTC dispatch instant.

Analysis rules

  • Sum curtailment_mwh across the 24 report-hour labels and the disjoint fuel/type/reason rows for a daily energy total; report coverage and non-null observations.
  • curtailment_mw is the hourly maximum curtailed power. Take max for a peak; never sum hourly maxima into MWh or substitute them for hourly average MW.

Interpretation

  • Missing reports or null measurements are unknown coverage, not zero curtailment. Explicit published zeroes are observations.
  • Renewable curtailment is separate from the planned/forced non-operational generator report.

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_curtailment/query

Need the full history of this dataset in Snowflake, Databricks or your own storage? Data services delivers it on a schedule.

Schema7

Column
Type
event_timeDateTime64(6, 'UTC')
curtailment_typeLowCardinality(String)
curtailment_reasonLowCardinality(String)
fuel_typeLowCardinality(String)
curtailment_mwhNullable(Float64)
curtailment_mwNullable(Float64)
ingested_atDateTime64(6, 'UTC')

Sample data

event_timecurtailment_typecurtailment_reasonfuel_typecurtailment_mwhcurtailment_mwingested_at
2026-10-17 23:00:00.000000self-schedulesystemwind002026-10-18 18:58:28.743808
2026-10-17 23:00:00.000000self-schedulesystemsolar002026-10-18 18:58:28.743808
2026-10-17 23:00:00.000000self-schedulelocalwind002026-10-18 18:58:28.743808
2026-10-17 23:00:00.000000self-schedulelocalsolar002026-10-18 18:58:28.743808
2026-10-17 23:00:00.000000operator-instructionsystemwind002026-10-18 18:58:28.743808
2026-10-17 23:00:00.000000operator-instructionsystemsolar002026-10-18 18:58:28.743808
2026-10-17 23:00:00.000000operator-instructionlocalwind002026-10-18 18:58:28.743808
2026-10-17 23:00:00.000000operator-instructionlocalsolar002026-10-18 18:58:28.743808
2026-10-17 23:00:00.000000economicsystemwind002026-10-18 18:58:28.743808
2026-10-17 23:00:00.000000economicsystemsolar002026-10-18 18:58:28.743808
2026-10-17 23:00:00.000000economiclocalwind002026-10-18 18:58:28.743808
2026-10-17 23:00:00.000000economiclocalsolar002026-10-18 18:58:28.743808
2026-10-17 22:00:00.000000self-schedulesystemwind002026-10-18 18:58:28.743808
2026-10-17 22:00:00.000000self-schedulesystemsolar002026-10-18 18:58:28.743808
2026-10-17 22:00:00.000000self-schedulelocalwind002026-10-18 18:58:28.743808
2026-10-17 22:00:00.000000self-schedulelocalsolar002026-10-18 18:58:28.743808
2026-10-17 22:00:00.000000operator-instructionsystemwind002026-10-18 18:58:28.743808
2026-10-17 22:00:00.000000operator-instructionsystemsolar002026-10-18 18:58:28.743808
2026-10-17 22:00:00.000000operator-instructionlocalwind002026-10-18 18:58:28.743808
2026-10-17 22:00:00.000000operator-instructionlocalsolar002026-10-18 18:58:28.743808
2026-10-17 22:00:00.000000economicsystemwind002026-10-18 18:58:28.743808
2026-10-17 22:00:00.000000economicsystemsolar002026-10-18 18:58:28.743808
2026-10-17 22:00:00.000000economiclocalwind002026-10-18 18:58:28.743808
2026-10-17 22:00:00.000000economiclocalsolar002026-10-18 18:58:28.743808
2026-10-17 21:00:00.000000self-schedulesystemwind002026-10-18 18:58:28.743808

Coverage

No time-indexed data — coverage isn’t applicable to this dataset.