Scope freeze — Flood Eventdex (flood) — DECLARED dangerous floods
Frozen 2026-06-19 (v2, replacing the derived-percentile v1). The flood kind
catalogs floods that were officially declared and carry a threat to life and
property, drawn from the agencies whose job is to make that call. Mike's ruling
(2026-06-19): the first attempt — deriving "high water" from USGS discharge by a
day-of-year P98 rule — was scope creep. A creek topping its 98th percentile is
usually normal seasonal flow, not danger (the percentile machine even manufactured
540,000× "floods" on dry desert washes). Declared floods carry the danger judgment
already made by the declaring agency, so the kind is built from declarations, not
synthesized from a continuous series.
Phenomenon definition (Mike's ruling 2026-06-19)
A flood event = one officially declared flood, from either declaring agency, each slot citing its source:
- NWS warnings (
nws_alerts, 2021–present) — events in {Flood Warning, Flash Flood Warning, Coastal Flood Warning, Lakeshore Flood Warning}. In NWS terminology a Warning means flooding is imminent or occurring with a threat to life and property ("take action"); Advisories (nuisance) and Watches (possible) are excluded by the danger bar. ~10,700 events, located. - FEMA disaster declarations (
fema_disasters, 1953–present) —incident_type= Flood. A federal DR/EM declaration = serious property damage and federal aid. ~919 events, area-based (county designations), deep history.
Both are declared, dangerous floods at different granularities: NWS gives
granular recent danger, FEMA gives deep major-disaster coverage. This is pure
organizing (feedback_organize_not_process) of already-ingested measured/
administrative records — no web pull, no derivation, no new spine source.
Measured/administrative reality (IN): an NWS warning is a recorded official product; a FEMA declaration is an administrative record-of-fact. OUT: any flood forecast/outlook (none used; warnings record imminent/occurring danger, not a model crest prediction).
Slot model
- Kind
flood, mixed-source, event-shaped (Eventdex), ordered on event time. Each slot carriesdeclaring_agency+tier(nws_warning|fema_disaster). - NWS slots are located (alert lat/lon); slot id
nws_<alert-hex>. Fields: event, severity, certainty, urgency, response, headline, area_desc, onset, expires/ends, is_severe. - FEMA slots are area-based (no point; designated counties); slot id
fema_dr<disaster_number>. Fields: declaration_type, event_name, declaration_date, incident_begin/end, states, designated_areas, n_counties, aid programs (ia/pa/ih/hm). - Sweep + NWS↔FEMA correspondence: deferred-v2. Linking which NWS warnings fall under which FEMA disaster is a downstream read-across, not v1.
Bricks
- A — this freeze (v2).
- C/D —
src/terrapulse/monitor/flood_sweep.py:FLOOD_CONFIG(catalog, sweep deferred),get_events(reads both sources, filtered + deduped),build_dossier,backfill_and_store(file-per-slot event storehouse). No Brick B: the data is already ingested innws_alerts+fema_disasters.
Sanity anchors
- ~11,600 slots total (~10,700 NWS warnings + ~919 FEMA flood declarations).
- Flash Flood Warnings carry severity Severe/urgency Immediate/response Avoid.
- FEMA flood DRs span 1953–present; designated_areas list real counties.