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 Key
OUcustomer_entity.(input)reference > Count Reference
.Primary Key
-
Selecionado column:
sales_flat_order.customer_email
OUcustomer_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 Key
OUcustomer_entity.(input)reference > Customer Concentration.Primary Key
-
Selecionado column:
sales_flat_order.customer_email
OUcustomer_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.