Retención por cohortes

Cuántos clientes siguen tras cada periodo.

Definición

La retención por cohortes pone una fila por cohorte y una columna por mes de vida, empezando en el mes 0, y colorea cada celda según el porcentaje que sigue activo. Se lee por edad y no por calendario: el triángulo vacío de la esquina es tiempo que esa cohorte aún no ha vivido. Sirve para ver si los clientes nuevos aguantan mejor que los antiguos.

Customer Retention
Datos
category · value
Buena para
Comparar cómo retiene cada cohorte a la misma edad y ver si las más recientes mejoran.
Evítala cuando
Cuando sólo hay una o dos cohortes: el mapa se queda en una franja y una curva lo cuenta mejor.
Se lee bien
Entre 6 y 100 elementos; dibuja hasta 100
Datos que faltan
Omite el valor ausente y lo declara aparte.
Accesibilidad
Lector de pantalla: resumen en texto · respeta «reducir movimiento»

Forma de los datos

Qué columnas pide

ColumnaTipoPara qué
category · opcionalstringLa cohorte: una fila del mapa. Sin ella las filas salen sin nombre.
value · opcionalnumberFormato ANCHO: cada columna legible como número que no es la cohorte es un mes de vida. El mes lo dice el NOMBRE de la columna cuando lo lleva («Month 3» → 3), y entonces la que no lo lleva —«Avg», que la propia exportación escribe— no es un mes y se queda fuera; si ninguna lo lleva, mandan el orden de las columnas. La celda vacía se salta a propósito (es la forma del triángulo), y «85%» cuenta como número: el `%` se limpia antes de mirar. Formato LARGO (2 columnas legibles): la 1.ª es el índice de mes y la 2.ª la retención. Ninguno de los dos se pide por nombre.

Tamaños

Recompuesta, no encogida

El motor vuelve a componer la pieza a cada ancho: los rótulos conservan su cuerpo y la figura gana alto si lo necesita.

Móvil · 528 × 570 px
Escritorio · 848 × 642 px

Cuándo usarla

Tres preguntas antes de elegirla

¿Hay muchas cohortes que comparar?

Con pocas cohortes, unas curvas superpuestas enseñan mejor la forma de la caída.

Sí: quédate con retención por cohortes

No: usa Curvas de retención

¿Te interesa cada cohorte por separado?

Si basta con una sola curva de permanencia para toda la base, la curva de Kaplan-Meier la dibuja.

Sí: quédate con retención por cohortes

No: usa Curva de Kaplan-Meier

¿Lo que se retiene son clientes, no ingresos?

Si interesa cuánto gasta la base actual, con ampliaciones y bajas en dinero, la retención neta de ingresos lo descompone.

Sí: quédate con retención por cohortes

No: usa Retención neta de ingresos

Código

La misma pieza, con tus datos

import { getPreset, renderComposition } from 'visx-render/node';

const spec = await getPreset('cohortretention');
spec.data.rows = misFilas; // tus columnas
const { svg, warnings } = await renderComposition(spec);

También en React con Chart y prepareComposition. Guía para desarrolladores →

Dudas

¿Por qué falta la esquina de abajo a la derecha?

Porque las cohortes recientes no han cumplido todavía esos meses. Esas celdas no son datos que falten: es tiempo que no ha pasado.

¿Qué forma tiene que tener la tabla?

Vale el formato ancho, con una columna por mes de vida, o el largo, con el índice de mes y la retención. En el ancho, si el nombre de la columna lleva el número del mes manda ese número, y una columna sin número, como la de media, se queda fuera. Un valor escrito con «%» cuenta como número.

¿Por qué cada fila empieza en su mes 0?

Para comparar cohortes a la misma edad. Alinear por calendario mezclaría clientes de un mes con clientes de un año.

¿Qué hace si faltan datos?

Omite el valor ausente y lo declara aparte.

¿Cómo se ve en el móvil?

El motor la recompone a 480 px de ancho —rótulos, leyenda y alto— en vez de encoger la versión de escritorio.

Relacionadas

Otras formas de responder «cómo cambia en el tiempo»

Guía para elegir: cómo cambia en el tiempo →