Calculando Métricas de Retenção e Churn
Deslize para mostrar o menu
Métricas de retenção e churn são ferramentas essenciais na análise de coorte, auxiliando na mensuração de quão bem seu produto retém usuários ao longo do tempo e onde você pode estar perdendo-os. A taxa de retenção quantifica a porcentagem de usuários de uma coorte que permanecem ativos após um determinado período. A taxa de churn é o complemento, mostrando a porcentagem de usuários que deixaram de se engajar. A taxa de sobrevivência acompanha a probabilidade de um usuário permanecer ativo em cada período, fornecendo uma visão da longevidade do usuário.
Fórmulas:
- Taxa de Retenção (no período n):
Retention Rate = (Number of users active in period n) / (Number of users in cohort at period 0); - Taxa de Churn (no período n):
Churn Rate = 1 - Retention Rate (at period n); - Taxa de Sobrevivência (no período n):
Survival Rate = (Number of users still active at period n) / (Number of users in cohort at period 0).
Essas métricas são frequentemente visualizadas por meio de curvas de retenção ou gráficos de sobrevivência, que ajudam a identificar rapidamente padrões, como quedas acentuadas ou períodos de estabilidade. Ao acompanhar essas taxas em múltiplas coortes e períodos de tempo, é possível identificar estratégias de engajamento bem-sucedidas e áreas que precisam de melhorias.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566import pandas as pd import numpy as np import matplotlib.pyplot as plt # Example cohort data: each row is a user, columns are activity in each month (1 = active, 0 = inactive) data = { "user_id": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "cohort_month": ["2023-01"] * 5 + ["2023-02"] * 5, "month_0": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], # All users active at signup "month_1": [1, 0, 1, 1, 0, 1, 1, 0, 1, 1], "month_2": [1, 0, 0, 1, 0, 1, 0, 0, 1, 0], "month_3": [0, 0, 0, 1, 0, 1, 0, 0, 0, 0], } df = pd.DataFrame(data) # Calculating retention, churn, and survival rates for each cohort results = [] for cohort, group in df.groupby("cohort_month"): cohort_size = len(group) retention = [] churn = [] survival = [] users_remaining = cohort_size for month in ["month_0", "month_1", "month_2", "month_3"]: active = group[month].sum() retention_rate = active / cohort_size retention.append(retention_rate) churn.append(1 - retention_rate) survival.append(users_remaining / cohort_size) users_remaining = active # Update for next period results.append({ "cohort_month": cohort, "retention": retention, "churn": churn, "survival": survival, }) # Converting results to DataFrame for plotting metrics_df = pd.DataFrame(results) months = ["month_0", "month_1", "month_2", "month_3"] # Plot retention curves plt.figure(figsize=(10, 5)) for idx, row in metrics_df.iterrows(): plt.plot(months, row["retention"], marker="o", label=f"Cohort {row['cohort_month']}") plt.title("Cohort Retention Curves") plt.xlabel("Months Since Signup") plt.ylabel("Retention Rate") plt.legend() plt.show() # Plot survival curves plt.figure(figsize=(10, 5)) for idx, row in metrics_df.iterrows(): plt.plot(months, row["survival"], marker="o", label=f"Cohort {row['cohort_month']}") plt.title("Cohort Survival Curves") plt.xlabel("Months Since Signup") plt.ylabel("Survival Rate") plt.legend() plt.show() # Printing calculated metrics print(metrics_df[["cohort_month", "retention", "churn", "survival"]])
Este código demonstra como calcular e visualizar as taxas de retenção, churn e sobrevivência para coortes de usuários utilizando pandas e matplotlib em Python.
O objetivo é analisar como grupos de usuários (coortes) se comportam ao longo do tempo, com foco em seu engajamento e longevidade com um produto.
Estrutura dos Dados:
- Os dados estão organizados em um DataFrame onde cada linha representa um usuário;
- As colunas incluem um identificador único do usuário, o mês da coorte (quando o usuário ingressou) e indicadores binários de atividade para cada mês (1 = ativo, 0 = inativo).
Lógica de Cálculo:
Para cada coorte, o código:
- Calcula a taxa de retenção para cada mês como a proporção de usuários ainda ativos em relação ao tamanho original da coorte;
- Calcula a taxa de churn como o complemento da retenção (1 - taxa de retenção);
- Acompanha a taxa de sobrevivência, que mostra a probabilidade de um usuário permanecer ativo até cada período, atualizando a contagem de usuários restantes após cada mês.
Visualização:
- Curvas de retenção e sobrevivência são plotadas para cada coorte utilizando matplotlib;
- Esses gráficos ajudam a comparar visualmente a velocidade com que os usuários deixam de usar (churn) ou permanecem engajados (retenção/sobrevivência) entre coortes e períodos, revelando tendências e padrões no engajamento dos usuários.
Interpretar as métricas de retenção e churn é fundamental para tomar decisões de negócios informadas. Altas taxas de retenção indicam que os usuários percebem valor contínuo em seu produto, sugerindo forte engajamento e aderência ao mercado. Por outro lado, altas taxas de churn podem sinalizar problemas como necessidades dos usuários não atendidas, onboarding inadequado ou pressão da concorrência. Curvas de sobrevivência ajudam a visualizar a velocidade com que os cohorts estão diminuindo – quedas acentuadas podem revelar quando os usuários normalmente perdem o interesse.
Ao acompanhar regularmente essas métricas, é possível identificar tendências ao longo do tempo e entre diferentes cohorts. Por exemplo, se o lançamento de uma nova funcionalidade coincidir com o aumento da retenção, pode valer a pena investir mais nessa direção. Por outro lado, se o churn aumentar após uma atualização específica, isso pode indicar a necessidade de melhorias no produto ou de suporte adicional ao usuário. Em última análise, essas métricas permitem testar hipóteses, otimizar jornadas dos usuários e alocar recursos de forma eficaz.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo