Segmentación RFM (Recency, Frequency, Monetary)
🎯 ¿Qué es RFM?
RFM es una técnica de análisis de clientes que evalúa a los consumidores basándose en:
- Recency (R): ¿Qué tan recientemente compró el cliente?
- Frequency (F): ¿Con qué frecuencia compra?
- Monetary (M): ¿Cuánto dinero gasta?
📊 Los 11 Segmentos RFM
🏆 Tier Premium
1. Champions (Campeones)
- Características: Compraron recientemente, compran con frecuencia, gastan mucho
- RFM Score: 555, 554, 544, 545, 454, 455, 445
- Acciones: Recompensarlos, pueden convertirse en early adopters, los promoverán
2. Loyal Customers (Clientes Leales)
- Características: Gastan mucho dinero, responden a promociones
- RFM Score: 543, 444, 435, 355, 354, 345, 344, 335
- Acciones: Up-sell productos de mayor valor, pedirles reviews
🎯 Tier Growth
3. Potential Loyalists (Potenciales Leales)
- Características: Clientes recientes, gastaron cantidad considerable, compraron más de una vez
- RFM Score: 512, 511, 422, 421, 412, 411, 311
- Acciones: Ofertas de membresía o suscripción, recomendar productos relacionados
4. Recent Customers (Clientes Recientes)
- Características: Compraron recientemente, pero no frecuentemente
- RFM Score: 521, 520, 522, 523, 524, 525
- Acciones: Proveer soporte onboarding, darles ofertas especiales, aumentar frecuencia
5. Promising (Prometedores)
- Características: Compradores recientes, pero no han gastado mucho
- RFM Score: 512, 511, 422, 421, 412, 411, 311
- Acciones: Crear awareness de marca, ofertas de productos gratuitos
⚠️ Tier Attention
6. Need Attention (Necesitan Atención)
- Características: Recencia, frecuencia y valores monetarios por encima del promedio
- RFM Score: 331, 321, 231, 241, 251
- Acciones: Ofertas con tiempo limitado, recomendar productos basados en compras pasadas
7. About to Sleep (A Punto de Dormir)
- Características: Por debajo del promedio en recencia, frecuencia y monetario
- RFM Score: 155, 154, 144, 214, 215, 115, 114
- Acciones: Compartir recursos valiosos, recomendar productos populares/bestsellers a precio de descuento
🚨 Tier Risk
8. At Risk (En Riesgo)
- Características: Gastaron mucho dinero y compraron con frecuencia, pero hace tiempo
- RFM Score: 244, 234, 343, 334, 343, 244, 234
- Acciones: Email de reactivación, ofertas especiales, encuestas de feedback
9. Cannot Lose Them (No Podemos Perderlos)
- Características: Hicieron grandes compras y con frecuencia, pero hace mucho tiempo
- RFM Score: 155, 145, 143, 142, 135, 134, 133, 125, 124
- Acciones: Win-back campaigns, encuestas de feedback, renovaciones con descuento
💔 Tier Lost
10. Hibernating (Hibernando)
- Características: Última compra hace mucho tiempo, bajos gastos y número de pedidos
- RFM Score: 332, 322, 231, 241, 221, 213, 222, 132
- Acciones: Ofertas de productos más relevantes, recrear awareness de marca
11. Lost (Perdidos)
- Características: Menor recencia, frecuencia y puntuación monetaria
- RFM Score: 111, 112, 121, 131, 141, 151
- Acciones: Resucitar campañas, ignorar (salvo que tengan alta probabilidad de conversión)
📈 Métricas de Ejemplo
Distribución Típica (Tenant 56 - Chelsea)
Champions: 16,125 (24.72%)
Loyal Customers: 12,500 (19.17%)
Potential Loyalists: 8,200 (12.57%)
Recent Customers: 7,800 (11.96%)
Promising: 6,500 (9.97%)
Need Attention: 5,200 (7.97%)
About to Sleep: 4,100 (6.28%)
At Risk: 2,800 (4.29%)
Cannot Lose Them: 1,200 (1.84%)
Hibernating: 700 (1.07%)
Lost: 101 (0.15%)
Valores Promedio por Segmento
| Segmento | Recency (días) | Frequency | Monetary ($) |
|---|---|---|---|
| Champions | 30 | 5.2 | 8,500 |
| Loyal Customers | 45 | 3.8 | 5,200 |
| Potential Loyalists | 25 | 2.1 | 3,800 |
| Recent Customers | 20 | 1.2 | 2,100 |
| At Risk | 180 | 4.5 | 6,200 |
| Lost | 450 | 1.1 | 800 |
🔧 Cálculo del Score RFM
Fórmula de Scoring
def calculate_rfm_score(recency, frequency, monetary):
# Quintiles (1-5) para cada métrica
r_score = assign_quintile(recency, reverse=True) # Menos días = mayor score
f_score = assign_quintile(frequency) # Más compras = mayor score
m_score = assign_quintile(monetary) # Más gasto = mayor score
return f"{r_score}{f_score}{m_score}"
Algoritmo de Segmentación
def assign_segment(rfm_score):
if rfm_score in ['555', '554', '544', '545', '454', '455', '445']:
return 'Champions'
elif rfm_score in ['543', '444', '435', '355', '354', '345', '344', '335']:
return 'Loyal Customers'
# ... resto de la lógica
🚀 APIs para RFM
Obtener Análisis RFM
GET /api/v2/cdp/analytics/rfm?tenant_id=56
Respuesta Ejemplo
{
"success": true,
"data": {
"overview": {
"total_customers": 65226,
"avg_recency": 428.01,
"avg_frequency": 1.5,
"avg_monetary": 2500.50,
"total_revenue": 163065000,
"last_calculation": "2024-09-16T19:16:40.897Z"
},
"distribution": [
{
"segment": "Champions",
"customer_count": 16125,
"percentage": 24.72,
"avg_recency": 30,
"avg_frequency": 5.2,
"avg_monetary": 8500.00
}
]
}
}
Filtrar por Segmento
GET /api/v2/cdp/analytics/rfm?tenant_id=56&segment=Champions
🎯 Estrategias de Marketing por Segmento
Champions
- Email: Newsletters exclusivos, pre-acceso a productos
- Promociones: Early bird discounts, programas VIP
- Productos: Últimas novedades, productos premium
Loyal Customers
- Email: Ofertas personalizadas, cross-selling
- Promociones: Bundles con descuento, loyalty points
- Productos: Productos relacionados, upgrades
At Risk
- Email: "Te extrañamos", win-back campaigns
- Promociones: Descuentos agresivos, regalos
- Productos: Best sellers, productos que compraron antes
Lost
- Email: Últimos intentos, encuestas de feedback
- Promociones: Ofertas irresistibles, free shipping
- Productos: Entry-level, loss-leaders
📊 KPIs de RFM
Métricas de Salud
- Distribución Objetivo: 70% en top 5 segmentos
- Retention Rate: Champions > 90%, Loyal > 80%
- Upgrade Rate: 15% de Promising → Loyal
- Recovery Rate: 25% de At Risk → Active
Métricas de Revenue
- Revenue per Segment: Champions contribuyen 40-50%
- AOV por Segmento: Champions 3x vs Lost
- Frequency Growth: +20% anual en top segments
🔄 Automatización RFM
Triggers Automáticos
# Recalculo automático cada 24h
schedule.every(24).hours.do(calculate_rfm_all_tenants)
# Alertas de cambio de segmento
if customer_segment_changed(customer_id):
trigger_segment_change_campaign(customer_id, new_segment)
# Campañas automáticas
if segment == 'At Risk' and days_since_last_purchase > 90:
send_winback_email(customer_id)
Integración con Marketing Tools
- Email Marketing: Mailchimp, Klaviyo, SendGrid
- Push Notifications: OneSignal, Firebase
- Retargeting: Facebook Ads, Google Ads
- SMS: Twilio, MessageBird
💡 Tip: Utiliza RFM como base para todas tus campañas de marketing. Un cliente Champion necesita estrategias muy diferentes a un cliente At Risk.