AI-Powered Flood Risk Underwriting

A flood rating factor that beats the FEMA zone, and blocks itself before the DOI examiner does.

FloodProof points at a real book of NFIP flood claims and proves a composite of real building attributes ranks losses better than the FEMA flood zone, audits every priced variable for disparate impact against real census demographics, and assembles the examiner-ready DOI filing package. When a variable fails the 80% rule, a deterministic policy gate refuses to mark the filing ready and routes the worst offender to human actuarial justification.

1.69x

Out-of-sample lift over the FEMA zone in top-decile loss capture

40,615 held-out real NFIP claims, Gini 0.31 vs 0.08

$3.1B

Real building-claim dollars paid outside FEMA high-risk zones (45.9%)

This Harris County, TX book, unmodeled

NOT FILING-READY

The gate blocked its own filing when 5 priced variables failed the 80% rule

Composite score itself passes at AIR 0.938

Every figure recomputes live from real public data on each run. Attribute them to this Harris County book and this held-out split, not as an open-world guarantee.

The FEMA zone misprices both sides, and a smarter model can fail the filing

Flood pricing that anchors to Zone AE vs Zone X is a property-level question answered with a map.

Anchoring a flood rate to the FEMA flood zone overcharges the elevated house inside the zone and undercharges the slab-on-grade house outside it. The carrier's real exposure is a property-level question the zone map cannot answer. In this real Harris County book, $3.1B (45.9%) of building-claim dollars were paid on properties FEMA rated outside its high-risk Special Flood Hazard Area zones. That is straight from the data, with no model involved.

The market answer has been to buy a better model. But a smarter rating factor is only half the job. Any AI-augmented rate now has to survive a Department of Insurance fairness review, because a factor that ranks loss well can also carry demographic signal and fail the EEOC 80% rule, shipping a discriminatory rate the examiner will reject. New York DFS Circular Letter 2024-7 requires proxy-discrimination testing, Colorado requires per-variable justification for AI-driven insurance rates, and the NAIC AI Model Bulletin has been adopted by 24 or more states. A better model that self-grades is not evidence, and a better model that carries demographic signal is a filing that gets sent back.

The durable engineering is the infrastructure around the model: a non-circular backtest, a fairness audit on every priced variable, and a gate that either produces the examiner's filing package or refuses to. That is what we built and what the demo proves on real public data.

How FloodProof works

Nine measured stages, from real OpenFEMA claims to a deterministic filing verdict. Nothing is hardcoded.

FloodProof live pipeline panel showing 9 completed stages over 135,381 real claims: read cached OpenFEMA records, keep paid building claims, engineer real building features, load CDC-SVI demographics and tract centroids, split 70/30 on seed 9 and fit the ridge composite, backtest against the FEMA zone at 1.694x, tally $3.1B paid outside high-risk zones, screen every variable for disparate impact, and a deterministic policy gate returning NOT FILING-READY with floors routed to a human.
The nine-stage pipeline runs live on each execution. The trust-critical numbers are plain numpy, computed outside any agent framework.

The scoring engine

A ridge composite of real OpenFEMA building attributes (building age, number of floors, elevated indicator, post-FIRM code, occupancy, obstruction) is fit on a 70% train split and scored on the held-out 30% test split. Insured coverage is deliberately excluded from the score because payment is mechanically bounded by it, which would make the backtest circular. The baseline is the real ratedFloodZone and the label is the real amountPaidOnBuildingClaim, both independent of the model.

The backtest and attribution

The held-out claims are ranked by composite and by FEMA zone, and the engine reports top-decile loss-dollar capture and Gini for each, alongside an exact linear-Shapley attribution of what drives the score. A fixed seed (SEED=9) makes the split reproducible, so the same run yields the same numbers.

The fairness audit

The disparate-impact screen runs over every priced variable, the composite score itself, insured building coverage, and each building attribute, against real tract-level minority share from CDC/ATSDR SVI. For each variable it computes the adverse-impact ratio and whether it sits inside the EEOC 80% rule band [0.80, 1.25].

The deterministic policy gate

The filing is marked ready only if the held-out sample is large enough, the composite lift over the FEMA zone clears the required minimum (1.10x or higher), and the adverse-impact ratio sits inside the band, plus a per-state filing checklist. If any variable fails, the gate emits NOT FILING-READY, names the worst offender, and routes it to human actuarial justification. Deny by default: filing_ready if and only if zero blocking findings.

The optional LLM crew

A Pydantic-AI crew of a factor-explainer, a fairness justifier paired with an adversarial challenger, and a filing-memo drafter can advise, but the gate decides. No API key is required. The agents abstain when none is present and the deterministic demo is unaffected. Every trust-critical number lives in plain numpy outside the agent framework.

What the demo proves on real data

Harris County, TX. Real OpenFEMA NFIP claims. Every number below is computed live.

Side-by-side FloodProof maps of the same Harris County book. Left, claims colored by FEMA flood-zone tier with dot size equal to real dollars paid. Right, the same claims colored by AI composite risk, with gold rings marking FEMA misses: properties FEMA rated safe that the composite scores high-risk. A red badge in the corner reads Compliance certificate NOT FILING-READY.
Same book, two maps. The FEMA-zone view and the AI-composite view of the identical Harris County claims, with the gold rings marking properties FEMA rated safe that the composite flags as high-risk.
FloodProof out-of-sample lift chart with headline stat cards: $3125.0M real building claims paid outside FEMA high-risk zones, 1.694x composite vs FEMA-zone top-decile capture lift, 45.9% share of all real claim dollars outside high-risk zones, and 40,615 held-out real claims in the backtest. A bar chart compares AI composite against FEMA zone only on top-decile claim-dollar capture and Gini.
The out-of-sample result: 1.694x top-decile capture lift on 40,615 held-out claims, Gini 0.31 vs 0.08.

On the 40,615 held-out real claims, the composite captures 1.69x the FEMA-zone baseline's top-decile loss dollars, with Gini 0.31 against the zone's 0.08. Because the score is fit on train and read on the held-out split, and the baseline and label are both independent of the model, this is a genuine out-of-sample result rather than a self-graded one.

The lift stays robust in roughly the 1.69x to 1.85x range across random seeds, so it is not a lucky split. The scope is one county book and one held-out 30% split, and we say so.

The audit does not pretend the AI is the problem. The composite score itself passes the 80% rule at AIR 0.938, screened against real CDC/ATSDR SVI tracts. But the screen runs on every priced variable, and 5 fail: the worst is number of floors at AIR 0.363, followed by insured value at 0.526, and, strikingly, FEMA's own zone tier at 1.467.

Catching a compliance risk in the data before the examiner does is the value. The gate then refuses to mark the filing ready and routes the worst offender, floors, to human actuarial justification.

FloodProof compliance certificate modal marked NOT FILING-READY. A disparate-impact table screens every rating variable against real CDC/ATSDR SVI 2022 tracts: the composite score passes at AIR 0.938, while 5 of the priced variables fail the 80% rule, worst being floors at 0.363, then insured building coverage at 0.526, and FEMA's own zone tier at 1.467. A red line notes the worst offender floors is routed to human actuarial justification and the rate is not auto-approved, with a per-state DOI filing checklist below.
The disparate-impact audit screens every priced variable. The composite passes at 0.938; 5 variables fail, including FEMA's own zone tier.
FloodProof State DOI Filing document titled AI-Augmented Flood Rating Factor for the Harris County, TX carrier book, stamped NOT FILING-READY. It contains an actuarial memorandum, an out-of-sample backtest table showing the composite captures 1.694x the FEMA zone's top-decile loss dollars with Gini 0.31 vs 0.08 on 40,615 real claims, and a feature-importance table of exact linear Shapley contributions.
The examiner-ready DOI filing package: actuarial memorandum, the out-of-sample backtest, and feature attribution, produced or blocked by the gate.

Where FloodProof fits, honestly

This is a demo of the mechanism, not a deployed pipeline. Here is exactly what is real and what is a stub.

Component In this demo Status
Claims, demographics, geography OpenFEMA FimaNfipClaims (170,803 records, 135,381 scored), CDC/ATSDR SVI 2022, Census Gazetteer 2023 Real, public, no API key
Scoring, backtest, fairness audit, gate Ridge composite, out-of-sample lift and Gini, disparate-impact screen, deterministic policy gate Real, plain numpy and Python
Vendor signal feeds (ZestyAI Z-FLOOD, ICEYE SAR-depth) Adapters behind a real schema, disclosed on screen as stubs Stub, documented production swap
Guidewire / Duck Creek connector Warm cached lookup at /api/score returning in under 50 ms Stub, not a live integration
Pydantic-AI crew (factor-explainer, fairness justifier, memo drafter) Advisory narrative only; abstains with no API key Optional, advisory, never decides
FloodProof rating-factor worksheet for a Harris County tract, with a Fetch rating factor via Guidewire connector control expanded. The console log labels it stub guidewire-integration-data-manager and returns a composite rating factor from a warm cached lookup, disclosed in the UI as a stub rather than a live integration.
The inline quote-bind story is concrete but honest: the Guidewire connector is a stubbed cached lookup, labeled as such in the UI.

What this demo does not do

  • It does not run a live ZestyAI, ICEYE, First Street, Guidewire, or Duck Creek feed. Those are stubs.
  • It does not claim DOI compliance or certification. The filing package is an evidence artifact, not legal advice, and no examiner has approved anything.
  • It does not present a modeled annual dollar-leakage figure. The honest lead is the real, unmodeled $3.1B paid outside FEMA high-risk zones plus the out-of-sample lift.
  • It does not use external rasters (impervious surface, DEM, NOAA Atlas-14). The composite uses OpenFEMA's own real building attributes; rasters are a documented future enrichment.
  • It has no customers, carriers, deployments, testimonials, or ROI. No named insurer has used this. It is a demo of the mechanism on one county book.
  • It does not pretend its own model is biased. The composite passes the 80% rule at AIR 0.938; the point is that the audit and gate catch the failing variables.

Questions underwriters and compliance teams ask

Does this replace the flood models we already buy, like ZestyAI or ICEYE?

No. FloodProof is not another flood model competing with ZestyAI or ICEYE. It is the integration and proof layer that sits around whatever model you use: a non-circular out-of-sample backtest against the real FEMA-zone baseline, a disparate-impact audit on every priced variable, and a deterministic gate that produces the examiner-ready DOI filing package or blocks it. That value holds at any model quality, because a better model that self-grades is not evidence and a better model that carries demographic signal is a filing your examiner rejects.

How do you know the composite's lift over the FEMA zone isn't just overfitting?

The backtest is non-circular by construction. The composite is fit on a 70% train split and scored on the held-out 30% it never saw, the baseline is the real FEMA rated zone, and the label is the real claim dollars paid. Both the baseline and the label are independent of the model, and insured coverage is deliberately excluded so the score cannot cheat off the payment bound. On 40,615 held-out real NFIP claims the composite captures 1.69x the FEMA-zone baseline's top-decile loss dollars (Gini 0.31 vs 0.08), and the result stays in roughly the 1.69x to 1.85x range across random seeds.

What does the gate actually do when a rating variable fails the 80% rule?

It refuses to mark the filing ready. The policy gate is deterministic Python with one invariant: filing_ready if and only if there are zero blocking findings. On this Harris County book the composite score itself passes the 80% rule at AIR 0.938, but the audit flags 5 priced variables that fail, worst being number of floors at AIR 0.363. The gate emits NOT FILING-READY, names the worst offender, and routes it to human actuarial justification instead of shipping a discriminatory rate. Agents advise, code decides.

Is this running on real claims data or a synthetic sample?

Real. The demo runs on 170,803 raw OpenFEMA NFIP claim records for Harris County, Texas, of which 135,381 with a paid building claim are scored, plus real CDC/ATSDR SVI 2022 tract demographics and the 2023 Census Gazetteer. It is public data with no API key, cached on first run. One honest caveat the demo discloses on screen: FEMA censors claim geocoordinates to roughly the tract centroid, so the backtest runs at the resolution public data allows.

Are the vendor feeds and the Guidewire connector live in this demo?

No, and the demo says so on screen. The ZestyAI Z-FLOOD and ICEYE SAR-depth feeds and the Guidewire Integration Data Manager connector are stubs behind a real schema. The connector endpoint is a warm cached lookup that returns in under 50 ms to make the inline quote-bind integration concrete. The production path is the documented config swap, not a rewrite, and the honest claim is a stub, not a live integration.

Does 'a rating factor your DOI examiner can approve' mean it is certified compliant?

No. The DOI filing package is an evidence artifact, an actuarial memorandum, the out-of-sample backtest, feature attribution, and a per-state checklist, not a certification or legal advice. 'Examiner can approve' is the design goal, not a guarantee any examiner has approved anything. No insurer has used this in production, and there are no deployments, customers, or case studies. As 24 or more states adopt the NAIC AI Model Bulletin, the point is that the gate produces the proof an examiner asks for and fails honestly when the data does not support a filing.

Technical Research

The research behind this demo — the architecture, the verification design, and the enterprise blueprint.

If you price flood risk, we would like to compare notes

The FEMA zone leaves billions outside its lines, and the fairness review is now part of the filing.

If your team is working out how to put an AI rating factor in front of a DOI examiner without shipping a variable that fails the 80% rule, we would genuinely like to hear how you are thinking about it. The problem is industry-wide and the answers will be too.

Portfolio pricing and fairness assessment

  • ✓ Non-circular out-of-sample backtest against your FEMA-zone baseline
  • ✓ Disparate-impact audit on every priced variable
  • ✓ Where the zone map misprices your book, by claim dollars
  • ✓ A read on which variables would fail a DOI review

Rating and filing engine build

  • ✓ Composite rating factor on your real attributes and vendor feeds
  • ✓ Deterministic policy gate: filing_ready if zero blocking findings
  • ✓ Examiner-ready DOI filing package with per-state checklists
  • ✓ Guidewire or Duck Creek connector, config swap not rewrite