Bastidores da análise de churn: origem dos dados, exploração em SQL, medidas DAX e processo analítico usado no dashboard.
A base utilizada foi o dataset público Telco Customer Churn, disponível no Kaggle. O conjunto contém informações cadastrais e comerciais de clientes de telecom, incluindo tipo de contrato, tempo de permanência, serviços contratados, método de pagamento, cobranças mensais e status de churn.
Usei essa base por permitir uma análise completa de retenção: ela possui variáveis suficientes para investigar perfil, comportamento, relacionamento com o serviço e possíveis fatores associados ao cancelamento.
Ver dataset no Kaggle Voltar para o caseA análise foi conduzida em etapas. Primeiro, busquei entender o tamanho do problema a partir da distribuição de churn e da taxa geral de cancelamento. Depois, segmentei os clientes por variáveis-chave, como contrato e tempo de permanência, para identificar onde o churn era mais concentrado.
Para entender o comportamento geral da base, foi realizada uma agregação por status de churn. Essa consulta mostra quantos clientes permaneceram ativos e quantos cancelaram o serviço.
SELECT
Churn,
COUNT(*) AS total_clientes
FROM "Telco_Customer_Churn.csv"
GROUP BY Churn;
Essa etapa foi importante para dimensionar o problema antes de partir para análises mais específicas. A base indicou 5.174 clientes ativos e 1.869 clientes churnados.
Após identificar a quantidade de clientes churnados, calculei a taxa geral de churn. Essa métrica mostra a proporção de clientes que cancelaram em relação ao total da base.
SELECT
ROUND(
100.0 * SUM(CASE WHEN Churn = 'Yes' THEN 1 ELSE 0 END) / COUNT(*),
2
) AS churn_rate_percent
FROM "Telco_Customer_Churn.csv";
O resultado foi uma taxa de churn de aproximadamente 26,5%, indicando que mais de um quarto dos clientes da base cancelaram o serviço.
Para entender em qual momento da jornada o churn era mais crítico, os clientes foram agrupados por tempo de permanência. Essa análise ajudou a identificar se o cancelamento era mais comum em clientes novos ou antigos.
SELECT
CASE
WHEN tenure <= 12 THEN '0-12 meses'
WHEN tenure <= 24 THEN '13-24 meses'
WHEN tenure <= 48 THEN '25-48 meses'
ELSE '49+ meses'
END AS faixa_tenure,
COUNT(*) AS total_clientes,
SUM(CASE WHEN Churn = 'Yes' THEN 1 ELSE 0 END) AS clientes_churn,
ROUND(
100.0 * SUM(CASE WHEN Churn = 'Yes' THEN 1 ELSE 0 END) / COUNT(*),
2
) AS churn_rate_percent
FROM "Telco_Customer_Churn.csv"
GROUP BY 1
ORDER BY churn_rate_percent DESC;
A análise mostrou que clientes com até 12 meses apresentaram churn próximo de 47%, tornando esse grupo o mais crítico. Esse resultado guiou a recomendação de priorizar onboarding e acompanhamento nos primeiros meses.
No Power BI, criei medidas enxutas e reutilizáveis para sustentar os principais indicadores do dashboard. A ideia foi manter o modelo simples, evitando medidas desnecessárias e focando no que realmente seria usado nos visuais.
Churn Flag = IF('telco_customer_churn'[Churn] = "Yes", 1, 0)
Total Customers = COUNTROWS('telco_customer_churn')
Churned Customers = SUM('telco_customer_churn'[Churn Flag])
Churn Rate = DIVIDE([Churned Customers], [Total Customers])
Active Customers = [Total Customers] - [Churned Customers]
Além das medidas, criei colunas de segmentação para facilitar a leitura dos gráficos e transformar variáveis contínuas em grupos mais úteis para análise de negócio.
Tenure Group =
SWITCH(
TRUE(),
'telco_customer_churn'[tenure] <= 12, "0-12",
'telco_customer_churn'[tenure] <= 24, "13-24",
'telco_customer_churn'[tenure] <= 48, "25-48",
"49+"
)
Charge Group =
SWITCH(
TRUE(),
'telco_customer_churn'[MonthlyCharges] < 35, "Low",
'telco_customer_churn'[MonthlyCharges] < 70, "Medium",
"High"
)
A construção do projeto seguiu uma lógica progressiva: primeiro medir o problema, depois entender onde ele estava concentrado e, por fim, propor ações. Essa abordagem evitou um dashboard apenas visual e levou a uma análise mais conectada com decisão de negócio.
O ponto mais relevante foi perceber que o churn não estava distribuído de forma homogênea. Ele se concentrava principalmente em clientes de contrato mensal, clientes novos e grupos com maior sensibilidade a preço ou experiência.
Ver dashboard completo Ver case completo