Customer Analytics: del notebook a producción
Resumen ejecutivo
Este sitio documenta el desarrollo end-to-end de Pulse, una plataforma de Customer Analytics construida para CT Internacional. El proyecto cubre el ciclo completo desde el primer análisis exploratorio sobre datos transaccionales hasta el despliegue en producción de un dashboard operativo consumido por el equipo de marketing.
El alcance no es teórico. El sistema corre hoy sobre un servidor on-premise, ejecuta un pipeline ETL diario, sirve un dashboard interactivo con siete vistas distintas y monitorea automáticamente la salud del modelo de segmentación. Todo el código fue construido para ser reproducible, testeado y operable sin intervención del desarrollador.
Lo que se construyó
Capa analítica
- Segmentación de clientes con K-Means (k=5) sobre features RFM más cadencia de compra, con transformación logarítmica y estandarización encapsuladas en un pipeline de scikit-learn.
- Market Basket Analysis segmentado: el algoritmo FP-Growth se aplica de forma independiente por cluster, produciendo miles de reglas de asociación con filtros de soporte, confidence y lift.
- Análisis de estacionalidad con granularidad hora-día-mes para detectar ventanas de campaña óptimas por segmento.
Capa de productización
- Pipeline ETL modular con ingesta incremental desde MongoDB, watermarks, validaciones de calidad cruzadas, manejo de drift y outputs persistidos en Parquet.
- Dashboard web (FastAPI + DuckDB + Plotly) con siete vistas operativas: distribución de segmentos, mapa de oportunidades de bundles, estacionalidad por segmento, comparador, heatmap de bundles, alertas de clientes en riesgo, y drill-down individual.
- Deployment sobre AlmaLinux con systemd, firewalld, cron diario y supervivencia a reboot validada.
Cifras clave del proyecto
| Métrica | Valor |
|---|---|
| Clientes analizados | 18,638 |
| Pedidos procesados (ventana 30 meses) | ~570K |
| Reglas MBA generadas | ~3,800 |
| Reglas accionables (1→1, 1→2) | ~140 |
| Vistas del dashboard | 7 |
| Duración del pipeline diario | 30-45 segundos |
| Tests unitarios | 60+ |
| Cross-check temporalidad ↔︎ RFM | 0.00% de divergencia |
Por confidencialidad operacional, en las visualizaciones de este sitio los valores monetarios se presentan transformados a índices relativos o en escala logarítmica, y las claves de productos están ofuscadas en familias genéricas. Las proporciones, distribuciones, lifts y patrones temporales son auténticos.
Cómo está organizado este sitio
A través de la navegación superior puedes recorrer cada etapa del proyecto:
- Comprensión del negocio — Los objetivos del proyecto y el impacto esperado.
- Exploración de datos — Hallazgos de la fase EDA y características de la base transaccional.
- Análisis RFM — Cómo definimos recencia, frecuencia, valor monetario y cadencia personalizada.
- Segmentación — El proceso de clustering, la elección de k=5 y los cinco perfiles identificados.
- Market Basket — Reglas de asociación por segmento y el concepto de Market Basket Opportunity Map.
- Estacionalidad — Patrones temporales descubiertos y su traducción a recomendaciones de campaña.
- De investigación a producción — Cómo congelamos el modelo, construimos el pipeline ETL y desplegamos el dashboard.
- Documentación técnica — Instalación, comandos de operación, estructura del código y diagramas de arquitectura.
- Visión y futuro — El roadmap hacia forecasting, recomendación en tiempo real y monitoreo de drift activo.
Si solo tienes 5 minutos, lee Comprensión del negocio y De investigación a producción. Esos dos artículos resumen el qué y el cómo.