Segmentation RFM
L'idée en une phrase
- La méthode RFM note chaque client sur trois axes : Récence (jours depuis sa dernière commande), Fréquence (nombre de commandes) et Montant (CA total).
- Chaque axe reçoit un score de 1 à 5. La combinaison des scores définit des segments (Champions, Fidèles, Nouveaux, Prometteurs, À risque, Perdus) qui orientent les actions marketing : fidéliser, relancer, réactiver.
Fichier d'exercice
- RFM_Depart : le modèle et les consignes. Jeu de données commun aux cas d'étude (940 clients, 2 456 commandes en 2024 et 2025).
- Date de référence : 31/12/2025.
- Corrigé : le PBIP RFM_Corrige est remis par le formateur.
Pourquoi des colonnes calculées ?
- Le RFM est une photo à une date : chaque client reçoit un score et un segment fixes, que l'on veut pouvoir placer en lignes d'un tableau ou dans un segment.
- Une mesure ne peut pas servir d'axe : on calcule donc les scores en colonnes calculées dans la table Client. Elles sont évaluées à l'actualisation et ne réagissent pas aux segments du rapport.
Étape 1 : les trois indicateurs
Derniere commande = CALCULATE ( MAX ( Ventes[Date] ) )
Frequence = CALCULATE ( DISTINCTCOUNT ( Ventes[NumCommande] ) )
Montant = CALCULATE ( SUM ( Ventes[Montant] ) )CALCULATEdéclenche la transition de contexte : chaque ligne de Client devient un filtre propagé à Ventes. Voir
CALCULATE et transition de contexte.- Plusieurs colonnes de ce type dans une même table ne créent pas de dépendance circulaire, car
ClientIDest la clé de la table Client.
Étape 2 : la récence
Recence = DATEDIFF ( Client[Derniere commande], DATE ( 2025, 12, 31 ), DAY )- Plus la récence est petite, meilleur est le client. Dans un vrai rapport, remplacez la date fixe par
TODAY ()ou par la dernière date des ventes.
Étape 3 : les scores de 1 à 5
Récence et montant : par quintiles, chaque score regroupe un cinquième des clients.
Score R = INT ( ( RANKX ( Client, Client[Recence], , DESC ) - 1 ) * 5 / COUNTROWS ( Client ) ) + 1
Score M = INT ( ( RANKX ( Client, Client[Montant], , ASC ) - 1 ) * 5 / COUNTROWS ( Client ) ) + 1RANKX ( Client, Client[Recence], , DESC )donne le rang 1 au client le plus ancien. Le calcul « ( rang - 1 ) x 5 / nombre de clients » le ramène à 0 ; on ajoute 1 pour obtenir un score de 1 à 5.- Pour le montant, on trie en ordre croissant (ASC) : le plus gros client obtient le score 5.
Fréquence : par seuils.
Score F =
SWITCH (
TRUE (),
Client[Frequence] >= 8, 5,
Client[Frequence] >= 5, 4,
Client[Frequence] >= 3, 3,
Client[Frequence] = 2, 2,
1
)- 365 clients n'ont passé qu'une commande. Avec des quintiles, des clients identiques recevraient des scores différents ; les seuils évitent ce problème.
- Source (Microsoft Learn)
Étape 4 : le segment
Segment RFM =
VAR r = Client[Score R]
VAR f = Client[Score F]
RETURN
SWITCH (
TRUE (),
r >= 4 && f >= 4, "Champions",
r >= 3 && f >= 3, "Fidèles",
r >= 4 && f = 1, "Nouveaux",
r >= 3, "Prometteurs",
f >= 3, "À risque",
"Perdus"
)SWITCH ( TRUE (), ... )teste les conditions dans l'ordre et s'arrête à la première vraie : l'ordre des lignes fait partie de la règle.- Les règles sont un choix métier : adaptez-les à votre activité.
Étape 5 : les mesures et les visuels
Nb clients = COUNTROWS ( Client )
Part des clients = DIVIDE ( [Nb clients], CALCULATE ( [Nb clients], ALL ( Client[Segment RFM] ) ) )
CA par client = DIVIDE ( [CA], [Nb clients] )- Tableau par segment : Nb clients, Part des clients, CA, CA par client.
- Matrice Score R (lignes) x Score F (colonnes), valeur Nb clients, avec une mise en forme conditionnelle : on y lit d'un coup d'œil la répartition de la base.
Résultat attendu
| Segment RFM | Nb clients | Part des clients | CA | CA par client |
| Champions | 87 | 9,3 % | 440 583 | 5 064 |
| Fidèles | 174 | 18,5 % | 444 736 | 2 556 |
| Prometteurs | 210 | 22,3 % | 263 309 | 1 254 |
| Nouveaux | 93 | 9,9 % | 69 042 | 742 |
| À risque | 96 | 10,2 % | 225 692 | 2 351 |
| Perdus | 280 | 29,8 % | 237 438 | 848 |
- Les Champions (9 % des clients) font 26 % du CA. Les 96 clients « À risque » pèsent 2 351 € chacun : ce sont eux qu'il faut relancer en priorité.
Pour aller plus loin
- RFM dynamique : refaire les scores en mesures, pour qu'ils suivent une date de référence choisie dans un segment. Le segment ne peut alors plus servir d'axe sans table de segments déconnectée.
- Combiner avec le cas
Pareto et classement ABC sur les clients.