Cohortes, retención y churn

Objetivo

Construir métricas temporales sin cambiar definiciones a mitad del análisis.

Explicación

Una cohorte agrupa entidades por un evento inicial, por ejemplo mes de primera compra. La retención mide qué porcentaje vuelve en periodos posteriores. Debes fijar definición de “activo” y granularidad temporal. En un equipo de datos, SQL no se evalúa sólo por devolver filas: debe responder una pregunta de negocio, conservar el grain correcto y permitir que otra persona valide el resultado. Esta práctica usa el ecommerce del curso para obligarte a reconciliar conteos y totales, igual que harías antes de publicar una métrica en un dashboard. Para trabajar Cohortes, retención y churn de forma profesional, no te quedes con el ejemplo: identifica la entrada, ejecuta el caso base, provoca al menos un caso incorrecto y compara el resultado con un control independiente. En este laboratorio el criterio de salida es concreto: Puedes identificar cuántos miembros de cada cohorte compran en meses posteriores. La verificación principal será: Ningún activity_month puede ser anterior al cohort_month del cliente. Si no puedes explicar por qué pasa esa comprobación, vuelve al paso anterior antes de continuar.

Contexto profesional

En un equipo de datos, SQL no se evalúa sólo por devolver filas: debe responder una pregunta de negocio, conservar el grain correcto y permitir que otra persona valide el resultado. Esta práctica usa el ecommerce del curso para obligarte a reconciliar conteos y totales, igual que harías antes de publicar una métrica en un dashboard.

Ejemplo real

WITH first_order AS (
 SELECT customer_id, MIN(order_date) first_date FROM orders GROUP BY 1
)
SELECT DATE_TRUNC('month',first_date) cohort_month, COUNT(*) customers
FROM first_order GROUP BY 1 ORDER BY 1;

Archivos o datos de entrada

  • data/ecommerce_customers.csv
  • data/ecommerce_orders.csv

Práctica guiada

Calcula mes de primera compra por cliente.

Laboratorio paso a paso

  • Prepara el entorno y localiza los datos/archivos de entrada: data/ecommerce_customers.csv, data/ecommerce_orders.csv. Antes de modificar nada, anota el número de filas, columnas u objetos que esperas usar.
  • Reproduce el ejemplo real de la lección y guarda la salida. No avances hasta poder explicar qué hace cada bloque relacionado con «Cohortes, retención y churn».
  • Ejecuta la práctica guiada: Calcula mes de primera compra por cliente. Documenta el comando, consulta o acción exacta y el resultado obtenido.
  • Resuelve el reto sin mirar la solución: Construye una tabla cohort_month, activity_month y clientes activos. Si falla, registra el mensaje de error y formula una hipótesis antes de cambiar código.
  • Compara tu resultado con el criterio esperado: Puedes identificar cuántos miembros de cada cohorte compran en meses posteriores. Después ejecuta la comprobación: Ningún activity_month puede ser anterior al cohort_month del cliente.
  • Provoca deliberadamente un caso problemático relacionado con este error frecuente: Contar pedidos en vez de clientes sobreestima retención.. Comprueba que sabes detectarlo y corregirlo.

Reto sin ayuda

Construye una tabla cohort_month, activity_month y clientes activos.

Resultado esperado

Puedes identificar cuántos miembros de cada cohorte compran en meses posteriores.

Cómo verificarlo

Ningún activity_month puede ser anterior al cohort_month del cliente.

Checklist de validación

  • El resultado cumple: Puedes identificar cuántos miembros de cada cohorte compran en meses posteriores.
  • Has ejecutado esta verificación y puedes explicar el resultado: Ningún activity_month puede ser anterior al cohort_month del cliente.
  • Has probado al menos un caso límite o dato inválido y el comportamiento es explícito, no silencioso.
  • Puedes repetir la práctica desde cero sin copiar la solución y dejar evidencia (consulta, commit, captura o salida de consola).
Pista específica

Primero crea una tabla customer_months con meses distintos.

Solución paso a paso

1) Empieza reproduciendo el caso base con los datos indicados. 2) Aplica esta estrategia específica: Une first_order con customer_months y cuenta DISTINCT customer_id por ambos meses. 3) Usa como referencia técnica el ejemplo de la lección (WITH first_order AS ( SELECT customer_id, MIN(order_date) first_date FROM orders GROUP BY 1 ) SELECT DATE_TRUNC(‘month’,first_date) cohort_month, COUNT(*) customers FROM first_order GROUP BY 1 ORDER BY 1;). 4) Ejecuta la verificación: Ningún activity_month puede ser anterior al cohort_month del cliente. 5) Compara con el resultado esperado: Puedes identificar cuántos miembros de cada cohorte compran en meses posteriores. 6) Repite el reto cambiando un dato o condición para demostrar que entiendes el comportamiento y no has obtenido el resultado por casualidad. Si aparece el error «Contar pedidos en vez de clientes sobreestima retención.», corrige la causa antes de continuar; no ocultes el fallo ni cambies el resultado esperado para que la prueba pase.

Errores frecuentes

  • Contar pedidos en vez de clientes sobreestima retención.

Qué debes recordar

Debes poder explicar qué filas produce la consulta y por qué.

Preguntas de entrevista

  • ¿Cómo demostrarías que una consulta no está duplicando métricas? Aplícalo concretamente a «Cohortes, retención y churn».
  • ¿Qué comprobaciones harías antes de publicar este resultado a negocio? Explica qué evidencia enseñarías al revisor.

Siguiente paso

Terminarás con controles de calidad y rendimiento.

Recursos de esta lección

Quiz de la lección

¿Qué identifica normalmente una cohorte de adquisición?

Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.