Saltar al contenido principal

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

SegmentoRecency (días)FrequencyMonetary ($)
Champions305.28,500
Loyal Customers453.85,200
Potential Loyalists252.13,800
Recent Customers201.22,100
At Risk1804.56,200
Lost4501.1800

🔧 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.