What is NRR and why does it matter?
Taking a step back to take two steps forward: trying to predict the future
Back in the day when SaaS was just starting to take over traditional software models, people started to do math to better understand how these high margin subscription businesses work and how they should be valued.
How can we use historical data to better predict the future?
What are the best indicators of long term success?
Subscription businesses represent a unique opportunity because of the expectation of retention - this, along with high gross margins and scalability, is why these SaaS valuations are so high relative to size and profitability. There is a general assumption that customers will stay on board and continue to generate revenue. Because the biggest expense - customer acquisition - only happens once, long term profitability looks great. There is some chance that they don’t renew, and we call that churn. There are two types of churn:
Involuntary churn
Customer goes out of business
Voluntary churn
Customer found a better solution
Customer doesn’t need the tool any more
But the term churn is a bit deceiving. In practice, companies don’t rage quit from platforms like employees sometimes do, rather they choose not to renew. So what is the difference? Renewal timing. The 1-year contract (paid upfront as it should be) has a big impact here because it means that customers can only choose not to renew once a year. Even if customers decide to not renew a few months in advance of their renewal date, their cash is in the bank and their access to the platform remains, so they still generate revenue.
Investors and founders alike cleaved to this churn metric for two main reasons:
It is easy to calculate if you have a simple ARR waterfall model.
It is useful in the often-misunderstood customer LTV calculation.
The problem is that a simple calculation of Churn Rate (Churned ARR / Beginning ARR) does not take into consideration what portion of that Beginning ARR is even eligible to churn. In a fast growing business with annual contracts, a company may go from adding 5 customers per month to 40 in a 1 year span, but only those original 5 are eligible to churn after 12 months. As a result, a simple churn rate calculation is very deceiving. For example…
What looks like a 16% annualized churn rate is really an 80% non-renewal rate, which is reason for alarm. And this is just the tip of the iceberg.
There’s another part of the equation: what if we keep a customer and they start paying us more or less than they were before?
This is where upsell/expansion and downsell/contraction enter the picture, and along with them, plenty of questions of how to incorporate them into the projection and valuation process.
For several years, there was a trend to use a term called “net churn,” which still makes me gag a little bit to say. I am happy to say that investors and operators have come to their senses and stopped using this term. The reason this oversimplified, conglomerated franken-metric was used:
Because it further simplifies things
It can be even more mis-used in the often misunderstood customer LTV calculation
It hides how bad the actual churn is
Oh, but there are so many problems…
Anyone looking at these numbers should be able to take a churn rate, say 15% and subtract a net upsell number, say 6%, and get to a net churn of 9%. Abstracting away this simple arithmetic is fishy at best.
More importantly though, it doesn’t tell us much about the business or customer behavior because it blends together so many different time periods and customer behaviors into a single number. Building models and doing analysis is the art and science of taking intelligent averages to improve accuracy. If you’ve already blended a bunch of stuff together and now try to analyze it by slicing it up again, you are adding precision while decreasing accuracy.
But let’s get back to churn, and why looking at it from a retention perspective makes much more sense. In theory, they are just 1 minus the other: 10% churn = 90% retention. But when you’re dealing with anything besides monthly contracts, the customer behaviors diverge much more than the numbers allude to. As mentioned above, ultimately a customer makes the decision to not renew, and the timing is critical. Without knowing customer contract length, it’s very hard to predict renewals. You really need to know which customers are up for renewal, and establish a pattern of renewals in order to drive a projection.
Enter the Cohort Analysis
Up until now, we’ve just been doing calculations with this data:
There is nothing wrong with this data, but it leaves so much to be desired. If you want to really understand customer behavior and the value of a company’s revenue, you need to go into the cohort data, which involves digging into these sort of eyecharts:
And this still isn’t even enough! If a company has multiple contract length options, then you could mark each customer as “monthly” or “annual,” and based on the contract start date (i.e., which cohort they belong to), you could assume a renewal date. Of course, this ignores the details of free extensions given or upgraded contracts that extend renewal dates. That level of data lives either in a CRM, billing tool, or subscription management tool. If every contract is annual, this is simpler to understand, but you still need to look at contracts to figure out if an upsell/expansion resets the clock on renewals or not.
It is important to note that there are several ways to put customers into cohorts:
When they became customers
When they are up for renewal
Size of contract
Billing cycle
Contract length
For the purposes of understanding Net Revenue Retention, we’ll just focus on cohorting customers by when they became customers. The reason for doing this is that you can map it to sales cycle and therefore calculate an average CAC for each cohort. This allows you to do powerful yet simple analysis to answer important questions like: How long do we need to retain these customers for this customer cohort to be unit profitable? And then look historically to see how long it actually took to reach cohort profitability. Trying to understand CAC payback without this analysis is a gross oversimplification which may give you a rough relative efficiency analysis, but not an absolute efficiency metric.
Before talking about Net Revenue Retention, let’s first start with Customer Retention. Just to clarify, a “non-renewal” or “churn” only occurs when you officially lose a customer. If their MRR/ARR changes up or down, it is called upsell/expansion or downsell/contraction. Why does losing customers matter so much? Because acquiring them is expensive and is the core operation of the entire GTM team for a fast-growing company. Once a company is not expected to grow as fast (i.e., it has reached scale), then customer success, retention and upsell become the priority.
When cohorting using customer acquisition date, it’s critical to remember that cohort size can only go down. You start with a cohort of 10 customers that were acquired in a given month, and it only goes down from there. You may ask “what about Reactivations?” Ok, so sure, a customer can leave and come back, but a) that almost certainly costs the GTM team meaningful time and money, so maybe it should be looked at as a new customer from a CAC perspective, and b) cohort size still can never be more than the original 10: it can go from 10 to 9 to 10, but only if that same customer leaves and returns (within a reasonable amount of time).
As a result, the customer retention by cohort chart looks like this:
This is not so easy to read and really doesn’t tell us much, but it’s a good check that the analysis is working properly: all of the lines go down and to the right or stay flat.
On a percentage of original cohort customers retention basis, the chart looks like this:
As you can see, it never goes above that 100%. But this still doesn’t tell us much besides how fast customers are dropping off from each cohort. Naturally, the flatter the better.
Now let’s dig into the revenue numbers. First, we’ll just look at a single cohort:
It’s interesting! But it still doesn’t tell us much about the customer behavior en-masse to the point where we can use it to predict future ARR fluctuations. We see here that the cohort started at $4,080 MRR, expanded up $5,2800, and then contracted back down to $4,755.
The next step is to layer on all the cohorts…
Now we’re looking at modern art spaghetti. Also not so helpful.
The next step is to normalize this data. Instead of starting at the initial MRR, each line will start at 100%.
Maybe even less helpful, now it looks like a bad hair day.
Next step: take an average. The only problem with an average here is that the newer cohorts are likely bigger and more indicative of future behavior, so we’ll also take a weighted average by cohort size to try to correct for this a bit.
Now we’re talking! We’re looking at a nice set of retention curves here which give us a sense of the customer behavior over time. Notice that in month 12, we see a drop off. This is an indication of annual contract non-renewal, which makes sense.
But now what? What is our Net Revenue Retention number?
Often NRR gets presented simply as a single number, and it’s really hard to know what that number represents. Is it at the one year mark? Is it before or after the first opportunity for annual contracts to renew? Is it an average or a weighted average? Were any other sorts of cohorts eliminated from the analysis (i.e., small customers)? What percentage of revenue do those represent?
Net Revenue Retention really needs to be communicated as a curve.
Though it can also be communicated clearly as “weighted average net one-year revenue retention is 173% across all cohorts.”
There are also several other questions that need to be answered to better understand the quality and pattern of behavior of the customer base, which is the reason we’re quantifying net retention to begin with.
Where is upsell/expansion coming from? More seats? New products? Overages or Add-ons that are re-occurring?
These all have big implications on the quality and value of revenue in the future.
Where is downsell/contraction coming from? Did our salespeople oversell the product? Are our customers doing layoffs? Are our premium features/products sticking? Or is it just because we converted some $100/month customers to $1,000/year customers?
Sometimes downsell is good and sometimes it is reason for alarm even more so than churn.
This is all to say that it’s critical to remember WHY we are performing any analysis:
The Goal: to understand and gain confidence in projections
→ need to first understand existing customer behavior to extrapolate future customer behavior
→ need to first determine which metrics best represent customer behavior
→ need to first understand the details of customer contracts and what metrics they generate
Understanding this flow is the most important part of this entire post.
Without this context, you’re just having fun with Excel.
I am including a link to the spreadsheet with the above analysis and charts here: https://docs.google.com/spreadsheets/d/1qpL162TA0eZcYNXUXQrbi4wzQwNuSlWWpKNrTg-FhC4/edit?usp=sharing
Note that this is only a historical analysis. For investors, this may be enough to diagnose a business, but for operators, the key is to take these conclusions and use them to drive assumptions in a forward-looking model. That is where the real art comes in and it’s very situation-specific.
One hack method I have seen people use in the absence of cohort data is:
Numerator: full year of upsells + downsells + churns
Denominator: Beginning ARR + full year of New ARR
Calculated another way (with even less data):
Numerator: Ending ARR
Denominator: Beginning ARR + full year of New ARR (minus 1)
While I understand why people use these calculation in the absence of cohort data, they don’t capture the aging of cohorts, and instead treat MRR added to early cohorts the same as MRR added to larger, more recent cohorts which will grossly underestimate expected cohort growth. As cohorts get larger and the company’s growth rate changes, this number will be decreasingly indicative of future revenue retention behavior. Equal parts imprecise and inaccurate.
Just know that if you are not using the cohort data, then it isn’t Net Revenue Retention, and it may be misleading.
This matters for both investors doing analysis to assess valuation and future prospects and even more so for founders who are trying to optimize growth and make useful projections.
One final note… in some cases, high NRR isn’t a good thing. Better to just start at full contract size and keep it forever than to start with a tiny contract and need to constantly upsell it. So if you’re trying to measure and optimize your NRR, maybe first ask if it’s a good indicator for your specific business case.
And always get back to the core reason for any of this analysis: to understand and gain confidence in projections.
Always a treat!