Calculer et projeter la CLV

Machine Learning pour le marketing en Python

Karolis Urbonas

Head of Analytics & Science, Amazon

L'objectif de la CLV

  • Mesurer la valeur client en revenus / profits
  • Établir des référents entre clients
  • Déterminer l'investissement maximal pour l'acquisition
  • Ici, pour simplifier, on ignore la marge et on utilise des formules de CLV basées sur les revenus

Formule CLV traditionnelle basée sur les revenus

Machine Learning pour le marketing en Python

Calcul de base de la CLV

# Calculate monthly spend per customer
monthly_revenue = online.groupby(['CustomerID','InvoiceMonth'])['TotalSum'].sum().mean()

# Calculate average monthly spend monthly_revenue = np.mean(monthly_revenue)
# Define lifespan to 36 months lifespan_months = 36
# Calculate basic CLV clv_basic = monthly_revenue * lifespan_months
# Print basic CLV value print('Average basic CLV is {:.1f} USD'.format(clv_basic))
Average basic CLV is 4774.6 USD
Machine Learning pour le marketing en Python

Calcul détaillé de la CLV

# Calculate average revenue per invoice
revenue_per_purchase = online.groupby(['InvoiceNo'])['TotalSum'].mean().mean()

# Calculate average number of unique invoices per customer per month freq = online.groupby(['CustomerID','InvoiceMonth'])['InvoiceNo'].nunique().mean()
# Define lifespan to 36 months lifespan_months = 36
# Calculate granular CLV clv_granular = revenue_per_purchase * freq * lifespan_months
# Print granular CLV value print('Average granular CLV is {:.1f} USD'.format(clv_granular))
Average granular CLV is 1635.2 USD
Revenue per purchase: 34.8 USD
Frequency per month: 1.3
Machine Learning pour le marketing en Python

Calcul traditionnel de la CLV

# Calculate monthly spend per customer
monthly_revenue = online.groupby(['CustomerID','InvoiceMonth'])['TotalSum'].sum().mean()

# Calculate average monthly retention rate retention_rate = retention_rate = retention.iloc[:,1:].mean().mean()
# Calculate average monthly churn rate churn_rate = 1 - retention_rate
# Calculate traditional CLV clv_traditional = monthly_revenue * (retention_rate / churn_rate)
# Print traditional CLV and the retention rate values print('Average traditional CLV is {:.1f} USD at {:.1f} % retention_rate'.format( clv_traditional, retention_rate*100))
Average traditional CLV is 49.9 USD at 27.3 % retention_rate
Monthly average revenue: 132.6 USD
Machine Learning pour le marketing en Python

Quelle méthode utiliser ?

  • Dépend du modèle d'affaires.
  • Le modèle CLV traditionnel suppose que l'attrition est définitive = le client « meurt ».
  • Le modèle traditionnel est peu robuste avec une faible rétention : il sous-estime la CLV.
  • La variable la plus difficile à prévoir : la fréquence future.
Machine Learning pour le marketing en Python

Calculons la valeur à vie des clients !

Machine Learning pour le marketing en Python

Preparing Video For Download...