Las tendencias negativas emergen el día de su aparición, no después del monthly review.
Que hace
El detector de anomalías es un servicio que escanea las métricas de negocio a diario (o con mayor frecuencia) y levanta la mano cuando un indicador se comporta de forma atípica. La lógica es simple: el modelo aprende de datos históricos, fija el rango normal teniendo en cuenta la estacionalidad y la tendencia, y marca los puntos fuera de ese rango. El equipo se entera de una caída de ingresos, un pico en el churn rate o una conversión inusual en el momento en que aparece la señal, y no dos semanas después en una retrospectiva.
Qué incluye el esquema típico:
- Conexión a la fuente de datos: data warehouse o consulta directa a una herramienta de BI.
- Definición del conjunto de métricas: ingresos por canal, MRR, usuarios activos, conversión por etapas del embudo, churn, ticket promedio, tamaño del pedido, existencias en almacén, runway.
- Entrenamiento de modelos base con datos históricos de cada métrica: se tienen en cuenta la estacionalidad diaria y semanal, los festivos y la tendencia.
- Ejecución periódica de verificaciones (cron o event-driven) con cálculo de la desviación respecto al valor esperado.
- Publicación de la alerta en Slack o Teams con contexto: métrica, valor actual, rango esperado, magnitud de la desviación, enlace al dashboard.
- Registro de anomalías confirmadas y falsos positivos, para el reajuste de umbrales.
Lo que el detector NO hará:
- No explica la causa de la anomalía. La señal indica «aquí algo no cuadra», pero el root cause analysis queda a cargo de la persona.
- No funciona sin datos históricos limpios. Si la vista de ingresos falla una vez a la semana o la métrica cambió de fórmula recientemente, el modelo generará ruido.
- No es responsable de las decisiones de negocio. La alerta en Slack es un disparador de entrada para la investigación, no una instrucción para detener una campaña o subir los precios.
Como funciona
Arquitectónicamente, el servicio consta de cuatro capas: fuente de datos, motor de cálculo, motor de alertas, canal de entrega. El enfoque Custom-code se aplica cuando las plataformas SaaS para anomaly detection son excesivas en precio o encajan mal en la especificidad de las métricas del cliente.
Flujo técnico
- El planificador (Airflow, Prefect, Dagster o cron en kubernetes) lanza la tarea batch según el calendario — una vez por hora o una vez al día, según la métrica.
- El Job realiza una consulta SQL en el data warehouse y obtiene la serie temporal de la métrica necesaria con un historial de 90-365 días.
- El módulo de detección aplica uno de los modelos: descomposición STL y z-score para la mayoría de las métricas, Prophet o ARIMA para series con estacionalidad pronunciada, isolation forest para casos multidimensionales.
- Cálculo del rango esperado para el punto actual. Si el valor real supera los límites del intervalo de confianza, se registra una anomalía con indicación de la dirección y la magnitud.
- Postprocesamiento: filtrado de duplicados (una anomalía no genera alerta dos veces), agregación de señales relacionadas, clasificación por severity.
- Generación del mensaje en Slack o Teams mediante webhook — métrica, valor, expectativa, delta, ventana temporal, enlace al BI-dashboard para drill-down.
Pasos de implementación
- Auditoría de métricas y priorización: lista de 10-20 KPI críticos que tiene sentido monitorizar (más — se ahogará en alertas).
- Preparación de datos: verificación de calidad, tabla unificada de métricas en DWH o materialized view, documentación del SLA sobre la frescura de los datos.
- Elección del stack: Python con bibliotecas para análisis de time-series, orquestador, secretos para la conexión a DWH y messenger.
- Prototipo con 2-3 métricas, calibración manual de umbrales, ejecución sobre datos históricos para verificar la precisión.
- Ampliación de la cobertura, adición de niveles de severity, separación de canales (las alertas P1 van al canal de guardia, P2 — al digest).
- Modo shadow de dos semanas: las alertas se escriben en el log, pero no se envían a Slack — se verifica la frecuencia de falsos positivos.
- Lanzamiento en producción, revisión mensual de umbrales y eficiencia.
Componentes del sistema
Capa | Qué hace | Herramienta típica |
|---|---|---|
Almacenamiento | Fuente de series temporales | Data warehouse (Snowflake, BigQuery, Postgres) |
Orquestador | Lanzamiento de jobs según el calendario | Airflow, Prefect, cron |
Cálculo | Modelos de detección de anomalías | Python + bibliotecas time-series |
Entrega | Canales de alertas | Slack, Teams, email |
El coste de la infraestructura es bajo: el cálculo toma minutos, la carga sobre el DWH es pequeña. El principal recurso es el tiempo del data engineer o ML engineer para la calibración de modelos y el trabajo con los propietarios de las métricas.
Requisitos previos
Lo que debe tener el cliente antes del inicio del proyecto:
Datos y accesos:
- Data warehouse o base analítica centralizada con historial de métricas de al menos 6 meses (un año es mejor).
- Consultas SQL documentadas o modelos dbt para las métricas clave. Si cada métrica se calcula ad hoc de distintas formas — primero se pone orden.
- Cuenta de servicio para lectura de datos y webhook URL en Slack o Teams para el envío de alertas.
- Comprensión de la estacionalidad: el equipo sabe que los sábados baja la facturación y en diciembre sube el ticket medio — el modelo se entrena con esto en cuenta.
Equipo y responsables:
- El responsable de métricas de turno — la persona que responde a la alerta. Sin owner el servicio se convierte en un canal de ruido.
- Analista o data engineer que conoce la lógica de las métricas y ayuda en la calibración.
- DevOps o ingeniero de plataforma para el despliegue (Docker, secretos, acceso al DWH desde la infraestructura).
Stack tecnológico:
- Python 3.10+, Docker, orquestador (si aún no existe — levantamos un Prefect sencillo o cron en el clúster kubernetes existente).
- Acceso a Slack o Microsoft Teams mediante incoming webhook.
Plazos:
- Prototipo con 2-3 métricas: 2-3 semanas.
- Conjunto completo de 10-20 métricas con calibración y modo shadow: 4-6 semanas.
- Si el data warehouse no está configurado o los datos están sucios — añada 2-4 semanas de preparación.
Problemas
- No vemos señales de fuga de clientes
- Mal pronóstico (cashflow/ventas/stock)
FAQ
¿Cuánto tiempo lleva la implementación?
El lanzamiento básico con 2-3 métricas clave: 2-3 semanas. El contorno completo de 10-20 métricas con calibración de modelos y modo shadow de dos semanas ocupa 4-6 semanas. Los plazos aumentan si se requiere preparación previa del data warehouse o unificación de consultas SQL por métricas — esto añade 2-4 semanas.
¿Qué hacer si no contamos con data warehouse?
Como mínimo basta con una base analítica (réplica de Postgres, ClickHouse) con historial de métricas. Si los datos residen actualmente en Google Sheets o en la BD de producción — añadimos un paso para exportarlos a un data mart analítico separado. Esto alarga el proyecto 2-4 semanas, pero sienta las bases también para otras tareas, no solo para el detector.
El principal riesgo son los falsos positivos. ¿Qué hacer al respecto?
La fatiga de alertas arruina el servicio: si en Slack llegan 20 notificaciones al día, el equipo deja de leerlas. Lo resolvemos de tres formas: modo shadow antes del lanzamiento para calibrar umbrales, niveles de severidad (P1 — llamada, P2 — digest), retroalimentación de los responsables de turno (marcar «no es anomalía» ajusta el modelo). En 4-6 semanas la cantidad de ruido alcanza un nivel operativo.
¿Es adecuado para nuestra industria?
La solución es universal para negocios con métricas estructuradas en el tiempo. Las empresas SaaS lo utilizan para MRR, churn y usuarios activos. El retail — para inventarios y ticket promedio. El fintech — para cashflow y anomalías en transacciones. La condición principal — contar con un data warehouse o una base analítica con historial de mínimo 6 meses.
¿Para qué código personalizado si existen plataformas SaaS listas?
Las plataformas listas son buenas cuando se necesita cubrir cientos de métricas y hay un presupuesto considerable para la suscripción anual. El enfoque Custom-code es más ventajoso en el horizonte de 10-30 métricas clave: da control total sobre la lógica de modelos, no ata al proveedor y funciona en infraestructura propia. Para la mayoría de las SMB es más racional en términos de relación precio-resultado.
¿Qué métricas son más adecuadas para el detector?
Métricas con frecuencia regular (valores diarios o por hora), fórmula de cálculo estable e historial de mínimo 90 días. Funcionan bien: ingresos por canal, MRR, usuarios activos, conversión del embudo, churn rate, inventario de almacén, ticket promedio. Funcionan mal: métricas con cambios bruscos de fórmula, eventos poco frecuentes, indicadores sin estacionalidad ni tendencia.
Quieres esto en tu negocio?
Reserva una auditoria gratuita — te mostraremos como funcionara esta automatizacion para ti.