ASC 606, the latest revenue recognition standard, is now in effect for both public and private companies. Whereas in the past different industries followed different rules for revenue recognition, a promised benefit of ASC 606 is that all industries are now governed by one comprehensive set of guidance.
Unfortunately, ASC 606 (like its 605 predecessor) has a significant flaw when it comes to SaaS companies: fair value revenue allocations between subscription and non-subscription performance obligations.
This method of revenue allocation can result in a mis-representation of some of the most important SaaS metrics (when calculated on a GAAP revenue basis) including subscription revenue growth, net retention, and gross margin.
Let me explain. Here is a high level overview of the ASC 606 framework and the steps a company goes through to recognize revenue:
- Identify the contract
- Identify performance obligations (“PO”)
- Determine transaction price
- Allocate transaction price
- Recognize revenue
Let’s go through an example for a hypothetical SaaS company, MarTech. MarTech is an email automation company with two product tiers: a self-service Starter tier, and a Professional tier that requires an implementation professional service component. Here is MarTech’s list pricing:
- Starter: $100/mo
- Professional: $200/mo
- Implementation services: $600 one time
A customer signs up in January for Starter at $100/month billed annually (MarTech’s list price), and signs a one-year deal. In this case, we have a contract, one performance obligation which is to provide our SaaS for a year, and the transaction price of $1,200 ($100/mo * 12 months). Because we only have one performance obligation we allocate all of the revenue there. Revenue recognition is pretty straight forward for Starter:
Now let’s talk through a slightly more complex example. Another customer signs up in January for Professional at $200/month billed annually (also MarTech’s list price), and signs a one-year deal. The deal includes a one-time $300 professional services implementation fee to connect to the SaaS directly to the customer’s CRM system (note the implementation is sold at a 50% discount from the list price of $600).
In this case, we have a contract, two performance obligations which are to provide our SaaS for a year and also implement the SaaS (there’s actually an analysis you need to go through to see if each separately meets the definition of a PO but let’s assume they do). The transaction price is $2,700 ($200/mo * 12 months + $300 implementation). This is where the train derails. We now have two performance obligations and need to allocate the transaction price among them. This is done based on the stand alone selling price (“SSP”) of each performance obligation. MarTech typically sell its products at the list price, so we conclude that list price is a good representation of SSP. Here is how we do revenue recognition in this scenario:
Allocating the total transaction price across the SaaS and implementation professional services results in $2,160 to recognize for SaaS, and $540 to recognize for implementation professional services. Notice this is different than what we sold, which was $2,400 for SaaS and $300 for implementation professional services.
And therein lies the problem.
What the FASB did not consider is that for SaaS not every dollar is created equal. One dollar of subscription revenue carries much more value than a dollar of professional services revenue. Just look at SaaS vs. non-SaaS revenue multiples in the public markets.
So by following ASC 606, you end up allocating revenue between economically different components as if they’re equal. It is like having 4 gold coins and 2 silver coins, splitting them 3 by 3 and calling it even.
So what? Well, allocating the transaction price between subscription and non-subscription components carries a variety of consequences:
- Dollar net retention on a GAAP revenue basis is misleading. Let’s say that my customer on the Professional tier renews for the same $200/mo price. My subscription ACV in year 2 is $2,400 vs. $2,160 subscription ACV in year one, so without changing any of the economics upon renewal I get a built-in 111% subscription dollar net retention rate ($2,400 / $2,160).
- Subscription growth rate is similarly misleading. See point above on net retention — 11% built-in YoY growth rate.
- Gross margin can also be misleading, because as far as I’m aware no one is allocating AWS costs between subscription & non-subscription cost of revenue (although technically they’re supposed to if they allocate the revenue).
I guess the silver lining is that everyone is in the same boat, following the same flawed rules. So at least everyone is wrong. But this is one of the reasons that I prefer to keep both a GAAP P&L (that starts with GAAP revenue) and a SaaS P&L (that starts with your ARR bookings bridge and then shows GAAP revenue below). And also because of this you want to calculate your SaaS metrics off of your ARR bookings bridge, not GAAP revenue, which we do at Benchmark HQ.
Note that this post is not and should not be used as accounting advice.