Analyse RFM
Cette rubrique explique comment configurer un tableau de bord qui vous permet de segmenter vos clients en fonction de leur récence, fréquence et classement monétaire. L’analyse RFM est une technique marketing qui prend en compte les comportements des clients pour vous aider à déterminer la segmentation pour la diffusion externe. Il tient compte de trois aspects :
- Récence de la date à laquelle un client a acheté des produits dans votre boutique
- Fréquence à laquelle ils effectuent leurs achats chez vous
- Montant monétaire des dépenses du client
L'analyse RFM ne peut être configurée que si vous disposez du plan Adobe Commerce Intelligence Pro sur la nouvelle architecture (par exemple, si vous avez l'option Data Warehouse Views
sous le menu Manage Data
). Ces colonnes peuvent être créées à partir de la page Manage Data > Data Warehouse. Des instructions détaillées sont fournies ci-dessous.
Prise en main
Vous devez d’abord charger un fichier contenant uniquement une clé primaire avec la valeur d’un. Cela permet la création de certaines colonnes calculées nécessaires à l’analyse.
Vous pouvez utiliser cet article et l’image ci-dessous pour formater votre fichier.
Colonnes calculées
Une distinction supplémentaire est faite si votre entreprise autorise les commandes d'invités. Si tel est le cas, vous pouvez ignorer toutes les étapes du tableau customer_entity
. Si les commandes d'invités ne sont pas autorisées, ignorez toutes les étapes pour la table sales_flat_order
.
Colonnes à créer
-
Sales_flat_order/customer_entity
table -
Customer's last order date
-
Column type :
Many to one > Max
-
Pat :
sales_flat_order.customer_id > customer_entity.entity_id
-
column sélectionné :
created_at
-
Filter :
Orders we count
-
Secondes écoulées depuis la date de la dernière commande du client- Column type : - « Même tableau > Âge
-
column sélectionné :
Customer's last order date
-
(entrée) Référence du nombre
-
Column type :
Same table > Calculation
-
Entrées:entity_id
-
Calculation :
**case when A is null then null else 1 end**
-
, type de données:Integer
-
Référence du nombre table (il s'agit du fichier que vous avez chargé avec le numéro « 1 »)
-
Nombre de clients
-
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
-
column sélectionné :
sales_flat_order.customer_email
OUcustomer_entity.entity_id
-
Table Customer_entity
-
Nombre de clients
-
Column type :
One to Many > JOINED_COLUMN
-
Path :
customer_entity
.(entrée) référence > Concentration des clients.Primary Key
-
column sélectionné :
Number of customers
-
(entrée)
Ranking by customer lifetime revenue
-
Column type :
Same table > Event Number
-
Event owner :
(input) reference for count
-
Event rank :
Customer's lifetime revenue
-
Classement par chiffre d’affaires cumulé du client
-
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
-
, type de données:Integer
-
Score monétaire du client (en centiles)
-
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
-
, type de données:Integer
-
(entrée) Classement par nombre de commandes sur la durée de vie du client
-
Column type :
Same table > Event Number
-
Event owner :
(input) reference for count
-
Event rank :
Customer's lifetime number of orders
-
Classement par nombre de commandes sur la durée de vie du client
-
Type de colonne: – “Même tableau > Calcul” -
Inputs : - (entrée) Classement par nombre de commandes sur la durée de vie du client, nombre de clients
-
Calculation : - cas où A est nul puis nul autrement (B-(A-1)) fin
-
Datatype : - Entier
-
Score de fréquence du client (par centiles)
-
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
-
, type de données:Integer
-
Classement par secondes depuis la date de la dernière commande du client
-
Column type :
Same table > Event Number
-
Event owner :
(input) reference for count
-
Event rank :
Seconds since customer's last order date
-
Score de récence du client (par centiles)
-
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
-
, type de données:Integer
-
Score de récence du client (par centiles)
-
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
-
, type de données: String -
Référence du nombre tableau
-
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
-
column sélectionné :
sales_flat_order.customer_email
OUcustomer_entity.entity_id
-
Filter :
Customer's RFM score (by percentile)
Est Différent De 000 -
Table Customer_entity
-
Number of customers :
(RFM > 0)
-
Column type :
One to Many > JOINED_COLUMN
-
Path :
customer_entity.(input) reference > Customer Concentration.Primary Key
-
column sélectionnés : -
Number of customers
-
(R+F+M)
du score de récence du client -
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
-
, type de données:Integer
-
(input) Classement par score RFM global du client
-
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)
Est Différent De 000 -
Classement par score RFM global du client
-
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
-
, type de données:Integer
-
Groupe RFM du client
-
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
-
, type de données:Integer
Mesures
Aucune nouvelle mesure!
Rapports
-
Clients par regroupement RFM
-
A
de mesure :New customers
-
Metric :
New customers
-
Filter :
Customer's RFM score (by percentiles) Not Equal to 000
-
Time period :
All time
-
Interval:None
-
Masquer le graphique
-
Group by :
Customer's RFM group
-
Regrouper par:Email
-
Chart type:Table
-
Clients avec cinq scores de récence
-
A
de mesure :New customers
-
Metric :
New customers
-
Filter :
Customer's recency score (by percentiles) Equal to 5
-
Time period :
All time
-
Interval:None
-
Chart Type:Scalar
-
Masquer le graphique
-
Regrouper par:Email
-
Group by :
Customer's RFM score (R+F+M)
-
Chart type:Table
-
Clients avec un score de récence
-
A
de mesure :New customers
-
Metric :
New customers
-
Filter :
Customer's recency score (by percentiles) Equal to 1
-
Time period :
All time
-
Interval:None
-
Chart Type:Scalar
-
Masquer le graphique
-
Regrouper par:Email
-
Group by :
Customer's RFM score (R+F+M)
-
Chart type:Table
Après avoir compilé tous les rapports, vous pouvez les organiser selon vos besoins dans le tableau de bord. Le résultat peut ressembler à l’exemple de tableau de bord ci-dessus, mais les trois tableaux générés ne sont que des exemples des types de segmentation de clients que vous pouvez effectuer.