Análise RFM
Este tópico demonstra como configurar um painel que permite segmentar os clientes de acordo com sua recenticidade, frequência e classificação monetária. A análise RFM é uma técnica de marketing que considera os comportamentos do cliente para ajudar você a determinar a segmentação para alcance geral. São três os aspectos em causa:
- Recenticidade na recente compra de um cliente em sua loja
- Frequência na frequência com que eles compram de você
- Valor monetário em quanto o cliente gasta
A análise RFM só poderá ser configurada se você tiver o plano Pro Adobe Commerce Intelligence na nova arquitetura (por exemplo, se você tiver a opção Data Warehouse Views no menu Manage Data). Essas colunas podem ser criadas na página Manage Data > Data Warehouse. As instruções detalhadas são fornecidas abaixo.
Introdução
Primeiro, é necessário carregar um arquivo contendo apenas uma chave primária com o valor um. Isso permite a criação de algumas colunas calculadas necessárias para a análise.
Você pode usar este artigo e a imagem abaixo para formatar seu arquivo.
Colunas calculadas
Uma outra distinção é feita se sua empresa permite pedidos de hóspedes. Em caso afirmativo, você pode ignorar todas as etapas da tabela customer_entity. Se os pedidos de convidado não forem permitidos, ignore todas as etapas da tabela sales_flat_order.
Colunas para criar
-
Tabela
Sales_flat_order/customer_entity -
Customer's last order date -
Column type:
Many to one > Max -
Pat:
sales_flat_order.customer_id > customer_entity.entity_id -
Selecionado column:
created_at -
Filter:
Orders we count -
Segundos desde a última data de pedido do cliente- Column type: - "Mesma tabela > Idade
-
Selecionado column:
Customer's last order date -
(entrada) Referência de contagem
-
Column type:
Same table > Calculation -
Entradas:entity_id -
Calculation:
**case when A is null then null else 1 end** -
Tipo de dados:Integer -
Tabela Referência de contagem (este é o arquivo que você carregou com o número "1")
-
Número de clientes
-
Column type:
Many to One > Count Distinct -
Path:
ales_flat_order.(input) reference > Count reference.Primary KeyOUcustomer_entity.(input)reference > Count Reference.Primary Key -
Selecionado column:
sales_flat_order.customer_emailOUcustomer_entity.entity_id -
Tabela Customer_entity
-
Número de clientes
-
Column type:
One to Many > JOINED_COLUMN -
Path:
customer_entity.(input) referência > Concentração de clientes.Primary Key -
Selecionado column:
Number of customers -
(entrada)
Ranking by customer lifetime revenue -
Column type:
Same table > Event Number -
Event owner:
(input) reference for count -
Event rank:
Customer's lifetime revenue -
Classificação por receita vitalícia do cliente
-
Column type:
Same table > Calculation -
Inputs:
(input) Ranking by customer lifetime revenue,Number of customers -
Calculation:
case when A is null then null else (B-(A-1)) end -
Tipo de dados:Integer -
Pontuação monetária do cliente (por percentis)
-
Column type:
Same table > Calculation -
Inputs:
(input) Ranking by customer lifetime revenue,Number of customers -
Calculation:
Case when round((B-A+1)*100/B,0) <= 20 then 5 when round((B-A+1)*100/B,0) <= 40 then 4 when round((B-A+1)*100/B,0) <= 60 then 3 when round((B-A+1)*100/B,0) <= 80 then 2 when round((B-A+1)*100/B,0) <= 100 then 1 else 0 end -
Tipo de dados:Integer -
(entrada) Classificação por número de ordens vitalícias do cliente
-
Column type:
Same table > Event Number -
Event owner:
(input) reference for count -
Event rank:
Customer's lifetime number of orders -
Classificação por número de ordens vitalícias do cliente
-
Tipo de coluna: – “Mesma tabela > Cálculo” -
Inputs: - (entrada) Classificação por tempo de vida do cliente número de pedidos, Número de clientes
-
Calculation: - caso quando A é nulo, então nulo else (B-(A-1)) end
-
Datatype: - Inteiro
-
Pontuação de frequência do cliente (por percentis)
-
Column type:
Same table > Calculation -
Inputs:
(input) Ranking by customer lifetime number of orders,Number of customers -
Calculation:
Case when round((B-A+1)*100/B,0) <= 20 then 5 when round((B-A+1)*100/B,0) <= 40 then 4 when round((B-A+1)*100/B,0) <= 60 then 3 when round((B-A+1)*100/B,0) <= 80 then 2 when round((B-A+1)*100/B,0) <= 100 then 1 else 0 end -
Tipo de dados:Integer -
Classificação por segundos desde a última data de pedido do cliente
-
Column type:
Same table > Event Number -
Event owner:
(input) reference for count -
Event rank:
Seconds since customer's last order date -
Pontuação de recenticidade do cliente (por percentis)
-
Column type:
Same table > Calculation -
Inputs:
(input) Ranking by customer lifetime number of orders,Number of customers -
Calculation:
Case when (A * 100/B,0) <= 20 then 5 when (A * 100/B,0) <= 40 then 4 when (A * 100/B,0) <= 60 then 3 when (A * 100/B,0) <= 80 then 2 when (A * 100/B,0) <= 100 then 1 else 0 end -
Tipo de dados:Integer -
Pontuação de recenticidade do cliente (por percentis)
-
Column type:
Same table > Calculation -
Inputs:
Customer's recency score (by percentiles),Customer's frequency score (by percentiles),Customer's monetary score (by percentiles) -
Calculation:
case when (A IS NULL or B IS NULL or C IS NULL) then null else concat(A,B,C) end -
Tipo de dados: String -
Tabela Referência de contagem
-
Number of customers:
(RFM > 0) -
Column type:
Many to One > Count Distinct -
Path:
sales_flat_order.(input) reference > Customer Concentration. Primary KeyOUcustomer_entity.(input)reference > Customer Concentration.Primary Key -
Selecionado column:
sales_flat_order.customer_emailOUcustomer_entity.entity_id -
Filter:
Customer's RFM score (by percentile)Não É Igual A 000 -
Tabela Customer_entity
-
Number of customers:
(RFM > 0) -
Column type:
One to Many > JOINED_COLUMN -
Path:
customer_entity.(input) reference > Customer Concentration.Primary Key -
Selecionado column: -
Number of customers -
Pontuação de recenticidade do cliente
(R+F+M) -
Column type:
Same table > Calculation -
Inputs: -
Customer's recency score (by percentiles),Customer's frequency score (by percentiles),Customer's monetary score (by percentiles) -
Calculation:
case when (A IS NULL or B IS NULL or C IS NULL) then null else A+B+C end -
Tipo de dados:Integer -
(entrada) Classificação por pontuação RFM geral do cliente
-
Column type:
Same table > Event Number -
Event owner:
(input) reference for count -
Event rank:
Customer's recency score (R+F+M) -
Filter:
Customer's RFM score (by percentile)Não É Igual A 000 -
Classificação por pontuação RFM geral do cliente
-
Column type:
Same table > Calculation -
Inputs:
(input) Ranking by customer's overall RFM score,Number of customers (RFM > 0) -
Calculation:
case when A is null then null else (B-(A-1)) end -
Tipo de dados:Integer -
Grupo RFM do cliente
-
Column type:
Same table > Calculation -
Inputs:
(input) Ranking by customer lifetime revenue,Number of customers -
Calculation:
Case when round(A * 100/B,0) <= 20 then '5. copper' when round(A * 100/B,0) <= 40 then '4. bronze' when round(A * 100/B,0) <= 60 then '3. silver' when round(A * 100/B,0)<= 80 then '2. gold' else '1. Platinum' end -
Tipo de dados:Integer
Métricas
Nenhuma métrica nova!
Relatórios
-
Clientes por agrupamento RFM
-
Métrica
A:New customers -
Metric:
New customers -
Filter:
Customer's RFM score (by percentiles) Not Equal to 000 -
Time period:
All time -
Interval:None -
Ocultar gráfico
-
Group by:
Customer's RFM group -
Agrupar por:Email -
Chart type:Table -
Clientes com pontuação de cinco recenticidade
-
Métrica
A:New customers -
Metric:
New customers -
Filter:
Customer's recency score (by percentiles) Equal to 5 -
Time period:
All time -
Interval:None -
Chart Type:Scalar -
Ocultar gráfico
-
Agrupar por:Email -
Group by:
Customer's RFM score (R+F+M) -
Chart type:Table -
Clientes com uma pontuação de recenticidade
-
Métrica
A:New customers -
Metric:
New customers -
Filter:
Customer's recency score (by percentiles) Equal to 1 -
Time period:
All time -
Interval:None -
Chart Type:Scalar -
Ocultar gráfico
-
Agrupar por:Email -
Group by:
Customer's RFM score (R+F+M) -
Chart type:Table
Após compilar todos os relatórios, você pode organizá-los no painel conforme desejar. O resultado pode se parecer com o painel de amostra acima, mas as três tabelas geradas são apenas exemplos dos tipos de segmentação de clientes que você pode executar.