Customer Lifetime Value

The business problem

  • Problem: we don't understand our customer. We don't know if a specific customer is relevant for our organization.
  • Goals:
    • We want to know how much value a customer is generating for the organization.
    • We want to know how the generated value is going to evolve.
    • We want to segment customers based on value.
  • Why? To perform specific actions for different customer groups

Technique to solve the business problem

We have many options to understand customer's value. One of the most relevant is CLV. CLV is the acronym of Customer Lifetime Value. We need a definition:

CLV is a prediction of all the value a business will derive from their entire relationship with a customer.

There is a tough part in this definition: how to estimate future customer interactions.

The calculation of CLV can be based on:

  • ARPU/ARPA (Historic CLV)
  • RFM (only applicable to the next period)
  • CLV Formula (historic CLV)
  • Probability/Econometrics/ Persistence Models/Machine Learning/Growth and dissemination models such as:

The value generated by all our customers is called Customer Equity and is used to evaluate companies (with no significant income yet).

Main Concepts

There are many factors that affect customer's value and must be considered in the CLV calculation:

  • Cash flow: the net present value of the income generated by the customer to the organization throughout their relationship with the organization
  • Lifecycle: the duration of the relationship with the organization
  • Maintenance costs: associated costs to ensure that the flow of revenue per customer is achieved
  • Risk costs: risk associated with a client
  • Acquisition costs: costs and effort required to acquire a new customer.
  • Retention costs: costs and effort required to retain a new customer.
  • Recommendation value: impact of the recommendations of a customer in its sphere of influence on company revenue
  • Segmentation improvements: value of customer information in improving customer segmentation models

CLV formula

It is:

$$ CLV = \sum^{T}{n=0} \frac{(p{t}-c_{t})r_t}{(1+i)^t} - AC

$$

where

$$p_t =$$ price paid by the customer in time $$t$$,

$$c_t$$ = direct costs for customer service in time $$t$$,

$$i$$ = discount rate or cost of money for the firm,

$$r_t$$ = probability that the client returns to buy or is alive in time $$t$$,

$$AC$$ = acquisition cost, and

$$T$$ = time horizon to estimate $$CLV$$.

A simplification

Let's consider that $$p$$ y $$c$$ are constant values and $$r$$ is a decresing fucntion in time, then the formula becomes:

$$ CLV = \sum^{\infty}_{n=0} \frac{(p-c)r^t}{(1+i)^t} =\frac{(p-c)r}{1+i-r}

$$

Final consideration

  • Generally we will have a dataset for each of the concepts of the formula
  • We'll have to estimate the rest
  • Therefore, it is important to remember that:

Our ability to predict the future is limited by the fact that to some extent is contained in the past.

  • What mathematically means we are under some continuity conditions (or the hyphotesis are true)

Implementation Process

  • [BU] Discuss whether CLV fits as a metric in our business
  • [DP] Identification and understanding of sources and metadata
  • [DP] Extract, transform, clean and load data
  • [M] Choose CLV method
  • [M/E] Analyze results and adjust parameters
  • [D] Present and explain the results

Benefits

This technique provides the following benefits:

  • Ability to create business objectives
  • Better understanding of customers
  • Having a common numerical analysis criteria
  • Ability to have an alert system
  • Improved management of the sales force

Use cases

  • Create market strategies based on CLV
  • Customer segmentation based on CLV
  • Forecasting and customer evolution per segment
  • Create different communication, services and loyalty programs based on CLV
  • Awake "non-active" customers
  • Estimated the value of a company (startup, in the context of acquisition)

How to implement CLV using R

ARPU/ARPA as CLV aproximation

Average Revenue per User (ARPU) and Average Revenue per Account (ARPA) can be used to calculate historical CLV. Process:

  • calculate the average revenue per customer per month (total revenue ÷ number of months since the customer joined)
  • add them up
  • and then multiply by 12 or 24 to get a one- or two-year CLV.

Suppose Josep and Laura are your only customers and their purchases look like this:

Customer Name Purchase Date Amount
Josep January 1, 2015 $150
Josep May 15, 2015 $50
Josep June 15, 2015 $100
Laura May 1, 2015 $45
Laura June 15, 2015 $75
Laura June 30, 2015 $100

Suppose today is July 1, 2015. Average monthly revenue from Josep is

$$(150 + 50 + 100)/6 = 50$$

and average monthly revenue from Laura is

$$(45 + 75 + 100)/2 = 110$$.

Adding these two numbers gives you an average monthly revenue per customer of $160/2 = $80. To find a 12-month or 24-month CLV, multiply that number by 12 or 24.

The benefit of an ARPU approach is that it is simple to calculate, but it does not take into account changes in your customers' behaviors

Let's understand the CLV formula

# Install packages
install.packages("readxl")
install.packages("ggplot2")

# Load packages
library(ggplot2)
library(readxl)

# Load data into a dataframe
df <- read_excel("data/s3.xlsx", sheet = "Ex2")

# Summary
summary(df)

# Question: What we can say about the summary?

# Graph: how the number of customers is evolving
ggplot(df, aes(x = t, y = active)) +
  geom_line() + ggtitle("Active Customer Evolution") +
  ylab("Customer") + xlab("Period") +
  theme(plot.title = element_text(color="#666666", face="bold", size=20, hjust=0)) +
  theme(axis.title = element_text(color="#666666", face="bold", size=14))

# Graph: how the retentio ratio is evolving
ggplot(df, aes(x = t, y = r)) + 
  geom_line() + ggtitle("Retention Ratio Evolution") + 
  ylab("Customer") + xlab("Period") +
  theme(plot.title = element_text(color="#666666", face="bold", size=20, hjust=0)) +
  theme(axis.title = element_text(color="#666666", face="bold", size=14))

# Partial CLV
df$CLV <- (df$p-df$c)*df$r^df$t/(1+df$i)^df$t

# Now we have a new column
df

#  Graph: how the partial CLV is evolving
ggplot(df, aes(x = t, y = CLV)) + geom_line() + ggtitle("Partial CLV evolution") + ylab("CLV") + xlab("Period") + theme(plot.title = element_text(color="#666666", face="bold", size=32, hjust=0)) +
  theme(axis.title = element_text(color="#666666", face="bold", size=22))

# Question: What do we observe?

# Final step
CLV <- apply(df, 2, sum)
CLV[7]

# What does it mean this value?

# Question: What happens if retention ratio has a constant value of 0.80?

References

results matching ""

    No results matching ""