ASC 606
Also called: ASC 606, Topic 606, Revenue from Contracts with Customers
The US GAAP standard governing revenue from contracts with customers, built around a five-step model.
ASC 606 replaced a patchwork of industry-specific rules with a single principles-based model for recognising revenue from customer contracts. It became effective for public companies in 2018 and private companies in 2019.
The five steps
- Identify the contract with the customer.
- Identify the performance obligations — the distinct promises within it.
- Determine the transaction price, including any variable consideration.
- Allocate the transaction price to the obligations, generally in proportion to their standalone selling prices.
- Recognise revenue as each obligation is satisfied.
What it changed for SaaS specifically
- Bundled contracts must be unbundled. A deal combining subscription, implementation and training has to be assessed for whether those are distinct obligations, priced separately, and recognised on their own patterns.
- Discounts are allocated, not applied where convenient. A 20% discount on a bundle is generally spread proportionally across obligations rather than assigned entirely to the one it was negotiated against.
- Variable consideration must be estimated and constrained — you include it only to the extent a significant reversal is not probable.
- Contract acquisition costs are capitalised. Sales commissions directly attributable to obtaining a contract are amortised over the expected customer life rather than expensed at signature. This is ASC 340-40 rather than 606 proper, but it arrived with it and surprises people.
The practical burden
Nothing in ASC 606 is conceptually hard. The burden is evidential: you need contract-level data showing what was promised, what it would have sold for standalone, what was allocated to each obligation, and when each was satisfied.
That is a data problem rather than an accounting one, and it is the reason revenue recognition automation almost always turns out to be a systems project rather than a finance project.
Stop calculating this in a spreadsheet
Bunny computes SaaS metrics, revenue schedules and retention from your live billing data — because quoting, subscriptions, usage and invoicing all sit in one system.