Ir al contenido
σestadistica.ar

Calculadora

RFM y cohortes de retención

Dos miradas sobre la misma tabla de compras: una foto de cada cliente —hace cuánto, cuántas veces, por cuánto— y la película de si los que entraron en marzo siguen comprando en agosto.

Una fila por compra. La fecha se reconoce esté donde esté, en aaaa-mm-dd o dd/mm/aaaa.

341 filas leídas · decimal con coma

La recencia se mide contra esta fecha. Por defecto es la última del archivo, no «hoy»: si fuera hoy, el mismo archivo daría un informe distinto cada día.

El ejemplo son 138 comercios de la sucursal de Valle Viejo de Distribuidora Norte, entre julio de 2024 y julio de 2026.

  • El eje de frecuencia tiene 4 niveles en lugar de 5: 41 de 138 clientes compraron una sola vez. Con tantos empates los quintiles no se pueden formar, y un software que igual devuelve cinco grupos está inventando distinciones que los datos no tienen.
  • La primera cohorte (15 clientes) es mucho más grande que las siguientes (mediana 5). Suele significar que el archivo está recortado por la izquierda: los clientes que ya compraban antes del primer mes entran todos a esa cohorte y su retención aparece inflada. Conviene descartar la primera fila o pedir el histórico completo.
  • 21 de 24 cohortes tienen menos de 10 clientes. Con esos tamaños un cliente que vuelve mueve la retención veinte puntos: las filas chicas no se pueden leer como tendencia.

Clientes

138

337 compras · 341 filas

Facturado

168.476.177

hasta el 2026-07-25

Compras por cliente

2,4

fechas distintas, no filas

Niveles del puntaje

5·4·5

R · F · M, de 5 posibles

Segmentos

La grilla que asigna cada combinación de puntajes a un segmento es una convención, no un teorema. Está escrita entera en el módulo para que se pueda discutir.

SegmentoClientes% de clientes% del montoQué dice
Campeones3223,2 %51,9 %Compran seguido, hace poco y mucho. Son el piso del negocio: conviene saber quiénes son antes que cualquier otra cosa.
Fieles2316,7 %18,5 %Vuelven y gastan. Es donde una mejora de precio o de surtido rinde más.
Potenciales2215,9 %6,5 %Activos pero todavía chicos. Son los que pueden pasar a fieles.
Nuevos64,3 %3,0 %Entraron recién. Lo único que se sabe de ellos es que volvieron una vez.
Necesitan atención1913,8 %5,6 %Empezaron a espaciarse. Es el momento en que todavía se puede hacer algo.
En riesgo85,8 %6,1 %Compraban bien y se están yendo. Son los más caros de perder.
Dormidos64,3 %3,2 %Fueron buenos clientes y hace mucho que no vuelven.
Perdidos2215,9 %5,3 %Poco valor y hace mucho. Recuperarlos suele costar más de lo que dejan.

Retención por cohorte

Cada fila son los clientes que compraron por primera vez en ese mes. Las columnas son los meses que siguieron. Las celdas vacías no son cero: son meses que todavía no ocurrieron para esa cohorte.

Cohorten+0+1+2+3+4+5+6+7+8+9+10+11+12
2024-0715100 %20 %0 %13 %7 %20 %7 %7 %0 %20 %7 %13 %13 %
2024-0811100 %0 %18 %0 %27 %0 %0 %0 %0 %0 %0 %9 %0 %
2024-0914100 %7 %0 %7 %0 %7 %14 %7 %7 %7 %14 %7 %0 %
2024-108100 %0 %25 %25 %0 %25 %25 %0 %25 %0 %0 %0 %13 %
2024-119100 %11 %11 %11 %0 %0 %0 %0 %11 %0 %0 %11 %11 %
2024-129100 %33 %0 %0 %0 %11 %0 %11 %0 %22 %11 %0 %11 %
2025-018100 %13 %0 %0 %13 %13 %0 %0 %0 %13 %0 %13 %13 %
2025-026100 %17 %17 %17 %0 %0 %0 %0 %33 %17 %0 %17 %17 %
2025-035100 %0 %0 %0 %20 %0 %0 %0 %0 %0 %20 %0 %20 %
2025-045100 %0 %0 %40 %0 %20 %0 %0 %0 %0 %0 %0 %0 %
2025-057100 %14 %0 %0 %29 %29 %29 %0 %0 %0 %14 %14 %0 %
2025-068100 %13 %13 %13 %0 %13 %25 %0 %0 %25 %13 %0 %13 %
2025-073100 %0 %0 %0 %0 %0 %0 %0 %0 %0 %0 %33 %0 %
2025-083100 %33 %0 %0 %0 %0 %0 %0 %0 %0 %0 %0 %·
2025-093100 %0 %0 %0 %0 %0 %0 %0 %0 %0 %0 %··
2025-102100 %50 %0 %50 %0 %0 %0 %50 %0 %0 %···
2025-114100 %25 %0 %0 %0 %0 %25 %0 %0 %····
2025-125100 %20 %0 %0 %0 %20 %0 %0 %·····
2026-013100 %0 %0 %0 %33 %0 %33 %······
2026-023100 %33 %0 %0 %0 %33 %·······
2026-032100 %0 %50 %0 %0 %········
2026-042100 %0 %50 %0 %·········
2026-051100 %100 %0 %··········
2026-062100 %0 %···········

Se muestran 13 de 25 períodos.

Los 20 primeros clientes

ClienteRecenciaFrec.MontoRFMSegmento
C035449 d810.569.177555Campeones
C0066115 d45.525.990455Campeones
C0454131 d55.091.924455Campeones
C034041 d34.986.739545Campeones
C01301 d64.787.670555Campeones
C042321 d64.486.822555Campeones
C008321 d44.250.379555Campeones
C078022 d54.206.925555Campeones
C0056232 d44.014.852355Fieles
C062054 d23.551.088535Campeones
C002960 d43.366.119555Campeones
C051072 d83.279.465455Campeones
C0059179 d32.957.790445Campeones
C0254128 d22.799.657435Campeones
C0309264 d22.524.160335Fieles
C040981 d22.483.017435Campeones
C001958 d42.447.363555Campeones
C0231131 d32.425.492445Campeones
C0499274 d32.133.443345Fieles
C039851 d42.103.509555Campeones

Cómo se lee

El puntaje va de 1 a 5, por rango
No por cortes de valor: con muchos empates —lo normal en frecuencia— los cortes por valor dejan grupos vacíos. Se usa el rango promedio, el mismo que usa Spearman. En recencia la escala está invertida: menos días es mejor puntaje.
Cuando un eje colapsa
Si casi todos compraron una sola vez, el eje de frecuencia no tiene cinco niveles que formar. La tarjeta de arriba muestra cuántos niveles quedaron de verdad: un «5·4·5» con algún 1 o 2 significa que ese eje no está separando nada, y que un software que igual devuelve cinco grupos está inventando.
La matriz se lee por filas
Una fila que cae rápido es una cohorte que no volvió. Comparar filas entre sí dice si el negocio está reteniendo mejor o peor con el tiempo, que es lo que ningún promedio general muestra. Las columnas altas del final son meses con pocas cohortes medidas: conviene no leerlas como tendencia.
Lo que esto no dice
Que un cliente esté en «Perdidos» no significa que se haya ido a la competencia: puede haber cerrado, cambiado de rubro o comprar por otro canal que no está en esta tabla. Y el RFM mira solo lo que ya compró: no sabe nada del margen que deja ni de lo que cuesta atenderlo.

Qué es el RFM

Tres números por cliente: recencia, hace cuántos días compró por última vez; frecuencia, cuántas veces compró; monto, cuánto dejó en total. Cada uno se puntúa de 1 a 5 y la combinación define un segmento.

Es vieja —la usaba el correo directo en los años setenta para decidir a quién mandarle el catálogo— y sigue siendo útil por la misma razón por la que nació: no necesita más que lo que cualquier sistema de facturación ya tiene. No hay modelo que ajustar ni supuestos que cumplir.

Tres decisiones que casi nadie mira

La fecha de referencia. La recencia se mide contra una fecha. Si esa fecha es «hoy», el mismo archivo da un resultado distinto cada día y ningún informe se puede reproducir. Acá se usa por defecto la última fecha que aparece en los datos, y se puede cambiar a mano para mirar cómo estaba la cartera en otro momento.

Los empates. Es lo que rompe el RFM en la práctica. Si el 70 % de los clientes compró una sola vez, no existen cinco grupos de frecuencia que formar: hay dos, los que compraron una vez y los que compraron más. Un software que igual devuelve cinco niveles está inventando distinciones que los datos no tienen. Esta calculadora puntúa por rango promedio —el mismo que usa Spearman— y muestra cuántos niveles quedaron de verdad en cada eje.

Qué cuenta como una compra. Una fila de un comprobante no es una compra: un pedido con cinco líneas son cinco filas. La frecuencia de acá cuenta fechas distintas, no filas. Si el archivo viene por línea de producto, el número correcto es el de fechas y no el de filas, y la diferencia puede ser de tres o cuatro veces.

Por qué las cohortes dicen algo distinto

El RFM es una foto: dice cómo está la cartera hoy. No puede contestar si el negocio retiene mejor o peor que antes, porque mezcla a los que entraron hace cinco años con los que entraron el mes pasado.

La matriz de cohortes separa a los clientes por el mes de su primera compra y sigue a cada grupo. Cada fila es una camada; cada columna, los meses que pasaron desde que entró. Si las filas de abajo caen más rápido que las de arriba, el negocio está reteniendo peor, y eso no se ve en ningún promedio general.

Un detalle que cambia la lectura: las celdas del triángulo superior derecho no son cero, son desconocidas. Una cohorte que entró el mes pasado no tiene mala retención a doce meses: no tiene retención a doce meses medida. Mostrar esas celdas en cero —que es lo que hace una planilla hecha a las apuradas— da la impresión de un derrumbe que no ocurrió.

Lo que no mira

El RFM ordena por lo que el cliente ya compró. No sabe nada del margen que deja —un cliente grande de productos de bajo margen puede valer menos que uno mediano de alto margen—, ni de lo que cuesta atenderlo, ni de si trae a otros. Tampoco distingue entre un cliente que se fue y uno que cerró.

Y los segmentos son una convención. No hay una definición canónica de «Campeones»: la grilla que usa esta herramienta está escrita entera en src/lib/cohortes.ts para que se pueda discutir en lugar de adivinar qué hizo el programa.

Cómo está verificado

La recencia, la frecuencia, el monto y la matriz entera se rehacen con groupby de pandas y tienen que coincidir fila por fila. El puntaje por rango se contrasta contra scipy.stats.rankdata con el método de promedio, que es la definición de referencia y no comparte una línea con el bucle de TypeScript.

Más las identidades que tienen que cumplirse sí o sí: cada cliente pertenece a una sola cohorte, el período cero de cada cohorte es su tamaño, ningún período lo supera, la suma de los tamaños es la cantidad de clientes, y a mayor recencia tiene que corresponder menor puntaje R —que es donde se equivoca medio mundo—. Son 1.168 comprobaciones sobre cuatro carteras generadas, incluida una donde todos compraron una sola vez, que es cuando los quintiles no existen.