Or how you can estimate subscription revenue with a leaky bucket

Given Apple’s push behind App Store subscriptions and the number of apps that have made the switch like DayOne, Ulysses, 1Password, and our very own Astropad Studio, if you’re an app developer you should take a serious look at subscriptions.

Now switching to subscriptions isn’t a panacea, it’s a much more complex business model that pays off over the long haul. To get a grasp subscriptions and make reasonable revenue estimates you’ll need to get a handle on things like LTV (Life Time Value), Churn, MRR (Monthly Recurring Revenue), and Trial-To-Paid conversion. For this post, I want to focus on churn, which is the percentage of users that cancel their subscription in a given time frame, typically a month. In fact, churn has a direct effect on the total number of possible subscribers you can have. Let me explain…

There are lots of great resources out there on understanding the SaaS business model and the metrics behind it. However, I was never able to internalize the importance of churn until I came up with a physical analogy…a leaky bucket. Stick with me a moment, this will eventually all make sense… Imagine you have a rusty old bucket, that represents your active subscribers. There’s continuous water flowing into the top of the bucket, that represents new subscribers coming in. This bucket also has a hole in the bottom where water is dripping out which represents subscribers that cancel (churn).



Now here is where it gets interesting… First we need to go back to our physical analogy. As water fills the bucket that creates more pressure on the leak at the bottom causing water to be sprayed out at an ever faster rate. That means that there is an eventual equilibrium that is reached where water is coming into the bucket as fast as it’s being emptied out. If we work back from this analogy to our subscription business, a percentage of our subscriber cancel each month (churn as the leak) which means there is also an equilibrium for our subscribers. If we have a certain number of new subscribers coming in each month and a percentage of subscriber leaving each month, there is a point at which they will become equal.

So let’s put this into an equation:

Amount Water coming in = Amount Water going out

Or in our case:

# New subscribers joining = # Active Subscribers Cancelling

We can further develop this if we think about what happens over a month:

New_Subs_Per_Day * 30 days = Active_Subs * Monthly_Churn

This becomes powerful when we can start to plug in number and make educated estimates:

So let’s say we get 10 new subscribers every day and we plug in a churn of 10% (potentially reasonable for a consumer-focused app):

10 subscribers * 30 days = Active_Subs * 10% churn

That means that under this scenario the maximum possible number of subscribers we could have is 3000. Now you could multiply that by the cost of your subscriptions, and that gives you an idea of your maximum monthly recurring revenue (MRR). So let’s say it’s $5/month. That gives us 3000 * $5 = $15,000/month.

And as a ceiling, that’s probably not what you wanted to hear… So how can you improve upon this? Well looking at our equation, there are only two variables we can change:

1. The number of new subscriptions coming in

2. Your subscriber churn rate

Since it’s easier and less expensive to retain existing customers than it is to find new ones, we’d want to take a closer look at reducing churn. In reality, you’ll want to do both, improve your reach of new customers and reduce churn, but this illustrates why churn is such a critical element to a subscription business.

And it goes without saying that all of this is an approximation. In reality, the number of new customers each day is unlikely to be constant and instead you’ll get spikes and dips. Either way, this is still a useful model to help think about your subscription business.


For fun you can get even fancier and start to introduce more concepts into the equation, like say website conversions. For example, we could replace New_Subs_Per_Day with something like:

Website_Visitors_Per_Day * Sub_Conversion_Rate * 30 days = Active_Subs * Monthly_Churn

Credits: Water Faucet by Augsten Grafik & Bucket by AfterGrind from the Noun Project