River Forecasts (Official Hydrographs)

The official River Forecast Center hydrograph at every NWS forecast point, one row per issuance and valid time: forecast stage in feet and flow in cubic feet per second, typically six-hourly steps several days ahead.

Native record
forecast point x issuance x valid time
hourly (as issued) publication cadence
Evidence
Forecast data
Forward-looking values with an explicit issue time
Time basis
Point-in-time records
UTC · valid_at

Overview

Every issuance is kept, so the latest issued_at at or before a moment is the forecast as it stood then, and comparing issuances shows how a crest forecast moved. Flow forecast at a gauge upstream of a dam is a forecast of the plant's water; a crest above flood stage is a forecast of riverside exposure. Source: NOAA National Water Prediction Service.

Query contract

For one gauge's forecast as of a moment take the newest issued_at at or before it, then every valid_at row of that issuance.

Analysis rules

  • Never mix issuances in one curve; group by (lid, issued_at).
  • Join to nwps.gauge_registry on lid for thresholds; compare stage_ft only to the same gauge's thresholds.

Interpretation

  • Only official forecast points appear; most gauges have no forecast.
  • A forecast is the River Forecast Center's judgement, including its rainfall assumptions, not an observation.

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

Schema6

Column
Type
lidLowCardinality(String)
issued_atDateTime64(6, 'UTC')
valid_atDateTime64(6, 'UTC')
stage_ftNullable(Float64)
flow_cfsNullable(Float64)
ingested_atDateTime64(6, 'UTC')

Sample data

lidissued_atvalid_atstage_ftflow_cfsingested_at
ARSA42026-09-19 15:00:00.0000002026-10-10 12:00:00.00000032026-09-19 15:52:20.848332
GEEM62026-09-19 15:00:00.0000002026-10-10 12:00:00.00000012.92026-09-19 15:52:20.848332
NTZM62026-09-19 15:00:00.0000002026-10-10 12:00:00.00000016.63260002026-09-19 15:52:20.848332
VCKM62026-09-19 15:00:00.0000002026-10-10 12:00:00.0000008.72890002026-09-19 15:52:20.848332
ARSA42026-09-19 15:00:00.0000002026-10-10 06:00:00.0000003.12026-09-19 15:52:20.848332
GEEM62026-09-19 15:00:00.0000002026-10-10 06:00:00.000000132026-09-19 15:52:20.848332
VCKM62026-09-19 15:00:00.0000002026-10-10 06:00:00.0000008.82900002026-09-19 15:52:20.848332
NTZM62026-09-19 15:00:00.0000002026-10-10 06:00:00.00000016.73270002026-09-19 15:52:20.848332
ARSA42026-09-19 15:00:00.0000002026-10-10 00:00:00.0000003.12026-09-19 15:52:20.848332
GEEM62026-09-19 15:00:00.0000002026-10-10 00:00:00.00000013.12026-09-19 15:52:20.848332
VCKM62026-09-19 15:00:00.0000002026-10-10 00:00:00.0000008.92920002026-09-19 15:52:20.848332
NTZM62026-09-19 15:00:00.0000002026-10-10 00:00:00.00000016.83290002026-09-19 15:52:20.848332
ARSA42026-09-19 15:00:00.0000002026-10-09 18:00:00.0000003.32026-09-19 15:52:20.848332
GEEM62026-09-19 15:00:00.0000002026-10-09 18:00:00.00000013.22026-09-19 15:52:20.848332
VCKM62026-09-19 15:00:00.0000002026-10-09 18:00:00.00000092940002026-09-19 15:52:20.848332
NTZM62026-09-19 15:00:00.0000002026-10-09 18:00:00.00000016.93310002026-09-19 15:52:20.848332
ARSA42026-09-19 15:00:00.0000002026-10-09 12:00:00.0000003.42026-09-19 15:52:20.848332
GEEM62026-09-19 15:00:00.0000002026-10-09 12:00:00.00000013.32026-09-19 15:52:20.848332
VCKM62026-09-19 15:00:00.0000002026-10-09 12:00:00.0000009.12960002026-09-19 15:52:20.848332
NTZM62026-09-19 15:00:00.0000002026-10-09 12:00:00.000000173320002026-09-19 15:52:20.848332
ARSA42026-09-19 15:00:00.0000002026-10-09 06:00:00.0000003.52026-09-19 15:52:20.848332
GEEM62026-09-19 15:00:00.0000002026-10-09 06:00:00.00000013.42026-09-19 15:52:20.848332
VCKM62026-09-19 15:00:00.0000002026-10-09 06:00:00.0000009.22970002026-09-19 15:52:20.848332
NTZM62026-09-19 15:00:00.0000002026-10-09 06:00:00.00000017.13340002026-09-19 15:52:20.848332
ARSA42026-09-19 15:00:00.0000002026-10-09 00:00:00.0000003.62026-09-19 15:52:20.848332

Coverage

100.0% complete0 gap days23 days with data
Show coverage history
Coverage: 100.0%Days with data: 23Gaps: 0
2026
gaplessmore