{
  "schemaVersion": 2,
  "methodologyVersion": "monitoring-gap-v1",
  "assetId": "trout-stream-monitoring-gap-2026",
  "canonicalPath": "/research/trout-stream-monitoring-gap",
  "auditSemantics": {
    "auditAt": "2026-08-10T01:33:36.796Z",
    "captureMode": "normalized_legacy_official_capture",
    "captureLimitations": [
      "The schema-1 official USGS capture was normalized to the exact 400 configured gauges without a second provider request.",
      "Official time-series IDs and selected station metadata fields were not preserved by schema 1 and remain empty or null rather than being inferred.",
      "Availability and observation timestamps come from the dated official capture; no numeric observation value is published in the public export."
    ],
    "observationWindowStart": "2026-08-08T01:33:36.796Z",
    "observationWindowEnd": "2026-08-10T01:33:36.796Z",
    "current": "Newest eligible latest-continuous observation is no more than 24 hours old at auditAt.",
    "stale": "Newest eligible latest-continuous observation is older than 24 hours but no older than 48 hours.",
    "historical": "An instantaneous series exists, but its newest eligible snapshot observation is older than the fixed 48-hour classification window or unavailable.",
    "notFound": "The complete official metadata response contains no matching instantaneous series; this is not proof that another monitoring program lacks the signal."
  },
  "importantDefinitions": {
    "exact": "A versioned manual review records the configured station as the named report-reach control. It does not claim that one point represents the whole river.",
    "surrogate": "A versioned manual review records the station as upstream, downstream, basin, or otherwise reach-limited context.",
    "unreviewed": "A configured station exists but no validated manual reach review is recorded.",
    "unknown": "No structured station relationship has been established; this is not an ungauged claim.",
    "ungauged": "Reserved for a documented manual finding that no suitable structured station is attached; no route is auto-promoted to this state.",
    "sourceConflict": "Configured station and official source IDs are absent or do not form a single exact match.",
    "provisional": "Recent USGS observations may be provisional and revised after this frozen release.",
    "baselineMetadata": "The first compatible frozen capture establishes the stable station-metadata fingerprint."
  },
  "publication": {
    "title": "BlueStreamFly Trout-Stream Monitoring Gap",
    "canonicalUrl": "https://bluestreamfly.com/research/trout-stream-monitoring-gap",
    "datasetJsonUrl": "/data/research/trout-stream-monitoring-gap/monitoring-gap-v1.json",
    "datasetCsvUrl": "/data/research/trout-stream-monitoring-gap/monitoring-gap-v1.csv",
    "csvMetadataUrl": "/data/research/trout-stream-monitoring-gap/monitoring-gap-v1.csv-metadata.json",
    "manifestUrl": "/data/research/trout-stream-monitoring-gap/manifest.json",
    "dataDictionaryUrl": "/data/research/trout-stream-monitoring-gap/data-dictionary.json",
    "methodologyVersion": "monitoring-gap-v1",
    "auditAt": "2026-08-10T01:33:36.796Z",
    "observationWindow": {
      "start": "2026-08-08T01:33:36.796Z",
      "end": "2026-08-10T01:33:36.796Z"
    },
    "sourceIds": [
      "bsf-report-inventory",
      "usgs-water-data-api",
      "riverreports-reference"
    ],
    "sources": [
      {
        "id": "bsf-report-inventory",
        "label": "BlueStreamFly canonical report inventory and mapping reviews",
        "url": "https://bluestreamfly.com/source-standards",
        "rightsStatus": "first_party_owned",
        "reuse": "Citation and linking are welcome; contact BlueStreamFly before redistributing BlueStreamFly-owned route, review, or editorial fields."
      },
      {
        "id": "usgs-water-data-api",
        "label": "USGS Water Data OGC APIs",
        "url": "https://api.waterdata.usgs.gov/docs/ogcapi/",
        "rightsStatus": "public_domain",
        "reuse": "USGS-authored source data are generally public domain; retain source attribution and consult USGS policy for third-party exceptions."
      },
      {
        "id": "riverreports-reference",
        "label": "RiverReports source links",
        "url": "https://riverreports.com/",
        "rightsStatus": "link_only",
        "reuse": "Only outbound reference URLs and labels are retained; RiverReports observations, charts, site IDs, and derived values are excluded."
      }
    ],
    "rights": {
      "licenseId": "mixed-rights",
      "rightsStatus": "mixed",
      "summary": "USGS source data are public domain; BlueStreamFly route, review, and editorial fields remain first-party content; RiverReports material is link-only.",
      "reuseStatus": "source_specific",
      "reuse": "Reuse USGS fields under USGS policy. Cite and link to this release, and contact BlueStreamFly before redistributing the combined export or BlueStreamFly-owned fields."
    },
    "fieldDerivations": {
      "dataDictionaryUrl": "/data/research/trout-stream-monitoring-gap/data-dictionary.json",
      "registryPath": "csvColumns"
    },
    "citation": "BlueStreamFly Editorial Team. BlueStreamFly Trout-Stream Monitoring Gap, monitoring-gap-v1, audit 2026-08-10T01:33:36.796Z.",
    "correctionUrl": "https://bluestreamfly.com/contact"
  },
  "sourceRecords": [
    {
      "id": "bsf-report-inventory",
      "label": "BlueStreamFly canonical report inventory and mapping reviews",
      "url": "https://bluestreamfly.com/source-standards",
      "rightsStatus": "first_party_owned",
      "reuse": "Citation and linking are welcome; contact BlueStreamFly before redistributing BlueStreamFly-owned route, review, or editorial fields.",
      "use": "Route identity, configured mappings, and documented editorial reviews."
    },
    {
      "id": "usgs-water-data-api",
      "label": "USGS Water Data OGC APIs",
      "url": "https://api.waterdata.usgs.gov/docs/ogcapi/",
      "rightsStatus": "public_domain",
      "reuse": "USGS-authored source data are generally public domain; retain source attribution and consult USGS policy for third-party exceptions.",
      "use": "Official station metadata, instantaneous time-series availability, and frozen latest-continuous observation times evaluated at the audit cutoff."
    },
    {
      "id": "riverreports-reference",
      "label": "RiverReports source links",
      "url": "https://riverreports.com/",
      "rightsStatus": "link_only",
      "reuse": "Only outbound reference URLs and labels are retained; RiverReports observations, charts, site IDs, and derived values are excluded.",
      "use": "Reference URLs only; observations, chart images, site IDs, and derived values are excluded."
    }
  ],
  "parameterRegistry": {
    "discharge": [
      "00060"
    ],
    "stage": [
      "00065"
    ],
    "waterTemperature": [
      "00010",
      "00011"
    ],
    "turbidity": [
      "00070",
      "00075",
      "00076",
      "32265",
      "63675",
      "63676",
      "63677",
      "63678",
      "63679",
      "63680",
      "63681",
      "63682",
      "63683",
      "63684",
      "72188",
      "72208",
      "72209",
      "72213",
      "72337"
    ],
    "turbidityUnitRule": "Availability may be counted across the frozen codes, but numeric values are never compared or combined across units."
  },
  "csvColumns": [
    {
      "name": "route",
      "type": "string",
      "nullable": false,
      "description": "Canonical BlueStreamFly report route.",
      "sourceIds": [
        "bsf-report-inventory"
      ],
      "derivation": "Frozen from the canonical report registry.",
      "limitations": []
    },
    {
      "name": "riverName",
      "type": "string",
      "nullable": false,
      "description": "BlueStreamFly report water name.",
      "sourceIds": [
        "bsf-report-inventory"
      ],
      "derivation": "Frozen from the canonical report registry.",
      "limitations": []
    },
    {
      "name": "state",
      "type": "string",
      "nullable": false,
      "description": "Display state name.",
      "sourceIds": [
        "bsf-report-inventory"
      ],
      "derivation": "Frozen from the canonical report registry.",
      "limitations": []
    },
    {
      "name": "stateSlug",
      "type": "string",
      "nullable": false,
      "description": "Canonical state slug.",
      "sourceIds": [
        "bsf-report-inventory"
      ],
      "derivation": "Frozen from the canonical report registry.",
      "limitations": []
    },
    {
      "name": "region",
      "type": "string",
      "nullable": false,
      "description": "BlueStreamFly report region.",
      "sourceIds": [
        "bsf-report-inventory"
      ],
      "derivation": "Frozen from the canonical report registry.",
      "limitations": []
    },
    {
      "name": "fisheryType",
      "type": "enum",
      "nullable": true,
      "description": "Fishery profile category when one exists.",
      "sourceIds": [
        "bsf-report-inventory"
      ],
      "derivation": "Joined by canonical route to the fishability profile registry.",
      "limitations": [],
      "enum": [
        "trout",
        "mixed",
        "steelhead",
        "warmwater",
        "salmon"
      ]
    },
    {
      "name": "flowProvider",
      "type": "enum",
      "nullable": false,
      "description": "Configured website flow provider.",
      "sourceIds": [
        "bsf-report-inventory"
      ],
      "derivation": "Frozen from the report flow configuration.",
      "limitations": [],
      "enum": [
        "usgs",
        "riverreports",
        "none"
      ]
    },
    {
      "name": "mappingStatus",
      "type": "enum",
      "nullable": false,
      "description": "Reviewed relationship between report and configured station.",
      "sourceIds": [
        "bsf-report-inventory",
        "usgs-water-data-api"
      ],
      "derivation": "Manual statuses come only from the versioned review manifest; every other mapped route remains unreviewed and every unmapped route remains unknown.",
      "limitations": [],
      "enum": [
        "exact",
        "surrogate",
        "unreviewed",
        "ungauged",
        "unknown"
      ]
    },
    {
      "name": "mappingReviewStatus",
      "type": "enum",
      "nullable": false,
      "description": "Whether a human-readable manifest review supports the mapping status.",
      "sourceIds": [
        "bsf-report-inventory"
      ],
      "derivation": "Reviewed only when a validated mapping manifest entry exists.",
      "limitations": [],
      "enum": [
        "reviewed",
        "unreviewed"
      ]
    },
    {
      "name": "mappingRole",
      "type": "enum",
      "nullable": true,
      "description": "Reviewed geographic role of the station.",
      "sourceIds": [
        "bsf-report-inventory",
        "usgs-water-data-api"
      ],
      "derivation": "Copied from the validated review manifest.",
      "limitations": [],
      "enum": [
        "report_reach",
        "upstream_context",
        "downstream_context",
        "basin_context",
        "reference_only"
      ]
    },
    {
      "name": "mappingReason",
      "type": "string",
      "nullable": false,
      "description": "Public reason for the mapping qualification.",
      "sourceIds": [
        "bsf-report-inventory",
        "usgs-water-data-api"
      ],
      "derivation": "Uses the manual review reason when present; otherwise deterministic qualification language.",
      "limitations": []
    },
    {
      "name": "mappingReviewedAt",
      "type": "timestamp",
      "nullable": true,
      "description": "Date-time of the documented mapping review.",
      "sourceIds": [
        "bsf-report-inventory"
      ],
      "derivation": "Copied from the validated review manifest.",
      "limitations": []
    },
    {
      "name": "mappingReviewedBy",
      "type": "string",
      "nullable": true,
      "description": "Transparent organization reviewer.",
      "sourceIds": [
        "bsf-report-inventory"
      ],
      "derivation": "Must be BlueStreamFly Editorial Team.",
      "limitations": []
    },
    {
      "name": "mappingEvidenceUrls",
      "type": "string",
      "nullable": true,
      "description": "Pipe-delimited direct evidence URLs for a manual mapping review.",
      "sourceIds": [
        "bsf-report-inventory",
        "usgs-water-data-api"
      ],
      "derivation": "Copied from the validated review manifest.",
      "limitations": []
    },
    {
      "name": "reviewReasons",
      "type": "string",
      "nullable": true,
      "description": "Pipe-delimited deterministic review flags.",
      "sourceIds": [
        "bsf-report-inventory",
        "usgs-water-data-api"
      ],
      "derivation": "Generated from duplicate mapping, source-ID conflict, context wording, station-state/name mismatch, or excessive forecast-point distance.",
      "limitations": [
        "A review flag is not proof that a mapping is wrong."
      ]
    },
    {
      "name": "questionableMapping",
      "type": "boolean",
      "nullable": false,
      "description": "Whether unresolved deterministic review flags remain.",
      "sourceIds": [
        "bsf-report-inventory",
        "usgs-water-data-api"
      ],
      "derivation": "True only for unreviewed rows with one or more review flags.",
      "limitations": []
    },
    {
      "name": "sourceStatus",
      "type": "enum",
      "nullable": false,
      "description": "Structured source-documentation state.",
      "sourceIds": [
        "bsf-report-inventory",
        "usgs-water-data-api"
      ],
      "derivation": "Present requires exactly one official source ID matching the configured station; reference-only and missing apply to unmapped routes; conflict records mismatches.",
      "limitations": [],
      "enum": [
        "present",
        "reference_only",
        "missing",
        "conflict",
        "unknown"
      ]
    },
    {
      "name": "sourceStatusReason",
      "type": "string",
      "nullable": false,
      "description": "Plain-language explanation of the source-documentation state and any correction needed.",
      "sourceIds": [
        "bsf-report-inventory",
        "usgs-water-data-api"
      ],
      "derivation": "Generated from configuredSourceMatch, the configured station ID, and the hostname-validated official USGS source IDs.",
      "limitations": []
    },
    {
      "name": "configuredSourceMatch",
      "type": "enum",
      "nullable": false,
      "description": "Comparison between configured station and every official USGS flow-source ID.",
      "sourceIds": [
        "bsf-report-inventory",
        "usgs-water-data-api"
      ],
      "derivation": "Compares the configured ID with the hostname-validated union of all official USGS flow references.",
      "limitations": [],
      "enum": [
        "exact",
        "multiple",
        "absent",
        "not_applicable"
      ]
    },
    {
      "name": "officialSourceSiteNos",
      "type": "string",
      "nullable": true,
      "description": "Pipe-delimited official USGS station IDs found in all flow references.",
      "sourceIds": [
        "bsf-report-inventory",
        "usgs-water-data-api"
      ],
      "derivation": "Extracted only from usgs.gov hostnames.",
      "limitations": []
    },
    {
      "name": "referenceSourceLabel",
      "type": "string",
      "nullable": true,
      "description": "Preferred human-readable flow-reference label.",
      "sourceIds": [
        "bsf-report-inventory"
      ],
      "derivation": "Official USGS, then other official, then other non-RiverReports, then first reference.",
      "limitations": []
    },
    {
      "name": "referenceSourceUrl",
      "type": "string",
      "nullable": true,
      "description": "Preferred flow-reference URL.",
      "sourceIds": [
        "bsf-report-inventory"
      ],
      "derivation": "Reference links may include RiverReports, but never contribute observations to this export.",
      "limitations": []
    },
    {
      "name": "referenceSourceProvider",
      "type": "enum",
      "nullable": true,
      "description": "Provider class of the preferred reference.",
      "sourceIds": [
        "bsf-report-inventory"
      ],
      "derivation": "Classified from the exact URL hostname.",
      "limitations": [],
      "enum": [
        "usgs",
        "riverreports",
        "other_official",
        "other_third_party",
        "invalid"
      ]
    },
    {
      "name": "reportReviewedAt",
      "type": "timestamp",
      "nullable": false,
      "description": "Editorial review date on the report record.",
      "sourceIds": [
        "bsf-report-inventory"
      ],
      "derivation": "Frozen from report.lastReviewed.",
      "limitations": [
        "This is not the live data calculation time."
      ]
    },
    {
      "name": "usgsSiteNo",
      "type": "string",
      "nullable": true,
      "description": "Configured structured USGS station ID.",
      "sourceIds": [
        "bsf-report-inventory"
      ],
      "derivation": "Frozen from the report flow configuration.",
      "limitations": []
    },
    {
      "name": "officialStationName",
      "type": "string",
      "nullable": true,
      "description": "Official monitoring-location name.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Copied from the frozen USGS monitoring-location response.",
      "limitations": []
    },
    {
      "name": "officialStationUrl",
      "type": "string",
      "nullable": true,
      "description": "Canonical official station page.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Constructed only for a configured USGS station.",
      "limitations": []
    },
    {
      "name": "stationState",
      "type": "string",
      "nullable": true,
      "description": "Official station state.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Copied from official monitoring-location metadata.",
      "limitations": []
    },
    {
      "name": "stationDistanceToForecastPointMiles",
      "type": "number",
      "nullable": true,
      "description": "Great-circle distance between official station and the report weather point.",
      "sourceIds": [
        "bsf-report-inventory",
        "usgs-water-data-api"
      ],
      "derivation": "Calculated from official station coordinates and the internal report forecast point.",
      "limitations": [
        "This is not distance to an access point, surveyed reach, or private location."
      ],
      "units": "miles"
    },
    {
      "name": "duplicateGaugeMapping",
      "type": "boolean",
      "nullable": false,
      "description": "Whether more than one report uses the configured station.",
      "sourceIds": [
        "bsf-report-inventory"
      ],
      "derivation": "Counted from configured station IDs across all 459 routes.",
      "limitations": []
    },
    {
      "name": "duplicateGaugeRoutes",
      "type": "string",
      "nullable": true,
      "description": "Pipe-delimited routes sharing the configured station.",
      "sourceIds": [
        "bsf-report-inventory"
      ],
      "derivation": "Generated from the frozen canonical inventory.",
      "limitations": []
    },
    {
      "name": "metadataStatus",
      "type": "enum",
      "nullable": false,
      "description": "Station-metadata comparison state.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "First valid capture is baseline; later captures compare a stable field fingerprint.",
      "limitations": [],
      "enum": [
        "baseline",
        "unchanged",
        "revised",
        "missing",
        "unknown"
      ]
    },
    {
      "name": "metadataChangedFields",
      "type": "string",
      "nullable": true,
      "description": "Pipe-delimited stable station fields changed since the preceding compatible capture.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Field-level comparison excludes volatile observation timestamps.",
      "limitations": []
    },
    {
      "name": "stationStatus",
      "type": "enum",
      "nullable": false,
      "description": "Operational status of the configured station for audited signals.",
      "sourceIds": [
        "bsf-report-inventory",
        "usgs-water-data-api"
      ],
      "derivation": "Active when any audited signal is current or stale; not_recent when series exist but their newest eligible snapshot observation is older than the 48-hour classification window; seasonal/inactive require a manual review.",
      "limitations": [],
      "enum": [
        "active",
        "not_recent",
        "seasonal",
        "inactive",
        "missing",
        "unknown"
      ]
    },
    {
      "name": "reachStatus",
      "type": "enum",
      "nullable": false,
      "description": "Reach-review state independent from station activity.",
      "sourceIds": [
        "bsf-report-inventory",
        "usgs-water-data-api"
      ],
      "derivation": "Reviewed for manifest-backed mappings, questionable for unresolved flags, otherwise unreviewed.",
      "limitations": [],
      "enum": [
        "reviewed",
        "questionable",
        "unreviewed"
      ]
    },
    {
      "name": "dischargeStatus",
      "type": "enum",
      "nullable": false,
      "description": "Discharge availability at the fixed audit instant.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Derived from instantaneous USGS series metadata and the newest eligible latest-continuous observation captured before the fixed audit cutoff.",
      "limitations": [
        "Availability does not establish fishability or conditions throughout the report reach."
      ],
      "enum": [
        "current",
        "stale",
        "historical",
        "not_found",
        "unknown"
      ]
    },
    {
      "name": "dischargeObservedAt",
      "type": "timestamp",
      "nullable": true,
      "description": "Newest eligible discharge observation time in the frozen latest-continuous snapshot.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Maximum observation timestamp across matching instantaneous series at or before the fixed audit cutoff; age relative to that cutoff determines current, stale, or historical status.",
      "limitations": []
    },
    {
      "name": "dischargeSeriesEverExists",
      "type": "boolean",
      "nullable": true,
      "description": "Whether the official metadata catalog contains a matching discharge series.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "True when at least one matching instantaneous time-series metadata record exists; null when no configured station could be evaluated.",
      "limitations": []
    },
    {
      "name": "dischargeCodes",
      "type": "string",
      "nullable": true,
      "description": "Pipe-delimited USGS parameter codes used for discharge.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Distinct matching codes from the frozen time-series metadata response.",
      "limitations": [
        "Turbidity codes may use incompatible units."
      ]
    },
    {
      "name": "dischargeUnits",
      "type": "string",
      "nullable": true,
      "description": "Pipe-delimited units present for discharge.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Distinct metadata and latest-observation units; values are never combined across units.",
      "limitations": []
    },
    {
      "name": "dischargeMetadataEndAt",
      "type": "timestamp",
      "nullable": true,
      "description": "Newest metadata end_utc among matching discharge series.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Maximum time-series metadata end_utc value.",
      "limitations": [
        "USGS says metadata end_utc may update less frequently than observations; it is not labeled as the latest observation."
      ]
    },
    {
      "name": "stageStatus",
      "type": "enum",
      "nullable": false,
      "description": "Stage availability at the fixed audit instant.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Derived from instantaneous USGS series metadata and the newest eligible latest-continuous observation captured before the fixed audit cutoff.",
      "limitations": [
        "Availability does not establish fishability or conditions throughout the report reach."
      ],
      "enum": [
        "current",
        "stale",
        "historical",
        "not_found",
        "unknown"
      ]
    },
    {
      "name": "stageObservedAt",
      "type": "timestamp",
      "nullable": true,
      "description": "Newest eligible stage observation time in the frozen latest-continuous snapshot.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Maximum observation timestamp across matching instantaneous series at or before the fixed audit cutoff; age relative to that cutoff determines current, stale, or historical status.",
      "limitations": []
    },
    {
      "name": "stageSeriesEverExists",
      "type": "boolean",
      "nullable": true,
      "description": "Whether the official metadata catalog contains a matching stage series.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "True when at least one matching instantaneous time-series metadata record exists; null when no configured station could be evaluated.",
      "limitations": []
    },
    {
      "name": "stageCodes",
      "type": "string",
      "nullable": true,
      "description": "Pipe-delimited USGS parameter codes used for stage.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Distinct matching codes from the frozen time-series metadata response.",
      "limitations": [
        "Turbidity codes may use incompatible units."
      ]
    },
    {
      "name": "stageUnits",
      "type": "string",
      "nullable": true,
      "description": "Pipe-delimited units present for stage.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Distinct metadata and latest-observation units; values are never combined across units.",
      "limitations": []
    },
    {
      "name": "stageMetadataEndAt",
      "type": "timestamp",
      "nullable": true,
      "description": "Newest metadata end_utc among matching stage series.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Maximum time-series metadata end_utc value.",
      "limitations": [
        "USGS says metadata end_utc may update less frequently than observations; it is not labeled as the latest observation."
      ]
    },
    {
      "name": "waterTemperatureStatus",
      "type": "enum",
      "nullable": false,
      "description": "Water temperature availability at the fixed audit instant.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Derived from instantaneous USGS series metadata and the newest eligible latest-continuous observation captured before the fixed audit cutoff.",
      "limitations": [
        "Availability does not establish fishability or conditions throughout the report reach."
      ],
      "enum": [
        "current",
        "stale",
        "historical",
        "not_found",
        "unknown"
      ]
    },
    {
      "name": "waterTemperatureObservedAt",
      "type": "timestamp",
      "nullable": true,
      "description": "Newest eligible water temperature observation time in the frozen latest-continuous snapshot.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Maximum observation timestamp across matching instantaneous series at or before the fixed audit cutoff; age relative to that cutoff determines current, stale, or historical status.",
      "limitations": []
    },
    {
      "name": "waterTemperatureSeriesEverExists",
      "type": "boolean",
      "nullable": true,
      "description": "Whether the official metadata catalog contains a matching water temperature series.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "True when at least one matching instantaneous time-series metadata record exists; null when no configured station could be evaluated.",
      "limitations": []
    },
    {
      "name": "waterTemperatureCodes",
      "type": "string",
      "nullable": true,
      "description": "Pipe-delimited USGS parameter codes used for water temperature.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Distinct matching codes from the frozen time-series metadata response.",
      "limitations": [
        "Turbidity codes may use incompatible units."
      ]
    },
    {
      "name": "waterTemperatureUnits",
      "type": "string",
      "nullable": true,
      "description": "Pipe-delimited units present for water temperature.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Distinct metadata and latest-observation units; values are never combined across units.",
      "limitations": []
    },
    {
      "name": "waterTemperatureMetadataEndAt",
      "type": "timestamp",
      "nullable": true,
      "description": "Newest metadata end_utc among matching water temperature series.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Maximum time-series metadata end_utc value.",
      "limitations": [
        "USGS says metadata end_utc may update less frequently than observations; it is not labeled as the latest observation."
      ]
    },
    {
      "name": "turbidityStatus",
      "type": "enum",
      "nullable": false,
      "description": "Turbidity availability at the fixed audit instant.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Derived from instantaneous USGS series metadata and the newest eligible latest-continuous observation captured before the fixed audit cutoff.",
      "limitations": [
        "Availability does not establish fishability or conditions throughout the report reach."
      ],
      "enum": [
        "current",
        "stale",
        "historical",
        "not_found",
        "unknown"
      ]
    },
    {
      "name": "turbidityObservedAt",
      "type": "timestamp",
      "nullable": true,
      "description": "Newest eligible turbidity observation time in the frozen latest-continuous snapshot.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Maximum observation timestamp across matching instantaneous series at or before the fixed audit cutoff; age relative to that cutoff determines current, stale, or historical status.",
      "limitations": []
    },
    {
      "name": "turbiditySeriesEverExists",
      "type": "boolean",
      "nullable": true,
      "description": "Whether the official metadata catalog contains a matching turbidity series.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "True when at least one matching instantaneous time-series metadata record exists; null when no configured station could be evaluated.",
      "limitations": []
    },
    {
      "name": "turbidityCodes",
      "type": "string",
      "nullable": true,
      "description": "Pipe-delimited USGS parameter codes used for turbidity.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Distinct matching codes from the frozen time-series metadata response.",
      "limitations": [
        "Turbidity codes may use incompatible units."
      ]
    },
    {
      "name": "turbidityUnits",
      "type": "string",
      "nullable": true,
      "description": "Pipe-delimited units present for turbidity.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Distinct metadata and latest-observation units; values are never combined across units.",
      "limitations": []
    },
    {
      "name": "turbidityMetadataEndAt",
      "type": "timestamp",
      "nullable": true,
      "description": "Newest metadata end_utc among matching turbidity series.",
      "sourceIds": [
        "usgs-water-data-api"
      ],
      "derivation": "Maximum time-series metadata end_utc value.",
      "limitations": [
        "USGS says metadata end_utc may update less frequently than observations; it is not labeled as the latest observation."
      ]
    }
  ],
  "correctionPath": "https://bluestreamfly.com/contact",
  "limitations": [
    "The inventory covers BlueStreamFly report routes, not every U.S. trout stream.",
    "A station does not represent every reach, access point, or local condition.",
    "This availability audit is not a fishing recommendation or legal authority.",
    "Non-USGS monitoring may exist where this USGS-focused audit reports unknown or reference-only."
  ]
}
