Como segmentar seus clientes usando Pareto(curva ABC) + Extra

João Vitor Deon
5 min readSep 12, 2020

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:

dataset agrupado por meses

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:

distribuição das vendas segmentadas por classes

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:
resultado da curva ABC
  • Um pequeno report mostrando a quantidade e as representatividades percentuais de cada classe:
report

Perceba a proporcionalidade na quantidade de clientes dentro de cada sub-grupo, que esta contido dentro de cada grupo:

sub-grupos segmentados

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):

função que calcula curva ABC e duplo ABC

--

--