# How to estimate retention rate with limited data?

Let's say I'm a gym owner and I have only 2 years of monthly data of my gym memberships. Some members have quit after a few months and some members have been a member for all 2 years (24 months).

I want to estimate the 0 < p < 1 value as a probability of a member being retained for the next month.

I was thinking about modeling this is as a geometric distribution to estimate my p parameter. Thus, I can calculate the mean # of months of memberships amongst all members (this will be x_bar). Therefore, because the mean of a geometric is 1/p, we can do p = 1/x_bar to get the estimate of p.

However, after trying this, I quickly realize that I am underestimating the p because some of my data shows that some members have been members for all 24 months. They still have not left my gym yet. Therefore, I realize my p is a lower bound.

How can I get closer to estimating a more accurate p? Maybe a simulation? What are your thoughts?

This can be viewed (and is perhaps best viewed) in terms of survival analysis. You have observations of the months "survived" (retained membership), some of which are right-censored (you only know that the survival time is >24 months). It's possible you have left-truncated observations as well--people whose membership started before the 24 months.

If you're mainly interested in the probability of retaining the membership for another month (conditional on having a membership at the start of the month), you can treat this as a problem in discrete-time survival analysis in particular, which makes things a bit simpler. Then you can actually turn this into a straightforward binomial (actually Bernoulli) regression, which depending on your choice of link function could be logistic regression or complementary log-log regression, for example.

But to make things super-simple, if you're just trying to estimate a single probability, i.e. a constant model, then the method reduces to this:

For each customer, for each month that they retained their membership, from the point in time you started tracking them (could be since the start of the membership, could be later than that), record a zero.

For each customer, for each month that they had a membership at the beginning of the month, but dropped out during the month, record a one.

Take the average of all the zeros and ones. That's your estimate of the monthly discrete-time hazard rate. Take one minus that, and you have an estimate of the monthly probability of retention.

This is equivalent to doing a logistic regression on the zeros and ones above, with only an intercept/constant in the model.

For more details, a few references off the top of my head are Stephen Jenkins paper on the "easy estimation" method, his lecture notes on survival analysis (probably still available online), and Paul Allison's book on survival analysis in SAS (which is useful even if you don't use SAS).

PS I'm guessing the hazard rate is not actually constant, but decreases with the months since the membership started, i.e. that people who have already retained their membership for some time are expected to stay with you for longer. That's a straightforward extension of this approach--basically you'd do a logistic regression on the data above, using time-since-membership-started as a covariate. But you may not be interested in that, or maybe you don't think you have enough data to look into it (trying wouldn't hurt though).