CLV Analysis for M&S Delivery Pass Program

MSIN0094 Case Study

Author
Affiliation

Dr. Wei Miao

UCL School of Management

Published

October 8, 2025

M&S in Jubilee Place, Canary Wharf, London

M&S in Jubilee Place, Canary Wharf, London

1 From Product-Centric to Customer-Centric Marketing

Although the marketing concept has reflected a customer-centred viewpoint since the 1960s (e.g., Kotler 1967), marketing theory and practice have become increasingly customer-centred during the past decades. For example, marketing has decreased its emphasis on short-term transactions and has increased its focus on long-term customer relationships. The customer-centred viewpoint is reflected in the concepts and metrics that drive marketing management, including such metrics as customer satisfaction, market orientation, and customer value. In recent years, customer lifetime value (CLV) and its implications have received increasing attention. For example, brand equity, a fundamentally product-centred concept, has been challenged by the customer-centred concept of customer equity (Kumar and Reinartz 2016).

Customer Lifetime Value (CLV) is a measure of the total revenue a company can expect to generate from a single customer over the entire course of their relationship. CLV shifts the focus from short-term gains to long-term customer value. Calculating CLV typically involves considering factors like how often a customer returns, how much they spend on average per transaction, and how long they remain loyal to the brand. This metric is vital for understanding the long-term impact of different marketing initiatives.

CLV also takes into account the cost of acquiring customers (Customer Acquisition Cost or CAC). By comparing the cost of acquiring a customer with their lifetime value, companies can determine how profitable different types of customers are and adjust their marketing strategies accordingly.

The following points provide some ideas why CLV can be used for enhancing a firm’s long-term profitability:

  • Focusing on high-value customers—those who are likely to stay loyal and spend more over time—can significantly impact firm’s bottom line. Retaining loyal customers is often more cost-effective than constantly seeking new ones, and these customers tend to provide better returns over time.

  • CLV helps a firm allocate resources more effectively. By knowing which customers are most profitable in the long run, the firm can focus its marketing efforts on retaining and nurturing these relationships. Rather than spreading resources across the entire customer base, the firm can invest strategically in segments that are most likely to deliver high returns.

  • CLV allows a firm to forecast future revenues based on current customer behaviour. This enables better long-term planning and more accurate financial projections.

  • Understanding CLV allows a firm to implement personalised marketing efforts. With a clearer view of which customers are the most valuable, the firm can deliver more targeted and relevant marketing messages, resulting in more effective campaigns and stronger customer relationships.

Are you using any grocery store’s loyalty programs in the UK? Why do you think the grocery chains offer these loyalty programs at just nominal prices?

M&S’s Sparks program is a prime example of customer-centric marketing in action. By offering customers a free loyalty program that provides access to exclusive discounts and rewards, M&S has successfully positioned itself as a brand that prioritizes its customers’ needs and preferences.

While the Sparks program offers great benefits (regular price promotions) to customers, it is equally valuable for M&S. Every time a customer uses their Sparks card, M&S gains access to a treasure trove of data about their shopping habits. The card allows M&S to track an individual customer’s entire spending history, giving the company deep insights into their preferences, shopping patterns, and frequency of purchases. This data is incredibly valuable because it enables M&S to make data-driven marketing decisions. For example, M&S can personalize promotions, recommend products based on past behavior, and design targeted campaigns that align with customer needs.

By leveraging this data, M&S can also optimize inventory management, ensuring that popular products are always in stock, while reducing overstock on less popular items. Furthermore, the ability to analyze customer behavior at a granular level helps M&S better understand shifts in customer preferences, allowing the company to adapt to changing market conditions quickly. In short, M&S’s Sparks is not just a tool for customer retention—it is a sophisticated data-gathering instrument that empowers M&S to deliver a highly personalized and efficient shopping experience. This, in turn, strengthens the customer relationship and enhances M&S’s ability to make strategic business decisions based on real customer insights.

In the next section, we will explore how M&S can apply CLV to its customer data to make strategic marketing decisions that enhance profitability and customer loyalty.

Conduct a 5C analysis for M&S. Based on the analysis, identify key factors that may impact M&S’s CLV calculation.

1. Company

  • Core Business: M&S is a multinational grocery and general merchandise retailer.

  • Culture, mission, and values: M&S’s mission is to provide high-quality products and excellent customer service. The company values sustainability, innovation, and community engagement.

2. Customers

  • Market size and segments: M&S serves a broad customer base, including families, students, and professionals.

  • Customer needs and preferences: Customers value convenience, quality, and affordability. They are increasingly interested in sustainable and ethically sourced products.

  • Customer behavior: Customers shop both in-store, with varying frequency and basket sizes.

3. Competitors

  • Direct Competitors: Sainsbury’s, Asda, Morrisons, and Waitrose. However, M&S currently lacks online channel such as a delivery pass programme, which is offered by competitors like Tesco and Sainsbury’s.

  • Indirect Competitors: Discount retailers like Aldi and Lidl, online retailers like Amazon, local convenience stores.

4. Collaborators

  • Suppliers: Partnerships with farmers, manufacturers, grocery suppliers.

  • Distributors: Works through its own retail network and an online platform.

5. Climate

  • Economic Factors: Influenced by economic health and consumer spending patterns.

  • Legal & Political Factors: Brexit and changing trade and labor laws impact operations. Remember the shortage of lorry drivers during the pandemic?

  • Social & Cultural Trends: Growing preference for online shopping and sustainable practices.

  • Technological Innovations: The integration of technology in retail experience and e-commerce.

  • Environmental Factors: Adopting and promoting sustainable and ethical practices.

2 Evaluating the Value of an Online Delivery Pass Program: A CLV Analysis

2.1 The Business Problem for M&S: A Delivery Pass Program

It was just six months after Tom, our proud (but perhaps overly confident?) graduate from our MSc BA program, made a series of … let’s say, “bold” decisions at his first job at Apple Inc. The influencer marketing campaign didn’t exactly influence anyone—except maybe the CMO to rethink her hiring decisions. Turns out, Tom hadn’t spent enough time learning R basics (despite countless reminders from Dr. Meow that “R is the best language in the world but you need to really practise it in the first three weeks”), and he completely miscalculated the NPV of the campaign. Tom really regretted not having taken Dr. Meow’s advice on spending more time on the Marketing Analytics module instead of the Business Strategy module during the MSc BA program. Obviously, he had underestimated the importance of marketing analytics for his career as a business analyst.

As you might have guessed, Tom was promptly shown the door, and it wasn’t to Apple’s employee spa. But luck or maybe just a very sympathetic friend from his UCL days, Jerry, landed him a new gig at Marks & Spencer (M&S). Now, with a slightly more humble outlook on life and an unhealthy amount of bubble tea, Tom is trying to redeem himself as a data scientist in M&S’s marketing analytics team.

M&S is a multinational retailer that sells groceries, clothing, and home products. M&S has been successful in building a loyal customer base through its Sparks loyalty program, which offers customers exclusive discounts, personalized offers, and early access to sales. However, M&S is looking to further enhance its customer relationships and drive long-term profitability. One area to improve is the online sales channel. Other grocery chains such as Tesco and Sainsbury’s have been offering online delivery passes, which provide customers with unlimited deliveries for a fixed annual fee. M&S is considering launching a similar program to attract more customers and increase customer loyalty.

Tom’s job is to calculate the Customer Lifetime Value (CLV) of this potential new program—a task that would require him to remember at least some of what he learned in Marketing Analytics Week 2’s class (if only he had stayed awake). This time, Tom knows one thing for sure: he better not mess this up. Otherwise, he might end up selling bubble teas at a Canary Wharf stall next to the Rice Guys instead of analyzing data at M&S.

As Tom learned in Week 2’s class, customer lifetime value (CLV) can be a powerful metric that can help M&S understand the long-term value of its customers and guide strategic marketing decisions such as the profitability of introducing a delivery pass program. By calculating the CLV of customers who sign up for the delivery pass program, M&S can determine the program’s potential and identify the most valuable customer segments.

In order to conduct the CLV analysis, Tom needs to consider the following key factors:

Price of the Delivery Pass: As a starting point, Tom needs to determine the price of the delivery pass and the benefits it offers to customers. The price of the delivery pass will surely influence customer acquisition and retention rates, as well as the overall profitability of the program. At the moment, Tesco’s delivery pass is priced at £84 per year, while Sainsbury’s delivery pass is priced at £80 per year. Therefore, Tom would like to price M&S’s delivery pass at £89 per year, which is competitive with other grocery chains and offers customers a cost-effective option for unlimited deliveries.

Time Unit of Analysis: Although customers frequently shop at M&S throughout the year, the yearly approach is the most convenient, especially since M&S’s Sparks program offers benefits that often encourage long-term loyalty.

Number of Years (N): M&S will assess the CLV over a 5-year period. While a longer time horizon could be considered, uncertainty increases with time due to changes in the economy, competition, and customer preferences. Therefore, M&S uses a 5-year horizon for most revenue and profitability projections.

Gross Profit (g): M&S’s analysis starts by calculating the gross profit generated by a typical customer each year. From the historical customer transaction data, the marketing analytics team estimates that an average M&S customer shops at M&S 40 times a year, spending an average of £100 per visit.

Profit Margin: M&S’s profit margin on each purchase is 7%, meaning that the cost of goods sold (COGS) is 93% of the purchase price. However, M&S incurs costs to provide these services included in the delivery pass, such as delivery fees for online orders. Each delivery costs M&S a £5 to pay for the delivery driver and other operational expenses.

Retention Rate (r): The retention rate is the probability that a customer continues to shop with M&S year after a year. Based on historical data, M&S’s customer retention rate is 70%, meaning that 70% of customers remain loyal and are likely to renew their delivery pass each year. This retention rate forms the basis for estimating future customer value.

Discount Rate (k): M&S applies a yearly discount rate of 10%, as recommended by its finance department. This discount rate reflects the cost of capital and the opportunity cost of investing elsewhere. All future profits will be discounted to reflect their present value, assuming that the profits from customer purchases are received at the end of each year.

Customer Acquisition Costs (CAC): M&S invests heavily in customer acquisition, using paid search ads on search engines. Such promotion is also called search engine marketing or pay-per-click marketing. M&S decides to bid £0.4 for each click.1 Based on the bid, M&S estimates that about 1% of Google users will see the ads; at the £89 annual subscription price, 10% of exposed customers who click on an advert on a search engine or social media will sign up for a free trial (i.e., triers); triers will on average shop twice during the 2-week trial period. 20% of those triers will eventually become paying customers. In order to increase market penetration, M&S offers a £10 discount on the first purchase on top of a customer’s £100 shopping basket. M&S also offers free delivery for triers during the trial period.

Figure 1: M&S’s Marketing Funnel

Based on the above information, Tom will conduct a CLV analysis to determine the potential profitability of M&S’s delivery pass programme and provide recommendations to the senior marketing manager.

2.2 Compute Customer Acquisition Cost

Watch the intro video by Google, Introduction to Search Engine Marketing, before class. Understand how SEM works and think about how these concepts apply to M&S’s case as in Figure 1.

Compute the customer acquisition costs (CAC) for M&S’s delivery pass programme

CAC = total costs for customer ad clicks + total costs of £10 promo + total costs of free deliveries

CAC Part I: Costs of paid search ads to get 1 new member.

  • […] “about 10% of customers who click on an advert on search engine or social media will sign up for a free trial, and 20% of those trial users will eventually become paying customers.”
Code
# Define conversion rates in the marketing funnel
# clicker_to_trier_rate: The proportion of people who click on the ad and then sign up for a free trial
# This represents the first conversion step: Ad Clickers → Trial Users
clicker_to_trier_rate <- 0.1  # 10% of clickers become trial users

# trier_to_member_rate: The proportion of trial users who convert to paying members
# This represents the second conversion step: Trial Users → Paying Members
trier_to_member_rate <- 0.2  # 20% of trial users become paying members
  • How many customers need to click the advert to get 1 new customer?
Code
# Calculate how many ad clickers are needed to acquire 1 paying member
# Working backwards through the funnel:
# - To get 1 paying member, we need (1 / trier_to_member_rate) trial users
#   Because only 20% of trial users convert, we need 1/0.2 = 5 trial users
# - To get those trial users, we need (1 / clicker_to_trier_rate) clickers per trial user
#   Because only 10% of clickers sign up for trial, we need 1/0.1 = 10 clickers per trial user
# - Total clickers needed = 10 clickers/trial user × 5 trial users = 50 clickers
n_clickers_for_1newmember <- (1 / clicker_to_trier_rate) * (1 / trier_to_member_rate)

n_clickers_for_1newmember  # Should equal 50
[1] 50
  • Total costs for customer clicks
Code
# Calculate the total cost of paid search ads to acquire 1 paying member
# Cost per click (CPC) is £0.4
# We need 50 clickers to get 1 paying member (calculated above)
# Total ad cost = CPC × number of clickers needed
total_cost_clicks <- 0.4 * n_clickers_for_1newmember

total_cost_clicks  # Should equal £20 (0.4 × 50)
[1] 20

CAC Part II: total costs of £10 promo for first order each trier customer

  • What is the total promo cost for these trier customers’ first order?
Code
# Calculate the total cost of the £10 promotional discount given to trial users
promo_first_order_each_trier <- 10  # £10 discount on first purchase
profit_margin <- 0.07  # M&S's profit margin is 7%

# The actual cost to M&S is not the full £10, but the cost of goods sold (COGS)
# COGS = £10 × (1 - profit_margin) = £10 × 0.93 = £9.30
# This is because M&S would have made £0.70 profit on that £10, so the actual cost is £9.30
# 
# To get 1 paying member, we need (1 / trier_to_member_rate) = 5 trial users
# Each trial user gets the £10 promo, so total promo cost = £9.30 × 5 = £46.50
total_cost_promo <- promo_first_order_each_trier * # promotion amount (£10)
    (1 - profit_margin) * # COGS rate (93% = actual cost to M&S)
    (1 / trier_to_member_rate) # number of trial users needed (5)

total_cost_promo  # Should equal £46.50
[1] 46.5

CAC Part III: total costs from selling groceries for each trier

  • 2 visits for each trier, the profits from the 2 visits are
Code
# Calculate the profit M&S makes from each trial user's purchases
revenue_each_visit <- 100  # Each visit generates £100 in revenue

# During the 2-week trial period, each trial user shops twice (2 visits)
# Profit per trial user = revenue per visit × profit margin × number of visits
# Profit = £100 × 0.07 × 2 = £14
profit_each_trier <- revenue_each_visit * profit_margin * 2

profit_each_trier  # Should equal £14
[1] 14
  • The 2 visits are free of delivery charges, which are costs to M&S
Code
# Calculate the delivery cost M&S incurs for trial users
# Trial users get free delivery, but M&S still pays £5 per delivery
# Total delivery cost per trial user = £5 × 2 visits = £10
deliverycost_each_trier <- 5 * 2
deliverycost_each_trier  # Should equal £10
[1] 10
  • Net costs for each trier from the 2 visits
Code
# Calculate the net cost (or profit) from each trial user's shopping behavior
# Net cost = delivery costs incurred - profit earned from purchases
# Net cost = £10 (delivery) - £14 (profit from purchases) = -£4
# Negative value means M&S actually makes a £4 profit from each trial user's purchases
# (even after accounting for the free delivery)
netcost_each_trier <- deliverycost_each_trier - profit_each_trier

netcost_each_trier  # Should equal -£4 (i.e., a £4 profit)
[1] -4
  • Total net profits from all triers
Code
# Calculate the total net cost/profit from ALL trial users needed to acquire 1 paying member
# We need (1 / trier_to_member_rate) = 5 trial users to get 1 paying member
# Total net cost = net cost per trial user × number of trial users
# Total net cost = -£4 × 5 = -£20 (i.e., a £20 profit from all trial users combined)
totalcosts_from_all_triers <- netcost_each_trier * (1 / trier_to_member_rate)

totalcosts_from_all_triers  # Should equal -£20 (i.e., £20 profit)
[1] -20
  • CAC = total costs for customer ad clicks + total costs of £10 promo + total costs of free deliveries
Code
# Calculate the total Customer Acquisition Cost (CAC) for 1 paying member
# CAC consists of three components:
# 1. Ad click costs: £20 (cost of 50 clicks at £0.4 each)
# 2. Promotional costs: £46.50 (£10 promo × 93% COGS × 5 trial users)
# 3. Net costs from trial purchases: -£20 (actually a profit because trial users generate profit)
# 
# Total CAC = £20 + £46.50 + (-£20) = £46.50
# This means it costs M&S £46.50 to acquire 1 paying delivery pass member
CAC <- total_cost_clicks + total_cost_promo + totalcosts_from_all_triers

CAC  # Should equal £46.50
[1] 46.5

2.3 Compute Customer Lifetime Value

2.3.1 Step 1: Determine time unit of analysis

Find the time unit of analysis in the case study.

Should we use monthly analysis?

When there is strong within-year seasonality of customer purchases

2.3.2 Step 2: Determine number of years

Find \(N\): the number of years over which the customer relationship is assessed

Code
# Define the time horizon for CLV analysis
# N = 5 years: We assess the customer relationship over a 5-year period
# A longer horizon would increase uncertainty, while a shorter one might undervalue the relationship
N <- 5

2.3.3 Step 3: Compute profit margin for each period

\(g = M - c\): profit each year, which is the profit from sales M minus marketing costs c

  • The annual membership fee is £89
Code
# Annual delivery pass membership fee
# This is revenue M&S receives upfront from each paying member
membership <- 89
  • n_visit: 40 visits each year; each time £100; with profit margin 7% (COGS 93%)
Code
# Number of shopping visits per year
# Historical data shows customers shop at M&S 40 times annually
n_visit <- 40
  • M: profit margin each period
Code
# Calculate total profit (M) per customer per year
# M consists of two components:
# 1. Membership fee: £89 (pure revenue since it's a subscription)
# 2. Profit from grocery purchases: 40 visits × £100 per visit × 7% profit margin
# 
# Total profit (M) = £89 + (40 × £100 × 0.07) = £89 + £280 = £369
M <- membership + revenue_each_visit * n_visit * profit_margin
M  # Should equal £369
[1] 369
  • c: variable delivery costs each order
Code
# Calculate total variable costs (c) per customer per year
# M&S pays £5 per delivery to cover driver costs and operational expenses
# With 40 visits per year, total delivery cost = 40 × £5 = £200
deliverycost_each_visit <- 5
c <- deliverycost_each_visit * n_visit
c  # Should equal £200
[1] 200
  • g: the period net profit from customers
Code
# Calculate net profit (g) per customer per period (year)
# g = M (total profit) - c (variable costs)
# g = £369 - £200 = £169
# This is the annual contribution each customer makes to M&S
g <- M - c
# Create a sequence of g for N years (assuming constant profit each year)
g_seq <- rep(g, N)
g_seq  # Should be a vector of 5 values, all equal to £169
[1] 169 169 169 169 169

2.3.4 Step 4: Compute sequence of retention rate

\(r\): retention rate

Code
# Define the customer retention rate
# retention_rate (r) is the probability that a customer stays with M&S for another year
# r = 0.7 means 70% of customers renew their delivery pass each year
# This also means 30% of customers churn (leave) each year
r <- 0.7

# Create a geometric sequence of cumulative retention rates over N years
# Year 1: r^0 = 1.0 (100% of customers are present in the first year)
# Year 2: r^1 = 0.7 (70% of original customers remain after 1 year)
# Year 3: r^2 = 0.49 (49% of original customers remain after 2 years)
# Year 4: r^3 = 0.343 (34.3% remain after 3 years)
# Year 5: r^4 = 0.2401 (24.01% remain after 4 years)
# 
# The exponent is (year - 1) because we start counting from year 1, not year 0
r_seq <- r^(seq(1, N) - 1)
r_seq  # Should be: 1.0000, 0.7000, 0.4900, 0.3430, 0.2401
[1] 1.0000 0.7000 0.4900 0.3430 0.2401

2.3.5 Step 5: Compute sequence of discount factors

\(k\): the discount rate

Code
# Define the discount rate (k) and calculate discount factors
# k = 0.1 is the annual discount rate (10%), reflecting:
# 1. The cost of capital (what M&S could earn by investing money elsewhere)
# 2. The time value of money (£1 today is worth more than £1 in the future)
k <- 0.1

# Calculate the discount factor: d = 1 / (1 + k)
# d = 1 / 1.1 = 0.9091 (approximately)
# This factor is applied to convert future cash flows to present value
d <- 1 / (1 + k)

# Create a sequence of discount factors for each year
# Year 1: d^1 = 0.9091 (discount year 1 profits to present value)
# Year 2: d^2 = 0.8264 (discount year 2 profits to present value)
# Year 3: d^3 = 0.7513 (discount year 3 profits to present value)
# Year 4: d^4 = 0.6830 (discount year 4 profits to present value)
# Year 5: d^5 = 0.6209 (discount year 5 profits to present value)
# 
# Each year's profits are discounted more heavily as they are further in the future
d_seq <- d^(seq(1, N))
d_seq  # Should be approximately: 0.9091, 0.8264, 0.7513, 0.6830, 0.6209
[1] 0.9090909 0.8264463 0.7513148 0.6830135 0.6209213

2.3.6 Step 6: Compute CLV

Compute the CLV based on the CLV formula

  • Revenues, variables costs, and profit for the next 5 years
Code
# Display the annual profit sequence before applying retention and discount
# Each value represents £169 profit per customer per year
g_seq
[1] 169 169 169 169 169
  • Apply retention rate
Code
# Adjust profits for customer churn (retention rate)
# Multiply each year's profit by the cumulative retention rate for that year
# Year 1: £169 × 1.0 = £169 (all customers present)
# Year 2: £169 × 0.7 = £118.30 (only 70% of customers remain)
# Year 3: £169 × 0.49 = £82.81 (only 49% of customers remain)
# Year 4: £169 × 0.343 = £57.97 (only 34.3% remain)
# Year 5: £169 × 0.2401 = £40.58 (only 24% remain)
# 
# This accounts for the fact that some customers leave each year
g_seq_after_churn <- g_seq * r_seq
g_seq_after_churn
[1] 169.0000 118.3000  82.8100  57.9670  40.5769
  • Apply discount factor
Code
# Apply time value of money by discounting each year's profits to present value
# Multiply the churn-adjusted profits by the discount factor for each year
# Year 1: £169 × 0.9091 = £153.64
# Year 2: £118.30 × 0.8264 = £97.76
# Year 3: £82.81 × 0.7513 = £62.22
# Year 4: £57.97 × 0.6830 = £39.60
# Year 5: £40.58 × 0.6209 = £25.20
# 
# These are the present values of future profits, accounting for both churn and time value of money
g_seq_after_churn_discount <- g_seq_after_churn * d_seq

g_seq_after_churn_discount
[1] 153.63636  97.76860  62.21638  39.59224  25.19506
  • Compute CLV by summing up future expected profits
Code
# Calculate CLV (Customer Lifetime Value)
# CLV = Sum of all discounted future profits - Customer Acquisition Cost
# 
# Step 1: Sum all discounted profits over 5 years
# Sum = £153.64 + £97.76 + £62.22 + £39.60 + £25.20 = £378.42
sum(g_seq_after_churn_discount)
[1] 378.4086
Code
# Step 2: Subtract CAC to get net CLV
# Net CLV = £378.42 - £46.50 = £331.92
# 
# This means each delivery pass member is worth £331.92 to M&S over 5 years
# after accounting for acquisition costs, churn, and time value of money
sum(g_seq_after_churn_discount) - CAC
[1] 331.9086

3 Use CLV to Guide Marketing Decisions

The above provides a comprehensive view of the potential profitability of M&S’s delivery pass programme. By calculating the CLV of customers who sign up for the delivery pass, M&S can make informed decisions about whether to launch the programme and how to optimise its marketing efforts to attract and retain high-value customers.

As we have seen, there are many decision variables that can impact the CLV of the delivery pass programme. For example,

  • The price of the delivery pass can affect the final CLV in multiple ways. A lower price may attract more customers during the marketing funnel, but it may also reduce the overall profitability of the programme. On the other hand, a higher price boost short-run profitability but may deter some customers from signing up and lead to lower retention rate in the long run.

  • The first-time promotion can also impact the CLV. A higher promotion amount may attract more customers during the marketing funnel, but it may also increase the CAC and reduce the overall profitability of the programme.

  • The retention rate is another key factor that can impact the CLV. M&S can develop personalised recommendation systems on its shopping website, which can potentially increase the basket size and the retention rate.

We can use CLV to guide our marketing decisions. For example, if M&S decides to reduce the pass price to £79 per year, the retention rate is expected to increase to 75%, and the clicker-to-trier rate will increase to 25%. Calculate the new CLV in this new scenario and compare it with the original CLV, and discuss which proposal is more profitable.

4 After-Class Exercise

To facilitate the process, let’s first see how to use a user defined function to compute CLV for any new scenario with ease.

Code
# Define a reusable function to compute CLV for different scenarios
# This function encapsulates the entire CLV calculation process
# All parameters have default values based on the base case scenario
computeCLV <- function(N = 5,                                # Number of years to analyze
                       membership = 89,                       # Annual membership fee (£)
                       n_visit = 40,                          # Number of visits per year
                       revenue_each_visit = 100,              # Revenue per visit (£)
                       profit_margin = 0.07,                  # Profit margin (7%)
                       r = 0.7,                               # Annual retention rate (70%)
                       k = 0.1,                               # Discount rate (10%)
                       clicker_to_trier_rate = 0.1,           # Conversion rate: clickers → trial users (10%)
                       trier_to_member_rate = 0.2,            # Conversion rate: trial users → paying members (20%)
                       promo_first_order_each_trier = 10,     # Promotional discount for trial users (£10)
                       deliverycost_each_visit = 5) {         # Delivery cost per visit (£5)

    ## Step 1: Compute M (total profit per customer per year)
    # M = membership fee + profit from grocery purchases
    # M = £89 + (£100 per visit × 40 visits × 7% margin) = £369
    M <- membership + revenue_each_visit * n_visit * profit_margin

    ## Step 2: Compute c (total variable costs per customer per year)
    # c = delivery cost per visit × number of visits
    # c = £5 × 40 = £200
    c <- deliverycost_each_visit * n_visit

    ## Step 3: Compute g (net profit per customer per year)
    # g = M - c = £369 - £200 = £169
    g <- M - c

    ## Step 4: Create profit sequence for N years
    # Replicate g for each year (assuming constant annual profit)
    g_seq <- rep(g, N)

    ## Step 5: Compute sequence of retention rates
    # Create cumulative retention rate for each year
    # Year 1: r^0 = 1.0, Year 2: r^1 = 0.7, Year 3: r^2 = 0.49, etc.
    r_seq <- r^(seq(1, N) - 1)

    ## Step 6: Compute sequence of discount factors
    # Calculate present value discount factor for each year
    # d = 1/(1+k), then d^1, d^2, d^3, etc.
    d <- 1 / (1 + k)
    d_seq <- d^(seq(1, N))

    ## Step 7: Compute Customer Acquisition Cost (CAC)
    
    ### Part I: Cost of paid search ads
    # Calculate number of clickers needed to acquire 1 paying member
    # Working backwards through funnel: need 1/0.2 = 5 trial users, and 1/0.1 = 10 clickers per trial user
    # Total = 5 × 10 = 50 clickers needed
    n_clickers_for_1newmember <- (1 / clicker_to_trier_rate) * (1 / trier_to_member_rate)
    
    # Total ad cost = cost per click (£0.4) × number of clickers
    total_cost_clicks <- 0.4 * n_clickers_for_1newmember

    ### Part II: Cost of promotional discount
    # Each trial user gets £10 off, but actual cost to M&S is £10 × (1 - profit_margin)
    # because M&S would have made profit on that £10
    # Total promo cost = £10 × 93% (COGS) × 5 trial users = £46.50
    total_cost_promo <- promo_first_order_each_trier * # promotion amount (£10)
        (1 - profit_margin) * # COGS rate (93%)
        (1 / trier_to_member_rate) # number of trial users (5)

    ### Part III: Net cost from trial users' purchases
    # Trial users shop twice during trial period
    # Profit earned: £100 × 7% × 2 = £14
    profit_each_trier <- revenue_each_visit * profit_margin * 2
    
    # Delivery cost incurred: £5 × 2 = £10
    deliverycost_each_trier <- deliverycost_each_visit * 2
    
    # Net cost per trial user: £10 - £14 = -£4 (actually a profit!)
    netcost_each_trier <- deliverycost_each_trier - profit_each_trier
    
    # Total net cost from all trial users: -£4 × 5 = -£20 (total profit)
    totalcosts_from_all_triers <- netcost_each_trier * (1 / trier_to_member_rate)

    ### Compute total CAC
    # CAC = ad costs + promo costs + net costs from trial
    # CAC = £20 + £46.50 + (-£20) = £46.50
    CAC <- total_cost_clicks + total_cost_promo + totalcosts_from_all_triers

    ## Step 8: Compute CLV (Customer Lifetime Value)

    ### Apply churn rate to profit sequence
    # Adjust each year's profit for customer attrition
    g_seq_after_churn <- g_seq * r_seq

    ### Apply discount factor to profit sequence
    # Convert future profits to present value
    g_seq_after_churn_discount <- g_seq_after_churn * d_seq

    ### Calculate final CLV
    # Sum all discounted future profits and subtract acquisition cost
    # CLV = Σ(discounted profits) - CAC
    CLV <- sum(g_seq_after_churn_discount) - CAC

    return(CLV)
}
Code
# Test the function with default parameters (base case scenario)
# This should return the same CLV we calculated manually: approximately £331.92
computeCLV()
[1] 331.9086

4.1 Use CLV to Guide Marketing Decisions

  • (To guide customer acquisition) What if the company only offers £5 for the first time purchase? This will save some CAC but the clicker-to-trier rate will decrease to 5%. Please compute the new CLV. Should you go ahead with the proposed change?
Code
# Scenario Analysis: Reduce promotional discount from £10 to £5
# This will decrease the clicker-to-trier conversion rate from 10% to 5%
# because the offer is less attractive
# 
# Trade-off analysis:
# - Benefit: Lower promotional costs (saves money on each trial user)
# - Cost: Lower conversion rate (need more clicks to acquire same number of members)
# 
# Let's see if the cost savings outweigh the reduced conversion efficiency
computeCLV(
    promo_first_order_each_trier = 5,   # Reduced promo: £10 → £5
    clicker_to_trier_rate = 0.05        # Lower conversion: 10% → 5%
)
[1] 335.1586
  • (To guide customer retention) What if the company increases the annual membership fee to £119? This will increase revenue from memberships but will also make some customers unhappy so their retention rate will reduce to 55%. Please compute the new CLV. Should you go ahead with the proposed change?
Code
# Scenario Analysis: Increase membership fee from £89 to £119
# This will increase short-term revenue but hurt customer retention
# Retention rate drops from 70% to 55% due to customer dissatisfaction with higher price
# 
# Trade-off analysis:
# - Benefit: Additional £30 annual revenue per customer (£119 - £89)
# - Cost: More customers leave each year (45% churn vs 30% churn)
# 
# Key question: Does the extra £30/year compensate for losing customers faster?
# This tests the balance between maximizing short-term profit vs long-term customer value
computeCLV(
    membership = 119,   # Increased membership: £89 → £119 (+£30)
    r = 0.55            # Reduced retention: 70% → 55% (more churn)
)
[1] 304.0114

References

Kumar, Viswanathan, and Werner Reinartz. 2016. “Creating Enduring Customer Value.” Journal of Marketing 80 (6): 36–68. https://doi.org/10.1509/jm.15.0414.

Footnotes

  1. Cost per click (CPC) is a pricing model used in online advertising where advertisers pay each time a user clicks on their advert. It is a key metric in digital marketing campaigns and is commonly used in platforms like Google Ads, Facebook Adverts, and other search engines or social media networks. https://www.investopedia.com/terms/c/cpc.asp↩︎