Revenue accounting

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

  1. Identify the contract with the customer.
  2. Identify the performance obligations — the distinct promises within it.
  3. Determine the transaction price, including any variable consideration.
  4. Allocate the transaction price to the obligations, generally in proportion to their standalone selling prices.
  5. 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.