Get startedGet started for free

Calculate granular CLV

In this scenario you will use more granular data points at the invoice level. This approach uses more granular data and can give a better customer lifetime value estimate. Make sure you compare the results with the one from the basic CLV model.

The pandas and numpy libraries have been loaded as pd as np respectively. The online dataset has been imported for you.

This exercise is part of the course

Machine Learning for Marketing in Python

View Course

Exercise instructions

  • Group by InvoiceNo and calculate the mean of the TotalSum column.
  • Group by CustomerID and InvoiceMonth and calculate the mean number of unique monthly invoices per customer.
  • Define lifespan to 36 months.
  • Calculate the granular CLV by multiplying the three previous metrics.

Hands-on interactive exercise

Have a go at this exercise by completing this sample code.

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

# Calculate average number of unique invoices per customer per month
frequency_per_month = online.___(['CustomerID','InvoiceMonth'])['___'].___().mean()

# Define lifespan to 36 months
lifespan_months = 36

# Calculate granular CLV
clv_granular = ___ * frequency_per_month * lifespan_months

# Print granular CLV value
print('Average granular CLV is {:.1f} USD'.format(clv_granular))
Edit and Run Code