Como segmentar seus clientes usando Pareto(curva ABC) + Extra
A tentativa de agrupar, modelar, e categorizar os clientes de uma empresa não é nova. E não é para menos, afinal queremos conhecer nossos clientes para dar poder ao marketing e fazer com que este seja certeiro com os diversos tipos e segmentos de clientes que uma empresa possui. Dito isto, neste artigo abordarei o método da curva ABC, bastante utilizado para segmentação de clientes mundo afora, assim como o modelo RFM(recency, Frequency, Monetary value), que inclusive é mais “complexo” pois analisa outras métricas e não só o valor monetário de cada cliente.
Meu artigo sobre Matriz RFM :
Além disto, apresentarei uma alternativa interessante e que creio ser “mais assertiva”- por ser mais segmentada-que o modelo tradicional da curva ABC, que chamo de duplo ABC.
Quando se fala em curva ABC - Princípio de Pareto ou Lei 80/20- no meio empresarial, logo fazemos as seguintes perguntas: Qual a porcentagem de vendas que 20% dos meus melhores clientes representam? Dos 80% restantes, qual porcentagem de vendas que 30% desses melhores clientes representam? Qual a porcentagem de vendas que o restante(50%) dos clientes representam? Feita estas perguntas, podemos ir ao tratamento e análise dos dados, e logo após isso vamos mostrar a apresentação desses números.
No meu caso, utilizei uma amostra(sample) de um dataset de vendas antigo que eu tinha em minha máquina. Veja como é a forma dele:
OBS1: Perceba que o dataset já está agrupado pelos 12 meses anteriores e adicionei a coluna ‘MediaCompras’, que representa a média dos últimos 12 meses de cada cliente(representado pela coluna CodCliente)
OBS2: Com podemos notar, utilizei um histórico de 12 meses de compras dos clientes, porém você pode utilizar outras séries temporais, como semestres, trimestres, bimestres, etc.
OBS3: Minhas análises foram feitas em python3 utilizando as bibliotecas pandas e matplotlib.
1) análise curva ABC:
Seguindo a Lei 20/80, obtive o seguinte gráfico após aplicar a lógica aos dados:
Com isso segmentamos os clientes em 3 classes baseadas no volume de venda destes. Veja que a proporção de Pareto está presente, mesmo que imperfeita, afinal no mundo real dificilmente iremos encontrar uma empresa com 20% dos melhores clientes representando exatamente 80% das vendas.
classe A) Representa mais de 80% das vendas, chegando quase a 86%. Ou seja, é o grupo de clientes vital, e com isso, a estratégia dessa empresa deve ser a de reter ao máximo esses clientes.
classe B) Representa quase 11% do volume de vendas. É o grupo menos importante que o A, porém ainda representa uma quantidade considerável de vendas. Com isso, a empresa deve buscar manter esse grupo por perto, mas com certa economia de recursos em marketing e retenção.
classe C) Representa menos de 5% das vendas. É o grupo onde há clientes novos(geralmente) e que compram pouco, com baixa frequência. As empresas mapeiam os clientes desse grupo para reverter a situação destes para que se tornem da classe B ou classe A.
Para uma ideia mais clara, podemos ver a distribuição dos valores das vendas:
Veja como os clientes das Classes A e B juntos representam 96.41% das compras dessa empresa.
Agora com os dados em mãos, podemos fazer outra pergunta: E como segmentar mais ainda esses clientes? Maior estratificação pode significar mais conhecimento específico de cada grupo.
O que faremos agora é aplicar de novo o algoritmo para que ele faça uma nova curva ABC para cada classe já criada, ou seja, teremos sub-classes : AA, AB, AC, BA, BB, BC, CA, CB, CC.
‘ Em suma, iremos aplicar a mesma lógica inicial, só que em cima das classes existentes A, B e C.
E o resultado disso é a segmentação seguinte:
Com essa segmentação mais específica, podemos aplicar ações mais diretas em cada sub-classe, o que aumenta o nível de aproximação com o cliente. O marketing pode ser mais assertivo e personalizável.
A função que eu utilizei para esse artigo recebe dois parâmetros:
- Dataset agrupado(igual o dataset que mostro no inicio do artigo)
- Nome da coluna que você deseja calcular o valor monetário(‘MediaCompras’, no meu caso)
A função retorna duas coisas:
- Um dataset com o resultado das segmentações, com os clientes já rotulados e classificados:
- Um pequeno report mostrando a quantidade e as representatividades percentuais de cada classe:
Perceba a proporcionalidade na quantidade de clientes dentro de cada sub-grupo, que esta contido dentro de cada grupo:
Para a maioria das empresas, essa pode ser uma boa estratégia, pois ela foca as ações estratégicas diretamente em cima de cada subgrupo, apropriando adequadamente as campanhas e estratégias de marketing e criando uma maior aproximação da equipe de CS(customer sucess) com os clientes.
Com isso, damos um passo mais assertivo nas estratégias de retenção, promoção da fonte de receitas das empresas !
Código da função (python3):