
Construí un modelo de inundación que venció al mapa de FEMA. Luego se negó a dejarme presentarlo.
No esperaba que el momento más interesante al construir esta demo fuera que el software me dijera que no.
Tenía un factor de tarificación compuesto que clasificaba las pérdidas reales por inundación mejor que la zona de inundación de FEMA en datos que nunca había visto. Según todos mis instintos como constructor, eso es la victoria. Lo lanzas. En cambio, la última etapa del pipeline se encendió en rojo e imprimió NOT FILING-READY, nombró la peor variable y la envió a un actuario humano. Mi propio código había decidido que la tarifa de la que estaba orgulloso no era segura para presentar. Me quedé un minuto decidiendo si aquello era un error o todo el punto.
Era todo el punto. Este artículo trata de por qué ahora creo que la puerta que se niega a presentar vale más que el modelo que hay detrás.
La demo se llama FloodProof. Corre sobre un libro público real de reclamaciones del National Flood Insurance Program para el condado de Harris, Texas, de OpenFEMA. Cuando hago clic en Re-run Diagnostic, nueve etapas se ejecutan en vivo sobre los registros reales y terminan en menos de un segundo. Nada está fijado en el código. Una semilla fija hace reproducible la partición, así que los números que voy a citar se recalculan en cada ejecución.

El primer número que me detuvo fue uno que ningún modelo produjo
Sigo volviendo a esta cifra porque no la calculé yo: la calcularon las reclamaciones. De los dólares reales de reclamaciones de edificio pagados en este libro del condado de Harris, 3.100 millones de dólares, que es el 45,9 %, se pagaron en propiedades que FEMA clasificó fuera de sus zonas de alto riesgo (la Special Flood Hazard Area). Ningún modelo. Ninguna puntuación. Solo una suma sobre el libro real. El mapa de zonas, aquello a lo que las aseguradoras siguen anclando las tarifas de inundación, estaba en silencio sobre casi la mitad del dinero que realmente salió por la puerta.
Eso coincidía con lo que había leído de entrada. Más de dos tercios de los daños por inundación en EE. UU. ocurren fuera de las zonas de alto riesgo de FEMA, y tras el huracán Harvey aproximadamente el 70 % de las reclamaciones por inundación del condado de Harris vinieron de fuera de esas zonas (investigación de la página de soluciones de Veriprajna, 2026). Lo creí como estadística. Aterriza de otra manera cuando lo ves acumularse en tu propia pantalla, tracto a tracto, como dólares reales.

El mapa de zonas no estaba ligeramente equivocado. Estaba en silencio sobre 3.100 millones de dólares de pérdidas reales en el libro de un solo condado.
Así que el mapa es un instrumento tosco. Todo el mundo en la tarificación de inundación ya lo sabe. La respuesta del mercado ha sido comprar un mejor modelo a un proveedor. Yo quería saber si el mejor modelo era realmente la parte difícil, o si la parte difícil estaba en algún sitio donde no estaba mirando.
¿Podrían seis atributos sencillos de edificio vencer al mapa de zonas?
No pensaba que una regresión ridge ordinaria fuera a mover mucho la aguja. El núcleo de puntuación es deliberadamente poco glamuroso: un compuesto ridge de atributos reales de edificio de OpenFEMA, antigüedad del edificio, número de pisos, una bandera de elevado, cumplimiento del código post-FIRM, ocupación y obstrucción. Seis características honestas. Mi primer instinto fue alimentarlo también con la cobertura asegurada del edificio, porque la cobertura se correlaciona con el pago. Me detuve a tiempo. El pago está mecánicamente acotado por la cobertura, así que incluirla permitiría que la puntuación hiciera trampa con la respuesta y haría circular el backtest. La eliminé. Esa única eliminación es la diferencia entre una demo y un truco de magia.
El backtest está construido para no ser circular. Ajusto el compuesto en una partición de entrenamiento del 70 %. Lo puntúo en el 30 % retenido que nunca vio, que son 40.615 reclamaciones reales. Compáralo con el ratedFloodZone real como línea base y el amountPaidOnBuildingClaim real como etiqueta. Tanto la línea base como la etiqueta son independientes del modelo, así que una victoria es una victoria real fuera de muestra, no una autoevaluada.

Ganó por más de lo que esperaba. El compuesto capturó 1,694 veces los dólares de pérdida del decil superior de la zona FEMA en las reclamaciones retenidas, con un Gini de 0,31 frente al 0,08 de la zona. Lo volví a ejecutar con semillas aleatorias para asegurarme de que no había sacado una partición afortunada. La mejora se mantuvo, aproximadamente de 1,69 a 1,85 entre semillas. Seis atributos sencillos, ajustados con honestidad, vencieron al mapa federal de inundación con dinero que nunca habían visto.
Y ahí es exactamente donde casi cometí el error que está cometiendo todo el mercado.
La revelación que replanteó toda la construcción
Recuerdo pensar que la demo estaba básicamente terminada en ese punto, y estar equivocado. Un modelo mejor que se califica a sí mismo no es evidencia. Si le entrego a un actuario jefe un factor y le digo «confía en mí, vence a la zona», le he entregado mi deber con mi propia nota escrita encima. El valor nunca iba a ser el modelo. Proveedores como ZestyAI e ICEYE y First Street ya venden modelos de inundación sólidos. Lo durable es la infraestructura aburrida alrededor de cualquier modelo: un backtest que un escéptico no puede descartar, una auditoría de equidad de la que el modelo no puede escabullirse, y una puerta que produce la presentación o se niega. Eso vale sea cual sea la calidad del modelo, por eso no caduca a medida que los modelos mejoran. Puedes ver el mecanismo y las divulgaciones honestas por ti mismo en veriprajna.com/es/demos/suscripcion-de-riesgo-de-inundacion-con-ia.
Un modelo mejor que se califica a sí mismo no es evidencia. Es tu deber con tu propia nota encima.
Hay una segunda razón, más dura, por la que el modelo no puede ser toda la historia. Un factor que clasifica bien la pérdida también puede cargar señal demográfica, y una tarifa que falla una prueba de impacto dispar es una presentación que el examinador del Department of Insurance rechaza. Clasificar bien y ser apto para presentar son dos preguntas distintas. Yo había respondido la primera. La segunda estaba esperando.
Apunté la auditoría de equidad a mi propio modelo y esperaba que fuera el villano
De verdad me preparé para que mi compuesto fuera el problema. La auditoría criba cada variable tarificada contra la proporción real de minorías a nivel de tracto del Índice de Vulnerabilidad Social CDC/ATSDR (versión 2022), calcula una ratio de impacto adverso para cada una y la comprueba frente a la regla de las cuatro quintas partes de la EEOC, la banda de 0,80 a 1,25 (29 CFR 1607.4(D)). Asumí que la vistosa puntuación de IA sería la que cargaba el proxy demográfico.
No lo era. La puntuación del compuesto en sí aprueba con una ratio de impacto adverso de 0,938. No construí la demo para fingir que mi propio modelo es el malo, y no lo es. Pero la auditoría criba todo, y 5 de las variables tarificadas fallan la regla del 80 %. La peor es el número de pisos en 0,363. El valor asegurado falla en 0,526. Y la que de verdad me sorprendió: el propio nivel de zona de FEMA falla en 1,467, peor por el lado alto de lo que mi compuesto lo es en cualquier lado. La línea base que todos tratan como el ancla segura, neutra y bendecida por el regulador carga más sesgo demográfico que el factor de IA del que la gente se pone nerviosa.

Mi factor de IA aprobó la prueba de equidad en 0,938. El nivel de zona de FEMA la falló en 1,467.
Esa inversión es lo que más quiero que un actuario se quede pensando. El instinto de desconfiar del modelo y confiar en el mapa lo tiene al revés en este libro.
Se bloqueó a sí mismo antes de que yo pudiera presentarlo
Quiero ser preciso sobre lo que pasó después, porque es la parte de la que estoy más orgulloso y es código enteramente poco dramático. La puerta de política es Python puro con una sola regla: la presentación está lista solo si la muestra retenida es lo bastante grande, la mejora sobre la zona FEMA supera un mínimo exigido, y cada variable cribada se sitúa dentro de la banda de equidad. Denegar por defecto. filing_ready si y solo si hay cero hallazgos bloqueantes. En este libro una variable falló, así que la puerta devolvió NOT FILING-READY, nombró los pisos como el peor infractor y los envió a justificación actuarial humana en lugar de lanzar la tarifa. También ejecutó una lista de comprobación por estado, y el requisito de Colorado de justificación por variable apareció como incompleto.
La parte opcional de la pila es un pequeño equipo de agentes Pydantic-AI, un explicador de factores, un justificador de equidad emparejado con un retador adversario, y un redactor de memorandos de presentación. Aconsejan. Redactan la narrativa. No pueden anular la puerta, y sin una clave API simplemente se abstienen y el resultado determinista no cambia. Cada número crítico para la confianza es numpy plano fuera del marco de agentes. Los agentes aconsejan, el código decide. Los feeds de proveedores (ZestyAI Z-FLOOD, ICEYE SAR-depth) y el conector Guidewire en esta build son stubs detrás de un esquema real, el intercambio de producción documentado, no una integración en vivo. Prefiero decirlo con claridad que implicar una tubería que no está ahí. El paquete completo, artefacto de presentación y todo, está en veriprajna.com/es/demos/suscripcion-de-riesgo-de-inundacion-con-ia.
Lo que la puerta produce cuando sí se niega no es un callejón sin salida. Es un paquete de presentación ante el DOI listo para el examinador: el memorándum actuarial, la tabla de backtest fuera de muestra, la atribución de características, la criba de equidad y la declaración explícita de qué se envió a un humano y por qué. Es un artefacto de evidencia, no una certificación, y no una promesa de que algún examinador haya aprobado algo. Es el rastro documental que un examinador pide, ensamblado antes de que lo pida.
Sigo llamando a esto atrapar el riesgo de cumplimiento antes de que lo haga el examinador. Ese es el valor para el comprador en una línea. La alternativa es enterarte de que tu tarifa es discriminatoria después de haberla presentado, en una carta, en público.
Lo que no dejo de pensar
Entré en esta construcción asumiendo que estaba construyendo un mejor modelo de inundación, y salí convencido de que el modelo era la parte que menos importaba. Las divulgaciones honestas importan más que la exactitud. FEMA censura las geocoordenadas de las reclamaciones aproximadamente al centroide del tracto, así que esto corre a la resolución que los datos públicos permiten con honestidad, y la demo lo dice en pantalla. La mejora es un libro del condado de Harris y una partición retenida, no una garantía de mundo abierto. Nombrar esos límites no es una debilidad del discurso. Es el discurso.
A medida que más de 24 estados adoptan el Boletín sobre Modelos de IA de la NAIC, y la Circular 2024-7 del DFS de Nueva York convierte las pruebas de discriminación por proxy en una expectativa más que en una cortesía, el código que se niega a presentar deja de ser papeleo y empieza a ser el producto. El factor de tarificación nunca fue la parte difícil. Probarlo y gobernarlo sí lo fue.
Y si prefieres verlo decidir antes que creerme de palabra, aquí está todo el asunto corriendo de punta a punta.
Así que aquí está la pregunta que no me he respondido del todo a mí mismo, y de verdad me gustaría oír la opinión de un actuario. Si tu propia auditoría te dijera que el nivel de zona FEMA al que has anclado tarifas durante años falla la misma prueba de equidad que estás a punto de aplicar a un nuevo factor de IA, ¿en cuál dejas de confiar primero?


