River Gauge Readings (Full Observed Series)

Every observed stage and flow reading at every NWS river gauge, at each gauge's own reporting interval (usually 15 minutes, 5 at some): stage in feet and flow in cubic feet per second.

One row per
river gauge x observed reading
15-minute cadence
Evidence
Observed market data
Published observations from the named source
Time basis
Point-in-time records
UTC · observed_at

Overview

This is the complete observed record; the 15-minute gauge snapshots keep only the latest reading at each snapshot and miss readings from gauges that transmit in batches. Flow is the physical driver of hydroelectric output, and a gauge upstream of a dam leads the plant by the river's travel time. Stage is relative to each gauge's own datum and is not comparable between gauges; flow is. Source: NOAA National Water Prediction Service.

Query contract
Keep one row per (lid, observed_at); take argMax(value, ingested_at) where a reading was loaded twice.
Analysis rules
Compare flow_cfs across gauges, never stage_ft: stage is relative to each gauge's own datum.Reporting intervals differ by gauge; resample to a common step before comparing gauges.
Interpretation
A gauge near a plant is not necessarily on the plant's river. Name the gauge and the distance rather than asserting the plant's inflow.Readings are provisional and can be revised by the operating agency.

Access

Download
Query it in SQL, download it, or read it with an API key. Download data
MCP
Connect an MCP client and load the contract with describe_data before calling query_data.ERCOT MCPCAISO MCPNYISO MCPPJM MCPSPP MCPMISO MCPISO-NE MCPBPA MCPAPI reference
HTTP endpoint
POST /api/v1/datasets/nwps_observations/query
Full history
Delivered to Snowflake, Databricks or your own storage on a schedule by Data services.
More coverage

Schema

5 columns
ColumnType
lidLowCardinality(String)
observed_atDateTime64(6, 'UTC')
stage_ftNullable(Float64)
flow_cfsNullable(Float64)
ingested_atDateTime64(6, 'UTC')

Sample data

lidobserved_atstage_ftflow_cfsingested_at
MCWN72026-11-03 09:50:00.0000008.01∅2026-11-03 09:59:46.115213
MCIT12026-11-03 09:50:00.0000000.46∅2026-11-03 09:59:46.115213
MCBT12026-11-03 09:50:00.0000001.01∅2026-11-03 09:59:46.115213
MCTO32026-11-03 09:50:00.0000006.4353.4000000000000062026-11-03 09:59:46.115213
MLLN72026-11-03 09:50:00.0000007.12∅2026-11-03 10:00:55.438999
MICN72026-11-03 09:50:00.0000000.91∅2026-11-03 09:59:58.152883
MRLV22026-11-03 09:50:00.0000000.17∅2026-11-03 10:02:04.969094
MSSO32026-11-03 09:50:00.0000002.402026-11-03 10:02:04.969094
NELN72026-11-03 09:50:00.0000000.98∅2026-11-03 10:03:32.342916
NCRW12026-11-03 09:50:00.0000000.79∅2026-11-03 10:03:32.342916
NAGN72026-11-03 09:50:00.000000-0.23∅2026-11-03 10:03:01.139131
NASP42026-11-03 09:50:00.0000006.8502026-11-03 10:03:01.139131
OCOT22026-11-03 09:50:00.0000001.73∅2026-11-03 10:04:02.595075
OKRS12026-11-03 09:50:00.0000007.6∅2026-11-03 10:04:02.595075
ODCT22026-11-03 09:50:00.0000003.73∅2026-11-03 10:04:02.595075
NSFN72026-11-03 09:50:00.0000006.65∅2026-11-03 10:03:47.320354
NNRN72026-11-03 09:50:00.0000003.12∅2026-11-03 10:03:47.320354
ORBT22026-11-03 09:50:00.0000001.52∅2026-11-03 10:04:21.083386
PBPV22026-11-03 09:50:00.0000000.33∅2026-11-03 10:04:38.373259
PKCN72026-11-03 09:50:00.0000005.25∅2026-11-03 10:05:00.435168
PCKN72026-11-03 09:50:00.000000-0.38∅2026-11-03 10:04:38.373259
PCCM52026-11-03 09:50:00.00000036.15∅2026-11-03 10:04:38.373259
PCGV22026-11-03 09:50:00.0000000.17∅2026-11-03 10:04:38.373259
POMN42026-11-03 09:50:00.0000000.64∅2026-11-03 10:05:11.906153
PSUV22026-11-03 09:50:00.0000001.39∅2026-11-03 10:05:23.624430

Coverage

Complete
100.0%
Gap days
0
Days with data
76
Show coverage history
Coverage: 100.0%Days with data: 76Gaps: 0
2026
gaplessmore