Skip to main content

How to Calculate Customer Lifetime Value

The process for calculating CLV is straightforward. So much so that I think of it as following a recipe - a delicious recipe, like baking a chocolate cake or brewing a craft beer, if that’s your thing instead. Let me walk you through it.

ABOUT THESE TOOLS: The team at has a version of the drag-and-drop, easy-bake online tool, which follows the same type of best-in-class methodology discussed in the book. Feel free to have at it. Still, if you’re more of the self-directed (or private data) sort, jump ahead to the bottom of this page for ways to run the same types of models yourself.

Step 1:
Get your data together

You’ll need only three types of data: the date and value of your transactions (Some companies use revenue for simplicity’s sake, but profit is better.) and some type of unique customer ID to connect multiple transactions with the same person. It could be their name, but it could also mean their customer ID, their email, a loyalty program number – what you’ve got that connects the dots of their purchasing history. But, if you are using a third-party service, it’s strongly-suggested that you use an ID that is not personally-identifiable.

Warning: Common Mistakes

Warning: Common Mistakes

Warning: Common Mistakes

Warning: Common Mistakes

Warning: Common Mistakes

  • Let’s talk about volume: How much data do you need? You’ll need transaction data on at least 5,000 customers for the greater of twenty-four months or six times the average length of time between transactions. So, if your customers buy every six months on average, you’ll need thirty-six months.

  • Measure the right actions: Avoid including any transaction values that are either zero or negative (say, a refund.) in your data set. You’ll also want to make sure that you’re not mixing transaction currencies.

Step 2: Get Your Predictions

This is where I send you over to the nice folks at They will model and package up your data for free in what they call their Quality Customer Report. You’ll enter some basic information about your company, provide the data set you created up above and they’ll come back to you with your results – for free. Their team will even offer to schedule some time with you if you’d like to review the results with one of their CLV experts.

Want to get your hands on the full models?

BTYDplus (R)

The BTYDplus package provides advanced statistical methods to describe and predict customers’ purchase behavior and CLV in non-subscription settings. This package complements the original BTYD package by providing several additional buy-till-you-die models, that have been published in the marketing literature, but whose implementation are complex for individual businesses to implement.

Lifetimes (Python)

The Lifetimes package is a rough equivalent of the BTYDplus package (listed above) except developed for Python. Unfortunately, the project was moved to “maintenance-mode”. Per the original developer: “I won’t be adding new features, improvements, or even answering issues on this project (but perhaps the occasional bug fix).”

Future Customer Value Segments (Google Cloud)

Future-Customer-Value-Segments (FoCVS) is a configurable and privacy-safe solution for predicting customer lifetime value (CLV) and segmenting customers by total value. It runs on Google Cloud Dataflow and can be deployed to any Google Cloud Platform (GCP) project. Total setup time is between 15-30 minutes.