Making More Money in Subscription Businesses - Part 1 - Lessons from $5M to $50M ARR
Hey everyone! I have been really enjoying the guides posted here, so I wanted to contribute my leanings to pay it forward.
I led the growth team at Codecademy and helped the company grow from $10M in ARR to $50M ARR+ before it sold to a company called Skillsoft for $525M last year.
I learned a lot about the details that make B2C SaaS/Recurring revenue business models work well that I have yet to see written down anywhere.
My real motivation here is to help the companies that have achieved a good product market fit and have yet to figure out how to make money.
To survive in the long term, you need to do both, and plenty of great products have died because they didn't build out the business side fast enough.
These lessons directly apply to freemium/SaaS businesses and (probably?) apply to other recurring revenue businesses such as subscription e-commerce, agencies, consulting, etc.
I plan to cover the following:
- The mistakes we made and lessons we learned
- The most effective levers we found at each layer of the business:
- Payments
- Churn Reduction
- Extending Lifecycles of Users
- Pricing and Packaging
- Trials/Paywalls)
COMPANY CONTEXT
Codecademy, for those unfamiliar, is a B2C tech education platform that focuses on taking total beginners and getting them to a medium level of technical skills.
The company started in 2011 and built what I still think is the best free learn-to-code product online.
As all "advice" really depends on the context that it's coming from, here is where we were at as a company in roughly 2017 :
- Very strong, low-cost free user acquisition driven by the free product, excellent brand name, and strong SEO ranking
- Product market fit in the free product for users who are early-stage learners (i.e., not professional software engineers)
- Short/Intermittent usage patterns across all users - E.g., they show up for a few weeks/months to learn something, then leave for a while, then maybe come back in a few months/years. Not the best use case, but a solid one
- A paid product that was built but was still being figured out.
TL;DR - We had a lot of free users but were terrible at converting them to paid and monetizing them.
The final bit of context is that I am a product manager, so most of our work was on the product rather than in marketing channels. We did have a great marketing team; however, I'll mainly talk about what I implemented firsthand and saw work.
THINGS WE SCREWED UP
Like most first-time growth teams, we made many of the classic mistakes in our first year.
The most painful/memorable of those are:
- Not understanding what to A/B test vs. just shipping it
- Launching giant projects without enough due diligence - We should re-design the homepage! That did nothing?
- Thinking of ideas that were "fun" or "fancy." - What if we partnered with influencers? What if we ran subway ads in NYC?
- Working in the wrong areas of the application - We re-designed our pricing page twice before realizing that a very small % of users purchase right from that page
- Not iterating on good ideas that didn't work out the first time
- Not implementing best practices fast enough
- We literally debated if we should have a pricing page in the header of the site for about two months. - TL;DR - you should have a pricing page in the header
- Not thinking through if a small win was worth the complexity that we're adding to the system & company operations.
When you combine this with the friction of getting all the necessary tooling set up, learning how to run an A/B testing program, and building out the team.... this wasn't our best year.
Additionally, B2C SaaS and subscription businesses can be tricky to grow for a few reasons, especially when paired with a free product/tier.
These businesses can take a lot longer to grow because you aren't going to close a big enterprise contract, and scaling paid media is more challenging.
The value you capture from users is spread across their lifecycle, so being confident about your LTV and the spending in marketing channels is hard (not impossible, but hard)
Any time you do something like test new pricing (which you should), you can't really know the impact on LTV because those new users haven't reached the end of their lifecycle.
When you're also running a big free product, it is hard to run direct response style paid media effectively as you can't really prevent users from finding the free product.
Understanding payback periods for ad spend gets more challenging when they might spend variable amounts of time in the free tier based on the audience.
OUR BIGGEST LESSONS
Recurring revenue businesses are basically structured like the below diagram.
Many companies go wrong because they only focus on making acquisition cheaper and faster when in reality, you should also have been systematically improving LTV to afford higher acquisition costs.
There is a Dan Kennedy quote, which is something like, "The business that can pay the most to acquire the customer will win."
Assuming that you don't have a bunch of VC money light on fire (and even if you do), the best chance that you have in the long term is figuring out to better monetize each monthly cohort of users and increase your overall LTV, which will allow you to spend more to acquire more customers profitably.
Here is what I would advise companies in a similar place to do. This is a path toward reliably making improvements, not seeing giant lifts.
- Figure out monetization early in your product/company's life.
Everything gets more expensive to change the longer you wait. It involves convincing people, changing more code, retraining more sales/customer service people, etc.
- While speed is essential in all businesses, it's extra important in subscription businesses:
- Users pay incrementally across their lifecycles, so value capture is slow. You don't close big enterprise contracts.
- Each under-monetized cohort that you sign up keeps underpaying you across their lifetime. Raising prices for existing users has a lot of risks.
- Get to the best practices as fast as you can. Don't overthink the fundamentals.
- Work from the bottom of the funnel upwards unless you have a good reason not to.
- You're active paying users are hands down the most valuable to you. You don't want to lose them for things like payment failures that could have been prevented.
- If you are in a company that drives decisions based on A/B tests, you will be beholden to a concept called minimum detectable effect (MDE).
- MDE is, basically, the smallest lift you can measure with statistical significance (which basically translates to confidence).
- So if you have a high MDE, say 20%, and you ship a test that improves something by 19.99%, you won't be able to measure with statistical significance. There are ways of compensating for this, but this makes testing hard.
- The worse your overall conversion is, the larger the MDE will be, which makes A/B testing harder.
- But the upside is that improving things at the bottom of your funnel will lower (a good thing) the MDE, which raises the accuracy of your ability to measure things above it in the funnel.
- It's hard to convince people to pay you money, so start by finding all the people who are trying to pay you, and it's not working
- Find all the dead ends and confusion across your product and fix those.
- Ensure the checkout page error states are clear, that any payment integrations aren't broken in specific browsers, etc.
- Are the bugs that happen during certain edge cases in important parts of the app?
- Try to keep complexity low
- Your goal is to keep development and operational speed fast, so check that any changes you make are worth the maintenance costs.
- For example, Suppose you find that setting up custom price structures per country raises revenue.
From now on, the finance team will need to build multiple models to forecast revenue, the customer service now needs multiple sets of auto-responses, etc.
- Focus where most users are and focus on improving clarity
- Try to find the places in your product that most users are converting from and ensure that you're setting context correctly the step before.
- Try to find the places in your product that most users are converting from and ensure that you're setting context correctly the step before.
- One of our most successful tests on our homepage changed the primary CTA from "Start Coding" to "Sign Up." Most of the time, we were cute with copy or messaging; it hurt us.
Hope that helps someone and is interesting to other people than just me.More than happy to answer any questions in the comments.
Next time: I'll go through the major lessons in payments.