Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

E-Commerce Customer Analytics — Segmentation RFM

Analyse de 541 909 transactions d'un site e-commerce britannique pour segmenter les clients et identifier les leviers de croissance.

Stack : Python · pandas · Power BI · DAX


Aperçu du dashboard

Dashboard Customer Analytics


Contexte

Tous les clients ne se valent pas. L'objectif de ce projet est de segmenter une base client pour orienter les actions marketing : qui fidéliser, qui réactiver, et où concentrer le budget.

Dataset : Online Retail (Kaggle) — 541 909 transactions, décembre 2010 à décembre 2011, site e-commerce UK.


Résultats

Indicateur Valeur
Chiffre d'affaires 8,91 M£
Commandes 18 530
Clients uniques 4 338
Panier moyen 480,87 £

Segmentation RFM

Segment Part des clients
Occasionnels 40,6 %
VIP 30,4 %
À réactiver 14,9 %
Fidèles 14,1 %

Concentration géographique

Le Royaume-Uni représente l'écrasante majorité du chiffre d'affaires. Les Pays-Bas, l'Irlande et l'Allemagne suivent loin derrière — mais avec des paniers moyens élevés, ce qui suggère un potentiel de développement sur ces marchés.

Saisonnalité

Le chiffre d'affaires mensuel est irrégulier sur le premier semestre 2011, puis progresse fortement à partir de septembre pour culminer en novembre. Un pic de fin d'année cohérent avec une activité de vente de cadeaux et articles de décoration.

Recommandations

  • Fidéliser les VIP — ils génèrent une part disproportionnée du revenu pour une fraction de la base.
  • Réactiver les clients dormants — 14,9 % de la base représente du revenu récupérable sans coût d'acquisition.
  • Anticiper le pic de novembre — stocks et campagnes à préparer dès septembre.

Démarche

1. Nettoyage (Python / pandas)

  • Suppression des transactions sans identifiant client
  • Retrait des quantités et prix négatifs ou nuls (retours et annulations)
  • Suppression des doublons
  • Calcul du montant par ligne (Quantity × UnitPrice)

2. Segmentation RFM

Trois indicateurs calculés par client :

  • Récence — nombre de jours depuis le dernier achat
  • Fréquence — nombre de commandes distinctes
  • Montant — chiffre d'affaires cumulé

Chaque client reçoit un score de 1 à 4 sur ces trois axes, calculé par quartiles sur la population :

  • R_score — récence inversée (4 = achat récent, 1 = achat ancien)
  • F_score — fréquence (4 = achète souvent)
  • M_score — montant (4 = dépense beaucoup)

Les règles d'affectation, évaluées dans cet ordre :

Segment Condition
VIP R ≥ 3 et F ≥ 3 et M ≥ 3
Fidèles R ≥ 3 et F ≥ 2
À réactiver R ≤ 2 et F ≥ 3
Occasionnels tous les autres

L'ordre des conditions compte : un client remplissant plusieurs critères est classé dans le premier segment qui correspond. Un client VIP satisfait aussi la condition « Fidèles », mais il est capté avant.

La logique métier derrière ces règles :

  • VIP — récent, fréquent et dépensier sur les trois axes. La priorité de fidélisation.
  • Fidèles — actifs récemment avec une fréquence correcte, mais sans le niveau de dépense des VIP. Un potentiel de montée en gamme.
  • À réactiver — la combinaison la plus intéressante : ils achetaient souvent (F ≥ 3) mais ne sont plus revenus (R ≤ 2). Ce sont des clients perdus qui ont déjà prouvé leur valeur — d'où un coût de réactivation bien inférieur à un coût d'acquisition.
  • Occasionnels — le reste : achats ponctuels sans régularité.

3. Dashboard (Power BI)

  • KPI globaux : CA total, commandes, clients uniques, panier moyen
  • Évolution mensuelle du chiffre d'affaires
  • Répartition des segments RFM
  • Top 10 des pays par chiffre d'affaires
  • Filtre interactif par pays

Structure du projet

├── images/
│   └── dashboard.png              # Capture du dashboard
├── ecommerce_analysis.py          # Script d'analyse et d'export
├── customer_rfm_segments.csv      # Segments clients (généré par le script)
├── ecommerce_dashboard.pbix       # Fichier Power BI
└── README.md

Le dataset source n'est pas inclus (volume trop important pour un dépôt Git). Il est disponible sur Kaggle sous le nom Online Retail.


Reproduire l'analyse

# 1. Télécharger le dataset Online Retail depuis Kaggle
# 2. Le placer dans un dossier data/ à la racine du projet

pip install pandas
python ecommerce_analysis.py

Le script exporte le dataset nettoyé et les segments clients.

Note sur le fichier .pbix — les sources de données pointent vers des chemins locaux. À l'ouverture, il faudra les redéfinir via AccueilTransformer les donnéesParamètres de la source de données.


Limites

  • Une seule année de données — impossible de distinguer une tendance de fond d'un effet ponctuel. Le pic de novembre semble saisonnier, mais un seul cycle ne permet pas de le confirmer.
  • Seuils RFM arbitraires — les bornes entre segments reposent sur des choix métier, pas sur une méthode statistique. Un clustering (K-means) donnerait des groupes plus objectifs.
  • Transactions sans client identifié écartées — cela représente une part non négligeable du volume, exclue de l'analyse RFM.
  • Un seul marché dominant — le Royaume-Uni écrase les autres pays, ce qui rend les comparaisons internationales peu robustes.

Pistes d'amélioration

  • Clustering K-means pour objectiver les segments
  • Calcul de la valeur vie client (CLV) par segment
  • Analyse de cohortes pour mesurer la rétention dans le temps
  • Analyse du panier (règles d'association) pour identifier les produits achetés ensemble

About

Segmentation RFM de 4 338 clients e-commerce — Python, pandas, Power BI, DAX

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages