Measuring SaaS Renewal Rates: Way More Than Meets the Eye

I love cloud computing. I love metrics. And I love renewals. So when I went looking on the Web for a great discussion of SaaS renewals and metrics I was surprised not to find much. Certainly, I found the two classics on SaaS metrics:

  • The Bessemer Venture Partners 10 Laws of Cloud Computing white paper, which I highly recommend despite its increasing pollution with portfolio-company marketing.

The Four Factors
While the above articles are all great, I was surprised that no one really dug into the nitty-gritty of renewals at an enterprise SaaS company, where I believe there are four independent factors at work:

  • Timing. When a contracted is renewed. For example, how to handle when a contract is renewed early or late.
  • Duration. The length of the renewed contract. For example, how to handle when a one-year customer renews for three years, and receives a multi-year discount in the process (for either pre-payment or the contractual commitment itself). [1]
  • Expansion/shrinkage. The expansion or shrinkage of the contract’s value compared to the original contract. For example, how to handle customers adding or dropping seats or products, and/or price increases or decreases.
  • The count metric. What do we wish to count (e.g., bookings, ARR, seats, or customers) and what does it mean when we count one thing versus another.

Particularly in a world where companies are increasingly marketing “negative churn” rates and renewal rates well in excess of 100%, I think it’s worth digging into this and offering some rigor.

A Simple Example
Let’s take a concrete example. Imagine a customer who buys 100 seats of product A at $1,200/seat/year on 7/30/12, with a contractual provision that says the price cannot increase by more than 3% per year [1a].

Imagine that customer renews on 6/30/13, buying 80 seats of product A for $1,225, and adding 40 seats of product B at $1,200/seat/year, and who receives a 15% discount for making a prepaid three-year commitment.

Hang on. While I know you want to run away right now, don’t. This is all real-life stuff in a SaaS company. Bear with me, and download the spreadsheet here (as an Excel file, not a PDF) that shows the supporting math.

A few questions are easy:

  • What were the bookings on the initial order? Answer: $120,000.
  • What was the annual recurring revenue (ARR) of the initial order? Answer: $120,000.
  • What were the bookings on the renewal order? Answer: $372,300.
  • What was the ARR of the renewal order? Answer: $124,100. [2]

Calculating Churn: Leaky Bucket Analysis
So far, so good. Now let’s talk about churn. Because, as you will see, renewal rates alone are complicated enough, I have adopted a convention where:

  • When it comes to renewals, I look only at rates
  • When it comes to churn, I look only at dollars/values

I know this is a completely arbitrary decision, but doing this lets me remember one set of formulas instead of two, reduces rat-hole conversations about definitions, and — most importantly – lets me look at one area in percentages and the other in dollars, helping me to avoid the “percent trap” where you can lose all perspective of absolute scale. [3]

I define churn with an equation that I call “leaky bucket analysis.” [4]

Starting ARR + new ARR – churn ARR = ending ARR

So, some questions:

  • Was there any churn associated with this renewal? Answer: Yes.
  • Why? Answer: Despite a small price increase on product A, there was a 15% multi-year discount and a loss of 20 seats which more than offset it.
  • How much ARR churned? Answer: $36,700. [5]
  • How much new ARR was added? Answer: $40,800. The after-discount value of the product B subscriptions.
  • What is ending ARR? 124,100 = 120,000 + 40,800 – 36,700.
  • How many customers churned? Answer: 0.
  • How many seats churned? Answer: 20.

Note that ARR, seats, and customers are all snapshot (or, point-in-time) metrics that lend themselves to leaky bucket analysis. Period-metrics, like bookings, do not. Bookings happen within a period. There is no concept of starting bookings + new bookings – churn bookings = ending bookings. That’s not how it works. So, when you define churn through leaky bucket analysis, measuring bookings churn doesn’t work.

We can, however, calculate bookings churn as the difference between what was up for renewal and what we renewed. In this case, $120,000 – $372,300 = ($252,300), showing one way to generate a negative churn number. The example makes somewhat more sense in the other direction: if we had a three-year $372,300 contract up for renewal and only renewed $120,000 them we might argue that $252,300 in bookings were churned. From a cash collections perspective, this makes sense [6].

But from a customer value perspective it does not. Unless the customer has plans to discontinue using the service, by dropping from a three-year to a one-year contract we will actually collect more money from them over the next 3 years if they continue to renew ($438,000 vs. $372,300) [7]. So the bookings churn that looks bad for year-one cash actually results in superior ARR and three-year cash collections.

The lesson here is that different metrics are suited for measuring different things. In this case, we can see that bookings churn is useful primarily for analyzing short-term cash collections and not, say, for customer lifetime value or customer satisfaction.

Renewal Rates and Timing
Now that we’re warmed up let’s have some fun. Let’s answer some questions on renewals:

  • From a bookings perspective, when should we count the renewal order? Answer: the order was received on 6/30/13 so it’s a 2Q13 booking.
  • From a renewal rate perspective, when should we count this order? Answer: while debatable, to me it’s a renewal of a 3Q contract, so I would count it in 3Q from a renewal rate perspective. [8]
  • When would we count the booking if it were late and arrived on 10/30/13? Answer: From a bookings perspective, it would be a 4Q13 booking. From a renewal rate perspective, it’s the renewal of a 3Q contract, so I would count it in 3Q. [9]
  • On a customer-count basis, how do we count this renewal? Answer: 100%. We had one logo before and we have one logo after, so 100%. [10]

Here it’s going to get a little dicey.

On an ARR basis, how do we measure this renewal? Answer: this begs the question of whether we should include expansion ARR due to new seats, new products, and price increases. Since I am worried that expansion may hide shrinkage, I want to see this both ways. Hence, I will define “gross” to mean including expansion and “net” to mean excluding expansion.

  • What is the gross ARR-based renewal rate? Answer: 103%. [11]
  • What is the net ARR-based renewal rate? Answer: 69%. Now you understand why I want to see it both ways. The net rate is showing that we lost real ARR on product A due to reduced seats and the multi-year discount. The upsell of product B hides shrinkage, producing an innocuous 103% number that might evoke a very different scenario in the mind’s eye (e.g., renewing the original deal for one year with a 3% price hike).
  • What is the gross bookings-based renewal rate? Answer: 310%. We took a $120,000 order and renewed it at $372,000. (But we transformed it greatly in the process.)
  • What is the net bookings-based renewal rate? 208%. We took a $120,000 order for product A and turned it into a $249,000 order for product A. But we dropped ARR about 33% in the process (from $120,000 to $83,300) through lost seats and the multi-year discount.
  • What is the gross seat-count renewal rate? 120%
  • What is the net seat-count renewal rate? 80%
  • What is the customer-count renewal rate? 100%

Identifying the Best Renewal-Related Metrics
So, what is the renewal rate then anyway?  69%, 80%, 100%, 103%, 120%, 208%, or 310%?

I’d say the answer depends on what you want to measure. Having nearly drowned you in the renewal-rate swamp, let me now drain it. Here are the metrics that I think matter most:

key renewals metrics

Here’s why:

  • Leaky bucket analysis is important because ARR growth is the single most important driver of value for a SaaS company.
  • Churn ARR shows you, viscerally, how much extra you had to sell just to make up for leaks [12].  Rates seem sterile by comparison.
  • The customer count-based renewal rate is the best indicator of overall customer satisfaction: what percent of your customers want to keep doing business with you, regardless of whether they change their configuration, product mix, seat mix, contract duration, etc.
  • The gross seat-based based renewal rate shows you how effective you are at driving adoption of your services. Think: land and expand (in terms of seats).
  • The gross ARR-based renewal rate shows you, overall, how effective you are at increasing your customers’ annual commitment. However, it says nothing about how you do that (i.e., which type of expansion ARR) or the extent to which expansion ARR in one area is offsetting shrinkage in another.
  • The net ARR-based renewal rate shows you how much of ARR you renew without relying on expansion. This is a very conservative metric designed to unmask problems that can be hidden by expansion ARR.
  • The gross bookings-based renewal rate is the best predictor of future cashflows. If we know that, on average, we take an order of 100 units and turn it into an order of 175 units – through whatever means – then we should use this metric to predict cashflows. Note that, as we’ve seen, there are trade-offs between ARR and bookings, but the consequences of those can be revealed by other metrics.

Revision 6/25/14, New Definition of Simple Churn, Timing Issues on Gross ARR Renewal Rate
While I generally like and stick with my “show churn in dollars and renewal rates in percents” mentality, I have found that a lot of people still ask about churn as a rate.

To answer, I use one of two different metrics:

  • “Simple churn” which = (net change in ARR from existing customers  / starting-period-ARR) * 4.  This is, I believe, what most companies present as their churn rate, includes the effects of both shrinkage and expansion ARR, and is arguably optimistic because it implicitly includes multi-year deals in the starting ARR.
  • “Simple net churn” which = (churn ARR / starting-period-ARR) * 4.  This presents churn net-of (i.e., exclusive of) expansion ARR.

I have discovered that there are timing issues with the gross ARR renewal rate, defined above.  For companies that do multi-year deals, you will end up including expansion ARR in your ARR base as it is sold along the way, but only reflecting it in the renewal rate when the contract renews, in effect deferring good news until renewal time, and seemingly failing to take credit along the way.

Footnotes
[1] Note that in a multi-year prepaid contract that bookings (order value) equals total contract value (TCV). When multi-year contracts are not prepaid, bookings are only the first-year portion of TCV.

[1a] Some purists would argue that having the right to raise the price 3% should set the denominator of subsequent renewal rate calculations to 1.03 * original-value.  While I get the idea, I nevertheless disagree.

[2] The renewal order is for three years, so to calculate the ARR we need to divide the bookings value by three.

[3] Saying our “churn rate was 10%” makes things sound OK, but saying we churned $2M in ARR is, to me, somehow more visceral. That is, we had to sell an extra $2M in ARR just to make up for existing business that we lost.

[4] A leaky bucket starts at one water level, during a period new water is added, some water leaks out, and the net change establish the ending water level. (Note that in leaky bucket analysis, definitionally, leaks are never negative.)

[5] Now might be a good time to download the spreadsheet accompanying this post so you can see my calculations. In this case, the churn is the difference between the total value from product A on the original order versus the renewals order.

[6] Subscription bookings typically turn into cash within 90 days.

[7] In reality, we should both uplift the price in years 2 and 3 and discount by the renewal rate to get a better expected cash collections figure. (There is nearly endless detail in analyzing this subject but I will make simplifying assumptions at times.)

[8] Otherwise, it would juice 2Q renewal rates and depress 3Q renewal rates, making both less meaningful.

[9] Bonus question:  how would you handle the late-renewal scenario at the 7/20/13 board meeting? Answer: I would publish provisional renewal rates that exclude the transaction, letting the board know we have an outstanding renewal in process. Then once it closed, I would revise the 3Q renewal rates accordingly.

[10] Which then begs the question of how you count customers. For example, while GE has one logo, they have numerous very independent divisions in a large number of countries.

[11] Note that purist might argue that since we had the right to raise prices up to 3% that we should put 103% of the ARR in denominator in this and all similar calculations, thus dropping the resulting renewal rate here to 100%.  While I believe annual increases are important, I still believe renewing someone to 103K in ARR who was at 100K in ARR is a 103% renewal.  Tab 3 of the supporting spreadsheet plays with some numbers in this regard.

[12] It is a good idea to divide churn into 3 buckets to describe the reason: owner change (including bankruptcy), leadership change, and customer dissatisfaction.

21 responses to “Measuring SaaS Renewal Rates: Way More Than Meets the Eye

  1. Great detailed look at this topic, Dave.

    I was in a meeting the other day were it took a number of minutes to “decode” what company was referring to when they talked about “renewal rates”.

  2. Great data and thanks for the XLS file – as a follow on post it would be interesting to hear your thoughts on NPV and discounting to get future years – I am hearing too many companies unwilling to bring future ARR forward into today’s bookings – clearly there is a risk of churn in the future that creates value today

    • Thanks John. Some quick hopefully related thoughts. It seems to me that companies should never give discounts greater than their churn rate (1 – net ARR renewal rate) for multi-year *commitments*. After all, if I have a 92% chance of renewing you, then why would I offer a 20% discount in order contractually commit you for 3 years without a prepay. With a prepay, both the time value of money and the odds of non-renewal come into account, but with today’s interest rates that shouldn’t be worth too much extra. Then factor in the vendor’s right to annual price increases and a 20% discount off a flat price with a prepay for a three-year deal actually doesn’t make much sense.

      Finally, I think you’re hitting on ARR/ACV (not exactly the same as most folks define it) vs. TCV and the notion that multi-year prepaids create deferred revenue (which can be hard to interpret because it’s a mix of term lengths) where multi-year commitments (without a prepay) do not, effectively creating a fairly invisible backlog which does have real value but cannot be seen on gap measures and sometimes is disclosed in a 10Q and often not.

  3. Pingback: The Customer Acquisition Cost (CAC) Ratio: Another Subtle SaaS Metric | Kellblog

  4. Pingback: The Customer Acquisition Cost (CAC) Ratio: Another Subtle SaaS Metric : Enterprise Irregulars

  5. Pingback: The Customer Acquisition Cost (CAC) Ratio: Another Subtle SaaS Metric | Product Zine

  6. Pingback: Insight Ventures Periodic Tables of SaaS Sales and Marketing Metrics | Kellblog

  7. Hi, how do I download the Excelfile without paying anything?

  8. Pingback: The Ultimate SaaS Metric: The Customer Lifetime Value to Customer Acquisition Cost Ratio (LTV/CAC) | Kellblog

  9. Pingback: The Ultimate SaaS Metric: The Customer Lifetime Value to Customer Acquisition Cost Ratio (LTV/CAC) : Enterprise Irregulars

  10. Pingback: Churn:  Net-First or Sum-First? | Kellblog

  11. Pingback: Don’t Be a Metrics Slave | Kellblog

  12. Pingback: Churn:  Net-First or Sum-First? - Enterprise Irregulars

  13. Dave, Have you any info on how companies might be compensating account reps for renewals? Early renewals — do they get a bonus? Late renewals — do they get a penalty?

    • Late renewals get handled by techops turning off the service :-). Special comp for early renewals is not good in my estimation as you end up creating a perpetual pull-forward problem. The good thing about early renewals is you’ve locked in the renewal in a world where a mgmt change or an M&A might otherwise wipe it out downstream. In addition, you might get an extra boost of cash a little early but you don’t get that cash later so it’s another pull-forward issue (and imho only indicated when you’re long-term / steady-state cashflow is fine but for some reason you need to get thru a trench — which btw doesn’t typically happen in SaaS companies).

  14. Dave- Interesting and thought provoking post- thanks for sharing.

    In addition to standard Number of Seats x Price per Seat per month x Number of Months contracts, we also have a Per User Per Month contract approach with some clients. How would you think about aggregated renewal metrics in that case with 1-year or multi-year agreements, where the rate/user is fixed but the number of users invoiced would change month to month? Thinking of it as a month-to-month contract would inflate “logo renewal” stats but seems fairer for the other metrics.

  15. Pingback: Customer Success

  16. Pingback: The Perils of Measuring a SaaS Business on Total Contract Value (TCV) | Kellblog

  17. Pingback: SaaS Renewal Rate - planhatplanhat

  18. Pingback: 75+ Actionable Insights and Resources To Customer Success for SaaS Startups - In-App Messaging Platform | Nudgespot

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s