
El problema
Los productores de maíz de temporal del valle de Toluca viven con más de 100 días de helada al año; en 2019 la helada afectó 3,511 ha de maíz de temporal solo en el distrito de Toluca. El pronóstico regional gratuito sale ~1.5 °C más cálido en las estaciones y detecta 1 de cada 4 noches de helada. Y cuando ya hubo pérdida, el programa estatal PASACME da 10 días naturales para reportarla.
Qué construí
Lo construimos en equipo (SysCallOx4, 4 personas) para el reto Small AI for Development del Banco Mundial, en Hack-Nation, del 3 al 4 de octubre de 2026, sector Agricultura. Quedamos en 4º lugar del hub de México.
Dentro del equipo me enfoqué en:
- El problem statement en el formato que pedía el reto, con la evidencia que lo respalda y la condición de no prometer habilidad lejos de una estación meteorológica.
- El guion del video en cinco partes, con tiempos, tomas y fuentes, y la hoja de grabación: quién presiona qué y en qué momento.
- La versión en inglés del README del repositorio del equipo.
- Las pruebas de la app en el teléfono, incluido el modo avión, y el contacto con productores para la grabación en campo.
Lo que hace el sistema que construyó el equipo:
- Un modelo LightGBM de 372 KB corrige el pronóstico de esa noche para cada parcela con lo que han medido las estaciones, y da una probabilidad de helada calibrada. El productor la escucha como nota de voz en español por WhatsApp.
- El mismo modelo, portado a JavaScript, corre en el teléfono sin señal.
- Una regla fija decide la alerta (probabilidad de helada ≥ 30%). Si faltan datos, la respuesta es «No estoy seguro, pregunte a su técnico», sin temperatura.
- Después de una pérdida, una nota de voz y fotos se vuelven un PDF de evidencia para PASACME, con voz a texto (faster-whisper) y reglas en español. Helada nunca decide la elegibilidad.
- El backend usa FastAPI, SQLite y una bitácora encadenada, y se despliega en AWS con CDK en dos etapas, dev y prod, desde un solo pipeline.
Arquitectura
Resultados
Estos son resultados del equipo, del backtest del modelo. Para cada método, el umbral de alerta se fija para que solo el 5% de las noches sin helada reciban alerta, y se cuentan las noches de helada detectadas.
| Dónde | Error del mínimo nocturno (pronóstico → Helada) | Noches de helada detectadas |
|---|---|---|
| Parcela cerca de una estación: temporada 2025-26, fuera del entrenamiento; 39 estaciones, 5,855 noches-estación, 503 con helada | 2.65 → 1.40 °C | 24.3% → 57.9% |
| Parcela sin estación cercana: 80 estaciones retenidas | 2.83 → 2.32 °C | 32.1% → 32.4% |
Cerca de una estación el modelo sí agrega habilidad. Lejos de una corrige el sesgo cálido, pero no detecta mejor las heladas que el pronóstico por defecto. El repositorio reporta 2,274 tests en verde: 2,216 de la app, 33 del modelo y 25 de infraestructura. Las tres demos están en vivo.
Límites conocidos
- La habilidad del modelo solo se sostiene cerca de las estaciones del SMN, y solo existen 2 temporadas de archivo de pronóstico para entrenar y evaluar.
- La voz a texto se probó con 12 notas de voces sintéticas, no con productores reales.
- El envío por WhatsApp Business no se probó en una cuenta real, el panel no tiene inicio de sesión y la tabla de recomendaciones aún no la firma un agrónomo.
- Es un proyecto de equipo: mi aporte se centró en el problema, la narrativa y las pruebas en teléfono.

