# Expected Lifetime: Churn Formula vs. Experience Data

I am analyzing data for a subscription based company. I.e they sell a service in exchange for monthly payment. I would like to conduct an analysis and come up with an estimate of the average lifetime (in months) of a customer. I have approximately 6 years of data including date of enrollment and date of cancellation. N is fairly large 70k, 80k, 100k, 115k, 135k, 161k enrolled clients in the 6 years, respectively.

I have seen articles such as this one that describe how to calculate average lifetime by taking $$\frac{1}{\text{churn rate}} = \frac{1}{\text{1-retention rate}}.$$

I don't entirely understand why this formula holds,but my understanding is that this is a problistic calculation. Someone on my team calculated an average lifetime of 71 months using this methodology.

Out of curiosity, I wanted to compare this to our experience, so I computed the following in R

data %>%
filter(Cancelled == "TRUE") %>%  #--ignore active policies
mutate(duration = 12*(as.yearmon(CancelRequestDate) - as.yearmon(EnrollDate))) %>%
pull(duration) %>%
mean()

> dataAvgPetMo
24.52419



These two numbers are very different. Could anyone enlighten me as to why, and perhaps offer some guidance for how to interpret or refine this study to come up with a reasonable estimate of average lifetime.

new to this community. edits and advice welcome :)

• To me it makes completely sense to calculate 1/churn_rate since, where churn_rate is the probability given by a classification model of the customer to cancel the policy. When this probability tends to 0 that value will tend to infinity and will tend to 0 when probablity tends to 1. I'm thinking you could use this difference (1/churn_rate) - 12*(as.yearmon(CancelRequestDate) - as.yearmon(EnrollDate))) as metric for you model Commented Apr 5, 2021 at 22:56
• 1. Is the 71 initially mentioned, also calculated in non-cancelled policies? 2.Is churn rate the probability of a customer to cancel at what moment? (1, 2,3 months after?) That would change the interpretation on your validation vs 1/churn_rate 3. If your target is to predict the months from enrolldat and cancelldate why not to use this as the target for a regression model? Commented Apr 5, 2021 at 22:58

Here you are filtering the unchurned customer at the first step (filter(Cancelled == "TRUE")) and therefore you get the average lifetime of the churned customers in your sample rather than the average lifetime of any customer.