The mistake of 1/c in LTV calculations

This is the third article in a series on novel ideas for SaaS metrics, which started with The unprofitable SaaS business model trap and COC: a new metric for cancellations.

You can’t read an article about SaaS metrics without running into LTV — The Lifetime Value of a customer.  Meaning, the gross revenue you expect to get from a customer over its entire lifetime.

The traditional formula is as follows, where MRR is monthly recurring revenue, GPM is gross profit margin (i.e. percent of MRR left over after paying for the cost of servicing the customer, such as servers, bandwidth, and tech support), and N is “expected months,” i.e. how many months you expect this customer to stick around:

LTV = MRR * GPM * N

The trick is computing N; the other numbers are straightforward.  The traditional way is N = 1/c where c is your monthly cancellation rate, so if 2% of your customer bases cancels each month, N = 50.

I believe this calculation for N is too generous, and it’s a cause of SaaS companies having trouble with profitability.

The derivation of the N = 1/c formula seems logical.  Consider a cohort of customers signing up in January.  You earn R revenue from them in January.  Then in February, c of them cancel, so you each R(1-c) in February.  Then another c of those cancel, so in March you earn R(1-c)(1-c).  If you continue this process ad infinitum, and add it all up, you get R * 1/c, therefore 1/c is the “average” number of months any one customer sticks around.

Said another way, the actual distribution of revenue over infinite months would add up to the same thing as if all customers stayed 1/c months, and then all cancelled.

Therefore, from an LTV perspective, where all we care about is “total revenue over the lifetime of the customer, no matter how long or short that lifetime is,” 1/c seems like a good value for N.

In fact, I’ve made the same argument before.

The fallacy in the argument is the “ad infinitum” part.  Even if it’s true that some customers do stick around for very long periods, say 10 years, it’s incorrect to use that for the purpose of an LTV calculation.

It’s impossible to see ahead to timeframes beyond a few years for a young company and perhaps 4-6 years for a mature one. In those timescales you expect drastic changes in market conditions – a strong new competitor appears or dies, the economy slumps or soars, a disruptive technology changes the landscape, etc..

That in turn will cause material changes in pricing, retention rates, reorganized customer segmentation, usage levels, service levels, and so forth.

Computing expected months with the ad infinitum approach leads you to over-estimate the total revenue you can depend on.  So when you make decisions like “A LTV:CAC ratio of 3:1 is healthy,” you’re understating dependable LTV and thus incorrectly thinking you’re acquiring customers at a reasonable cost.  Which then leads to unprofitable growth.

So, how to fix the formula for N?

The Fix #1: Month Cap

The idea of the “month cap” is to say “Let’s only count the next 4 years of revenue.”  (This is how I currently do it at WP Engine.)

Thus, in the explanation above, you add up 48 months’ worth of revenue rather than adding up infinite months.  The formula, assuming a cap of m months, is:

N = \frac{1-(1-c)^m}{c}

How different is this formula compared to the usual one?  Here’s a sample for different values of c, for m = 48:

cancellation-versus-48months

In short, it’s not a huge difference for large cancellation rates (but who cares because with 5%/mo cancellation you’re in deep financial trouble anyway!), but it’s quite material for healthy cancellation rates — in fact it can be overstated by 2x!

The Fix #2: Discount Rate

A different approach to fix the formula is to use something that financial analysts call a “discount rate.”

Here’s the idea. In today’s dollars, what are future dollars worth? Inflation, for example, would make future dollars worth less in today’s dollars, and the further out in the future you look, the more we’d “discount” (or “reduce”) those dollars in terms of today’s dollars.

More to the point at hand, simple uncertainty in collecting future dollars make them worth less in today’s dollars.

So it’s OK to add up revenue five or even ten years from now, but you have discount its value.

Generally you compute the discount exactly the same way as cancellation is done above — you deduct, say, 1%/mo extra for each month in the future to account for this uncertainty.  This is equivalent to (approximately) 12%/yr, so e.g. in the 8th year we’re still adding up revenue but discounting it downward by 64%, accounting for the uncertainty that we’d still be operating in the same way in 8 years that we are today.

The formula for including a discount rate is very simple — for a monthly discount rate of d, (e.g. in the example above, d=0.01), you just add it to c and use the same formula, because mathematically a discount rate is exactly the same calculation as a cancellation rate!  So:

N = \frac{1}{c+d}

How different is this formula compared to the usual one?  Here’s a sample for different values of c, for d = 0.01:

cancellation-versus-discount

As with the Month-Cap technique, this is a material difference for healthy cancellation rates.  Personally I think even d=0.01 is too generous unless it’s a mature, predictable business.

Which method?

Although we’ve been using the Month-Cap method at WP Engine, now that we’re three years into the business we have a much better understanding of multi-year retention rates.  Capping at 48 months definitely doesn’t make sense for our older customers, so although I still like the concept of a monthly cap, the discount rate method seems like a better fit to our data.

What do you think?  Does this match up with your data and expectations?  Let’s continue talking about it in the comments.

  • Gabe Warshauer-Baker

    Maybe you should be using your borrowing rate for the discount, which for a startup is usually pretty high. If you want to figure out if it’s worth paying $100 for a customer who will give $2/month, what really matters is how much it hurts to borrow $100.

    • http://blog.asmartbear.com Jason Cohen

      You could do that, except that’s not a real rate for many startups. Because:

      If the startup is growing and otherwise looking healthy, it can raise money at equivalently better terms than a bank loan. Even warrants will be better than a bank.

      If the startup isn’t looking good enough for investment, it’s unlikely a bank — in today’s economy — is willing to lend money at any interest rate.

      Generally for a startup money is worth VERY MUCH more today than it is in future, because the startup is likely to fail anyway, and because without the money today the risk of failure increases dramatically. It’s unclear how to account for that in the usual financial way.

      In any case, clearly this is a point of opinion, not fact, but it’s interesting to think about!

  • Richard Garand

    A discount rate can be very useful if you set it correctly, because it serves multiple functions.

    One is the time value of money. $100 that you receive today can be re-invested to grow your business, while $100 you will receive in 3 years does little good for you now other than impressing investors. The appropriate discount rate reflects this more accurately than a simple sum of revenue in each month (leaving out the effects of inflation, which probably isn’t material to most SaaS companies).

    It also accounts for uncertainty. If you think the revenue that’s further out has a lower probability, then increasing the discount rate will reflect that.

    Coming up with the right discount rate isn’t easy but if you can find the right one it makes the calculations simple. In some cases it might help to have a multi-phase model, which is what you’ve done with a cancellation/discount rate of x% for the first 48 months and then 100% after that. If you notice that retention increases for customers who get past 2 years, you could do the calculation in two parts to reflect that.

  • http://www.cazoomi.com/ Clint Wilson

    Great read Jason and you should also provide the .xls files like David first did when I started putting our numbers @cazoomi into his presos back in ’09 (http://www.linkedin.com/in/dskok)

    Makes it easy to see where numbers compare to how others do theirs.

    Great read:)

    ~Clint
    @cazoomi

  • numerosiete

    Really helpful post. I have a question regarding churn rate (c).

    Are all of these methods assuming that c is constant in all periods? What about a subscription service where , for a given signup cohort, c may be higher in earlier periods and then decrease in later periods as users become more loyal?

    When calculating N for such a business, how would you account for this variability in churn rate as cohorts of customers progress through their lifecycle?

    • http://blog.asmartbear.com Jason Cohen

      You’re exactly right to question that! I agree.

      The ideal model would use “MRR still retained” at each month, and then perhaps also adding on a discount rate or monthly cap to account for future uncertainty and the lesser value of “money later.”

      Specifically, say the amount of MRR retained in month n is Rn. For a truly constant c, this would be Rn = (1-c)^n. For example, with c=2%=0.02, it would be (approx) 98% in the first month, 96% in the second, etc.. You’d add all that up which in this idealized version is the same as above.

      But in fact it’s often more like retention of 80-90% in the first month, then 70-85% by the second, and *then* maybe it stabilizes out for the customers who will in fact become long-term customers, and maybe decreases by 1-3%/mo.

      In this article I propose a (relatively) simple formula that assumes there’s X% cancelled by the first M months (e.g. maybe 25% cancellations in the first 3 months), and then a relatively constant cancellation rate thereafter (e.g. 2%/mo after that). http://blog.asmartbear.com/cancellation-rate-in-saas-business-models.html

      I think that model isn’t bad for many SaaS businesses, and keeps the formula relatively simple.

      However, you’re right to want to measure true Rn over your cohorts, and match your LTV model as closely as you can to the actual data.

      • Matthew Newton

        Interesting stuff. I wonder how companies that sign up most of their customers on annual terms – thinking of some webhosts here, but also services like Amazon Prime – deal with this kind of metric.

        You’re flying completely blind until your first few cohorts hit 12 months.

        • http://blog.asmartbear.com Jason Cohen

          You’re only blind if you refuse to look! :-)

          For a SaaS company, because you own the servers, you ALWAYS can know what your customers are up to. A customer that hasn’t used the product in the past 30 days is probably not getting value and going to churn upon renewal, for example.

          • Matthew Newton

            hehe.

            Depend if your SaaS is designed for regular usage I guess. I thought of that – tracking login data – but for the niche I’m sailing into (niche specific Web Design as a Service, a similar model to RestaurantEngine) most customers won’t login after month 1 unless some extraneous circumstance requires it such as a price change or someone on their team page quits.

            My guess would be that it’s similar for your business, right? My supposition is that a lot of WPEngine users never login just because they’re happy with their website and it’s doing its thing.

          • Matthew Newton

            PS. I’ve just finished your entire series on SaaS metrics and they’ve been incredibly illuminating. Thanks.

  • Donald Cameron

    Hey Jason, good analysis.

    Discounted cash flow’s always the answer. Until such time as there’s reasonable data that’s business specific, along with reliable market volatility information, discounting the years where there’s very little visibility, (ie 5 yrs and beyond) to 0 makes a lot of sense. At least you won’t go broke that way, and the results will certainly let you know if your pricing and operating model are competitive.
    One can always run multiple scenarios to benchmark off of.

    Another story altogether if the model’s being used for sale valuations or such like.

  • Dennis

    Great information guys
    Web Designer in Bangalore

  • Wagepoint

    This is excellent, it was driving me crazy that there were so many articles out there that missed this point. I used the month cap as our business realtes well to that. Thanks so much! Excellent article. :-)

  • Pingback: Startup Topics: Growth Hacker Marketing, SAAS Metrics | Dorai's Learn Log

  • Sam Levi

    Pardon me for the silly question, but can you please explain how you got the formula for the capped LT formula? (N= (1-(1-C)^m)/C). Would be really appreciated!

    • Sam Levi

      sorry about that Jason – please delete :)

    • http://blog.asmartbear.com Jason Cohen

      It’s not a silly question!

      It’s the sum of a geometric series, which Wikipedia describes here: http://en.wikipedia.org/wiki/Geometric_series Applying that formula to the numbers in question gets you there.

  • liordegani

    Great read Jason (as usual).

    My 2 cents:
    As R[(1-c)^0+(1-c)^1+....(1-c)^n] is geometric series, you can look at the Geometric distribution.

    If a user has a p=0.02 chance to cancel, and we’re counting the months until cancelation (geometric), Mean will be equal 1/p anyhow, regardless of infinitum. That actually makes a lot of sense for me to use N=1/c

    Would love to hear your thoughts.