FloodProof bouwen leerde me: de overstromingsfactor was makkelijk. Het out-of-sample-bewijs en de poort die een discriminerend tarief blokkeert waren het moeilijke deel.
InsurtechMachine LearningAI Governance

Ik bouwde een overstromingsmodel dat FEMA's kaart versloeg. Toen liet het me niet toe het in te dienen.

Ashutosh SinghalAshutosh Singhal26 juni 202611 min

Ik had niet verwacht dat het interessantste moment bij het bouwen van deze demo zou zijn dat de software nee tegen me zei.

Ik had een composiet-ratingfactor die echte overstromingsverliezen beter rangschikte dan de FEMA-overstromingszone op data die hij nog nooit had gezien. Volgens elk instinct dat ik als bouwer heb, is dat de overwinning. Die ship je. In plaats daarvan ging de laatste fase van de pipeline rood branden en drukte NOT FILING-READY af, noemde precies de slechtste variabele, en stuurde die door naar een menselijke actuaris. Mijn eigen code had besloten dat het tarief waar ik trots op was niet veilig was om in te dienen. Ik zat er een minuut over na te denken of dat een bug was of juist het hele punt.

Het was het hele punt. Dit stuk gaat over waarom ik nu denk dat de poort die weigert in te dienen meer waard is dan het model erachter.

De demo heet FloodProof. Hij draait op een echt openbaar boek van National Flood Insurance Program-claims voor Harris County, Texas, van OpenFEMA. Als ik op Re-run Diagnostic klik, voeren negen fasen live uit op de echte records en zijn ze binnen een seconde klaar. Niets is hardcoded. Een vaste seed maakt de split reproduceerbaar, zodat de cijfers die ik zo ga noemen bij elke run opnieuw worden berekend.

FloodProof die zijn pijplijn van negen fasen live uitvoert op 170.803 echte NFIP-records voor Harris County, eindigend op de deterministische beleidspoort gemarkeerd als NOT FILING-READY, waarbij floors naar een mens worden gestuurd.
De live pijplijn: 170.803 echte OpenFEMA-claimrecords in, 135.381 met een uitbetaald gebouwverlies gescoord, en de laatste fase is een deterministische poort die NOT FILING-READY teruggeeft en floors naar een menselijke actuaris stuurt.

Het eerste cijfer dat me deed stoppen was er een dat geen model produceerde

Ik kom steeds terug bij dit getal omdat ik het niet heb berekend, de claims deden dat. Van de echte gebouwclaimdollars die in dit Harris County-boek zijn uitbetaald, was $3,1 miljard, oftewel 45,9%, uitbetaald op panden die FEMA buiten zijn hoogrisicozones had gewaardeerd (het Special Flood Hazard Area). Geen model. Geen score. Alleen een som over het echte grootboek. De zonekaart, het ding waaraan carriers overstromingstarieven nog steeds verankeren, was stil over bijna de helft van het geld dat daadwerkelijk de deur uit ging.

Dat paste bij wat ik van tevoren had gelezen. Meer dan tweederde van de Amerikaanse overstromingsschade valt buiten FEMA's hoogrisicozones, en na orkaan Harvey kwam ruwweg 70% van de overstromingsclaims in Harris County van buiten die zones (Veriprajna solution-page research, 2026). Ik geloofde het als statistiek. Het komt anders binnen als je het tract voor tract op je eigen scherm ziet oplopen, als echte dollars.

De FloodProof-kaart omgeschakeld naar de AI-composietweergave, gouden ringen markeren panden die FEMA als veilig had gewaardeerd maar die echte hoogrisicoverliezen droegen, met $3125,0M en 45,9% van de claimdollars uitbetaald buiten FEMA-hoogrisicozones.
Schakel de kaart van FEMA-zone naar AI-composiet en de gouden ringen verschijnen: echte claims die FEMA buiten zijn hoogrisicolijnen had gewaardeerd en die de composiet als hoog risico scoort. De ongemodelleerde kop staat in de hoek, $3125,0M, 45,9% van de uitbetaalde dollars, buiten de zones.
De zonekaart zat er niet een beetje naast. Hij was stil over $3,1 miljard aan echte verliezen in één enkel county-boek.

Dus de kaart is een bot instrument. Iedereen in overstromingsprijsstelling weet dat al. Het antwoord van de markt is een beter model van een vendor te kopen. Ik wilde weten of het betere model echt het moeilijke deel was, of dat het moeilijke deel ergens lag waar ik niet naar keek.

Konden zes gewone gebouwattributen de zonekaart verslaan?

Ik dacht niet dat gewone ridge-regressie veel zou veranderen. De scoringkern is bewust saai: een ridge-composiet van echte OpenFEMA-gebouwattributen, gebouwleeftijd, aantal floors, een elevated-vlag, post-FIRM-codecompliance, occupancy en obstruction. Zes eerlijke features. Mijn eerste instinct was om ook de insured building coverage erin te stoppen, omdat coverage correleert met uitbetaling. Ik betrapte mezelf. Uitbetaling is mechanisch begrensd door coverage, dus die meenemen zou de score van het antwoord laten spieken en de backtest circulair maken. Ik sneed hem eruit. Die ene verwijdering is het verschil tussen een demo en een goocheltruc.

De backtest is zo gebouwd dat hij niet-circulair is. Fit de composiet op een 70%-trainsplit. Score hem op de hold-out 30% die hij nooit heeft gezien, dat zijn 40.615 echte claims. Vergelijk hem met de echte ratedFloodZone als baseline en de echte amountPaidOnBuildingClaim als label. Zowel de baseline als het label zijn onafhankelijk van het model, dus een overwinning is een echte out-of-sample-overwinning, geen zelfbeoordeelde.

De out-of-sample-liftgrafiek in FloodProof: de AI-composiet vangt 1,694 keer de top-decile-verliesdollars van de FEMA-zone over 40.615 hold-outclaims, met de composietbalk ver boven de alleen-FEMA-zone-balk.
Het hold-outresultaat: op 40.615 echte claims vangt de composiet 1,694 keer de top-decile-verliesdollars van de FEMA-zone-baseline, Gini 0,31 tegenover 0,08 van de zone. Gefit op 70% van de echte claims, gescoord op de 30% die hij nooit heeft gezien.

Hij won met meer dan ik verwachtte. De composiet ving 1,694 keer de top-decile-verliesdollars van de FEMA-zone op de hold-outclaims, met een Gini van 0,31 tegenover 0,08 van de zone. Ik draaide hem opnieuw over willekeurige seeds om zeker te weten dat ik geen gelukkige split had getrokken. De lift hield stand, ruwweg 1,69 tot 1,85 over seeds. Zes gewone attributen, eerlijk gefit, versloegen de federale overstromingskaart op geld dat ze nog nooit hadden gezien.

En precies daar maakte ik bijna de fout die de hele markt maakt.

Het inzicht dat de hele build herkaderde

Ik herinner me dat ik dacht dat de demo op dat punt in feite klaar was, en dat ik het mis had. Een beter model dat zichzelf beoordeelt is geen bewijs. Als ik een chief actuary een factor geef en zeg "vertrouw me, hij verslaat de zone," heb ik hun mijn huiswerk overhandigd met mijn eigen cijfer erbovenop. De waarde zou nooit het model zijn. Vendors zoals ZestyAI en ICEYE en First Street verkopen al sterke overstromingsmodellen. Het duurzame ding is de saaie infrastructuur rond elk model: een backtest die een scepticus niet kan wegwuiven, een fairness-audit waar het model zich niet omheen kan praten, en een poort die de indiening produceert of weigert. Dat houdt stand bij elke modelkwaliteit, en precies daarom veroudert het niet naarmate de modellen verbeteren. Je kunt het mechanisme en de eerlijke disclosures zelf zien op veriprajna.com/nl/demos/ai-gestuurde-acceptatie-van-overstromingsrisico-s.

Een beter model dat zichzelf beoordeelt is geen bewijs. Het is je huiswerk met je eigen cijfer erop.

Er is een tweede, hardere reden waarom het model niet het hele verhaal kan zijn. Een factor die verlies goed rangschikt kan ook demografisch signaal meedragen, en een tarief dat een disparate-impact-test faalt is een indiening die de examiner van het Department of Insurance afwijst. Goed rangschikken en indienbaar zijn zijn twee verschillende vragen. Ik had de eerste beantwoord. De tweede lag te wachten.

Ik richtte de fairness-audit op mijn eigen model en verwachtte dat hij de boosdoener zou zijn

Ik maakte me oprecht klaar dat mijn composiet het probleem zou zijn. De audit screent elke geprijsde variabele tegen het echte tract-niveau minority share uit de CDC/ATSDR Social Vulnerability Index (release 2022), berekent voor elk een adverse-impact ratio, en toetst die aan de EEOC four-fifths rule, de band van 0,80 tot 1,25 (29 CFR 1607.4(D)). Ik nam aan dat de flitsende AI-score degene zou zijn die de demografische proxy droeg.

Dat was hij niet. De composietscore zelf slaagt met een adverse-impact ratio van 0,938. Ik heb de demo niet gebouwd om te pretenderen dat mijn eigen model de slechterik is, en dat is hij niet. Maar de audit screent alles, en 5 van de geprijsde variabelen falen de 80%-regel. De slechtste is number of floors op 0,363. Insured value faalt op 0,526. En degene die me oprecht verraste: FEMA's eigen zonetier faalt op 1,467, erger aan de hoge kant dan mijn composiet aan welke kant dan ook. De baseline die iedereen behandelt als het veilige, neutrale, door de toezichthouder gezegende anker, draagt meer demografische scheefheid dan de AI-factor waar mensen nerveus van worden.

Het FloodProof-compliancecertificaat: composietscore slaagt voor de 80%-regel bij AIR 0,938, vijf geprijsde variabelen falen waaronder floors op 0,363, insured coverage op 0,526, en FEMA-zonetier op 1,467, met het oordeel NOT FILING-READY.
Elke geprijsde variabele gescreend tegen echte CDC SVI-tracts. De composiet slaagt op 0,938. Vijf falen: floors 0,363, insured coverage 0,526, FEMA's eigen zonetier 1,467. De poort markeert de indiening daarna als NOT FILING-READY en stuurt floors door naar menselijke actuariële rechtvaardiging.
Mijn AI-factor slaagde voor de fairnesstest op 0,938. FEMA's zonetier faalde hem op 1,467.

Die inversie is het ding waar ik een actuaris het meest bij wil laten stilstaan. Het instinct om het model te wantrouwen en de kaart te vertrouwen heeft het op dit boek precies omgekeerd.

Hij blokkeerde zichzelf voordat ik hem kon indienen

Ik wil precies zijn over wat er daarna gebeurde, omdat het het deel is waar ik het meest trots op ben en het is volledig onspectaculaire code. De beleidspoort is pure Python met één regel: de indiening is klaar alleen als de hold-outsteekproef groot genoeg is, de lift over de FEMA-zone een vereist minimum haalt, en elke gescreende variabele binnen de fairness-band zit. Standaard weigeren. filing_ready dan en slechts dan als er nul blokkerende bevindingen zijn. Op dit boek faalde een variabele, dus de poort gaf NOT FILING-READY terug, noemde floors als de ergste overtreder, en stuurde die door naar menselijke actuariële rechtvaardiging in plaats van het tarief te shippen. Hij draaide ook een checklist per staat, en Colorado's eis van rechtvaardiging per variabele kwam terug als incompleet.

Het optionele deel van de stack is een klein team Pydantic-AI-agents, een factor-explainer, een fairness-justifier gekoppeld aan een adversarial challenger, en een filing-memo-drafter. Ze adviseren. Ze stellen het narratief op. Ze kunnen de poort niet overrulen, en zonder API-sleutel onthouden ze zich simpelweg en blijft het deterministische resultaat ongewijzigd. Elk trust-kritisch cijfer is plain numpy buiten het agent-framework. Agents adviseren, code beslist. De vendorfeeds (ZestyAI Z-FLOOD, ICEYE SAR-depth) en de Guidewire-connector in deze build zijn stubs achter een echt schema, de gedocumenteerde productiewissel, geen live-integratie. Dat zeg ik liever botweg dan een pijp te suggereren die er niet is. Het volledige pakket, filing artifact en al, staat op veriprajna.com/nl/demos/ai-gestuurde-acceptatie-van-overstromingsrisico-s.

Wat de poort produceert wanneer hij wél weigert is geen doodlopende weg. Het is een examiner-klaar DOI-indieningspakket: het actuariële memorandum, de out-of-sample-backtesttabel, de feature attribution, de fairness-screen, en de expliciete verklaring van wat naar een mens is gestuurd en waarom. Het is een evidence artifact, geen certificering, en geen belofte dat enige examiner iets heeft goedgekeurd. Het is het paper trail dat een examiner vraagt, samengesteld voordat hij vraagt.

Ik blijf dit noemen: het compliance-risico vangen vóórdat de examiner dat doet. Dat is de buyer value in één zin. Het alternatief is ontdekken dat je tarief discriminerend is nadat je het hebt ingediend, in een brief, in het openbaar.

Waar ik bij blijf stilstaan

Ik ging deze build in met de aanname dat ik een beter overstromingsmodel aan het bouwen was, en ik ging eruit overtuigd dat het model het deel was dat het minst uitmaakte. De eerlijke disclosures wegen zwaarder dan de accuracy. FEMA maskeert de claim-geocoördinaten tot ongeveer het tract-centroid, dus dit draait op de resolutie die openbare data eerlijk toelaat, en de demo zegt dat op het scherm. De lift is één Harris County-boek en één hold-outsplit, geen open-world-garantie. Die limieten benoemen is geen zwakte in de pitch. Het is de pitch.

Naarmate meer dan 24 staten het NAIC AI Model Bulletin overnemen, en New York DFS Circular Letter 2024-7 proxy-discriminatietests tot een verwachting maakt in plaats van een gunst, houdt de code die weigert in te dienen op papierwerk te zijn en begint hij het product te zijn. De ratingfactor was nooit het moeilijke deel. Die bewijzen en besturen was dat wel.

En als je het liever ziet beslissen dan mijn woord ervoor te nemen, hier draait het hele ding van begin tot eind.

Dus hier is de vraag die ik voor mezelf nog niet volledig heb beantwoord, en ik zou oprecht graag de mening van een actuaris horen. Als je eigen audit je vertelde dat de FEMA-zonetier waaraan je jarenlang tarieven hebt verankerd dezelfde fairnesstest faalt die je zo op een nieuwe AI-factor gaat toepassen, welke stop je dan als eerste te vertrouwen?

Gerelateerd onderzoek

Ook gepubliceerd op

Bouw uw AI met vertrouwen.

Werk samen met een team met diepgaande ervaring in het bouwen van de volgende generatie enterprise-AI. Laat ons u helpen bij het ontwerpen, bouwen en implementeren van een AI-strategie waarop u kunt vertrouwen.

Veriprajna Deep Tech-adviesbureau is gespecialiseerd in het bouwen van veiligheidskritische AI-systemen voor de gezondheidszorg, de financiële sector en gereguleerde domeinen. Onze architecturen worden gevalideerd aan de hand van gevestigde protocollen met uitgebreide compliancedocumentatie.