No insurer has ever cited sea level rise as a reason for leaving a market. Not once. We searched six independent ways, including the Senate Budget Committee investigation covering 249 million policy records from about 24 insurers. Every documented US exit between 2018 and 2026 traces to a realised loss year, rate-approval friction, or litigation — never to the slow hazard itself.
That is not a hole in the evidence. It is what the mechanism predicts. One-year contracts mean a slow hazard gets quietly repriced, never announced. And over the exact period sea level rise became most visible, Citizens' Miami-Dade book fell 69% — private carriers taking risk back in the most exposed large county in America.
The rest of this page is the dataset that let us establish that: a cited, provenance-tagged package for combined rainfall and sea-level flood risk across Brickell, the CBD, and Edgewater, and a stated account of where the public record runs out. Every number traces to a primary source. Jump to the insurer-exit analysis →
Seven numbers that every scenario in this package is built on. Get these wrong and nothing downstream recovers — in a city whose usable relief is about ten feet, a third of a foot is a design decision.
| Threshold | ft NAVD88 | ft above MHHW | Recorded to date |
|---|---|---|---|
| Minor flooding | 1.92 | 1.69 | routine — a few days a year |
| Moderate flooding | 2.89 | 2.66 | occasional |
| Major flooding | 4.12 | 3.89 | never once observed |
Under NOAA's Intermediate scenario, minor flooding reaches 365 days a year by 2090 and major flooding — which has never happened at this gauge — reaches 70 days a year by 2100.
NOAA's 2022 scenarios are magnitude-based and emissions-agnostic; IPCC AR6's are emissions-driven. They are usually shown apart, which hides the useful comparison. NOAA's 2005 baseline and AR6's 1995–2014 mean differ by roughly two millimetres, so they plot together with no correction.
Virginia Key sits a constant +0.50 ft above the global mean at 2100 in every scenario. Differencing the AR6 archives with and without vertical land motion isolates the cause: 0.33 ft of that is the land going down — about 1.05 mm/yr of subsidence — and it is scenario-independent. The rest is sterodynamic (Gulf Stream and AMOC) plus the gravitational fingerprint of distant ice loss.
Because the excess is near-constant in absolute terms, it is proportionally largest under successful mitigation: +41% on top of SSP1-1.9, only +20% on top of SSP5-8.5.
NOAA Intermediate-High (5.25 ft at 2100) and High (6.96 ft) have no AR6 medium-confidence analogue at all — they exist only inside the low-confidence ice-sheet branch. And NOAA Low (1.44 ft) sits below AR6's most optimistic median.
The low-confidence branch should never be captioned "worst case." Its 2150 p95 is 20.78 ft and its 2300 p83 is 58.94 ft. There is no defensible worst case to draw — only a band whose upper edge is an artifact of how far the expert judgement was extended.
These came out of the data rather than the brief. Several of them contradict the assumptions the project started with.
Cross-referencing 3,034 surveyed structure elevations against 14,841 groundwater observations: 54.8% of structures with a known bottom sit below the wet-season median water table. 51.2% sit below even the dry-season median; 66.4% below the p95.
They are not accepting inlet flow. They are relieving aquifer pressure. Any model that treats the storm system as available capacity at t=0 is wrong from the first timestep.
There is no surface outfall inside the study area. The nearest real discharge point is 4 km away, on the C-7 canal. Downtown discharges instead through 2,594 FDEP Class V injection wells, median depth 120 ft, straight into the Biscayne aquifer.
Tailwater locking at outfalls is real but secondary here. Rejected infiltration is the co-dominant failure mode — which means findings 01 and 02 are the same finding, and both are groundwater problems rather than pipe problems.
Of 6,612 pipe segments: 2.2% carry a diameter, 0.1% carry invert elevations, 0% carry depth. The county's outfall ELEVATION field is 0.0% populated; the City of Miami's INVERT is 1.9%.
What does exist is vertical control — 3,034 surveyed rim elevations, 2,590 of them explicitly NAVD88. Build on rims and known bottoms; render everything inferred hatched, with the count in the legend. A green/yellow/red capacity map from this data would be roughly 98% inference wearing the costume of measurement.
9,636 of 12,479 buildings sit in FEMA zone X. Outside the SFHA no elevation certificate is required, so after deduplication there were fewer than twenty usable local observations for that entire population. Their floor elevations are a borrowed pre-FIRM median.
69.5% of all downtown buildings are pre-FIRM — built before 1975, and never required to elevate to anything. The unmeasured-elevation wedge and the uninsured-loss wedge are the same buildings.
Miami-Dade's Citizens book fell from 218,947 policies and $76.9 B of exposure in December 2022 to 67,353 and $19.2 B in July 2026 — down 69% in under four years. That is depopulation working: a recovering wind market.
Meanwhile 80.2% of Florida's 1.73 M NFIP policies are on an upward glide path to full risk under Rating 2.0. A single blended "fragility index" would misrepresent both markets. Show two tracks on a shared time axis.
ZIP 33137 is 30.4% zone X, only 23.9% post-FIRM, and only 41.7% of its policies carry a filed floor elevation — against 33128's 3.6% / 30.1% / 69.8%. Oldest buildings, most voluntary coverage, thinnest record.
Voluntary policies outside the SFHA are the first to lapse when premiums rise. That is where uninsured loss gets manufactured, and it is measurable rather than rhetorical.
The point of a provenance layer is to make inference visible. Here is what would be hatched, measured field by field rather than asserted.
NFIP policy records carry lowestFloorElevation and lowestAdjacentGrade. The difference between them is the height of the first floor above the dirt beside the building, and it is stable within a construction era and flood zone. So it can be measured locally and applied where no certificate exists:
| FIRM era | Zone | n | p25 | median | p75 |
|---|---|---|---|---|---|
| post-FIRM | AE | 1,608 | 0.90 | 2.40 | 7.40 |
| pre-FIRM | AE | 1,135 | 0.80 | 1.60 | 2.50 |
| post-FIRM | VE | 134 | 5.50 | 10.10 | 12.80 |
| pre-FIRM | AH | 104 | 0.40 | 1.35 | 1.90 |
| post-FIRM | AH | 38 | 0.80 | 1.30 | 1.80 |
| pre-FIRM | VE | 26 | 0.70 | 1.30 | 4.00 |
| either | X | <20 | — | — | — |
Slab height above lowest adjacent grade, in feet, from 5,461 deduplicated NFIP records. Ground elevation comes from the 5th percentile of 1 m LiDAR cells in a 3 m collar outside each building's wall line — the 5th percentile rather than the minimum, because single-cell minima in a dense urban DEM pick up gutters, tree pits, and stairwells.
Where the ground actually sits, and how many buildings a given still-water level reaches.
Two markets react to the same water on different clocks. Kept separate on purpose.
| ZIP | Area | Claims | Paid | Policy records | Zone X | Post-FIRM | Floor elev. filed |
|---|
Zone X share, post-FIRM share, and filed floor elevations come from the full policy extract. The last three columns move together — newer buildings, inside the SFHA, are the ones with measured elevations. Edgewater is weakest on all three.
California is the worked precedent, so we tested the obvious hypothesis against 59 dated, sourced actions across five states, 2018–2026. The answer is not what the climate framing predicts.
Not once, anywhere in the United States. We searched six independent ways: direct queries, NAIC and Ceres climate-risk disclosures, the Senate Budget Committee's 2024 investigation (249 million policy records from ~24 insurers, 65% of the national market — it contains non-renewal counts and zero rationales), the Environmental Law Institute's coastal insurance materials, CBO's August 2024 analysis, and coastal-state-specific searches.
This is the model's prediction, not a gap in the evidence. Property insurance is a one-year contract. A carrier facing a hazard that shifts expected loss by low single digits per year simply reprices or non-renews at the moment the number moves. It never has to announce anything, and it never has to reference a projection.
| Mechanism | Documented as proximate cause | Strength |
|---|---|---|
| Catastrophe / loss-ratio shock | Every case. State Farm General paid $1.26 in claims per $1.00 of premium over nine years; surplus fell $4.16 B (2016) to $1.04 B (end-2024) | primary |
| Rate-approval friction | California only — and provable by reversal (below) | primary |
| Litigation environment | Florida only — and it dominated there | primary |
| Reinsurance cost and availability | Amplifier; rarely the initiator on its own | secondary |
| Forward-looking climate models | Zero documented cases | absent |
California, regulation. Proposition 103 barred insurers from using forward-looking catastrophe models and from passing through net reinsurance cost. Both bans lifted in December 2024. Farmers raised its new-business cap from 7,000 to 9,500 a month on 11 December 2024, explicitly citing the incoming regulations — with wildfire hazard unchanged. Chubb's Evan Greenberg, in the 2024 shareholder letter: "The state suppressed the industry's ability to charge a fair price for wildfire-exposed coverage."
Florida, litigation. In 2020 Florida generated ~9% of US homeowners claims and ~79% of US homeowners claims litigation. After SB 2-A removed one-way attorney fees and post-loss assignment of benefits, that fell to 4.85% of claims and 41.29% of suits by 2025. Twenty-one new carriers entered; the 2025 combined ratio was 83%, best in a decade. Hurricane Milton — $30–50 B insured, October 2024 — did not stop the recovery. Hazard unchanged, outcome reversed.
Over the exact period sea level rise has been most visible in public discussion, the most sea-level-exposed large county in America saw private carriers take risk back faster than anywhere in the country — Citizens' Miami-Dade book fell 69%. If projections drove insurer behaviour, that sign would be inverted.
Meanwhile the physical signal is real and accelerating: high-tide flood days at Virginia Key went from 0–3 a year before 2015 to 5–7 a year now. It moved the market not at all.
Flood is different because NFIP is federal. "Exit" there isn't carrier withdrawal — it's consumer lapse. Risk Rating 2.0 cut new policy uptake 11–39% and existing renewals 5–13%, worst in the lowest income quartile. GAO finds 66% of policies are still below their full-risk rate, median gap ~90%, with roughly 95% reaching full risk by 2037 under the 18%/year cap.
59 dated actions. Filter by state; every row links to its source.
| Date | State | Entity | Action | Stated driver |
|---|
Everything below is public and in the shared folder. Sources are primary throughout; the two secondary-sourced items are marked.
| File | Records | What it is | Source |
|---|---|---|---|
| dem/dem_downtown_miami_1m…tif | 4561×7781 | 1 m LiDAR terrain, NAVD88 m, UTM 17N | USGS 3DEP, FL_MiamiDade_D23 |
| dem/terrain_heightmap_4m.png | 1140×1945 | 16-bit browser-ready heightmap + decode JSON | derived |
| building_ffe_estimates.csv | 12,479 | Estimated floor elevation, IQR band, provenance class | derived — see notes |
| building_footprints_downtown_miami.geojson | 12,480 | Footprints + height, 99.9% folio-linked | Miami-Dade BuildingFootprintUBIDFolio |
| parcels_downtown_miami.geojson | 12,936 | Parcel polygons, year built, floors, units, DOR code | Miami-Dade PaParcelView |
| property_points_downtown_miami.geojson | 68,110 | Incl. 55,424 condo units; roll up via PARENT_FOLIO | Miami-Dade PaGISView |
| fema_nfhl_flood_zones_downtown.geojson | 163 | 91 AE · 47 VE · 11 AH · 10 X · 4 open water | FEMA NFHL layer 28 |
| storm_drains_stormwater_lines.geojson | 6,612 | 6,426 pipes + trench, channels | Miami-Dade StormWaterLine |
| storm_drains_stormwater_points.geojson | 7,235 | 4,111 catch basins, 2,224 manholes, 72 wells | Miami-Dade StormWaterPoint |
| storm_structure_elevations_city_of_miami.geojson | 3,054 | 3,034 surveyed rims, 2,590 explicitly NAVD88 | City of Miami RPW / Cartegraph |
| outfalls_fdep_uic_drainage_wells.geojson | 6,137 | Class V injection wells — how downtown actually drains | FDEP UIC |
| groundwater_levels_downtown.csv | 14,841 | Water table observations, 1940–2026, 31 sites | USGS api.waterdata.usgs.gov |
| groundwater_wells_miami_dade.csv | 669 | Well inventory, depth, aquifer, period of record | USGS NWIS site service |
| ipcc_ar6_slr_virginia_key_ft.csv | 157 | AR6 regional SLR, 5 SSPs + low-confidence, to 2300 | Zenodo 10.5281/zenodo.6382554 |
| slr_scenarios_virginia_key_ft.csv | 75 | NOAA 2022 scenarios, 5 × 15 years, with CI | NOAA CO-OPS API |
| noaa_high_tide_flooding_8723214.json | 5 products | Flood-day projections and observed counts | NOAA CO-OPS HTF API |
| atlas14_downtown_miami_pds_depth.csv | 19×10 | Rainfall depth by duration × recurrence interval | NOAA Atlas 14 Vol. 9 |
| nfip_policies_full_<zip>.csv | 14,875 | Policy records incl. floor elevations, 5 ZIPs | OpenFEMA FimaNfipPolicies |
| nfip_claims_<zip>.csv | 760 | Claims 1978–2025, 5 ZIPs | OpenFEMA FimaNfipClaims |
| citizens_pif_miami_dade.csv | 180 | County policies in force + exposure, 2022–2026 | Citizens "Detail by County" PDFs |
| nfip_rr2_florida_profile.csv | 120 | Risk Rating 2.0 premium-change bands | FEMA, via ArcGIS republication |
| File | Why it matters |
|---|---|
| NOTES_first_floor_elevations.md | Full derivation, strata, and the zone-X problem |
| NOTES_groundwater.md | Wet/dry season water table; the empirically-derived NAVD88 = NGVD29 − 1.56 ft conversion |
| NOTES_outfalls.md | Every endpoint checked; why the outfall premise was wrong |
| NOTES_slr_scenarios.md | NOAA ↔ AR6 mapping, baselines, deep uncertainty |
| NOTES_rr2.md | Which FEMA routes are permanently closed and why |
| nfip_policies_extract_log.md | API limits, what "complete" can and cannot mean here |
| storm_drain_data_provenance_audit.csv | Field-by-field completeness — the input to the hatching rule |
Documented rather than silent. Two of these are permanently closed; the rest have a named route.
An ArcGIS Online search for "outfall Miami" surfaces a service whose layer is literally named Outfalls, with a ReceivingWaterBdy field. It is Miami, Oklahoma — longitude −94.9. Easy to ingest without noticing. And USGS's waterservices.usgs.gov/nwis/gwlevels/ endpoint was decommissioned in early 2026 and now redirects to a blog post; groundwater levels come from the field-measurements collection on api.waterdata.usgs.gov.
Written against the real files, with the measured values substituted for the assumed ones. Attach the folder and paste.
Build a single self-contained interactive 3D HTML visualiser of combined rainfall and sea-level flood risk for downtown Miami (Brickell → CBD → Edgewater, AOI −80.215/25.750 to −80.170/25.820).
Data: https://drive.google.com/drive/folders/1sJkjULZLFaTLHJrNBzs_BzJ0kvTjMNbL
Code: https://github.com/craigm26/SeaLevelRise
Read README.md and NOTES_first_floor_elevations.md before writing any code. Sections 3 and 4 of the README change what is honestly buildable.
TERRAIN
Render dem/terrain_heightmap_4m.png as a 3D surface. Decode per terrain_heightmap_4m.json: elev_m = zmin + pixel/65535*(zmax−zmin); pixel 0 = nodata. Vertical exaggeration slider, default 5× — usable relief is ~2–12 ft NAVD88, so unexaggerated this reads as a flat plate. Work internally in ft NAVD88; the DEM is metres, so convert once at the boundary and label the axis.
SCENARIO CONTROLS
1. Sea level rise, 0–6 ft, applied on top of MHHW = +0.23 ft NAVD88.
Tick marks from slr_scenarios_virginia_key_ft.csv (NOAA 2022) and ipcc_ar6_slr_virginia_key_ft.csv (AR6).
Default to NOAA Intermediate-High at 2050 (1.25 ft) — the SE Florida Compact design basis.
Mark HAT at +1.20 ft and the Irma observed maximum at +3.80 ft NAVD88 as "this has happened" reference lines.
Offer AR6 SSPs as a secondary emissions view. Render the SSP5-8.5 low-confidence branch as a separate hatched deep-uncertainty band, off by default, and never label it "worst case".
2. Design storm, 2-yr → 500-yr, durations 1-hr / 6-hr / 24-hr, from atlas14_downtown_miami_pds_depth.csv (100-yr/24-hr = 14.5 in).
3. King tide toggle at HAT = +0.97 ft above MHHW. Not 1.5 ft — that was an assumption and it was wrong.
THE PART MOST MODELS GET WRONG
Initialise the system wet, not empty. 54.8% of drainage structures with a known bottom sit below the wet-season median water table (0.84 ft NAVD88; dry 0.38; p95 1.86 — groundwater_levels_downtown.csv). They are relieving aquifer pressure, not accepting flow. Available capacity at t=0 is a fraction of nominal, and the visualiser should show which structures start submerged.
Downtown has no surface outfall. It drains DOWN, through 2,594 Class V injection wells (outfalls_fdep_uic_drainage_wells.geojson), median depth 120 ft. Model rejected infiltration when the water table rises, alongside tailwater locking at the distant real outfalls. Do not build a bay-outfall-centric model — that premise is wrong for this bounding box.
DRAINAGE — READ storm_drain_data_provenance_audit.csv FIRST
2.2% of pipes carry a diameter; 0.1% carry inverts; 0% carry depth. A green/yellow/red capacity map from this data is ~98% inference. Two honest options: render the network geometry-only and drop the capacity claim, or infer and hatch EVERY inferred segment with the count in the legend ("6,467 of 6,612 pipes: diameter inferred"). Build elevations on the 3,034 surveyed rims in storm_structure_elevations_city_of_miami.geojson (2,590 explicitly NAVD88), not on the county's empty invert fields.
BUILDINGS AND FLOOR ELEVATIONS
building_ffe_estimates.csv carries a per-building estimate, an interquartile band (ffe_lower_ft / ffe_upper_ft), and a provenance class. 9,636 of 12,479 are class no_local_observations — zone X, where no certificate is required and fewer than 20 local observations exist. THESE MUST RENDER HATCHED. Nearly four in five downtown buildings fall in that class, and it is the same population the insurance layer cares about.
PROVENANCE EVERYWHERE
Solid = official; hatched/desaturated = interpolated or assumed. A provenance toggle that greys out everything inferred should leave the DEM, the FEMA zones, the tide datums, and the surveyed rims standing — and very little else. That is the correct and useful result, not a failure of the build.
INSURANCE LAYER (toggleable)
Two separate tracks on a shared time axis — they move in opposite directions and blending them lies.
Wind/HO: Citizens Miami-Dade PIF 218,947 (Dec 2022) → 67,353 (Jul 2026), exposure $76.9B → $19.2B. Falling Citizens = private carriers returning.
Flood/NFIP: 80.2% of Florida's 1.73M policies on an upward Risk Rating 2.0 glide path; ~1 in 3 households covered.
Hero callout: the uninsured-loss wedge — parcels where modelled ponding exceeds estimated floor elevation but which sit outside the SFHA. 33137 (Edgewater) is 30.4% zone X, 23.9% post-FIRM, 41.7% with a filed elevation. Oldest buildings, most voluntary coverage, thinnest data.
ALSO
Bowls identified from the DEM, not assumed, labelled with ponding depth per scenario. Legend. Scenario summary: inundated area, parcels affected, critical infrastructure. Camera presets for the worst three hotspots.
ASSUMPTIONS & LIMITATIONS PANEL — be specific, not boilerplate
· Screening-level model, not MIKE / HEC-RAS / XPSWMM. Name where an engineered model diverges: pipe surcharge timing, overland routing, tidal phase.
· Groundwater is represented as an initial condition and a rejected-infiltration term, not a full subsurface model. Miami sits on porous limestone; water rises through the ground. Say it prominently.
· Drain hydraulics are ~98% inferred. Cite the audit CSV.
· 77% of floor elevations have no local observational basis.
· Insurance data is ZIP-level proxy, not parcel underwriting. NFIP extracts are deep samples, not a census — the denominator is unknowable.
· Parcel values unavailable: ASSESSED_VAL_CUR is null service-wide.