Raw data · water year 2026
Everything behind the map, as plain CSV. The committed files are the dated snapshot the site ships with; the export button below folds in the daily readings, baked from USGS and Colorado DWR once a day.
All reservoirs: location, basin, source river, capacity and storage (acre-feet), percent of median, confidence, method (measured / estimated), source and as-of date for every reading.
DownloadMonthly percent-of-median storage for the seven basins, Oct 2025 – Sep 2026, the series that drives the timeline. Each row is tagged derived (from CDSS daily history) or estimated, plus statewide streamflow.
DownloadThe 18 streamgages used on the flow view, with USGS site numbers you can look up at waterdata.usgs.gov. Two are DWR-operated and read from CDSS.
Downloadreservoirs.csv, but with Colorado DWR telemetry readings from the daily refresh replacing the snapshot wherever a station reported.
Rows marked live carry Colorado DWR telemetry from the daily refresh. Observed rows carry a published, dated reading; basin estimate rows are scaled to their basin's NRCS percent of median because no same-day public reading was available.
Each displayed value carries a method, which says how much to trust it and where it came from:
Three different things get called “your water,” and they are administered by three different bodies. This project models only the first, and loosely:
The limits. Places here are grouped by provider and matched by ZIP prefix, and ZIP codes are postal routes, not service-area boundaries. One ZIP can span several providers, a provider spans many ZIPs, and about a third of the entries cover a cluster of small neighboring systems under one label. We do not use PWSIDs or published service-area boundaries, so nothing here is authoritative for “who serves this address.”
For the authoritative answer, in order of usefulness: your utility bill; your provider’s own website; the EPA SDWIS federal reporting search (look up a system by state and name); and EPA’s explainer on public water systems. For plain-language background on Colorado water generally, Water Education Colorado is the standard reference.
Everything traces to a keyless, CORS-open, public-domain endpoint. Histories are pulled once and reduced to weekly day-of-year medians by scripts/build_normals.py, which writes js/normals.js. Current values are fetched once a day by a scheduled GitHub Action (scripts/fetch_live.py → data/live.json), so your browser reads small files from this site, never the government APIs, and derives the percentages from them. The same run bakes data/hydro.json, the trailing year of daily values behind every station's in-sheet hydrograph, and saves the agencies' responses verbatim to data/raw/ before any cleaning. The repository's git history keeps every day's raw snapshot, so each baked number can be checked against what USGS and CDSS returned.
| Source | Endpoint | What it gives | Record | Grade |
|---|---|---|---|---|
| USGS NWIS | waterservices.usgs.gov | Streamflow — current (iv) + daily record (dv) for the gage medians | from 1991 | measured |
| Colorado DWR / CDSS | dwr.state.co.us/Rest | Reservoir storage — current telemetry + daily record for the storage medians; streamflow at the two DWR-operated gages | from 2005 | measured |
| NRCS AWDB | wcc.sc.egov.usda.gov | SNOTEL snow-water-equivalent, aggregated to basin snowpack medians | from 1979 | measured |
| NRCS AWDB (decades) | wcc.sc.egov.usda.gov | Snowpack by decade, from a fixed panel of SNOTEL sites (see below) | from 1978 | measured |
| USBR (UC hydrodata / RISE) | usbr.gov/uc/water | Federal reservoirs incl. Lake Powell annual end-of-Sept storage and pool elevation | from 1963 | measured |
| USGS 3DEP | elevation.nationalmap.gov | Water-surface elevation for reservoirs with no telemetered stage | — | derived |
| Natural Earth | naturalearthdata.com | Shaded relief basemap | — | public domain |
| This project | js/data.js | Map geometry & the flow-and-mixing model | — | schematic |
A decade-to-decade comparison goes wrong the moment the measuring changes. SNOTEL sites have been added and retired steadily since 1978, and higher or snowier sites joining the network late would manufacture a trend that is only a change in who is reporting. So that chart uses a fixed panel: only sites installed by 1980 that then reported in every water year since 1981, currently 43 stations between 8,240 and 11,600 ft. The same 43 sites are averaged in every decade. A day is used only when at least 85% of the panel reports it, and a decade's curve is the median across that decade's water years, not a mean, so one freak season cannot carry a decade.
Two caveats. The 2020s bar covers only five completed water years, so it is the least settled figure on the chart. And a panel of long-record sites skews toward the mid-elevation band SNOTEL was built to watch. It is a consistent sample of Colorado's snowpack, not a complete census of it.
The basin step-down diagram stacks every reservoir and streamgage in order of how high it actually sits. Two sources feed that: for a gage, the USGS surveyed alt_va, the altitude of the gage datum; for a reservoir with DWR telemetry, the CDSS stage field, the live water-surface elevation from the same reading that gives the storage. That covers 25 of the reservoirs here.
For the rest there is no telemetered stage, so the script samples the USGS 3DEP elevation model around the point and accepts a value only when the samples show a dominant flat surface, meaning it is looking at a lake. That threshold matters: the coordinates in the dataset are label anchors for the map, not survey points, and a few sit up to two kilometers off the water. A permissive version of this test put Homestake 1,160 feet too low by measuring a hillside. A wrong height would mis-order the diagram while looking authoritative, so the rule is strict. Where the test passes, checked against the reservoirs CDSS does report a stage for, it lands within about 60 feet.
That gives a verified surface elevation for 34 of the 52 reservoirs, plus all 18 streamgages. The remaining reservoirs appear in the step-down with no elevation printed beside them. They are still positioned by river order: a reservoir sits below everything upstream of it and above everything downstream. Their placement is an inference from the river's shape. Every printed figure is a measurement.
Note that the two measured sources are not quite the same quantity. A CDSS stage is today's pool, which moves through the season; a 3DEP surface is where the water stood when the elevation model was flown. Both are the water surface, and the difference is far smaller than the gaps between reservoirs, which is all the ordering depends on. The vertical spacing in that diagram is not to scale. Only the order is exact.
The two Lake Powell thresholds are elevations, converted to storage: minimum power pool (3,490 ft) from Reclamation's own daily record, which shows the reservoir holding 4.00 MAF at that elevation while filling in 1964, less the roughly 6.8% of capacity since lost to sediment (the same record reads 5.91 MAF at 3,525 ft in 1965 against 5.51 MAF in 2026), giving about 3.7 MAF today. Dead pool (3,370 ft) is total capacity 25.16 MAF (USGS 2018 survey) less ~23.3 MAF of live capacity, ≈1.9 MAF.
Regenerate the baked medians or the daily readings from source at any time:
python3 scripts/build_normals.py # pulls the histories, rewrites js/normals.js python3 scripts/make_csvs.py # re-exports the CSVs on this page python3 scripts/fetch_live.py # today's readings, rewrites data/live.json + data/hydro.json (a GitHub Action runs this daily)
All of it is public, US-government or utility-published data. This project only collates it. Check the primary sources before using any number for anything that matters.