Customer analytics · B2B

255 clientes · otros 5 segmentos 111 Loyal · 198.000€ en riesgo 34 Champions

Análisis RFM

Distribuidora B2B de hostelería · 400 clientes · segmentación de clientes en Power BI

scroll ↓

El problema

Las ventas estaban bajando, pero no estaba claro por qué.

La cartera de clientes crecía, pero el revenue no acompañaba. El equipo comercial tenía los datos, pero no una forma sencilla de saber qué clientes seguían activos, cuáles estaban perdiendo frecuencia y cuáles podían estar a punto de desaparecer.

Antes de pensar en captar más clientes, había que mirar los que ya estaban dentro.

El objetivo

Entender cómo estaba comprando cada cliente.

Analicé los 400 clientes a partir de tres preguntas muy sencillas:

¿Cuándo compró por última vez? ¿Cuántas veces compra? ¿Cuánto dinero deja?

Con esas tres variables construí un modelo RFM para detectar diferentes comportamientos de compra y, sobre todo, localizar dónde había revenue que podía estar en riesgo.

0

clientes analizados

0

segmentos de comportamiento

0 €

revenue en riesgo detectado

Mi enfoque

Tres variables para entender una cartera de clientes.

El modelo RFM parte de una idea bastante simple: el comportamiento reciente de un cliente dice mucho más que su valor histórico por separado.

Para cada cliente calculé:

Recency

Días desde su última compra.

Frequency

Número de pedidos realizados.

Monetary

Importe total comprado.

Los tres valores se transforman en puntuaciones utilizando percentiles dinámicos, en lugar de utilizar cortes fijos. Así, la segmentación se adapta a la distribución real de los clientes y no depende de unos umbrales definidos a mano.

¿El resultado?

7 segmentos de comportamiento

Champions

Los clientes más activos y de mayor valor.

Loyal

Clientes con una relación sólida, pero que empiezan a mostrar señales de pérdida de actividad.

Potential

Clientes con margen para aumentar su relación con la empresa.

At Risk

Clientes cuya actividad empieza a deteriorarse.

Needs Attention

Clientes que necesitan seguimiento antes de que su actividad siga cayendo.

Average

Clientes con un comportamiento intermedio.

Lost

Clientes que prácticamente han dejado de comprar.

Modelo de datos

El RFM está dentro del modelo, no separado del resto.

Construí un esquema en estrella con Fact_Pedidos como tabla de hechos y cinco dimensiones: Dim_Cliente · Dim_Fecha · Dim_Producto · Dim_Comercial · Dim_TipoEstablecimiento.

Las puntuaciones RFM y el segmento final viven en Dim_Cliente. De esta forma, la segmentación se puede cruzar con el resto del modelo para analizarla por zona, comercial, tipo de establecimiento, producto o periodo.

El dashboard se construyó alrededor de cuatro preguntas:

¿Cómo está el negocio?
¿Cómo se distribuyen los clientes?
¿Cómo evoluciona el revenue?
¿Qué debería hacer el equipo comercial con cada segmento?

Esta última parte se convirtió en una tabla de acciones comerciales generada directamente desde DAX mediante HTML, sin depender de un visual externo.

Esquema

Fact_Pedidos
↳ Dim_Cliente (RFM + segmento) ↳ Dim_Fecha ↳ Dim_Producto ↳ Dim_Comercial ↳ Dim_TipoEstablecimiento

Visualización en Power BI

Una página para pasar del dato a la acción.

Dashboard RFM — vista 1 Dashboard RFM — vista 2
Ver dashboard interactivo Power BI · DAX · Power Query / M · Esquema en estrella

Una señal que no aparecía en el total.

111 clientes Loyal — 198.000 € en riesgo.

Este grupo concentraba una parte importante del revenue, pero llevaba meses mostrando una peor recency.

No eran clientes que hubieran desaparecido de repente. Seguían teniendo un historial de compra valioso, pero estaban dejando de comprar.

Ahí es donde la segmentación cambia la lectura: el problema deja de ser «las ventas están bajando» y pasa a ser «estos clientes necesitan atención».

Hallazgos clave

Dos segmentos. Dos situaciones completamente distintas.

Loyal

111clientes
198.000 €revenue en riesgo

Clientes con un historial de compra importante que estaban perdiendo actividad.

La recency había aumentado durante los últimos meses mientras su nivel histórico de gasto seguía siendo relevante. Era un grupo especialmente interesante para una estrategia de reactivación.

Champions

34clientes
4.787 €ticket medio

Los clientes más activos y rentables de la cartera.

Su recency media era de solo 14 días, una señal clara de que mantenían una relación de compra frecuente.

El mismo dashboard que detecta clientes en riesgo también permite identificar quiénes están sosteniendo el negocio.

Herramientas

Stack técnico

Power BI

Modelado, visualización e interacción con el dashboard.

DAX

Cálculo de Recency, Frequency y Monetary, percentiles, segmentación y generación de la tabla de acciones comerciales.

Power Query / M

Preparación y transformación de los datos.

Esquema en estrella

Separación entre hechos y dimensiones para mantener un modelo flexible y fácil de analizar.

HTML en DAX

Tabla de acciones comerciales generada dentro de una medida, sin utilizar un visual externo.

Percentiles dinámicos

Cortes de segmentación adaptados a la distribución real de los clientes.

Qué me llevo del proyecto

Lo más difícil no fue calcular el RFM.

La fórmula es conocida. La parte interesante estaba en decidir cómo convertir esos cálculos en una segmentación que tuviera sentido para el negocio.

Un corte fijo puede funcionar en un dataset y dejar de tener sentido cuando cambia la distribución de clientes. Por eso opté por percentiles dinámicos: el modelo se adapta a los datos en lugar de obligar a los datos a adaptarse al modelo.

También me encontré con los límites de generar HTML desde DAX. Funciona para determinados casos, pero no sustituye a un visual nativo cuando la interacción o el mantenimiento empiezan a complicarse.

Al final, el proyecto me dejó una idea bastante sencilla:

Un buen análisis no solo tiene que decir qué está pasando. Tiene que ayudar a ver dónde mirar después.

De «las ventas están bajando» a saber exactamente dónde mirar.

Abrir dashboard en Power BI

Dashboard interactivo publicado en Power BI Service

Ver el resto de proyectos

Portfolio completo de Power BI