Kellblog covers topics related to starting, managing, leading, and scaling enterprise software startups. My favorite topics include strategy, marketing, sales, SaaS metrics, and management. I also provide commentary on Silicon Valley, venture capital, and the business of software.
The podcast in question is an interview performed by Harry Stebbings of The Twenty Minute VC where we sat down to talk about the importance of the lifetime value to customer acquisition cost ratio (LTV/CAC) and why, if you could only know one SaaS metric about a company, that LTV/CAC would be it.
Of course with Harry it’s easy to end up in a wide-ranging conversation, as we did, and we thus discussed many other fun topics including:
How I got into enterprise software and SaaS.
The biggest challenge as a leader in a high-growth company (hanging on).
Why, for a public SaaS company, I’d probably take billings growth as the single metric, because LTV/CAC isn’t available.
LTV/CAC and the idea that it’s a powerful (if compound) metric that weights what you pay for something vs. what’s it worth.
In looking at this issue across several companies, I’ve noticed a disturbing trend / missed opportunity in how many SaaS companies classify the reason for customer churn. Roughly speaking, if companies were hospitals, they’d too frequently be reporting the cause of death as “stopped breathing.”
Yes, the patient who died stopped breathing; the question is why did they stop breathing. In churn-speak, “yes, the customer who churned issued a churn notice and chose not to renew.” The question is why did they choose not to renew?
Many people have written great posts on reasons customers churn and how to prevent them. These reasons often look like hierarchies:
Product ease of use
Oversold / poor fit
These hierarchies aren’t a bad start, but they aren’t good enough, either. A new sponsor isn’t an automatic death sentence for a SaaS product. He or she might be, however, if the team using it had a rough implementation and was only half-satisfied with the product. Similarly, a failed implementation will certainly reduce the odds of renewal, but sometimes people do have the will to start over — and why did the implementation fail in the first place?
(And, at the time, literally observing that it was a better way to classify churn.)
The rule above spells it out quite clearly — “DO NOT enter terminal events such as respiratory arrest […] without showing the etiology.” That is, “stopped breathing” by itself isn’t good enough. Just like “sent churn notice” or “decided not to renew.”
I have not built out a full taxonomy here; classifying churn in this way remained a future item on my to-do list at the time we sold my last company. Nevertheless, while I know it’s not easy, I believe that companies should start trying to find a way to richly encode churn reasons using this “chain” concept so as to not lose critical information in encoding their data. Otherwise, we risk believing that all our customers churned because they sent us a churn notice (or some easily blamed “uncontrollable” event).
As one example:
Churned, due to
New sponsor, due to
Failed implementation, due to
Partner problem, due to
Churned, due to
Corporate edict, due to
M&A, due to
Product dissatisfaction, due to
Oversold, due to
These aren’t perfect, but I’m trying quickly demonstrate the real complexity behind why customers churn. For example, happy customers might challenge a corporate edict issued after an acquisition — so you can’t just blame the edict. You have to look more deeply. If you knew that the customer fought the edict and failed, you might stop the chain there. But if you knew they were never terribly happy with the system because they were overpromised capabilities at the start, then you should code that into the chain, too.
# # #
For more information on the warning signs and symptoms of a stroke, go here.
Career Development: What It Really Means to be a Manager, Director, or VP. The number two post of 2018 was actually written in 2015! That says a lot about this very special post which appears to have simply nailed it in capturing the hard-to-describe but incredibly important differences between operating at the manager, director, or VP level. I must admit I love this post, too, because it was literally twenty years in the making. I’d been asked so many times “what does it really mean to operate at the director level” that it was cathartic when I finally found the words to express the answer.
The SaaS Rule of 40. No surprise here. Love it or not, understanding the rule of 40 is critical when running a SaaS business. Plenty of companies don’t obey the rule of 40 — it’s a very high bar. And it’s not appropriate in all circumstances. But something like 80% of public company SaaS market capitalization is captured by the companies that adhere to it. It’s the PEG ratio of modern SaaS.
The Role of Professional Services in a SaaS Company. I was surprised and happy to see that this post made the top five. In short, the mission of services in a SaaS company is “to maximize ARR while not losing money.” SaaS companies don’t need the 25-35% services margins of their on-premises counterparts. They need happy, renewing customers. Far better to forgo modest profits on services in favor of subsidizing ARR both in new customer acquisition and in existing customer success to drive renewals. Services are critical in a SaaS company, but you shouldn’t measure them by services margins.
The Customer Acquisition Cost Ratio: Another Subtle SaaS Metric. The number five post of 2018 actually dates back to 2013! The post covers all the basics of measuring your cost to acquire a customer or a $1 of ARR. In 2019 I intend to update my fundamentals posts on CAC and churn, but until then, this post stands strong in providing a comprehensive view of the CAC ratio and how to calculate it. Most SaaS companies lose money on customer acquisition (i.e., “sell dollars for 80 cents”) which in turn begs two critical questions: how much do they lose and how quickly do they get it back? I’m happy to see a “fun with fundamentals” type post still running in the top five.
 See disclaimer that I’m not a financial analyst and I don’t make buy/sell recommendations.
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 . 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)  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 .
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  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 . 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:
“You’re not going to believe it, I saw a company today with a 27% churn rate.”
“Yep, and it crushed their LTV/CAC — it was only 1.6.”
“Melting ice cube. Run away.”
Quite sad, in fact, because with a correct (annualized) churn rate of 10% and holding the other assumptions constant , 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 .
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 .
Then use churn rates calculated against the entire ARR pool and sidestep the mess we’re about to enter in the next section  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  :
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.
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.
# # #
 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.
 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.
 Thanks to its relatively flatter step-wise decay compared to Company A’s more linear decay.
 Retention rate = 1 – churn rate.
 If it helps, you can think of the ATR pool in a glass half-empty way as the available-to-churn pool.
 Assuming CAC ratio of 1.8 and subscription gross margins of 80%.
 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.
 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.
 Gross churn = churn / starting period ARR. Net churn = (gross churn – upsell) / starting period ARR.
 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.
 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 .
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 .
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  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 .
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.
# # #
 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.
 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.
 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.
 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).
 The spreadsheet I used is available here if you want to play with it.
I’m Dave Kellogg, technology executive, investor, independent director, adviser, and blogger. I’m also a hiker, oenophile, and fly fisher.
From 2012 to 2018, I was CEO of cloud enterprise performance management vendor Host Analytics, where we quintupled ARR while halving customer acquisition costs in a highly competitive market, ultimately selling the company in a private equity transaction.
Previously, I was SVP/GM of Service Cloud at Salesforce and CEO at NoSQL database provider MarkLogic. Before that, I was CMO at Business Objects for nearly a decade as we grew from $30M to over $1B. 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 ClearedIn, FloQast, GainSight, Lecida, MongoDB, Recorded Future, Tableau and TopOPPs. I currently sit on the boards of Alation (data catalogs) and Nuxeo (content management) and previously sat on the boards of agtech leader Granular (acquired by DuPont for $300M) and big data leader Aster Data (acquired by Teradata for $325M).
I periodically speak to strategy and entrepreneurship classes at the Haas School of Business (UC Berkeley) and Hautes Études Commerciales de Paris (HEC).