
Construí um modelo de inundação que bateu o mapa da FEMA. Depois ele se recusou a me deixar protocolá-lo.
Eu não esperava que o momento mais interessante ao construir esta demo fosse o software me dizendo não.
Eu tinha um fator de tarifação composto que ranqueava perdas reais por inundação melhor do que a zona de inundação da FEMA em dados que ele nunca tinha visto. Por todo instinto que tenho como construtor, essa é a vitória. Você lança. Em vez disso, o último estágio do pipeline acendeu em vermelho e imprimiu NÃO PRONTO PARA PROTOCOLAR, nomeou a pior variável e a roteou para um atuário humano. Meu próprio código havia decidido que a taxa da qual eu me orgulhava não era segura para protocolar. Fiquei ali por um minuto decidindo se aquilo era um bug ou o ponto inteiro.
Era o ponto inteiro. Este texto é sobre por que agora acho que o portão que se recusa a protocolar vale mais do que o modelo por trás dele.
A demo se chama FloodProof. Ela roda sobre uma carteira pública real de sinistros do National Flood Insurance Program do Condado de Harris, Texas, da OpenFEMA. Quando clico em Re-run Diagnostic, nove estágios executam ao vivo nos registros reais e terminam em menos de um segundo. Nada é hardcoded. Uma semente fixa torna a divisão reproduzível, então os números que vou citar se recalculam a cada execução.

O primeiro número que me fez parar foi um que nenhum modelo produziu
Eu fico voltando a esta cifra porque não fui eu quem a calculou: foram os sinistros. Dos dólares reais de sinistros de edifício pagos nesta carteira do Condado de Harris, $3,1 bilhões, que é 45,9%, foram pagos em propriedades que a FEMA classificou fora de suas zonas de alto risco (a Special Flood Hazard Area). Nenhum modelo. Nenhum score. Só uma soma sobre o livro-razão real. O mapa de zonas, a coisa à qual as seguradoras ainda ancoram as tarifas de inundação, estava silencioso em quase metade do dinheiro que de fato saiu pela porta.
Isso batia com o que eu tinha lido ao entrar. Mais de dois terços dos danos por inundação nos EUA ocorrem fora das zonas de alto risco da FEMA, e depois do furacão Harvey cerca de 70% dos sinistros de inundação do Condado de Harris vieram de fora daquelas zonas (pesquisa da página de solução da Veriprajna, 2026). Eu acreditava nisso como estatística. Pesa diferente quando você vê acumular na sua própria tela, tract por tract, como dólares reais.

O mapa de zonas não estava um pouco errado. Ele estava silencioso sobre $3,1 bilhões de perdas reais em uma única carteira de condado.
Então o mapa é um instrumento grosseiro. Todo mundo em precificação de inundação já sabe disso. A resposta do mercado tem sido comprar um modelo melhor de um fornecedor. Eu queria saber se o modelo melhor era de fato a parte difícil, ou se a parte difícil estava em algum lugar onde eu não estava olhando.
Seis atributos simples de edifício poderiam bater o mapa de zonas?
Eu não achava que uma regressão ridge comum fosse mover muito a agulha. O núcleo de pontuação é deliberadamente sem glamour: um composto ridge de atributos reais de edifício da OpenFEMA — idade do edifício, número de andares, um flag de elevação, conformidade pós-FIRM, ocupação e obstrução. Seis features honestas. Meu primeiro instinto foi também alimentar a cobertura segurada do edifício, porque cobertura se correlaciona com o pagamento. Me peguei. O pagamento é mecanicamente limitado pela cobertura, então incluí-la deixaria o score trapacear com a resposta e tornaria o backtest circular. Cortei. Essa única exclusão é a diferença entre uma demo e um truque de mágica.
O backtest é construído para ser não circular. Ajuste o composto em uma divisão de treino de 70%. Pontue-o nos 30% retidos que ele nunca viu, que são 40.615 sinistros reais. Compare-o com o ratedFloodZone real como baseline e o amountPaidOnBuildingClaim real como rótulo. Tanto a baseline quanto o rótulo são independentes do modelo, então uma vitória é uma vitória real fora da amostra, não uma autoavaliada.

Venceu por mais do que eu esperava. O composto capturou 1,694 vezes os dólares de perda do decil superior da zona FEMA nos sinistros retidos, com um Gini de 0,31 contra 0,08 da zona. Rerodei com sementes aleatórias para garantir que não tinha tirado uma divisão sortuda. O lift se manteve, cerca de 1,69 a 1,85 entre sementes. Seis atributos simples, ajustados com honestidade, bateram o mapa federal de inundação em dinheiro que nunca tinham visto.
E é exatamente aí que quase cometi o erro que o mercado inteiro está cometendo.
A percepção que reformulou toda a construção
Lembro de achar que a demo estava basicamente pronta naquele ponto, e de estar errado. Um modelo melhor que se avalia sozinho não é evidência. Se eu entrego a um atuário-chefe um fator e digo "confie em mim, ele bate a zona," entreguei a lição de casa com a minha própria nota escrita em cima. O valor nunca ia ser o modelo. Fornecedores como ZestyAI e ICEYE e First Street já vendem modelos fortes de inundação. A coisa durável é a infraestrutura chata em torno de qualquer modelo: um backtest que um cético não consegue descartar, uma auditoria de equidade pela qual o modelo não consegue se safar falando, e um portão que produz o protocolo ou se recusa a fazê-lo. Isso vale em qualquer qualidade de modelo, e por isso não envelhece conforme os modelos melhoram. Você pode ver o mecanismo e as divulgações honestas por si mesmo em veriprajna.com/pt-BR/demos/subscricao-de-risco-de-enchente-com-ia.
Um modelo melhor que se avalia sozinho não é evidência. É a sua lição de casa com a sua própria nota em cima.
Há uma segunda razão, mais dura, pela qual o modelo não pode ser a história inteira. Um fator que ranqueia bem a perda também pode carregar sinal demográfico, e uma taxa que falha em um teste de impacto desigual é um protocolo que o examinador do Department of Insurance rejeita. Ranquear bem e ser protocolável são duas perguntas diferentes. Eu tinha respondido a primeira. A segunda estava esperando.
Apontei a auditoria de equidade para o meu próprio modelo e esperei que ele fosse o vilão
Eu genuinamente me preparei para o meu composto ser o problema. A auditoria examina cada variável precificada contra a parcela real de minorias em nível de tract do Social Vulnerability Index CDC/ATSDR (lançamento de 2022), calcula uma razão de impacto adverso para cada uma e a checa contra a regra dos quatro quintos da EEOC, a faixa de 0,80 a 1,25 (29 CFR 1607.4(D)). Eu assumi que o score chamativo de IA seria o que carregava o proxy demográfico.
Não foi. O score composto em si passa com uma razão de impacto adverso de 0,938. Eu não construí a demo para fingir que meu próprio modelo é o vilão, e não é. Mas a auditoria examina tudo, e 5 das variáveis precificadas falham na regra dos 80%. A pior é o número de andares em 0,363. O valor segurado falha em 0,526. E a que genuinamente me surpreendeu: o próprio tier de zona da FEMA falha em 1,467, pior no lado alto do que meu composto em qualquer lado. A baseline que todo mundo trata como a âncora segura, neutra e abençoada pelo regulador carrega mais viés demográfico do que o fator de IA com o qual as pessoas estão nervosas.

Meu fator de IA passou no teste de equidade em 0,938. O tier de zona da FEMA falhou em 1,467.
Essa inversão é aquilo com que mais quero que um atuário reflita. O instinto de desconfiar do modelo e confiar no mapa está de cabeça para baixo nesta carteira.
Ele se bloqueou antes que eu pudesse protocolá-lo
Quero ser preciso sobre o que aconteceu em seguida, porque é a parte de que mais me orgulho e é código inteiramente sem drama. O portão de política é Python puro com uma regra: o protocolo está pronto só se a amostra retida for grande o bastante, o lift sobre a zona FEMA superar um mínimo exigido, e cada variável examinada estiver dentro da faixa de equidade. Negar por padrão. filing_ready se e somente se houver zero achados bloqueantes. Nesta carteira uma variável falhou, então o portão retornou NÃO PRONTO PARA PROTOCOLAR, nomeou andares como o pior ofensor e o roteou para justificação atuarial humana em vez de protocolar a taxa. Também rodou um checklist por estado, e o requisito de justificação por variável do Colorado apareceu como incompleto.
A parte opcional da stack é uma pequena equipe de agentes Pydantic-AI, um explicador de fator, um justificador de equidade pareado com um desafiante adversarial, e um redator de memorando de protocolo. Eles aconselham. Eles redigem a narrativa. Não podem sobrescrever o portão, e sem chave de API simplesmente se abstêm e o resultado determinístico permanece inalterado. Todo número crítico para confiança é numpy puro fora do framework de agentes. Agentes aconselham, o código decide. Os feeds de fornecedores (ZestyAI Z-FLOOD, ICEYE SAR-depth) e o conector Guidewire nesta build são stubs atrás de um schema real — a troca de produção documentada, não uma integração ao vivo. Prefiro dizer isso claramente a implicar um tubo que não está lá. O pacote completo, artefato de protocolo e tudo, está em veriprajna.com/pt-BR/demos/subscricao-de-risco-de-enchente-com-ia.
O que o portão produz quando de fato se recusa não é um beco sem saída. É um pacote de protocolo DOI pronto para o examinador: o memorando atuarial, a tabela de backtest fora da amostra, a atribuição de features, a tela de equidade e a declaração explícita do que foi roteado a um humano e por quê. É um artefato de evidência, não uma certificação, e não uma promessa de que algum examinador tenha aprovado qualquer coisa. É a trilha de papel que um examinador pede, montada antes que ele peça.
Eu continuo chamando isso de pegar o risco de conformidade antes que o examinador o faça. Esse é o valor para o comprador em uma linha. A alternativa é descobrir que sua taxa é discriminatória depois de protocolá-la, em uma carta, em público.
O que não sai da minha cabeça
Entrei nesta construção assumindo que estava construindo um modelo de inundação melhor, e saí convencido de que o modelo era a parte que menos importava. As divulgações honestas importam mais do que a acurácia. A FEMA censura as geocoordenadas do sinistro aproximadamente para o centróide do tract, então isto roda na resolução que os dados públicos honestamente permitem, e a demo diz isso na tela. O lift é uma carteira do Condado de Harris e uma divisão retida, não uma garantia de mundo aberto. Nomear esses limites não é uma fraqueza no pitch. É o pitch.
À medida que mais de 24 estados adotam o Boletim de Modelo de IA da NAIC, e a Circular 2024-7 do DFS de Nova York torna o teste de discriminação por proxy uma expectativa em vez de uma cortesia, o código que se recusa a protocolar deixa de ser papelada e passa a ser o produto. O fator de tarifação nunca foi a parte difícil. Prová-lo e governá-lo foi.
E se você preferir vê-lo decidir a acreditar na minha palavra, aqui está a coisa inteira rodando de ponta a ponta.
Então aqui está a pergunta que ainda não respondi por completo para mim mesmo, e eu genuinamente gostaria de ouvir a leitura de um atuário. Se a sua própria auditoria dissesse que o tier de zona da FEMA no qual você ancorou tarifas por anos falha no mesmo teste de equidade que você está prestes a aplicar a um novo fator de IA, em qual você para de confiar primeiro?


