The answer, which is 104%. (Median NDR which is surprisingly invariant across size. Exception: public company NDR median is 111%.)

Problems with historical installed-base valuation metrics such as churn, customer lifetime (CLT), and lifetime value (LTV), building on my SaaStr 2020 presentation, Churn is Dead, Long Live NDR.

The rise of NDR as the SaaS metric of choice.

How NDR is currently the most powerful predictor (among common alternatives) of a company’s revenue multiple (EV/R).

The “dollar” in net dollar retention and why global companies should look at NDR using constant currencies, not dollars converted at a spot rate.

How NDR should vary as a function of stage, expansion model, business model, target market, sales motion, and pricing model.

How usage-based (aka, consumption-based) pricing models will be as transformation to subscription SaaS as subscription SaaS was to perpetual license software.

If GainSight makes a video available online, I’ll add a link to it, here. Meantime, thanks to GainSight for having me and hope you enjoy the presentation.

Most of the thinking, definitions, and formulas regarding SaaS unit economics is based on assumptions that no longer reflect the reality of the enterprise SaaS environment. For example, thinking in terms of MRR (monthly recurring revenue) is outdated because most enterprise SaaS companies run on annual contracts and thus we should think in terms of ARR (annual recurring revenue) instead.

Most enterprise SaaS companies today do a minimum one-year contract and many do either prepaid or non-prepaid multi-year contracts beyond that. In the case of prepaid multi-year contracts, metrics like the CAC payback period break (or at the very least, get difficult to interpret). In the case of multi-year contracts, calculating churn correctly gets a lot more complicated – and most people aren’t even aware of the issue, let alone analyze it correctly.

If your company does multi-year contracts and you are not either sidestepping this issue (by using only ARR-pool-based rates) or correcting for it in your available-to-renew (ATR) churn calculations, keep reading. You are possibly making a mistake and overstating your churn rate.

A Multi-Year Churn Example
Let’s demonstrate my point with an example where Company A does 100% one-year deals and Company B does 100% three-year deals. For simplicity’s sake, we are going to ignore price increases and upsell [1]. We’re also not going to argue the merits of one- vs. three-year contracts; our focus is simply how to calculate churn in a world of them.

In the example below, you can see that Company A has an available-to-renew-based (ATR-based) [2] churn rate of 10%. Company B has a 27% ATR-based churn rate. So we can quickly conclude that Company A’s a winner, and Company B is a loser, right?

Not so fast.

At the start of year 4, a cohort of Company A customers is worth 72.9 units, the exact same as a cohort of Company B customers. In fact, if you look at lifetime value (LTV), the Company B cohort is worth nearly 10% more than the Company A cohort [3].

Wait a minute! How can a company with 27% churn rate be “better” than a company with 10% churn rate?

It’s All About Exposure: How Often are Deals Exposed to the Churn Rate?
One big benefit of multi-year deals is that they are exposed to the churn rate less frequently than one-year deals. When you exclude the noise (e.g., upsell, discounts, and price increases), and look at churn solely as a decay function, you see that the N-year retention rate [4] is (1-churn rate)^N. With 10% churn, your 2-year retention rate is (1-0.1)^2 = 0.9^2 = 0.81. Your 3-year retention rate is (1-0.1)^3 = 0.9^3 = 0.729, or a retention rate of 73%, equivalent to a churn rate of 27%.

Simply put, churn compoundssoexposing a contract to the churn rate less often is a good thing: multi-year deals do this by excluding contracts from the ATR pool, typically for one or two years, before they come up for renewal [5]. Thisalso means that you cannot validly compare churn rates on contracts with different duration.

This is huge. As we have just shown, a 10% churn rate on one-year deals is equivalent to a 27% churn rate on three-year deals, but few people I know recognize this fact.

I can imagine two VCs talking:

“Yo, Trey.”

“Yes.”

“You’re not going to believe it, I saw a company today with a 27% churn rate.”

“No way.”

“Yep, and it crushed their LTV/CAC — it was only 1.6.”

“Melting ice cube. Run away.”

“I did.”

Quite sad, in fact, because with a correct (annualized) churn rate of 10% and holding the other assumptions constant [6], the LTV/CAC jumps to healthy 4.4. But any attempt to explain a 27% churn rate is as likely to be seen as a lame excuse for a bad number as it is to be seen as valid analysis.

Best Alternative Option: Calculate Churn Rates off the Entire ARR Pool
I’m going to define the 27% figure as the nominal ATR-based churn rate. It’s what you get when you take churn ARR / ATR in any given period. I call it a nominal rate because it’s not annualized and it doesn’t reflect the varying distribution of 1Y, 2Y, and 3Y deals that are mixed in the ATR pool in any given quarter. I call it nominal because you can’t validly compare it to anything [7].

Because correcting this to a more meaningful rate is going to involve a lot of brute force math, I’ll first advise you to do two things:

Banish any notion from your mind that ATR rates are somehow “more real” than churn rates calculated against the entire ARR pool [8].

Then use churn rates calculated against the entire ARR pool and sidestep the mess we’re about to enter in the next section [9] where we correct ATR-based churn rates.

In a world of mixed-duration contracts calculating churn rates off the entire ARR pool effectively auto-corrects for the inability of some contracts to churn. I have always believed that if you were going to use the churn rate in a math function (e.g., as the discount rate in an NPV calculation) that you should only use churn rates calculated against the entire ARR pool because, in a mixed multi-year contract world, only some of the contracts come up for renewal in any given period. In one sense you can think of some contracts as “excluded from the available-to-churn (ATC) pool.” In another, you can think of them as auto-renewing. Either way, it doesn’t make sense in a mixed pool to apply the churn rate of those contracts up for renewal against the entire pool which includes contracts that are not.

If you want to persist in using ATR-based churn rates, then we must correct for two problems: we need to annualize the multi-year rates, and we then need to calculate ATR churn using an ATR-weighted average of the annualized churn rates by contract duration.

Turning Nominal ATR Churn into Effective, Annualized ATR Churn
Here’s how to turn nominal ATR churn into an effective, annualized ATR churn rate [10] [11]:

Step 1: categorize your ATR and churn ARR by contract duration. Calculate a 1Y churn rate and nominal 2Y and 3Y ATR churn rates.

Step 2: annualize the nominal multi-year (N-year) churn rates by flipping to retention rates and taking the Nth root of the retention rate. For example, our 27% 3-year churn rate is equivalent to a 73% 3-year retention rate, so take the cube root of 0.73 to get 0.9. Then flip back to churn rates and get 10%.

Step 3: do an ATR-weighted average of the 1Y and annualized 2Y and 3Y churn rates. Say your ATR was 50% 1Y, 25% 2Y, and 25% 3Y contracts and your annualized churn rates were 10%, 12%, and 9%. Then the weighted average would be (0.5*0.10) + (0.25*0.12) + (0.25*0.09) = 10.25%, as your annualized, effective ATR churn rate.

That’s it. You’ve now produced an ATR churn rate that is comparable to a one in a company that does only 1-year contracts.

Conclusion
If nothing else, I hope I have convinced that you it is invalid to compare churn rates on contracts of different duration and ergo that is simpler to generally calculate churn rates off the entire ARR pool. If, however, you still want to see ATR-based churn rates, then I hope I’ve convinced you that you must do the math and calculate ATR churn as a weighted average of annualized one-, two-, and three-year ATR churn rates.

# # #

Notes
[1] In a world of zero upsell there is no difference between gross and net churn rates, thus I will simply say “churn rate” in this post.

[2] As soon as you start doing multi-year contracts then the entire ARR base is no longer up for renewal each year. You therefore need a new concept, available to renew (ATR), which reflects only that ARR up for renewal in a given period.

[3] Thanks to its relatively flatter step-wise decay compared to Company A’s more linear decay.

[4] Retention rate = 1 – churn rate.

[5] If it helps, you can think of the ATR pool in a glass half-empty way as the available-to-churn pool.

[6] Assuming CAC ratio of 1.8 and subscription gross margins of 80%.

[7] Unless your company has a fixed distribution of deals by contract duration – e.g., a degenerate case being 100% 3Y deals. For most companies the average contract duration in the inbound ATR pool is going to vary each quarter. Ergo, you can’t even validly compare this rate to itself over time without factoring in the blending.

[8] Most people I meet seem to think ATR rates are more real than rates based on the entire ARR pool. Sample conversation — “what’s your churn rate?” “6%.” “Gross or net? “Gross.” “No, I mean your real churn rate – what gets churned divided only by what was up for renewal.” The mistake here is in thinking that using ATR makes it comparable to a pure one-year churn rate – and it doesn’t.

[9] Gross churn = churn / starting period ARR. Net churn = (gross churn – upsell) / starting period ARR.

[10] I thought about trying a less brute-force way using average contract duration (ACD) of the ATR pool, but decided against it because this method, while less elegant, is more systematic.

[11] Note that this method will still understate the LTV advantage of the more step-wise multi-year contract decay because it’s not integrating the area under the curve, but instead intersecting what’s left of the cohort after N years. In our first example, the 1Y and 3Y cohorts both had 73 units of ARR, but because the multi-year cohort decayed more slowly it’s LTV to that point was about 10% higher.

This post won’t save your life, or your company. But it might save you a few precious hours at 2:00 AM if you’re working on your company’s SaaS metrics and can’t foot your quarterly and annual churn rates while preparing a board or investor deck.

The generic issue is a lot of SaaS metrics gurus define metrics in a generic way using “periods” without paying attention to some subtleties that can arise in calculating these metrics for a quarter vs. a year. The specific issue is, if you do what many people do, that your quarterly and annual churn rates won’t foot — i.e., the sum of your quarterly churn rates won’t equal your annual churn rate.

Here’s an example to show why.

If I asked you to calculate the annual churn rate in the above example, virtually everyone would get it correct. You’d look at the rightmost column, see that 2018 started with 10,000 in ARR, see that there were 1,250 dollars of churn on the year, divide 1,250 by 10,000 and get 12.5%. Simple, huh?

However, if I hid the last column, and then asked you to calculate quarterly churn rates, you might come up with churn rate 1, thinking churn rate = period churn / starting period ARR. You might then multiply by 4 to annualize the quarterly rates and make them more meaningful. Then, if I asked you to add an annual column, you’d sum the quarterly (non-annualized) rates for the annual churn and either average the annualized quarterly rates or simply gray-out the box as I did because it’s redundant [1].

You’d then pause, swear, and double-check the sheet for errors because the sum of your quarterly rates (10.2%) doesn’t equal your annual rate (12.5%).

What’s going on? The trap is thinking churn rate = period churn / starting period ARR.

That works in a world of one-year contracts when you look at churn on an annual basis (every contract in the starting ARR base of 10,000 faces renewal at some point during the year), but it breaks on a quarterly basis. Why? Because starting ARR is increasing every quarter due to new sales that aren’t in the renewal base for the year. This depresses your churn rates relative to churn rate 2, which defines quarterly churn as churn in the quarter divided by starting-year ARR. When you use churn rate 2, the sum of the quarterly rates equals the annual rate, so you can mail out that board deck and go back to bed [2].

Available to Renew (ATR-based) Churn Rates

While we’re warmed up, let’s have some more fun. If you’ve worked in enterprise software for more than a year, you’ll know that the 10,000 dollars of starting ARR is most certainly not distributed evenly across quarters: enterprise software sales are almost always backloaded, ergo enterprise software renewals follow the same pattern.

So if we want more accurate [3] quarterly churn rates, shouldn’t we do the extra work, figure out how much ARR we have available to renew (ATR) in each quarter, and then measure churn rates on an ATR basis? Why not!

Let’s first look at an example, that shows available to renew (ATR) split in a realistic, backloaded way across quarters [4].

In some sense, ATR churn rates are cleaner because you’re making fewer implicit assumptions: here’s what was up for renewal and here’s what we got (or lost). While ATR rates get complicated fast in a world of multi-year deals, for today, we’ll stay in a world of purely one-year contracts.

Even in that world, however, a potential footing issue emerges. If I calculate annual ATR churn by looking at annual churn vs. starting ARR, I get the correct answer of 12.5%. However, if I try to average my quarterly rates, I get a different answer of 13.7%, which I put in red because it’s incorrect.

Quiz: what’s going on?

Hint: let me show the ATR distributed in a crazy way to demonstrate the problem more clearly.

The issue is you can’t get the annual rate by averaging the quarterly ATR rates because the ATR is not evenly distributed. By using the crazy distribution above, you can see this more clearly because the (unweighted) average of the four quarterly rates is 53.6%, pulled way up by the two quarters with 100% churn rates. The correct way to foot this is to instead use a weighted average, weighting on an ATR basis. When you do that (supporting calculations in grey), the average then foots to the correct annual number.

# # #

Notes:

[1] The sum of the quarterly rates (A, B, C, D) will always equal the average of the annualized quarterly rates because (4A+4B+4C+4D)/4 = A+B+C+D.

[2] I won’t go so far as to say that churn rate 1 is “incorrect” while churn rate 2 is “correct.” Churn rate 1 is simple and gives you what you asked for “period churn / starting period ARR.” (You just need to realize that the your quarterly rates will only sum to your annual rate if you have zero new sales and ergo you should calculate the annual rate off the yearly churn and starting ARR.) Churn rate 2 is somewhat more complicated. If you live in a world of purely one-year contracts, I’d recommend churn rate 2. But in a world of mixed one- and multi-year contracts, then lots of contracts are in starting period ARR aren’t in the renewal base for the year, so why would I exclude only some of them (i.e,. those signed in the year) as opposed to others.

[3] Dividing by the whole ARR base basically assumes that the base renews evenly across quarters. Showing churn rates based on available-to-renew (ATR) is more accurate but becomes complicated quickly in a world of mixed, multi-year contracts of different duration (where you will need to annualize the rates on multi-year contracts and then blend the average to get a single, meaningful, annualized rate). In this post, we’ll assume a world of exclusively one-year contracts, which sidesteps that issue.

[4] ATR is normally backloaded because enterprise sales are normally backloaded. Here the linearity is 15%, 17.5%, 25%, 42.5% or a 32.5/67.5 split across the first vs. second half of the year (which is pretty backloaded even for enterprise software).

[5] The spreadsheet I used is available here if you want to play with it.

I’m Dave Kellogg, advisor, director, consultant, angel investor, and blogger focused on enterprise software startups. I am an executive-in-residence (EIR) at Balderton Capital and principal of my own eponymous consulting business.

I bring an uncommon perspective to startup challenges having 10 years’ experience at each of the CEO, CMO, and independent director levels across 10+ companies ranging in size from zero to over $1B in revenues.

From 2012 to 2018, I was CEO of cloud EPM vendor Host Analytics, where we quintupled ARR while halving customer acquisition costs in a competitive market, ultimately selling the company in a private equity transaction.

Previously, I was SVP/GM of the $500M Service Cloud business at Salesforce; CEO of NoSQL database provider MarkLogic, which we grew from zero to $80M over 6 years; and CMO at Business Objects for nearly a decade as we grew from $30M to over $1B in revenues. I started my career in technical and product marketing positions at Ingres and Versant.

I love disruption, startups, and Silicon Valley and have had the pleasure of working in varied capacities with companies including Bluecore, FloQast, GainSight, Hex, MongoDB, Pigment, Recorded Future, and Tableau.

I currently serve on the boards of Cyber Guru (cybersecurity training), Jiminny (conversation intelligence), and Scoro (work management).

I previously served on the boards of Alation (data intelligence), Aster Data (big data), Granular (agtech), Nuxeo (content services), Profisee (MDM), and SMA Technologies (workload automation).

I periodically speak to strategy and entrepreneurship classes at the Haas School of Business (UC Berkeley) and Hautes Études Commerciales de Paris (HEC).

Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here:
Cookie Policy