Chris is a business analyst who likes to practice data modeling in her free time.

She particularly enjoys building analytical models to achieve marketing objectives. For example: clustering models for auto segmentation, propensity models for customer lifetime value predictions, and attribution models for channel evaluations.

This is a blog for Chris to practice her analytical skills and connect with like-minded people.

Calculating Customer Lifetime Value with Excel

Calculating Customer Lifetime Value with Excel

How much money should we spend on customer acquisition and retention? Who are the customers worth retaining? These questions can be answered by calculating a customer’s lifetime value. But what do you mean by customer acquisition? Well, for example, coupons. Selling products at a discounted rate is the most common tool for customer acquisition. If merchants do not believe in customer life time value, they will not sell their products at a discounted price, expecting the customers to return in the future. We’ve all heard of the company Groupon, its existence is the proof of how most people buy into the idea of customer life time value without noticing.

There is no one correct way to build a customer life time value model, or actually any models. Today I’ll build the model base off the method created by Gupta and Lehman to calculate the customer value multiplier. Their method utilizes discount and retention rates to forecast a customer’s long-term value denoted by multiplier. A multiplier of three means that the customer’s long term value is three times the profit he generates during the first period.

Now we start by making some basic assumptions. We assume that a fraction (1-retention rate) of the customers is lost each period. And we all know that the fraction of customers lost each period is the churn rate. We assume that the customer generates the same profit margin each year, which is pretty reasonable as we are a creature of habit. Lastly, we assume that the number of periods is limited to 360. If a period is a month, this covers 30 years. As churn and discount rate effects are compounded, the per period value of the earliest customer will become really small after this number of periods that it becomes negligible.

Step 1: Determine the Multiplier

So let’s get started! Note that this will be a model of constant margin. Since this is calculation of value over time, we would want to make sure to set up the periods correctly. If we assume profits are generated at the end, beginning or middle of a period, we will like the spreadsheet to adjust accordingly. List end, beginning and middle in any empty cells, in this case H3:H5. Then place our cursor at any empty cell, or in this case E1, select data validation. From the settings that popped up, select the List option and then select the cell range H3:H5 as the source.

Screen Shot 2019-03-17 at 3.42.50 PM.png

Next, we go ahead to determine the number of customers generating profits during the period. It can be any number, this is just the set up of our model. Let’s go with 100. In cell B5 set up the initial customer =IF(E1="end",100*retention_rate,IF(E1="beginning",100,IF(E1="middle",0.5*(100+100*retention_rate)))) I have also set up a few formula shortcuts that we will use soon, not going to spend time explaining here.

Screen Shot 2019-03-17 at 4.07.18 PM.png

And from B6:B360, we will use our retention formula =B5*retention_rate, which is 0.8 in this case. If we assume beginning of year profits, then in period two we can retain 80% of the customers and have 80 customers left. Period three, 64.

Screen Shot 2019-03-17 at 4.13.10 PM.png

Continue on we need to calculate the discount factor for each year. Use the formula =(1/(1+discount_rate)^A5)*(1+discount_rate)^(VLOOKUP($E$1,lookdis,2,FALSE)) in C5:C360. If during year 1 the annual discount rate is 10% then the end of year discount factor is 1/1.10. Beginning of year discount factor is 1. Middle of year discount factor is 1/(1.10)^5. I think we all get the idea now.

Screen Shot 2019-03-17 at 4.17.47 PM.png

Now, to compute the multiplier we sum up (# of customers left)*(discount factor) and divide by beginning number of customers. Use this formula =SUMPRODUCT(B5:B364,C5:C364)/100 in the cell E5. And now we have our multiplier.

Screen Shot 2019-03-17 at 4.32.20 PM.png

Step 2: Sensitivity Analysis

When I was in still in school, our professor would pester us to develop the habit of conducting sensitivity analysis for most models built. This made more sense when I started working. Sensitivity analysis is so important because estimates of the model inputs may be wrong, so we need to at least have an idea how errors in our input estimates will affect the model’s output.

Now begin by listing values of the retention rate (0.6-0.9) in anywhere on the spreadsheet. In this case, F13:F16. Place in the upper-left corner the output formula, which is our multiplier, E5. Then we select the table range as F12:J16, use our What-If Analysis and select Data Table. Select the column input cell as B2 and row input cell as B1.

We have our sensitivity analysis done! As we can see from the table, a 10% discount rate (df) and 60% retention rate yields a multiplier of 2.2. However, a 10% discount rate and 90% retention rate yields a multiplier of 5.5! This demonstrates the importance of retaining these old customers.

Screen Shot 2019-03-17 at 4.54.33 PM.png

The concept of customer value gained attention when Frederic Reichfeld pointed out in Loyalty Effect that for a credit card company, an increase in an annual retention rate from just 80% to 90% could double the multiplier. But obviously we can also assume that the per-period generated by a customer is independent from how long he or she has been a customer. Models can always be altered based on different assumptions and scenarios. There is no one way to build a model, and that is the interesting part!

The basic customer life time value we’ve just built is based off constant margin. In many cases, however, customer margins tend to increase with the length of his or her or other- gender-neutral-pronoun’s tenure. Next time, I’ll practice on how to build a CLV model with growing margin.

Predicting Consumer Choices with Python

Predicting Consumer Choices with Python