I’m republishing some posts from Substack with some minor edits. This is one of them!
In 2018, I became the co-owner of a CrossFit gym in Westminster, Colorado. Over two years, we doubled the revenue and developed a steady profit margin. But, I overlooked one aspect—the local maximum for revenue.
At the risk of vast oversimplification, CrossFit gyms charge a monthly membership, and then participants can attend any number of classes throughout the day. Simple enough. The challenge is that each class has a limit on the number of participants (15 in our case). And you can offer a finite number of classes throughout the day that fit a regular schedule. As you might imagine, our most popular class times were 5:30 a.m. and 4:30 p.m. (before and after work).
Once you fill up each of the classes, it becomes harder and harder to add incremental revenue. You’ve hit your local maximum. It’s a version of Eugene Wei’s “invisible asymptote” — a ceiling for revenue unless you change the business model, update pricing, add additional products, etc.
Software is different, right?
Considering software (specifically, SaaS products), we often assume two things: zero marginal cost and revenue that scales indefinitely. Not so. Invisible asymptotes also exist here; it’s called carrying capacity — a term I learned from Daniel Doyon, co-founder of Readwise.
For simple SaaS businesses (one product, limited pricing options, etc), revenue is pretty straightforward to predict. Your revenue ultimately depends on three factors:
- How many leads are coming in the door? (Acquisition)
- What percentage of those leads are converting to paid? (Activation/Conversion)
- How many existing subscribers are canceling? (Churn)
Eventually, you can layer on pricing strategies, go multi-product, etc. We’ll get to that in a minute. Let’s pencil in some numbers and do some light math for now.
- Paying customers starting Jan 2023: 10,000
- Website traffic per month: 20,000
- Conversion rate: 3.5%
- Monthly churn rate: 4%
- Pricing: $10 per month
We can predict how many subscribers you’ll have at the end of the month (and thus what your revenue will be).
(10,000 customers + 700 new customers - 428 churned customers) * $100
You grossed ~$103k! That’s incredible. Now, here’s the sobering part. Your maximum monthly revenue is roughly $175k. How is this possible? To quote Daniel:
Eventually, the number of existing customers canceling each month will equal the number of new customers subscribing.
That’s carrying capacity! In our case, we’ll plateau around 17,500 customers. At that point, we’ll gain the same 700 customers, but we’ll churn 700 as well.
Carrying capacity is effectively a ceiling on your business.
How Do You Break the Ceiling?
We now have this calculated limit of $175k MRR. That’s a considerable number, but let’s pretend we’re unsatisfied. What can we do to continue growing?
Our levers are straightforward. We discussed them earlier – increase the top of the funnel, boost conversion, or decrease churn. We can painstakingly optimize those over time, but a limit will still exist.
There’s another option, though. Until now, we’ve assumed our average revenue per customer (ARPU) is fixed at $100. How could we increase that number?
Increase the price
Perhaps you priced too low initially and can increase by a few dollars. There’s a tricky balance. If you go too high, you’ll start to increase churn. Ideally, the additional revenue from new and retained subscribers nets you out ahead, even if churn ticks up a bit. Todoist did this in 2022. (I’m still a happy, paying customer.)
Pivot to Enterprise
The “land and expand approach.” Notion is a good example here. They initially launched with plans focused on individuals, but they’ve since pivoted almost exclusively to concentrate primarily on teams and Enterprise. This significantly changes the dynamics! ARPU can grow considerably on a per-seat model. You’re effectively playing a different game.
Going multi-product can tap into each of our levers mentioned above:
- New products attract new customers and maybe even a tangential market (increase top of funnel)
- We can convert more customers because our product now solves more customer jobs (conversion)
- We hopefully address some of the churn reasons (lower churn)
In addition, we will charge more now that we have a new product to package. Thus, we’re driving up ARPU.
Going multi-product is complicated and very challenging. I’ll riff on that in another post. In the meantime, carrying capacity has been a foundational concept that has informed how I think about SaaS businesses in general.