Vehicle Vision · el nuevo lector de placas de Kigo, del oficial en la calle al conductor en WhatsApp.
1.24 M
trazas LPR en producción desde julio de 2025
5,207
consultas LPR en el pico de un solo día
1 foto
cuatro campos: placa, marca, modelo y color
Lectura
Placa
XVN-875-C
Marca
Chevrolet
Modelo
Aveo
Color
Negro
Problem
La foto ya existía. Nadie la leía.
El oficial tomaba la foto del vehículo… y escribía la placa a mano.
Con LPR (Geosek), ~1.7% de las consultas terminaba en 404 → placa escrita a pulso.
Marca, modelo y color no llegaban: la multa salía a medias.
Costo: segundos por consulta, errores de dedo, capturas incompletas.
1.7% → 1.6%tasa de 404 real hoy (30-oct, 183 lecturas): de Geosek al motor nuevo con fix
~10%lecturas marcadas «dudosa» que se descartaban
3campos que el oficial terminaba escribiendo
Problem → Build
El motor nuevo, medido con fotos reales
300 fotos LPR reales de prod (22-oct) contra el motor anterior.
266 coincidencias (88.7%). En las 8 discrepancias: nuevo 5, anterior 2, 1 ilegible.
Además de placa: marca, modelo y color, cada uno con su confianza.
Si la lectura es dudosa, se marca (needs_review) en vez de inventarse.
266/300coincidencias con el motor anterior
5 vs 2desempate en las discrepancias revisadas
4 camposplaca · marca · modelo · color
Impacto
Geosek vs Vehicle Vision: lectura de placa
Medido con fotos reales de producción, con la placa de cada una etiquetada a mano.
90.1% → 95.7%de acierto en la lectura de placa, de Geosek a Vehicle Vision
−81%errores que salen sin aviso: de 16 a 3, de Geosek a Vehicle Vision
Build
Cuatro capas, una sola llave
1Motorkigo-vehicle-vision
No lo escribimos, lo integramos. Expone POST /plate y POST /mmc.
2Enforcementel portero
/agents/vehicle-vision/{plate,mmc} con sesión de oficial · /internal/vehicle-vision/plate servicio→servicio con llave propia.
3BFFsofficer · guard · whatsapp-pay
Consumen por HTTP. El teléfono nunca habla con el motor.
4Appkigo-officer-app
Pinta la lectura; el catálogo de kz-spatial (kz-core-domains-svc) es la fuente maestra de marca, modelo y color.
Reglas que no se rompen: la llave no sale del server · la foto no se loguea · el motor no la guarda.
Build
Lo que exponemos
Ruta
Quién la usa
Para qué
POST /agents/vehicle-vision/plate
App del oficial
Placa de la foto, con confianza y candidatos
POST /agents/vehicle-vision/mmc
App del oficial
Marca, modelo y color (detailed opcional)
POST /internal/vehicle-vision/plate
BFFs (servicio→servicio)
Placa con llave propia y DTO camelCase
POST /api/v1/officer/vehicle-vision/read
App del oficial
Placa + mmc en paralelo; parcial si mmc falla
POST /api/v1/guard/plate-readings
App de Seguridad
Placa sugerida desde la foto
POST /api/v1/whatsapp-pay/plates/read
Mini app de pago
Placa del conductor (PR abierto)
Impacto · La app nueva
Dos municipios ya trabajan con ella
Apizaco y Zapopan pasaron a la app nueva en menos de dos semanas. Una sola app para todos los municipios, más rápida, con la foto trabajando por el oficial y el servidor cuidando las reglas.
99.8%de las multas de Apizaco y Zapopan ya salen de la app nueva
513 de 514 multas, del 16 al 30 de octubre
16 → 117multas al día en Zapopan, en su primera semana con la app
27 y 29 de octubre
2,441placas verificadas esta semana, 94.1 % con respuesta
Apizaco 1,510 · Zapopan 931
La app nuevaRecorrido por la app del oficial
Antes · app legacyAhora · app nueva
Dos apps distintas: Puebla y el restoUna sola app para todos los municipios
Una placa por toque, parado frente a cada autoVerificación en lote recorriendo la calle
Placa, marca y color escritos a manoLa foto los llena; el oficial confirma
Dirección y motivo fijos dentro del códigoLas reglas viven en el servidor
Cada cambio del servidor obligaba a reinstalarSe despliega en el servidor, sin tocar el teléfono
De 50 a 200 peticiones al iniciar sesiónUna sola, y 92 % de las veces desde caché
0.27spara iniciar sesión (mediana)
0.49spara emitir una multa con validez legal
99.7%de las peticiones sin error de servidor
1,700+pruebas automatizadas en cada release
Fuente: logs de producción de kz-officer-bff, kigo-enforcement y zapopan-worker, del 1 al 30 de octubre de 2026 (corte a las 13:15 h). Las verificaciones son de esta semana, del lunes 26 al viernes 30.
Demo · Vehicle Vision
Una foto. Cuatro campos. 1.2 segundos.
El oficial apunta, toma la foto y la app ya sabe qué auto tiene enfrente: placa, marca, modelo y color, cada uno con su confianza. Lo que antes se escribía a mano frente al conductor, ahora se confirma con un toque.
Foto del oficialUTA-123-B
PlacaUTA123B0.98
MarcaNissan0.91
ModeloVersa⚠ Verifica
ColorNegro0.95
1,859lecturas esta semana desde la app del oficial
100%de las lecturas respondidas por el motor esta semana
1.2spor lectura (mediana), los cuatro campos juntos
×94lecturas al día en 5 días: de 10 (24 oct) a 938 (29 oct)
Demo · Vehicle Vision en vivoVideo vertical: de la foto a «Revisar lectura» con los cuatro campos llenos
Cero tecladoLa placa, la marca y el color ya no se escriben frente al conductor.
No inventaSi una lectura es dudosa, la marca con «⚠ Verifica» y el oficial decide.
Multas completasLa infracción sale con el vehículo descrito, no solo con la placa.
Un motor, tres frentesEl oficial, el guardia y el conductor en WhatsApp leen con el mismo motor.
Ejemplo ilustrativo, sin datos reales. Cifras: logs de producción de kz-officer-bff (POST /vehicle-vision/read), del lunes 26 al viernes 30 de octubre de 2026 (corte a las 13:15 h).
Adopción · Del oficial al conductor
El lector de placas llega a WhatsApp
Por eso hablamos de la mini app de WhatsApp: es el primer producto para conductores que adopta el nuevo lector. Al registrar su vehículo, el conductor elige Automático, toma una foto y la placa, la marca y el color de su propio auto se llenan solos.
Demo · registro del vehículoVideo vertical del flujo en la mini app de WhatsAppviernes-kigo/whatsapp-registro.mp4
Registra tu vehículoEl conductor elige entre Manual y Automático.
Toma la fotoUna foto de su auto, desde el chat. Si no salió bien, «Retomar».
Placa, marca y color, ya llenosLa marca se confirma contra el catálogo y el color se ajusta con su muestra.
Paga su estacionamientoSin escribir la placa a mano y sin errores de dedo.
La foto viaja por el BFF de WhatsApp (POST /plates/read) al motor de enforcement: el teléfono nunca habla con el motor.
Si un campo no se lee con confianza, se deja vacío para que el conductor lo escriba. No se inventa.
La foto nunca se graba en las sesiones de analítica: muestra la placa.
Pruébalo en vivo
Escanea el QR y lee este auto
Bot de WhatsApp de Puebla
+52 222 469 8924
Escanea el QR y abre el chat del bot de Puebla.
Abre la mini app y entra a «Registra tu vehículo» → Automático.
Apunta la cámara a este auto en la pantalla.
Mira cómo se llenan la placa, la marca y el color.
Auto de pruebaFoto grande de un auto con su marca, color y placa visiblesviernes-kigo/auto-demo.png
La mini app de WhatsApp
Pagar el parquímetro sin descargar nada
El conductor abre el enlace desde el chat del municipio y paga su estacionamiento en pagar.kigo.mx. Todos los municipios de parquímetro ya la tienen disponible.
Elige su zonaEn el mapa, con el pin al centro, o la zona donde pagó la última vez.
Registra su auto con fotoPlaca, marca y color se llenan solos desde una foto.
Paga con saldo o Apple PayVe el total antes de pagar: tarifa, comisión y descuento.
Extiende su tiempoAgrega minutos a la sesión activa sin volver a empezar.
Paga otra placaVarios autos desde el mismo número, con sus placas guardadas.
Recarga saldoAbona a su cartera Kigo sin salir de la mini app.
Historial y recibosCada pago queda con su recibo.
Tutorial y soporteUna guía la primera vez y un atajo al chat de soporte.
Build · Mini app de WhatsApp
Cómo está construido
La mini app en acciónRecorrido por sus funcionalidadesviernes-kigo/whatsapp-mini-app.mp4
kz-whatsapp-pay-bffKigo Zones con BFFLa mini app habla solo con su BFF, y el BFF compone los dominios de la plataforma.
kz-spatialZonas y polígonos desde SpatialLas zonas de parquímetro y sus polígonos salen del dominio spatial.
kigo-vehicle-visionNuevo motor de visiónPlaca, marca y color desde una foto, el mismo motor del oficial.
Figma MCPComponentes nuevos desde FigmaLeídos directo del archivo con el MCP, con el alma del rediseño para el flujo de parquímetros.
kigo-skillsSkill de diseño de KigoSus reglas guiaron la construcción del front de la mini app.Parkimovil/kigo-skills
PostHogMedido desde el primer díaCada paso manda su evento; de ahí salen las métricas de esta página.
Estabilidad · PostHog
Estable y creciendo cada semana
Medido en producción con PostHog, del 8 al 30 de octubre de 2026. Solo en los últimos 7 días, 12,440 conductores pagaron su estacionamiento desde WhatsApp.
24,559pagos completados desde la mini app
14,867conductores distintos que pagaron
2,352conductores registrados desde la mini app
98.8%de las llamadas al BFF responden bien (721 mil)
270 mstiempo de respuesta típico del BFF
90%de los pagos iniciados se completan
31%de los conductores ya volvió a pagar
16municipios que ya cobran por WhatsApp
12,440conductores pagaron en los últimos 7 días
Pagos completados por semana
Pagos completados por semana en producción (pagar.kigo.mx). La semana del 26 de octubre va de lunes a viernes.
Municipios con pagos, de más a menos
Puebla
Ecatepec
Texcoco
Apizaco
Monterrey
Tampico
Zacatlán
Chiautempan
San Pedro Cholula
Teotihuacan
Huamantla
San Nicolás de los Garza
Tlatlauquitepec
San Pedro Garza García
Zacapoaxtla
Torreón
Puebla lidera con el 92% de los pagos.
Adopción · Del agente al municipio
El lector llega a la consola
El nuevo lector también se ve del lado del municipio. Cuando el agente verifica una placa con LPR, la foto que tomó queda guardada como evidencia y el municipio la revisa en la consola de parquímetro, junto con los detalles de la verificación.
Verificación de UTA123BLo que registró el agente al revisar la placa.
Placa
UTA123B
Agente
Ana López
Tipo
LPR
Fecha y hora
30 oct 2026, 10:42
Fotos
UTA-123-B
UTA-123-B
Ejemplo ilustrativo, sin datos reales.
El panel de la verificación muestra placa, agente, tipo, fecha y hora, y el punto exacto en el mapa.
Debajo, las fotos que tomó el agente, en galería: se abren en grande con un clic.
Los enlaces a las fotos se renuevan solos, así que no caducan mientras el operador las revisa.
Si una foto existe pero no se puede mostrar, se marca como no disponible en vez de decir «sin fotos».
Responde en segundos la pregunta del municipio: ¿qué vio el agente en esta placa?
Adopción · Consola de parquímetro
La consola, rediseñada
Los 29 municipios de parquímetro ya la ven al entrar a su consola de administración.
La consola rediseñadaRecorrido por la nueva consola de parquímetroassets/video/consola-rediseno.mp4
Figma MCPComponentes nuevos desde FigmaLeídos directo del archivo con el MCP, con el alma del rediseño para el flujo de parquímetros.
kigo-skillsSkill de diseño de KigoSus reglas guiaron cada pantalla nueva de la consola.Parkimovil/kigo-skills
Auditoría UXRevisión de diseño de productoLos hallazgos del equipo de diseño ya están aplicados en toda la consola.
PostHogConsola medidaMás de 25 eventos: inicios de sesión, permisos, subzonas, tickets LPR, conciliación y agentes.
Kigo Zones · BFFDatos a través del BFFAgentes, catálogo de vehículos, ingresos y vehículos estacionados se leen por el BFF de la consola.
Impacto
Los números, medidos en producción
No son estimaciones: salen de la BD de prod (enforcement_kigo, mx-central-1) y de los logs en Loki.
Barras: consultas LPR por día (BD prod). Línea: tasa de 404 (Loki). El 23-oct entra el motor nuevo; el 29-oct, el fix #287.
1.24 Mtrazas LPR desde julio-2025
5,207consultas en el pico de un día
20'155 → 24'285trazas: semana Geosek vs semana motor nuevo
Impacto
Lo que los datos dicen (y lo que falta)
Izquierda: % de trazas que guardan la foto. Derecha: lecturas diarias de la ruta nueva recognize_plate_lpr.Las dos causas del 404, medidas: lecturas dudosas y placas no detectadas.
La foto: 98.8% → 81.7% de trazas con foto (el motor no la conserva) · 223 fotos LPR ya en S3 (117 MB, 24 buckets) gracias al PR #285.
Las 2 causas del 404: ~101 lecturas marcadas «dudosa» por día + ~83 sin placa detectada — medidas, y las estamos cerrando.
Build
Las decisiones que nos costaron sangre
Parcial > todo-o-nada: si /mmc tarda más de 8 s, la placa se entrega igual.
El motor nunca habla con el teléfono: enforcement es el único dueño de la llave.
La ruta interna devuelve un DTO nuestro, no el JSON crudo del motor.
Centinelas del motor («unknown», «n/a», «-») → null, nunca «marca: Unknown».
Un 401/403 del motor nunca cierra la sesión del oficial.
La foto nunca se loguea; se guarda solo cuando tiene propósito (evidencia).
GTM
Dónde está y qué sigue
En producción
enforcement (LPR con el motor nuevo + lectura interna de placa)
officer-bff con /vehicle-vision/read
guard-bff con /plate-readings
223 fotos LPR ya en los buckets de evidencia (PR #285)
Mini app de WhatsApp: registro del vehículo con foto (PR #1020)
Consola de parquímetro rediseñada, en todos los municipios