Trois leviers et un indicateur de synthèse
Le cours DA2 a posé la décomposition du chiffre d’affaires d’un site marchand :
chiffre d'affaires = sessions x taux de conversion x panier moyen
Pour comparer des segments, un quatrième indicateur est très utile : le revenu par visite (RPV, revenue per visit), c’est-à-dire le chiffre d’affaires divisé par le nombre de sessions. Il combine les deux leviers de la boutique elle-même :
RPV = CA / sessions = taux de conversion x panier moyen
Par appareil
traffic["conversion"] = traffic["orders"] / traffic["sessions"]
traffic["aov"] = traffic["revenue"] / traffic["orders"] # panier moyen
traffic["rpv"] = traffic["revenue"] / traffic["sessions"]
| Appareil | Sessions | Conversion | Panier moyen | RPV |
|---|---|---|---|---|
| mobile | 6 000 | 1,5 % | 60 € | 0,90 € |
| desktop | 3 000 | 3,2 % | 90 € | 2,88 € |
| tablet | 1 000 | 2,4 % | 70 € | 1,68 € |
Le mobile apporte 60 % des visites mais seulement 34 % du CA : chaque visite mobile rapporte trois fois moins qu’une visite sur ordinateur. Gagner un demi-point de conversion sur mobile vaudrait 6 000 x 0,005 x 60 = 1 800 euros sur la période.
Le RPV global se calcule sur les totaux : 15 720 / 10 000 = 1,57 euro. La moyenne des trois RPV (1,82) serait fausse, car les segments n’ont pas le même nombre de sessions.
La distribution des paniers
Le panier moyen résume une distribution souvent très asymétrique : beaucoup de petites commandes, quelques très grosses.
print(amounts.mean()) # 69,44
print(amounts.median()) # 47,50
print(amounts.max()) # 420 : une commande exceptionnelle
Une seule commande de 420 euros (un client professionnel ? une erreur de saisie ?) fait monter la moyenne de plus de 20 euros au-dessus de la médiane. Avant de commenter une hausse du panier moyen, regardez la médiane et les plus grosses commandes. Si elles relèvent d’un autre métier (achats professionnels), traitez-les dans un segment à part plutôt que de les supprimer.
Le seuil de livraison gratuite
Beaucoup de boutiques offrent la livraison au-delà d’un montant. Les clients ajustent leur panier : on observe souvent une accumulation de paniers juste au-dessus du seuil, et parfois des paniers bloqués juste en dessous.
near = amounts.between(free_shipping_threshold - 10, free_shipping_threshold, inclusive="left")
print(near.mean()) # part des paniers entre 40 et 50 euros
inclusive="left" inclut 40 et exclut 50. Ici, 44 % des paniers se situent dans les 10 euros sous le seuil : une suggestion de produit complémentaire à moins de 10 euros pourrait les faire passer au-dessus. Mais attention : baisser le seuil ou ajouter une suggestion modifie aussi la marge et le comportement des autres clients. L’effet se mesure par un test A/B (cours MK1 et ST3), pas par une simple projection.
Lire les indicateurs ensemble
Les trois leviers interagissent. Une promotion agressive peut augmenter la conversion et baisser le panier moyen ; une hausse du trafic issue d’une campagne peu ciblée fait souvent baisser la conversion. C’est pourquoi le RPV et le CA total se lisent avec les leviers, et toujours sur une même définition des sessions et des commandes (commandes validées, hors annulations, HT ou TTC précisé).
À retenir
- RPV = CA / sessions = conversion x panier moyen ; il compare les segments.
- Ratios globaux sur les sommes, jamais en moyenne de ratios.
- Regardez la médiane et les valeurs extrêmes avant de commenter le panier moyen.
Exercices
Les solutions et les tests restent sur le serveur. Dans l'espace étudiant, ton code est exécuté et corrigé, et le tuteur donne des indices avant la solution.
Conversion, panier et RPV
Ajoutez à
trafficles colonnesconversion,aovetrpv. Calculezglobal_rpvsur les totaux,best_device(appareil au RPV le plus élevé) etmobile_gain: le CA supplémentaire si la conversion mobile augmentait de 0,5 point à panier moyen constant.import pandas as pd traffic = pd.DataFrame({ "device": ["mobile", "desktop", "tablet"], "sessions": [6000, 3000, 1000], "orders": [90, 96, 24], "revenue": [5400.0, 8640.0, 1680.0], }).set_index("device") # global_rpv = ... # best_device = ... # mobile_gain = ...Distribution des paniers
À partir de
amounts, calculezmean_value,median_value,mean_without_max(moyenne sans la plus grosse commande) etnear_threshold_share: la part des paniers dans [seuil - 10 ; seuil[.import pandas as pd amounts = pd.Series([22, 35, 41, 44, 47, 48, 49, 52, 55, 60, 75, 38, 46, 49, 30, 420], name="order_value") free_shipping_threshold = 50 # mean_value = ... # median_value = ... # mean_without_max = ... # near_threshold_share = ...Lire le RPV
Le canal A convertit à 4 % avec un panier de 30 euros ; le canal B convertit à 2 % avec un panier de 75 euros. Quel canal rapporte le plus par visite ?
- A, car il convertit deux fois mieux
- B : 1,50 euro par visite contre 1,20 pour A
- Ils se valent
- Impossible à dire sans le nombre de sessions
Quiz de fin de leçon
10 000 sessions, 250 commandes, 15 000 euros de CA. RPV ?
- 60 euros
- 1,50 euro
- 2,5 %
Pourquoi présenter la médiane du panier à côté de la moyenne ?
- Parce que la moyenne est sensible aux grosses commandes exceptionnelles
- Parce que la médiane est toujours plus élevée
- Par habitude
Beaucoup de paniers entre 40 et 49 euros pour un seuil de livraison gratuite à 50 euros. Que faire ?
- Baisser immédiatement le seuil
- Formuler une hypothèse (suggestion de produit complémentaire) et la tester
- Supprimer la livraison gratuite
La suite du cours
- Rétention et réachat : délais entre commandes et maturité15 min
- Analyse de cohortes : rétention et revenu par mois d'arrivée20 min
- Recommandations : produits achetés ensemble18 min
- Tableau de bord de la boutique et segmentation RFM15 min