- An AI flood-pricing factor we built passed its own fairness audit at AIR 0.938. The FEMA flood zone it was meant to replace failed the same test at 1.467. Then the code blocked the rate filing anyway. 🧵
- Flood rates anchor to the FEMA zone (AE vs X). But in this real Harris County, TX book of NFIP claims, $3.1B (45.9%) of building-claim dollars were paid on properties FEMA rated OUTSIDE its high-risk zones. Unmodeled. Straight from the data.
- So we fit a composite of real building attributes on a 70% train split and scored the held-out 30%. On 40,615 unseen real claims it captured 1.69x the FEMA zone's top-decile loss dollars, Gini 0.31 vs 0.08. Baseline and label both independent of the model, so the lift is real.
- The part most pricing stacks skip: a better factor that carries demographic signal is a filing your DOI examiner rejects. So we screen every priced variable for disparate impact against real census-tract demographics, and hold our own composite to the same rule.
- The result: the composite passes the 80% rule at AIR 0.938. But 5 priced variables fail the EEOC band [0.80, 1.25]. Worst is number of floors at 0.363, then insured value at 0.526, and, strikingly, FEMA's own zone tier at 1.467.
- An adverse-impact ratio outside [0.80, 1.25] means a variable's outcomes skew past the 80% rule against protected-group share. 0.363 and 1.467 both breach it. The audit caught the compliance risk in FEMA's own baseline, not just in the new model.
- Then the deterministic gate runs. filing_ready holds only when there are zero blocking findings, deny by default. With floors failing, it emits NOT FILING-READY, names floors the worst offender, and routes it to human actuarial justification instead of shipping the rate.
- The LLM crew (a factor-explainer, a fairness justifier, an adversarial challenger) only advises. Agents advise, code decides. The gate is pure Python, every trust-critical number is plain numpy, and no API key is needed to reach the verdict.
- The durable point isn't a better flood model, vendors already sell those (and the ZestyAI, ICEYE, and Guidewire feeds here are stubs). It's the non-circular backtest, the audit on every variable, and the gate that blocks its own filing. That holds at any model quality.
- When your pricing model passes a bias audit but a legacy variable like the FEMA zone fails it, should the gate block the filing or ship with that variable flagged? Curious how actuaries and fairness engineers draw that line. #Insurtech #Actuarial #MLFairness #AIGovernance
- We built this on real public data (OpenFEMA claims, CDC SVI, Census Gazetteer), one Harris County book, one held-out split, numbers recompute live and vary by seed. Watch FloodProof run: https://veriprajna.com/demos/flood-risk-underwriting
Published on X · July 21, 2026
On social media
See this post on its original platform
In our archive