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) %>%
> dataAvgPetMo


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 :)

  • $\begingroup$ 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 $\endgroup$
    – Multivac
    Commented Apr 5, 2021 at 22:56
  • $\begingroup$ 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? $\endgroup$
    – Multivac
    Commented Apr 5, 2021 at 22:58

1 Answer 1


The average lifetime is calculated simply by using the geometric distribution's mean formula. If probability of churn in any month (or simply percent churned in a month) is 0.2, then the expected life time of a customer is 1/0.2 = 5 months.

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.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.