Bulk data for modelers
A water division's record as files: daily streamflow, diversion and release
totals, reservoir measurements, decreed rights, the call record and monitoring
wells. Every table ships as Parquet. The smaller tables also ship as a single CSV,
and the two daily tables as one gzipped CSV per water district. RiverWare users get a
ready-made control-file DMI. manifest.json
lists every file with its row count and SHA-256 checksum. README.md is the data
dictionary.
These are public DWR and USGS records. The notes under each release list every change made to them. Nothing is gap-filled, interpolated or converted.
Water Division 1
Built 2026-10-27 16:07 (Mountain) ·
water districts 1, 2, 3, 4, 5, 6, 7, 8, 9, 23, 48, 49, 64, 65, 76, 80 ·
HydroBase snapshot HydroBase_CO_20260707 ·
323.8 MB in 62 files
manifest.json · README.md (data dictionary)
| Table | What it holds | Rows | Span | Download |
|---|---|---|---|---|
gages |
Every stream gage with a daily record in the division, both sources. | 1,100 | — | parquet (67.3 kB) · csv (123.8 kB) |
streamflow_daily |
Daily mean flow, one row per gage per day. | 7,736,540 | 1881–2026 | parquet (28.8 MB) |
structures |
Every structure DWR lists in the division. | 59,685 | — | parquet (2.1 MB) · csv (5.5 MB) |
diversions_daily |
Daily diversion and release totals per structure. | 9,591,216 | 1908–2026 | parquet (34.2 MB) |
reservoir_storage |
Reservoir measurements DWR holds (storage, fill, release, evaporation). | 554,787 | 1919–2025 | parquet (3.5 MB) · csv (25.9 MB) |
reservoirs |
Reclamation reservoirs in the basin and the daily series each publishes. | 0 | — | parquet (4.2 kB) · csv (101 Bytes) |
reservoir_daily |
Reclamation's daily reservoir record: storage, elevation, release, inflow, evaporation. | 0 | — | parquet (3.0 kB) · csv (39 Bytes) |
area_capacity |
Published elevation-area-capacity tables (sedimentation surveys). | 0 | — | parquet (3.9 kB) · csv (72 Bytes) |
water_rights |
Every decreed right, net amounts and priority. | 57,024 | — | parquet (1.4 MB) · csv (6.9 MB) |
calls |
The division's administrative call record. | 11,892 | — | parquet (348.7 kB) · csv (2.2 MB) |
streams |
DWR's stream network: each stream, the stream it joins and the mile where it joins. | 1,151 | — | parquet (61.0 kB) · csv (150.5 kB) |
network |
Every structure and gage placed on that network, linked to the next node downstream. | 9,298 | — | parquet (452.2 kB) · csv (1.8 MB) |
wells |
DWR monitoring wells. | 23,278 | — | parquet (976.0 kB) · csv (1.6 MB) |
well_levels |
Water-level measurements for those wells. | 693,332 | 1882–2026 | parquet (5.7 MB) · csv (25.0 MB) |
documents |
The documents and datasets a RiverWare build of this basin rests on, with link status. | 0 | — | parquet (4.7 kB) · csv (82 Bytes) |
RiverWare
riverware.zip
(19.8 MB, 5,237 series):
a control-file DMI with README.txt. There is one data file per gage, one per
structure's daily diversion (DWR's Total Diversion; release records are in the tables, not
the zip), and one per Reclamation reservoir series, plus two-column elevation-volume and
elevation-area tables where a survey is published. Each value is stamped 24:00
at the end of its day, with NaN for days the source did not record. The object and slot names in control.ctl
are placeholders for you to rename to your model's. network.csv is in the
zip too. It lists every structure, gage and confluence on DWR's stream network, each
linked to the next node downstream.
streamflow_daily_wide.csv (91.3 MB): one row per day and one column per gage, sized for a spreadsheet or TSTool.
Daily tables as gzipped CSV, one file per water district
streamflow_daily/wd01.csv.gz— 425,607 rows, 1.8 MBstreamflow_daily/wd02.csv.gz— 756,864 rows, 3.1 MBstreamflow_daily/wd03.csv.gz— 784,636 rows, 2.9 MBstreamflow_daily/wd04.csv.gz— 891,560 rows, 3.3 MBstreamflow_daily/wd05.csv.gz— 585,886 rows, 2.3 MBstreamflow_daily/wd06.csv.gz— 643,564 rows, 2.4 MBstreamflow_daily/wd07.csv.gz— 732,643 rows, 2.8 MBstreamflow_daily/wd08.csv.gz— 847,378 rows, 3.3 MBstreamflow_daily/wd09.csv.gz— 262,918 rows, 997.7 kBstreamflow_daily/wd23.csv.gz— 422,319 rows, 1.6 MBstreamflow_daily/wd48.csv.gz— 185,577 rows, 599.4 kBstreamflow_daily/wd49.csv.gz— 170,792 rows, 571.8 kBstreamflow_daily/wd64.csv.gz— 430,476 rows, 1.8 MBstreamflow_daily/wd65.csv.gz— 203,670 rows, 702.4 kBstreamflow_daily/wd76.csv.gz— 69,760 rows, 213.5 kBstreamflow_daily/wd80.csv.gz— 322,890 rows, 1.2 MBdiversions_daily/wd01.csv.gz— 1,003,746 rows, 4.3 MBdiversions_daily/wd02.csv.gz— 1,480,359 rows, 6.1 MBdiversions_daily/wd03.csv.gz— 1,275,705 rows, 4.5 MBdiversions_daily/wd04.csv.gz— 565,339 rows, 2.3 MBdiversions_daily/wd05.csv.gz— 606,483 rows, 2.2 MBdiversions_daily/wd06.csv.gz— 644,452 rows, 2.5 MBdiversions_daily/wd07.csv.gz— 919,469 rows, 3.6 MBdiversions_daily/wd08.csv.gz— 831,824 rows, 3.0 MBdiversions_daily/wd09.csv.gz— 203,422 rows, 684.4 kBdiversions_daily/wd23.csv.gz— 650,519 rows, 2.1 MBdiversions_daily/wd48.csv.gz— 151,654 rows, 619.2 kBdiversions_daily/wd49.csv.gz— 13,213 rows, 43.9 kBdiversions_daily/wd64.csv.gz— 836,843 rows, 3.3 MBdiversions_daily/wd65.csv.gz— 115,037 rows, 423.9 kBdiversions_daily/wd76.csv.gz— 4,439 rows, 21.3 kBdiversions_daily/wd80.csv.gz— 288,712 rows, 869.5 kB
What was changed from the published record
- DWR publishes -999 as 'no data' with no flag. This release drops those days; gages.sentinel_days_dropped counts them. A missing day is missing, never zero.
- DWR pre-stamps the rest of the water year with 0.0 diversion rows. Rows dated after the build are dropped.
- diversions_daily holds DWR's 'Total (Diversion)' and 'Total (Release)' rollups only. The per-water-class rows decompose those totals and are not included.
- Diversion records publish roughly a year in arrears. A recent gap is usually DWR's schedule, not a structure that stopped.
- net_apex_* amounts are alternate points of diversion or exchanges of the same water. Adding them to net_absolute double-counts.
- A DWR gage and the USGS gage it mirrors are both shipped under their own ids; gages.same_site_as pairs them. Do not add them together.
- Identifiers are text. Read site_id, usgs_site_id and wdid as strings: a CSV reader that guesses numbers turns USGS 09361500 into 9361500 and WDID 0700553 into 700553. The Parquet files already carry them as text.
- USGS's own estimated values are kept as USGS publishes them and flagged in qualifier (e = estimated; also ice, dry, lessthan and others).
- Not in this release, and not found in a public machine-readable form: NIIP and San Juan-Chama Project diversion records, CRMMS/24-Month Study model inputs, and published area-capacity tables for reservoirs other than those in area_capacity.
- Nothing is gap-filled, interpolated or unit-converted. Values are as the source published them, minus the removals above.
- network.stream_mile is DWR's stream mile, counted UPSTREAM from the mouth (or from the state line). A gage whose mile is 'estimated' borrowed it from the nearest structure on the stream its name names, placement_km away; gages further than 3 km from any such structure are left unplaced rather than guessed.
- Diversions, rights, calls, structures and the stream network are Colorado's (DWR). Streamflow also carries the USGS gages of the San Juan basin in New Mexico, Utah and Arizona (Archuleta, Farmington, Shiprock, Four Corners, Bluff and others). Those are on DWR's network only where DWR's own stream miles reach them: the San Juan's miles run through New Mexico, so Archuleta and Farmington are placed; every other river's network stops at the state line, where DWR counts everything below it as mile 0 (network.tie_order marks those).
- These are public DWR and USGS records assembled by Hydrohistorian. DWR's HydroBase and USGS NWIS remain the authority.
- 629,227 timestamp(s) in 215 source file(s) were within an hour of midnight rather than on it (a daylight-time midnight stored in standard time) and were taken as the day of the nearest midnight.
Water Division 7
Built 2026-10-25 21:53 (Mountain) ·
water districts 29, 30, 31, 32, 33, 34, 69, 71, 77, 78 ·
HydroBase snapshot HydroBase_CO_20260928 ·
154.5 MB in 52 files
manifest.json · README.md (data dictionary)
| Table | What it holds | Rows | Span | Download |
|---|---|---|---|---|
gages |
Every stream gage with a daily record in the division, both sources. | 305 | — | parquet (25.3 kB) · csv (38.2 kB) |
streamflow_daily |
Daily mean flow, one row per gage per day. | 3,081,828 | 1895–2026 | parquet (11.4 MB) |
structures |
Every structure DWR lists in the division. | 8,294 | — | parquet (364.3 kB) · csv (830.9 kB) |
diversions_daily |
Daily diversion and release totals per structure. | 7,608,262 | 1925–2025 | parquet (19.6 MB) |
reservoir_storage |
Reservoir measurements DWR holds (storage, fill, release, evaporation). | 58,301 | 1928–2025 | parquet (442.2 kB) · csv (2.5 MB) |
reservoirs |
Reclamation reservoirs in the basin and the daily series each publishes. | 6 | — | parquet (6.0 kB) · csv (1.0 kB) |
reservoir_daily |
Reclamation's daily reservoir record: storage, elevation, release, inflow, evaporation. | 697,254 | 1941–2026 | parquet (4.5 MB) · csv (39.6 MB) |
area_capacity |
Published elevation-area-capacity tables. This release: Navajo Reservoir (2019 survey); none is published machine-readably for the others. | 385 | — | parquet (20.6 kB) · csv (49.4 kB) |
water_rights |
Every decreed right, net amounts and priority. | 7,972 | — | parquet (231.5 kB) · csv (856.5 kB) |
calls |
The division's administrative call record. | 2,054 | — | parquet (66.9 kB) · csv (283.5 kB) |
streams |
DWR's stream network: each stream, the stream it joins and the mile where it joins. | 629 | — | parquet (34.2 kB) · csv (67.4 kB) |
network |
Every structure and gage placed on that network, linked to the next node downstream. | 5,619 | — | parquet (256.3 kB) · csv (880.4 kB) |
wells |
DWR monitoring wells. | 444 | — | parquet (24.8 kB) · csv (30.5 kB) |
well_levels |
Water-level measurements for those wells. | 1,018 | 1944–2026 | parquet (19.8 kB) · csv (30.4 kB) |
documents |
The documents and datasets a RiverWare build of this basin rests on, with link status. | 83 | — | parquet (16.8 kB) · csv (22.3 kB) |
RiverWare
riverware.zip
(9.2 MB, 2,547 series):
a control-file DMI with README.txt. There is one data file per gage, one per
structure's daily diversion (DWR's Total Diversion; release records are in the tables, not
the zip), and one per Reclamation reservoir series, plus two-column elevation-volume and
elevation-area tables where a survey is published. Each value is stamped 24:00
at the end of its day, with NaN for days the source did not record. The object and slot names in control.ctl
are placeholders for you to rename to your model's. network.csv is in the
zip too. It lists every structure, gage and confluence on DWR's stream network, each
linked to the next node downstream.
streamflow_daily_wide.csv (28.3 MB): one row per day and one column per gage, sized for a spreadsheet or TSTool.
area_capacity_agreement.csv: how far Reclamation's daily storage sits from the published area-capacity table at the same daily elevation, water year by water year. Check it before building a reservoir on the table and calibrating it to the daily record.
Daily tables as gzipped CSV, one file per water district
streamflow_daily/wd29.csv.gz— 463,097 rows, 1.8 MBstreamflow_daily/wd30.csv.gz— 649,134 rows, 2.6 MBstreamflow_daily/wd31.csv.gz— 234,633 rows, 942.0 kBstreamflow_daily/wd32.csv.gz— 217,609 rows, 834.6 kBstreamflow_daily/wd33.csv.gz— 406,459 rows, 1.5 MBstreamflow_daily/wd34.csv.gz— 197,699 rows, 761.3 kBstreamflow_daily/wd69.csv.gz— 24,562 rows, 86.2 kBstreamflow_daily/wd71.csv.gz— 228,999 rows, 879.0 kBstreamflow_daily/wd77.csv.gz— 231,167 rows, 815.0 kBstreamflow_daily/wd78.csv.gz— 110,427 rows, 427.6 kBstreamflow_daily/outside_colorado.csv.gz— 318,042 rows, 1.2 MBdiversions_daily/wd29.csv.gz— 953,916 rows, 2.8 MBdiversions_daily/wd30.csv.gz— 2,524,436 rows, 7.4 MBdiversions_daily/wd31.csv.gz— 881,845 rows, 2.7 MBdiversions_daily/wd32.csv.gz— 991,963 rows, 3.0 MBdiversions_daily/wd33.csv.gz— 411,397 rows, 1.4 MBdiversions_daily/wd34.csv.gz— 605,700 rows, 1.8 MBdiversions_daily/wd69.csv.gz— 57,261 rows, 166.4 kBdiversions_daily/wd71.csv.gz— 382,381 rows, 1.2 MBdiversions_daily/wd77.csv.gz— 379,020 rows, 1.1 MBdiversions_daily/wd78.csv.gz— 420,343 rows, 1.3 MB
Documents for a model build
The 83 documents and datasets a RiverWare build of this basin rests on, each served by its publisher. Each was opened and checked against its title when it was added; a weekly check re-tests the links, and anything not answering normally is marked with the date of that check. documents.csv has them all.
CDSS/StateMod (12)
- San Juan/Dolores StateMod dataset sj2015 (modified) — CWCB/DWR (CDSS), 2016 (repackaged 2021), ZIP (9.6 MB). Colorado-side network, demands, rights; contains sj2015x.xbm baseflows and sj2015.res content-area-seepage curves (McPhee, Vallecito, Lemon, Jackson Gulch, Ridges Basin)
- San Juan/Dolores StateCU dataset sj2015 — CWCB/DWR (CDSS), 2016, ZIP (9.2 MB). irrigation CU/IWR inputs behind SJBHM depletions
- Surface Water (StateMod) modeling data page — CWCB/DWR (CDSS), current, HTML. landing page for dataset updates/versions (refused automated check, 2026-10-26)
- San Juan / Dolores River Basin Water Resources Planning Model User's Manual — CWCB/DWR, 2016, PDF (194 pp). node-by-node documentation of the StateMod dataset the SJBHM consumes
- CRWAS Phase I San Juan and Dolores Basins - StateMod Model Brief — CWCB, 2009, PDF (20 pp). short orientation to the SJ StateMod model structure
- StateMod software page — CWCB/DWR (CDSS), current, HTML. executable download to rerun the natural-flow/baseflow model (refused automated check, 2026-10-26)
- StateMod Documentation (user manual) — OpenCDSS, current, HTML. file formats (.xbm, .res, .rsp) needed to parse SJ dataset
- TSTool User Documentation — OpenCDSS, current, HTML. command reference for input-processing workflows
- TSTool WriteRiverWare command — OpenCDSS, current, HTML. writes RiverWare slot/RDF files for DMI import
- TSTool RiverWare datastore reference — OpenCDSS, current, HTML. direct datastore access to RiverWare files
- HydroBase software/download page — CWCB/DWR (CDSS), current, HTML. local HydroBase snapshots for diversion/gage/right records (refused automated check, 2026-10-26)
- CDSS REST web services help — Colorado DWR, current, HTML. scripted pulls of Div 7 diversions, gages, calls
CO DWR Division 7 (4)
- Division 7 Office page — Colorado DWR, current, HTML. links to calls, La Plata compact accounting, Vallecito ops (refused automated check, 2026-10-26)
- Active administrative calls - Division 7 — Colorado DWR, current, HTML. call regime for validating priority logic
- 2026 La Plata River Compact Accounting (provisional, published sheet) — Colorado DWR Div 7, 2026, HTML (Google Sheet). compact delivery accounting at state line
- Vallecito Reservoir Operations (published sheet) — Colorado DWR Div 7, current, HTML (Google Sheet). Vallecito storage/release accounting
Compacts & law (11)
- Colorado River Compact (1922) — Reclamation (certified copy), 1922, PDF (13 pp). Lee Ferry obligation framing Upper Basin depletions
- Upper Colorado River Basin Compact (1948) — Reclamation, 1948, PDF (12 pp). state apportionments; Art. X (La Plata) and Art. XIV (San Juan CO/NM use accounting)
- La Plata River Compact (1922) — NM Office of the State Engineer, 1922, PDF (3 pp). state-line delivery rule for La Plata reach (certificate chain incomplete (opens in a browser), 2026-10-26)
- Animas-La Plata Project Compact (1969) — NM Office of the State Engineer, 1969, PDF (1 p). ALP storage/diversion priority terms (certificate chain incomplete (opens in a browser), 2026-10-26)
- Colorado DWR Interstate Compacts page — Colorado DWR, current, HTML. Colorado's official compact index (refused automated check, 2026-10-26)
- Colorado Ute Indian Water Rights Settlement Act of 1988 (Pub. L. 100-585) — Congress (congress.gov), 1988, PDF (7 pp). statutory text
- Consolidated Appropriations Act 2001 (Pub. L. 106-554), incl. Colorado Ute Settlement Act Amendments of 2000 (App. D, Title III, 114 Stat. 2763A-258ff) — Congress (congress.gov), 2000, PDF (712 pp). enacted 2000 amendments text
- Omnibus Public Land Management Act of 2009 (Pub. L. 111-11), Title X Part III - Navajo Nation water rights — Congress (congress.gov), 2009, PDF (466 pp). statutory text of Navajo San Juan (NM) settlement
- San Juan River Basin in New Mexico Navajo Nation Water Rights Settlement Agreement — Reclamation, 2010, PDF (105 pp). agreement text
- NM OSE - San Juan Basin/Navajo Nation Settlement documents page — NM Office of the State Engineer, current, HTML. official index of agreement, decrees, quantification analysis (certificate chain incomplete (opens in a browser), 2026-10-26)
- Jicarilla Apache Tribe Water Rights Settlement Act (Pub. L. 102-441, 1992) — congress.gov, 1992, PDF (6 pp). statutory text
Forecasts & climate (6)
- CBRFC Water Supply Publication page — NOAA NWS CBRFC, current, HTML. entry to official seasonal volume forecasts (refused automated check, 2026-10-26)
- CBRFC Official Forecast List (area selector incl. San Juan) — NOAA NWS CBRFC, current, HTML. San Juan forecast points list
- CBRFC WY monthly outlooks CSV (Navajo (Mod), Vallecito, Durango) — NOAA NWS CBRFC, 2026, CSV. machine-readable monthly unregulated inflow forecasts (refused automated check, 2026-10-26)
- NWCC Report Generator — USDA NRCS NWCC, current, HTML. SNOTEL SWE/precip downloads
- AWDB REST API (Swagger) — USDA NRCS NWCC, current, HTML (API docs). scripted SNOTEL pulls
- Colorado Dust-on-Snow Program (CODOS) — Center for Snow and Avalanche Studies, current, HTML. dust-event updates affecting melt timing
Reclamation (20)
- Record of Decision - Navajo Reservoir Operations, Navajo Unit — Reclamation, 2006, PDF (13 pp, scanned). binding decision adopting Navajo operations to implement the flow recommendations
- Navajo Reservoir Operations FEIS Vol.1 Ch.2 Proposed Action and Alternatives — Reclamation, 2006, PDF (35 pp). alternatives' release rules and modeled assumptions
- Navajo Reservoir Operations FEIS Vol.2 Appendix A (Flow Recommendations exec. summary) — Reclamation, 2006, PDF (11 pp). flow-rec summary as adopted in the EIS
- Navajo Reservoir water operations page — Reclamation, Upper Colorado Basin Region, current, HTML. links to key gages, forecasts, ROD, notices
- Navajo Dam Technical Working Group - meeting minutes/presentations archive (2000-2024) — Reclamation WCAO, 2000-2024, HTML index of PDFs. how operations actually ran each year
- Navajo Reservoir Coordination Meeting summary, Aug 20 2024 — Reclamation WCAO, 2024, PDF (6 pp). latest posted minutes
- Navajo Unit Operations Coordination Meeting presentation, Aug 20 2024 — Reclamation WCAO, 2024, PDF (60 pp). release schedules, forecasts, storage projections
- HydroData - Navajo Reservoir dashboard — Reclamation, Upper Colorado Basin Region, current, HTML (data). historical inflow/release/storage time series
- HydroData reservoir site map (incl. Vallecito, Lemon, McPhee, Lake Nighthorse, Jackson Gulch) — Reclamation, Upper Colorado Basin Region, current, HTML (map). entry to storage/release series for all SJ Reclamation reservoirs
- 24-Month Study index (Upper Colorado Basin Region) — Reclamation, Upper Colorado Basin Region, current, HTML. monthly Navajo/Powell projections for operations-mode runs
- September 2026 Most Probable 24-Month Study (7 maf) — Reclamation, Upper Colorado Basin Region, 2026, PDF (22 pp). current official Navajo projection
- Annual Operating Plan for Colorado River Reservoirs 2025 — Reclamation, 2024, PDF (41 pp). the 2025 operating year's plan, incl. Navajo (superseded by 2026; kept for the record)
- Navajo Reservoir 2019 Area and Capacity Tables — Reclamation TSC, 2021, PDF (234 pp). elevation-area-volume table for the Navajo reservoir object
- Natural Flow and Salt Data - current (1906-2020) — Reclamation, Lower Colorado Basin Region, 2022, HTML. official natural flows incl. San Juan nr Archuleta and nr Bluff
- NaturalFlows1906-2020_20221215.xlsx — Reclamation, Lower Colorado Basin Region, 2022, XLSX. natural-flow boundary/check series at Archuleta and Bluff
- Animas-La Plata Project (Upper Colorado Basin Region) - documents page — Reclamation, Upper Colorado Basin Region, current, HTML. ALP contracts, O&M agreement, Nighthorse docs
- Record of Decision - Animas-La Plata Project / Colorado Ute Settlement FSEIS — Reclamation, 2000, PDF (29 pp). Reclamation's ALP decision; operating constraints as stated in it
- Dolores Project facility data — Reclamation, current, HTML. McPhee/Dolores project operations overview
- McPhee Dam facility data — Reclamation, current, HTML. McPhee capacities/dam data
- Annual Operating Plan for Colorado River Reservoirs 2026 — Reclamation, 2025, PDF (43 pp). the current operating year's plan, incl. Navajo
RiverWare (6)
- RiverWare Technical Documentation v8.0 - Data Management Interface (DMI) — CADSWES / Univ. of Colorado, v8.0, PDF (128 pp). control-file and database (Excel) DMI setup (v8.0 documentation; current RiverWare is 9.x, whose help is at riverware.org/HelpSystem)
- Control File-executable DMI (HTML) — CADSWES, v8.0, HTML. control-file syntax mapping object.slots to files (v8.0 documentation; current RiverWare is 9.x, whose help is at riverware.org/HelpSystem)
- Database DMI incl. Excel datasets (HTML) — CADSWES, v8.0, HTML. Excel DMI configuration for workbook-driven inputs (v8.0 documentation; current RiverWare is 9.x, whose help is at riverware.org/HelpSystem)
- RiverWare Policy Language (RPL) — CADSWES, v8.0, PDF (320 pp). ruleset language for Navajo operating/shortage-sharing rules; RPL units (v8.0 documentation; current RiverWare is 9.x, whose help is at riverware.org/HelpSystem)
- Objects and Methods — CADSWES, v8.0, PDF (1,084 pp). reservoir/reach/water-user object and method reference (v8.0 documentation; current RiverWare is 9.x, whose help is at riverware.org/HelpSystem)
- User Interface - Units (unit schemes, units list) — CADSWES, v8.0, HTML. units list/conversion factors and display unit schemes (v8.0 documentation; current RiverWare is 9.x, whose help is at riverware.org/HelpSystem)
SJRIP (24)
- Flow Recommendations for the San Juan River (Holden, ed.) — SJRIP / USFWS, 1999, PDF (343 pp). flow targets (magnitude/duration/frequency) the model is scored against
- Revised Navajo Dam operating procedures for the 1999 Flow Recommendations (Decision Tree) — SJRIP, 2018, PDF (55 pp). decision-tree release logic to encode in RPL
- Revised Navajo Dam operating procedures, amended Aug 6 2024 — SJRIP, 2024, PDF (53 pp). current operative version of the decision tree
- Flow Recommendations program-guidance page — SJRIP, current, HTML. canonical index of flow-rec versions
- San Juan Basin Hydrology Model Documentation — Reclamation WCAO + Precision Water Resources Engineering, 2018, PDF (80 pp). SJBHM architecture: ET, StateMod natural flow, RiverWare simulation, WY1929-2013
- SJBHM Appendix F - Historic model calculated local inflow and validation — Reclamation/PWRE, 2018, PDF (4 pp). local-inflow derivation and validation method
- SJBHM Appendix G - SJRIP RiverWare model network schematic — Reclamation/PWRE, 2018, PDF (1 p, image). object network to replicate
- SJBHM Appendix I - SJRIP RiverWare Model User's Guide — Reclamation/PWRE, 2018, PDF (3 pp). run procedure for the RiverWare model
- SJBHM Appendix J - Current State of SJRIP RiverWare Model (Nov 2018) — Reclamation/PWRE, 2018, PDF (223 pp). object list, initialization and operating rulesets in detail
- SJBHM Appendix L.2 - result workbooks (Nov 2018) — Reclamation/PWRE, 2018, XLSX (10 MB). known-answer outputs to validate a rebuild against
- SJBHM Appendix H - Recommendations for San Juan River Operations 2017-2020 (shortage sharing) — Endorsing parties (San Juan water users), to Reclamation and the NM State Engineer, 2016, PDF (10 pp). shortage-sharing rules for Navajo supply
- SJBHM Maintenance Release Modeling — Reclamation WCAO / PWRE, 2020, PDF (11 pp). maintenance-release scenarios and triggers as modeled
- SJRIP Climate Change Study — Reclamation/PWRE, 2020, PDF (46 pp). perturbed-hydrology inputs/method for SJBHM
- FY2021 Optimization and Sensitivity Analysis Modeling Exercises — Reclamation/PWRE, 2022, PDF (83 pp). most recent documented SJBHM application/sensitivity
- Instream Flow Identification & Protection technical reports index — SJRIP, current, HTML. index of all SJBHM reports/appendices
- FY2027 Approved Annual Work Plan — SJRIP, 2026, PDF (282 pp). current hydrology-modeling scopes of work and budget
- Work Plan Documents index (FY1992-FY2027) — SJRIP, current, HTML. history of modeling SOWs
- Hydrology Committee meeting summaries (2000-2008) — SJRIP, 2000-2008, HTML index of PDFs. origin of modeling decisions/assumptions
- SJBHM Appendix A - USFWS letter on the SJBHM (May 2008) — USFWS New Mexico Ecological Services, 2008, PDF (3 pp). the program's framing of the hydrology model
- SJBHM Appendix B - San Juan/Dolores Water Resources Planning Model User's Manual (Oct 2009) — CWCB/DWR, 2009, PDF (194 pp). the StateMod model version the SJBHM draws on
- SJBHM Appendix C - Summary of San Juan StateMod output used, by scenario — Reclamation / PWRE, 2018, PDF (4 pp). which StateMod outputs feed RiverWare, per scenario
- SJBHM Appendix D - model link/flow diagram — Reclamation / PWRE, 2018, PDF (1 p). inflow, supply and return-flow links between model nodes
- SJBHM Appendix E - San Juan StateMod output used for SJBHM reporting — Reclamation / PWRE, 2018, PDF (7 pp). depletion-reporting series taken from StateMod
- SJBHM Appendix K - progress reports and changelogs — Reclamation / PWRE, 2018, PDF (4 pp). what changed between model versions
What was changed from the published record
- DWR publishes -999 as 'no data' with no flag. This release drops those days; gages.sentinel_days_dropped counts them. A missing day is missing, never zero.
- DWR pre-stamps the rest of the water year with 0.0 diversion rows. Rows dated after the build are dropped.
- diversions_daily holds DWR's 'Total (Diversion)' and 'Total (Release)' rollups only. The per-water-class rows decompose those totals and are not included.
- Diversion records publish roughly a year in arrears. A recent gap is usually DWR's schedule, not a structure that stopped.
- net_apex_* amounts are alternate points of diversion or exchanges of the same water. Adding them to net_absolute double-counts.
- A DWR gage and the USGS gage it mirrors are both shipped under their own ids; gages.same_site_as pairs them. Do not add them together.
- Identifiers are text. Read site_id, usgs_site_id and wdid as strings: a CSV reader that guesses numbers turns USGS 09361500 into 9361500 and WDID 0700553 into 700553. The Parquet files already carry them as text.
- USGS's own estimated values are kept as USGS publishes them and flagged in qualifier (e = estimated; also ice, dry, lessthan and others).
- Not in this release, and not found in a public machine-readable form: NIIP and San Juan-Chama Project diversion records, CRMMS/24-Month Study model inputs, and published area-capacity tables for reservoirs other than those in area_capacity.
- Nothing is gap-filled, interpolated or unit-converted. Values are as the source published them, minus the removals above.
- network.stream_mile is DWR's stream mile, counted UPSTREAM from the mouth (or from the state line). A gage whose mile is 'estimated' borrowed it from the nearest structure on the stream its name names, placement_km away; gages further than 3 km from any such structure are left unplaced rather than guessed.
- Diversions, rights, calls, structures and the stream network are Colorado's (DWR). Streamflow also carries the USGS gages of the San Juan basin in New Mexico, Utah and Arizona (Archuleta, Farmington, Shiprock, Four Corners, Bluff and others). Those are on DWR's network only where DWR's own stream miles reach them: the San Juan's miles run through New Mexico, so Archuleta and Farmington are placed; every other river's network stops at the state line, where DWR counts everything below it as mile 0 (network.tie_order marks those).
- These are public DWR and USGS records assembled by Hydrohistorian. DWR's HydroBase and USGS NWIS remain the authority.
- Navajo Reservoir: the 2019 area-capacity table is on Reclamation Project Vertical Datum (RPVD), 2.97 ft below NAVD88. Reclamation's daily storage changes tables at the start of WY2022. From then on it equals this table minus the table's own capacity at 5,775 ft (9,493 af) on every day: storage is counted above 5,775 ft. Before it, each water year's median difference from this table at the same elevation runs from +7,540 to +45,818 af (median +41,071), varying with pool level: storage was computed from earlier tables. A model built on this table and calibrated to storage from before WY2022 mixes tables. area_capacity_agreement.csv has every water year.
Groundwater, statewide
Every DWR monitoring well and its water levels, the site's own water-table trends, the well-permit file (no owner details), DWR's geophysical-log well index with its formation picks, and the logs and well papers DWR holds for those wells (including digital LAS where DWR has it).
Built 2026-10-26 08:14 (Mountain) · 93.5 MB in 16 files · manifest.json · README.md (data dictionary)
| Table | What it holds | Rows | Span | Download |
|---|---|---|---|---|
gw_wells |
DWR monitoring wells statewide. | 34,337 | — | parquet (1.5 MB) · csv (3.4 MB) |
gw_levels |
Water-level measurements for those wells. | 1,015,652 | 1882–2026 | parquet (8.4 MB) · csv.gz (6.9 MB) |
gw_trends |
Per-well water-table trends (Mann-Kendall on annual means; >=20 readings over >=10 years). | 3,467 | — | parquet (58.2 kB) · csv (145.7 kB) |
gw_permits |
Colorado well permits (owner and contact fields are never fetched). | 599,044 | — | parquet (30.5 MB) · csv.gz (27.4 MB) |
gw_log_wells |
DWR's geophysical-log well index. | 6,106 | — | parquet (455.9 kB) · csv (1.7 MB) |
gw_picks |
Formation tops and bases picked from those logs. | 12,716 | — | parquet (202.0 kB) · csv (655.8 kB) |
gw_documents |
DWR documents for log wells and monitored wells: logs, LAS files and key permit papers. | 241,806 | — | parquet (5.6 MB) · csv.gz (3.1 MB) |
gw_digitized |
Curves digitized automatically from the mirrored log scans, one row per curve with its confidence gate; the LAS files are in the document store. Screening data: keep the scan. | 10,121 | — | parquet (326.5 kB) · csv (3.1 MB) |
What to know before using it
- DWR publishes -999 for 'no measurement'. gw_levels drops those values; a missing reading is missing, never zero.
- A permit receipt is an application, not a physical well: group by permit, and expect several receipts for one hole (replacements, changes) and receipts for wells never drilled.
- Permit yields and static levels are what the driller reported at completion. Pump-test yield is capped near the permitted rate and is not an aquifer test or a transmissivity.
- Aquifer names on permits and monitoring wells are labels as filed (about 82% of monitoring wells carry none; regime then falls back to the designated basin). Formation depths come from gw_picks (geophysical picks) -- cite which one you used.
- logType is free text with no published legend (about 70 spellings). curve_families decodes only spelled-out tokens; R, C, G, D, N and other single letters are left as filed.
- The geophysical-log network is a Denver Basin instrument: about 85% of log wells are in Division 1 and 15% in Division 2; elsewhere their absence is the fact.
- Water-table trends are computed on one datum per well (elevation or depth, whichever the well reports more); denver_basin, high_plains and other bedrock declines are storage loss, not a recharge signal.
- These are public DWR records assembled by Hydrohistorian. HydroBase and DWR's Laserfiche remain the authority; every document row carries DWR's own link.
- gw_digitized: 5,514 scan pages could not be digitized automatically (older hand-filled logs, rotated or unsupported layouts); the scans themselves are in gw_documents.
- The document mirror is still filling: 8,538 of 241,806 listed documents are held so far. Every row carries DWR's own link either way.
The well documents come from DWR's public archive and many carry owners' names. What we copy, and how to have a document removed.
Call truth table: Clear Creek (Division 1, District 7)
Built 2026-10-27 22:14 (Mountain) · data through 2026-10-17 · first recorded call on the stream 2004 · 22 usable seasons
The week-by-week controlling admin number on Clear Creek, the label the
call-forecast pilot is trained on and scored against. Derived from the same
call record as the Division 1 release, by the same rules the dossiers
use (curtailment.call_applies). Week 0 begins 04-01;
31 weeks a season. Paper water: a cutline of entitlements, not deliveries.
manifest.json · README.md (data dictionary) · call_truth_weekly.parquet · call_truth_weekly.csv · call_truth_daily.parquet · call_truth_daily.csv · bands.json
From an AI assistant (MCP)
This single file is an MCP server:
hydrohistorian_mcp.py.
It lets Claude or any other MCP client search these records, query them in SQL, walk DWR's
stream network downstream, list the documents, and export any result to CSV, Parquet or a
RiverWare series file. It runs on your own machine. The first time it uses a division, it
downloads that division's Parquet files and checks each one's checksum, then answers locally.
Queries can read the release and nothing else on your disk. Exports never overwrite a file
unless asked, and never write hidden files. With no network, the last download keeps working.
It needs uv.
For groundwater it does the routine work of a site assessment: an inventory of every permit,
monitoring well and log well around a point, written to a spreadsheet with a provenance sheet;
hydrographs with the site's trends; nearby geophysical logs with DWR's formation picks set
beside DWR's Denver Basin tool; cross-sections; and the logs themselves, as LAS where DWR has
the digital file. Scanned logs can be traced into LAS, by hand on one page or automatically
across the library (the gw_digitized table lists every traced curve with its
confidence verdict). The tracer's accuracy was
measured
against DWR's own digital logs (per curve class as a file:
digitizer-quality.json; summarized at
/digitized), and every traced file says it was digitized. From a gamma
curve it computes net sand per aquifer, with DWR's own pick beside it; that convention was
scored against DWR's picks too.
Download it, check it against the checksum below, and run your own copy:
curl -O https://hydrohistorian.com/static/data/mcp/hydrohistorian_mcp.py
shasum -a 256 hydrohistorian_mcp.py
claude mcp add hydrohistorian -- uv run "$PWD/hydrohistorian_mcp.py"
SHA-256 of the current file: 4bb295ea822806c184d2b542afa812674752452613f2236f4676c6195732a64e
Then ask, for example: "export the Animas at Durango daily flow since 1990 as a RiverWare file", or "which structures are between Vallecito and the state line, and what did they divert in 2002?" For groundwater: "inventory the wells within a mile of 39.509, -104.921 into a spreadsheet", or "what are the Denver Basin aquifer tops there, and do the nearby logs agree?"
Reading it
Parquet reads straight from its URL. Python (pandas or DuckDB):
import pandas as pd
base = "https://hydrohistorian.com/static/data/releases/div7/"
gages = pd.read_csv(base + "gages.csv", dtype={"site_id": str, "usgs_site_id": str})
flow = pd.read_parquet(base + "streamflow_daily.parquet")
animas = flow[(flow.source == "USGS") & (flow.site_id == "09361500")]
import duckdb
# Calendar-year acre-feet per structure (1 cfs-day = 1.9835 af). year() is the
# calendar year, not DWR's Nov-Oct irrigation year; unrecorded days add nothing;
# reservoir structures' storage diversions are included.
duckdb.sql("""
SELECT wdid, year(date) AS yr, sum(value) * 1.9835 AS af
FROM 'https://hydrohistorian.com/static/data/releases/div7/diversions_daily.parquet'
WHERE units = 'CFS' AND record = 'Diversion'
GROUP BY ALL ORDER BY wdid, yr""")
R:
library(arrow)
download.file("https://hydrohistorian.com/static/data/releases/div7/streamflow_daily.parquet",
"streamflow_daily.parquet", mode = "wb")
flow <- read_parquet("streamflow_daily.parquet")
A machine-readable list of every release is at
/static/data/releases/index.json.
Something wrong or missing for your model? Tell us. Per-structure and per-gage downloads remain on each dossier and gage page. How this is built.