CAISO logo

Fuel Region Gas Prices

CAISO's daily natural-gas price for each of its fuel regions, in $/MMBtu.

Native record
fuel region x gas day, stamped on hourly rows
Daily (gas day) publication cadence
Evidence
Reference data
Stable context used to interpret other datasets
Time basis
Interval-start records
UTC · event_time

Overview

CAISO posts this as FUEL REGION | GAS INDEX | TRANSPORT | TOTAL, and the value here is that total: a published gas index plus a transport adder, i.e. the delivered cost of gas to that region, not a hub spot assessment. It is the number CAISO uses to reference and floor gas-fired energy bids, so it is the fuel-cost input underneath thermal offer behavior across the West. 201 fuel regions are currently active across 27 electric subregions, reaching well beyond California: Waha and El Paso Permian in West Texas, Opal, Kern River, Cheyenne, CIG and the San Juan points in the Rockies, Malin, Stanfield, Northwest Sumas and Kingsgate in the Pacific Northwest, Alberta AECO in Canada, and the SoCal Citygate and PG&E Citygate burner-tip regions in California. Receipt-point regions such as Waha (FRWHA1-3), El Paso Permian (FREPP1-4), Opal, Malin and Sumas track the underlying published index closely, because their transport adder is small; citygate regions are burner-tip costs and spread widely, so they are not interchangeable with a hub price — on 2026-08-20 the 40 region ids named SoCal Citygate ranged from 4.43 to 8.15 $/MMBtu on the same day. Region ids ending in GHG carry a California carbon-allowance adder on top and are a different quantity again. Negative prices are real and are concentrated in the takeaway-constrained Permian regions: 0.97% of rows are below zero, to a minimum of -10.51 $/MMBtu. Rows are stamped hourly, 24 per region per gas day, but the price is constant across a gas day, and the gas day is the America/Los_Angeles calendar date — it steps at Pacific midnight, so daily rollups must use toDate(event_time, 'America/Los_Angeles'). The current gas day is partial until the next 14:30 UTC pull, though its price is already complete. History runs from 2015-02-01 and is continuous and complete from 2026-02-01 onward; before that date it covers 1,972 of 4,018 days in whole-month blocks (February through April, June, September and November of each year), so a pre-2026 average over an arbitrary window is an average over the months that are present, not over the period requested. Hub attribution is INFERRED from CAISO's region coding, not published: CAISO's monthly fuel-region posting lists region ids with their index, transport and total and no hub names at all, and FRWHA does not appear in it — so 'Waha' here reads the id, corroborated by the price sitting where Waha sits against Henry Hub, rather than by a CAISO mapping. Treat a region as the delivered cost CAISO assigns to it; do not cite it as a hub assessment. This dataset is FUEL-COST CONTEXT, not market settlement data, and is queryable from every active grid scope: a question asked under ERCOT about West Texas gas cost answers from the Waha-region ids here, said as delivered fuel cost. The official source is CAISO OASIS report PRC_FUEL.

Query contract

Read FINAL: the table holds unmerged re-ingest duplicates, so an unqualified count() or unweighted avg() over-weights the duplicated keys. One price covers a whole gas day and is repeated across that day's 24 hourly rows, so take any()/max() of prc per (fuel_region_id, gas day) rather than averaging the hourly rows.

Analysis rules

  • The gas day is the America/Los_Angeles calendar date. Group with toDate(event_time, 'America/Los_Angeles'); toDate(event_time) splits a single gas-day price across two UTC dates.
  • Collapse each gas day to one price per fuel region before averaging over time, otherwise a partial current day is under-weighted relative to complete days.

Related analysis

  • regional delivered gas cost versus the national benchmark · Reduce this table to one price per fuel region per gas day using toDate(event_time, 'America/Los_Angeles'), then join to Henry Hub on that date. Henry Hub publishes on trading days only and lags several days, so restrict the comparison to dates present in both and label the result a delivered-cost-to-benchmark difference, not a traded basis.

Interpretation

  • This is CAISO's fuel-region gas price — a published gas index plus a transport adder, i.e. a delivered fuel-region cost. It is not a hub spot assessment and will not equal a published index for the same location. Receipt-point regions such as Waha, El Paso Permian, Opal, Malin and Sumas track the underlying index closely; citygate regions are burner-tip and diverge widely.
  • The Waha regions (FRWHA1-3) are CAISO's fuel-region price for the Waha area, not the ERCOT or Permian hub settlement price. Attribute it to CAISO OASIS PRC_FUEL whenever it is reported.

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

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

Schema4

Column
Type
event_timeDateTime64(6, 'UTC')
fuel_region_idLowCardinality(String)
prcNullable(Float64)
ingested_atDateTime64(6, 'UTC')

Sample data

event_timefuel_region_idprcingested_at
2026-10-11 14:00:00.000000FRWHA31.982026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRWHA21.982026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRWHA11.882026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRWALC1.82026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRTWS62.192026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRTWS52.942026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRTWS42.222026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRTWS33.472026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRTWS22.742026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRTWS11.862026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRTWB42.162026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRTWB31.922026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRTWB21.922026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRTWB11.92026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRTID4.222026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRTEP2.162026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRTAC2.382026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRSWG13.132026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRSUWAGHG6.692026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRSUWA2.522026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRSUW9GHG6.022026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRSUW92.492026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRSUW8GHG6.072026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRSUW82.532026-10-11 14:30:51.413682
2026-10-11 14:00:00.000000FRSUW7GHG6.42026-10-11 14:30:51.413682

Coverage

52.1% complete2,046 gap days2,225 days with data
Show coverage history
Coverage: 52.1%Days with data: 2,225Gaps: 2,046
2026
2025
2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
gaplessmore