{
  "schemaVersion": 1,
  "researchDate": "2026-10-10",
  "purpose": "Proposed database source registry; cadence values are design recommendations, not provider SLAs",
  "sources": [
    {
      "id": "nws-points",
      "name": "NWS point discovery",
      "version": "weather.gov current",
      "status": "implemented",
      "docs": "https://www.weather.gov/documentation/services-web-api",
      "example": "https://api.weather.gov/points/26.962,-82.3526",
      "auth": "none; identifying User-Agent for future server adapter",
      "limits": "Unpublished; honor cache and 429",
      "cadence": "Proposed: daily and on mapping changes",
      "key": [
        "requested_coordinate",
        "gridId",
        "gridX",
        "gridY",
        "fetched_at"
      ],
      "geo": "Request lat,lon; response geometry lon,lat; discover actual grid",
      "time": "Discovery fetched_at, separate from forecast issue",
      "use": "Resolve office, cell, timezone and station URLs",
      "priority": 1,
      "cost": "No paid requests implemented; hosting/storage and optional services are separate",
      "license": "U.S. public agency data; retain agency attribution and check dataset exceptions",
      "rawStorage": "Proposed immutable object storage; request URL, UTC retrieval, status, raw bytes, SHA-256",
      "verifiedOn": "2026-10-10"
    },
    {
      "id": "nws-alerts",
      "name": "NWS alerts",
      "version": "weather.gov current",
      "status": "implemented",
      "docs": "https://www.weather.gov/documentation/services-web-api",
      "example": "https://api.weather.gov/alerts/active?point=26.962,-82.3526",
      "auth": "none",
      "limits": "Unpublished; cache and 429",
      "cadence": "Proposed: 2–5 minutes for active subscriptions",
      "key": [
        "id",
        "sent",
        "payload_sha256"
      ],
      "geo": "Point membership; retain null geometry and affected zones",
      "time": "sent/effective/onset/expires/ends distinct",
      "use": "Contemporaneous preparedness and retained official alert evidence",
      "priority": 1,
      "cost": "No paid requests implemented; hosting/storage and optional services are separate",
      "license": "U.S. public agency data; retain agency attribution and check dataset exceptions",
      "rawStorage": "Proposed immutable object storage; request URL, UTC retrieval, status, raw bytes, SHA-256",
      "verifiedOn": "2026-10-10"
    },
    {
      "id": "nws-grid",
      "name": "NWS forecast grid fields",
      "version": "weather.gov current",
      "status": "catalog-only; SkyNow already integrates subset",
      "docs": "https://github.com/weather-gov/api/blob/master/gridpoints.md",
      "example": "https://api.weather.gov/points/26.962,-82.3526",
      "discovery": "Follow properties.forecastGridData",
      "auth": "none",
      "limits": "Unpublished; cache cell once across portfolio",
      "cadence": "Proposed: 30–60 minutes subject to source cache",
      "key": [
        "office",
        "gridX",
        "gridY",
        "updateTime",
        "field",
        "validTime"
      ],
      "geo": "Native cell, not parcel precision",
      "time": "ISO8601 validTime start/duration and issue time",
      "use": "Rain amount, wind/gust, freeze, snowfall and ice preparedness",
      "priority": 1,
      "cost": "No paid requests implemented; hosting/storage and optional services are separate",
      "license": "U.S. public agency data; retain agency attribution and check dataset exceptions",
      "rawStorage": "Proposed immutable object storage; request URL, UTC retrieval, status, raw bytes, SHA-256",
      "verifiedOn": "2026-10-10"
    },
    {
      "id": "nws-hourly",
      "name": "NWS hourly forecast periods",
      "version": "weather.gov current",
      "status": "implemented; separate from raw grid fields",
      "docs": "https://www.weather.gov/documentation/services-web-api",
      "example": "https://api.weather.gov/points/26.962,-82.3526",
      "discovery": "Follow properties.forecastHourly; retain returned URL",
      "auth": "none",
      "limits": "Unpublished; honor cache and 429",
      "cadence": "Proposed: 30–60 minutes subject to source cache",
      "key": ["request_url", "updateTime", "period.startTime", "payload_sha256"],
      "geo": "Forecast grid area, not parcel precision",
      "time": "Forecast updateTime distinct from period startTime/endTime",
      "use": "Short-term forecast context; not observed event evidence",
      "priority": 1,
      "cost": "No paid requests implemented; hosting/storage are separate",
      "license": "U.S. public agency data; retain attribution and check exceptions",
      "rawStorage": "Immutable original response text, source URL, request time and SHA-256",
      "verifiedOn": "2026-10-10"
    },
    {
      "id": "nws-stations",
      "name": "NWS observation station discovery",
      "version": "weather.gov current",
      "status": "implemented; discovery metadata only",
      "docs": "https://www.weather.gov/documentation/services-web-api",
      "example": "https://api.weather.gov/points/26.962,-82.3526",
      "discovery": "Follow properties.observationStations; retain returned URL",
      "auth": "none",
      "limits": "Unpublished; retain pagination signals",
      "cadence": "Proposed: daily or after point/grid discovery changes",
      "key": ["request_url", "stationIdentifier", "payload_sha256"],
      "geo": "Station coordinates; proximity is not property representativeness",
      "time": "Discovery request time, not measurement time",
      "use": "Resolve station identifiers before requesting observations",
      "priority": 1,
      "cost": "No paid requests implemented; hosting/storage are separate",
      "license": "U.S. public agency data; retain attribution and check exceptions",
      "rawStorage": "Immutable original response text, source URL, request time and SHA-256",
      "verifiedOn": "2026-10-10"
    },
    {
      "id": "nws-observations",
      "name": "NWS station observations",
      "version": "weather.gov current",
      "status": "implemented latest; historical ingestion planned",
      "docs": "https://api.weather.gov/openapi.json",
      "example": "https://api.weather.gov/stations/KVNC/observations/latest",
      "auth": "none",
      "limits": "Historical API retention is not assumed permanent",
      "cadence": "Proposed: 10–15 minutes",
      "key": [
        "station",
        "timestamp",
        "field",
        "payload_sha256"
      ],
      "geo": "Station point; property conditions not established",
      "time": "Observation timestamp distinct from retrieval; flag age over 2h",
      "use": "Dated local context for an evidence packet",
      "priority": 1,
      "cost": "No paid requests implemented; hosting/storage and optional services are separate",
      "license": "U.S. public agency data; retain agency attribution and check dataset exceptions",
      "rawStorage": "Proposed immutable object storage; request URL, UTC retrieval, status, raw bytes, SHA-256",
      "verifiedOn": "2026-10-10"
    },
    {
      "id": "fema-nfhl",
      "name": "FEMA National Flood Hazard Layer",
      "version": "MapServer layer 28; pin release metadata",
      "status": "implemented point attributes",
      "docs": "https://hazards.fema.gov/arcgis/rest/services/public/NFHL/MapServer/28",
      "example": "https://hazards.fema.gov/arcgis/rest/services/public/NFHL/MapServer/28/query?geometry=-82.3526,26.962&geometryType=esriGeometryPoint&inSR=4326&spatialRel=esriSpatialRelIntersects&outFields=*&returnGeometry=false&f=json",
      "auth": "none",
      "limits": "Inspected maxRecordCount=2000; inspect transfer limits",
      "cadence": "Proposed: daily change checks / release-based bulk",
      "key": [
        "GlobalID",
        "release_id",
        "payload_sha256"
      ],
      "geo": "Native NAD83 EPSG:4269; query inSR4326; polygon boundaries matter",
      "time": "Effective map/release time, not current flood observation",
      "use": "Mapped hazard screening; not parcel certification or coverage",
      "priority": 1,
      "cost": "No paid requests implemented; hosting/storage and optional services are separate",
      "license": "U.S. public agency data; retain agency attribution and check dataset exceptions",
      "rawStorage": "Proposed immutable object storage; request URL, UTC retrieval, status, raw bytes, SHA-256",
      "verifiedOn": "2026-10-10"
    },
    {
      "id": "openfema-declarations",
      "name": "OpenFEMA disaster declarations",
      "version": "v2 DisasterDeclarationsSummaries",
      "status": "implemented",
      "docs": "https://www.fema.gov/api/open/metadata/v3.0/OpenApi.json",
      "example": "https://www.fema.gov/api/open/v2/DisasterDeclarationsSummaries?$filter=state%20eq%20%27FL%27&$top=100&$orderby=declarationDate%20desc",
      "auth": "none",
      "limits": "OpenAPI top default1000 max10000; throttle unknown; prototype cap100",
      "cadence": "Proposed: hourly during incident, daily otherwise",
      "key": [
        "id",
        "lastRefresh",
        "hash"
      ],
      "geo": "Designated area / FIPS; state query is not radius match",
      "time": "Incident begin/end vs declaration date; null end unknown; not assumed ongoing",
      "use": "Administrative event context, not property damage proof",
      "priority": 1,
      "cost": "No paid requests implemented; hosting/storage and optional services are separate",
      "license": "OpenFEMA terms and attribution; no endorsement",
      "rawStorage": "Proposed immutable object storage; request URL, UTC retrieval, status, raw bytes, SHA-256",
      "verifiedOn": "2026-10-10"
    },
    {
      "id": "openfema-nfip",
      "name": "OpenFEMA NFIP redacted claims",
      "version": "v3 NfipClaims preferred; legacy v2 FimaNfipClaims also listed",
      "status": "catalog-only; dictionary/version review needed",
      "docs": "https://www.fema.gov/api/open/metadata/v3.0/OpenApi.json",
      "example": "https://www.fema.gov/api/open/v3/NfipClaims?$top=1",
      "auth": "none",
      "limits": "OpenAPI top max10000; page and reconcile; no browser bulk ingestion",
      "cadence": "Proposed: published release/refresh cadence",
      "key": [
        "id",
        "asOfDate",
        "payload_sha256"
      ],
      "geo": "Redacted/generalized geography; no exact address inference",
      "time": "Loss date vs as-of/retrieval revision",
      "use": "Aggregate flood-loss research only; no individual underwriting",
      "priority": 3,
      "cost": "No paid requests implemented; hosting/storage and optional services are separate",
      "license": "OpenFEMA terms and attribution; no endorsement",
      "rawStorage": "Proposed immutable object storage; request URL, UTC retrieval, status, raw bytes, SHA-256",
      "verifiedOn": "2026-10-10"
    },
    {
      "id": "noaa-storm-events",
      "name": "NOAA NCEI Storm Events",
      "version": "ftp_v1.0 annual files with creation-date revisions",
      "status": "catalog-only",
      "docs": "https://www.ncei.noaa.gov/access/storm-events-database/",
      "example": "https://www.ncei.noaa.gov/pub/data/swdi/stormevents/csvfiles/",
      "auth": "none",
      "limits": "Bulk compressed files; discover actual filename; certification separate",
      "cadence": "Proposed: monthly manifest check; reprocess changed annual files",
      "key": [
        "event_id",
        "location_index_if_applicable",
        "file_sha256"
      ],
      "geo": "Reported point/path/county; preserve precision and original fields",
      "time": "Local time and CZ_TIMEZONE; historical reporting coverage varies",
      "use": "Retrospective hazard reports and provenance",
      "priority": 2,
      "cost": "No paid requests implemented; hosting/storage and optional services are separate",
      "license": "U.S. public agency data; retain agency attribution and check dataset exceptions",
      "rawStorage": "Proposed immutable object storage; request URL, UTC retrieval, status, raw bytes, SHA-256",
      "verifiedOn": "2026-10-10"
    },
    {
      "id": "noaa-swdi",
      "name": "NOAA radar-derived hail inventory",
      "version": "SWDI v2 interface, nx3hail dataset",
      "status": "catalog-only; bounded endpoint probe passed",
      "docs": "https://www.ncei.noaa.gov/maps/swdi/",
      "example": "https://www.ncei.noaa.gov/swdiws/json/nx3hail/20240501:20240502?bbox=-98,32,-96,34",
      "auth": "none for public hail dataset",
      "limits": "limit=1 was ignored in probe; bound day/bbox, stream on backend",
      "cadence": "Proposed: daily historical partitions / archive refresh",
      "key": [
        "dataset",
        "WSR_ID",
        "CELL_ID",
        "ZTIME",
        "payload_sha256"
      ],
      "geo": "WKT POINT lon lat; radar signatures not confirmed ground impacts",
      "time": "ZTIME UTC; source coverage incomplete",
      "use": "Hail-event corroboration with probabilistic provenance label",
      "priority": 2,
      "cost": "No paid requests implemented; hosting/storage and optional services are separate",
      "license": "Review dataset-specific terms; exclude restricted lightning",
      "rawStorage": "Proposed immutable object storage; request URL, UTC retrieval, status, raw bytes, SHA-256",
      "verifiedOn": "2026-10-10"
    },
    {
      "id": "usgs-water",
      "name": "USGS Water Data",
      "version": "OGC API v1",
      "status": "implemented latest continuous stage",
      "docs": "https://api.waterdata.usgs.gov/docs/ogcapi/",
      "example": "https://api.waterdata.usgs.gov/ogcapi/v1/collections/latest-continuous/items?f=json&bbox=-82.7,26.7,-82,27.2&parameter_code=00065&limit=25",
      "auth": "No key for bounded requests; optional key raises limits",
      "limits": "Read X-RateLimit headers; 429 backoff; follow rel=next",
      "cadence": "Proposed: selected active gauges 15 minutes; metadata weekly",
      "key": [
        "time_series_id",
        "time",
        "last_modified",
        "id"
      ],
      "geo": "Gauge point and datum; nearest is not hydrologically linked",
      "time": "Latest can be discontinued/stale; retain qualifier and approval_status",
      "use": "River-stage / discharge context, never property inundation depth",
      "priority": 1,
      "cost": "No paid requests implemented; hosting/storage and optional services are separate",
      "license": "U.S. public agency data; retain agency attribution and check dataset exceptions",
      "rawStorage": "Proposed immutable object storage; request URL, UTC retrieval, status, raw bytes, SHA-256",
      "verifiedOn": "2026-10-10"
    },
    {
      "id": "usgs-earthquakes",
      "name": "USGS earthquake catalog",
      "version": "FDSN event service1",
      "status": "implemented",
      "docs": "https://earthquake.usgs.gov/fdsnws/event/1/",
      "example": "https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2026-10-01&endtime=2026-10-08&latitude=26.962&longitude=-82.3526&maxradiuskm=100&minmagnitude=2.5&limit=200",
      "auth": "none",
      "limits": "Service max20000; prototype cap200 flagged partial",
      "cadence": "Proposed: real-time feeds 5 minutes; archive on demand",
      "key": [
        "id",
        "updated",
        "product_version"
      ],
      "geo": "lon,lat,depth_km; radius is not shaking footprint",
      "time": "Epoch milliseconds UTC; source revised",
      "use": "Event evidence; future ShakeMap intensity adapter separate",
      "priority": 1,
      "cost": "No paid requests implemented; hosting/storage and optional services are separate",
      "license": "U.S. public agency data; retain agency attribution and check dataset exceptions",
      "rawStorage": "Proposed immutable object storage; request URL, UTC retrieval, status, raw bytes, SHA-256",
      "verifiedOn": "2026-10-10"
    },
    {
      "id": "noaa-coops",
      "name": "NOAA coastal water level",
      "version": "CO-OPS Data API prod",
      "status": "catalog-only",
      "docs": "https://api.tidesandcurrents.noaa.gov/api/prod/",
      "example": "https://api.tidesandcurrents.noaa.gov/api/prod/datagetter?station=8726520&product=water_level&date=recent&datum=MLLW&time_zone=gmt&units=metric&format=json&application=LevitizedLifeLabs",
      "auth": "none",
      "limits": "Six-minute data about1month/request; product limits differ",
      "cadence": "Proposed: 6–15 minutes, monthly verification reconciliation",
      "key": [
        "station",
        "product",
        "timestamp",
        "datum",
        "revision_sha256"
      ],
      "geo": "Station point; mandatory water-level datum",
      "time": "gmt requested; preliminary vs verified tracked",
      "use": "Coastal evidence context; no untransformed elevation subtraction",
      "priority": 2,
      "cost": "No paid requests implemented; hosting/storage and optional services are separate",
      "license": "U.S. public agency data; retain agency attribution and check dataset exceptions",
      "rawStorage": "Proposed immutable object storage; request URL, UTC retrieval, status, raw bytes, SHA-256",
      "verifiedOn": "2026-10-10"
    },
    {
      "id": "nhc-cyclones",
      "name": "NHC tropical cyclones",
      "version": "CurrentStorms JSON and versioned advisory products",
      "status": "catalog-only",
      "docs": "https://www.nhc.noaa.gov/data/",
      "example": "https://www.nhc.noaa.gov/CurrentStorms.json",
      "auth": "none",
      "limits": "Discover linked products; large GIS files off-browser",
      "cadence": "Proposed:15–30 minutes active storms; best-track by release",
      "key": [
        "storm_id",
        "advisory_number",
        "product",
        "issue_time",
        "sha256"
      ],
      "geo": "Track/cone/wind swath differ; cone not impact boundary",
      "time": "Forecast issue/valid vs operational and post-analysis best track",
      "use": "Hurricane preparedness and retained advisory evidence",
      "priority": 2,
      "cost": "No paid requests implemented; hosting/storage and optional services are separate",
      "license": "U.S. public agency data; retain agency attribution and check dataset exceptions",
      "rawStorage": "Proposed immutable object storage; request URL, UTC retrieval, status, raw bytes, SHA-256",
      "verifiedOn": "2026-10-10"
    },
    {
      "id": "usdm",
      "name": "US Drought Monitor county statistics",
      "version": "REST data service",
      "status": "catalog-only",
      "docs": "https://www.droughtmonitor.unl.edu/DmData/DataDownload/WebServiceInfo.aspx",
      "example": "https://usdmdataservices.unl.edu/api/CountyStatistics/GetDroughtSeverityStatisticsByAreaPercent?aoi=12115&startdate=9/1/2026&enddate=10/10/2026&statisticsType=2",
      "auth": "none; Accept application/json",
      "limits": "Bound geography and dates; no numeric SLA verified",
      "cadence": "Proposed: weekly release",
      "key": [
        "geography_id",
        "map_date",
        "statistics_type",
        "category"
      ],
      "geo": "County/HUC statistics; not parcel soil moisture",
      "time": "Weekly valid date separate from published date",
      "use": "Drought context; categorical vs cumulative distinction",
      "priority": 3,
      "cost": "No paid requests implemented; hosting/storage and optional services are separate",
      "license": "Attribute NDMC/NOAA/USDA; review reuse terms",
      "rawStorage": "Proposed immutable object storage; request URL, UTC retrieval, status, raw bytes, SHA-256",
      "verifiedOn": "2026-10-10"
    },
    {
      "id": "fema-nri",
      "name": "FEMA National Risk Index",
      "version": "Release and census-vintage dependent",
      "status": "catalog-only; discover download URL",
      "docs": "https://hazards.fema.gov/nri/data-resources",
      "example": "https://hazards.fema.gov/nri/data-resources",
      "auth": "public downloads; verify current distribution terms",
      "limits": "Bulk release; not a real-time request API",
      "cadence": "Proposed: each official release",
      "key": [
        "release_id",
        "geography_id",
        "geography_vintage",
        "hazard"
      ],
      "geo": "Tract/county aggregates, not parcel predictions",
      "time": "Baseline model release, not event observation",
      "use": "Portfolio context; not policy pricing or individual risk assignment",
      "priority": 3,
      "cost": "No paid requests implemented; hosting/storage and optional services are separate",
      "license": "U.S. public agency data; retain agency attribution and check dataset exceptions",
      "rawStorage": "Proposed immutable object storage; request URL, UTC retrieval, status, raw bytes, SHA-256",
      "verifiedOn": "2026-10-10"
    }
  ]
}
