Part 2
1. Identifying the contract with the customer
Customer contracts are reasonably straightforward for SaaS businesses — the cost and value exchange is defined upfront on the website, and there’s little deviance from the pre-defined structure. In the subscription world, the terms of a contract can change frequently. This includes:
- When a customer upgrades (expands) their subscription
- When a customer downgrades (contracts) their subscription
- When an add-on is purchased, e.g. additional seats
These changes could mean creation of a separate contract, but in many cases it’s just a modification of the original.
2. Identifying the performance obligations
The term “performance obligations” may seem overly vague at first, but it basically just refers to the product (or service) you’re actually delivering to the customer, i.e. what are they getting for their money? The answer is most likely “a month’s worth of access to my service.”
In a non-SaaS world, performance obligations can be more complex as the customer is owning the product outright with a perpetual license. Because of this, performance obligations are a bigger focus upfront in the transaction.
3. Determining the transaction price
With the exception of some custom enterprise deals, the price of most SaaS contracts is a known quantity — it’s clearly defined upfront (on the pricing page). When we talk about transaction price here, we’re always talking about the net price.
There are a few small complexities to think about here though:
- Discounts or rebates against the listed price
- Discounts based on usage, i.e. the customer can move up to “volume” plans the more capacity they require, which results in them paying less per unit. The problem with this is that it’s not known upfront — you don’t know until the usage actually occurs.
Anything else that would cause the price to deviate from the standard listed price, such as reward or referral systems etc.
4. Allocating the transaction price to separate performance obligations
For SaaS, the product is delivered continually (“as a service”). This means that there aren’t really separate performance obligations — rather one continuous performance obligation.
What we do here is allocate a share of the billing value to each month that contains at least some part of the service period. The share of the value assigned to a month equals the share of the billing period that falls into this month.
When it comes to reporting the revenue, we only need to do that month-by-month. For internal reporting and analysis, it can be useful to calculate these on a more granular basis.
5. Recognizing the revenue as each performance obligation is satisfied
This is the big one — this is where we actually get to turn our billings into recognized revenue! But before we do that, it’s worth looking at some criteria for revenue recognition.
Can I recognize the revenue yet?
There are actually five criteria for recognizing revenue as per ASC 606. If the prerequisites are not all met, you cannot recognize the billings as revenue.
- Risks and rewards have been transferred from the seller to the buyer
- The seller has no control over the goods sold
- The collection of payment is reasonably assured
- The amount of revenue can be reasonably measured
- The costs of earning the revenue can be reasonably measured
ASC606_2
References
https://gotransverse.com/blog/revenue-recognition-asc-606
https://revgurus.com/knowledge-center-asc-606-step-3-determining-the-transaction-price/
https://www.salesforce.com/products/cpq/resources/top-changes-in-asc-606/
https://blog.chartmogul.com/complete-guide-saas-revenue-recognition-asc-606/
https://www.iasplus.com/en-us/standards/fasb/revenue/asc606
https://assets.kpmg.com/content/dam/kpmg/us/pdf/2017/05/software-and-saas-investors-may-2017.pdf