Guide · Revenue Recognition

ASC 606 revenue recognition – practical guide for SaaS and subscription businesses.

ASC 606 is the US GAAP standard for revenue recognition, effective since 2018. It replaced industry-specific guidance with a single five-step model. This guide covers the five steps, common application patterns for SaaS and subscription businesses, implementation pitfalls, and what your bookkeeper actually does to apply ASC 606 correctly.

The framework

The five-step ASC 606 model

ASC 606 (codified as Topic 606, Revenue from Contracts with Customers) applies a five-step model to all revenue recognition:

Step 1: Identify the contract with a customer

A contract exists when: parties have approved it, rights and obligations are identifiable, payment terms are identifiable, the contract has commercial substance, and collection is probable. Most signed customer agreements are clearly contracts. Edge cases: master service agreements with separate SOWs, click-through agreements, implied contracts from ongoing business relationships.

Step 2: Identify the performance obligations

A performance obligation is a promise to transfer a distinct good or service. A SaaS contract might include: software access (distinct), implementation services (distinct if stand-alone, not distinct if integral to software), training (usually distinct), support (distinct time-based obligation).

Identifying whether each element is distinct vs combined is the most judgment-heavy part of ASC 606 application.

Step 3: Determine the transaction price

The amount expected to be entitled in exchange for the goods/services. Considerations:

  • Fixed amounts (straightforward)
  • Variable consideration (usage-based pricing, volume discounts, refunds)
  • Significant financing component (extended payment terms)
  • Non-cash consideration (equity, barter)
  • Consideration payable to customer (offsets transaction price)

Step 4: Allocate the transaction price

For multi-element contracts, allocate transaction price to each performance obligation based on stand-alone selling price (SSP). SSP is determined by observable prices when available, or estimated using cost-plus, market assessment, or residual approach.

SaaS example: contract of $120k includes software ($100k SSP), implementation ($30k SSP), training ($10k SSP). Total SSP: $140k. Allocate as:

  • Software: $120k × (100/140) = $85.7k
  • Implementation: $120k × (30/140) = $25.7k
  • Training: $120k × (10/140) = $8.6k

Step 5: Recognize revenue when performance obligations are satisfied

Revenue recognition timing depends on whether obligation is satisfied over time or at a point in time:

  • Over time: SaaS subscription (ratably over contract term), support services (ratably), extended warranties (ratably)
  • Point in time: product sale, one-time license, completed implementation milestone
SaaS patterns

Common ASC 606 patterns for SaaS

Pure SaaS subscription

Customer pays $12k annually for software access. Single performance obligation satisfied over time. Revenue recognized $1k per month for 12 months. Deferred revenue liability on balance sheet for unearned portion.

SaaS + implementation

Customer pays $120k for software and $40k for implementation. Two performance obligations (assuming implementation is distinct). Software: $120k over 12 months = $10k/month. Implementation: recognized as completed (point in time if delivered all at once, over time if phased).

Common mistake: recognizing all $160k at contract signing. This overstates revenue and must be reversed at audit.

Multi-year contracts

Customer pays $300k upfront for 3-year subscription. Revenue recognized $100k/year over 3 years. Deferred revenue at contract signing: $300k (split between current $100k and long-term $200k). Each year, $100k moves from deferred to recognized revenue.

Usage-based pricing

Customer pays based on usage (API calls, storage, transactions). Revenue recognized as usage occurs. Tricky when minimum commitments exist: the minimum is often recognized ratably with true-up based on actual usage.

Contract modifications

Customer upgrades tier mid-contract. Treatment depends on whether modification adds distinct goods/services at stand-alone pricing (treated as separate contract) vs modifies existing (retrospective or prospective adjustment).

Free trials / discounts

Free first month of subscription: allocate contract price across entire period including free month. Effective revenue per month = contract price / total period including free period.

Setup implementation fee trap: many SaaS companies charge a one-time "setup fee" that they want to recognize immediately. Under ASC 606, setup fees that don't provide standalone value to customer (i.e., customer can't use setup without ongoing subscription) typically get recognized over the contract term or useful service life of the customer relationship – not as one-time revenue. This catches many early-stage SaaS companies off guard at first audit.
Implementation

Implementation mechanics – what bookkeeping actually does

ASC 606 compliance requires ongoing bookkeeping process, not just a one-time setup. Key operational areas:

Contract review at signing

  • Review each contract for performance obligations
  • Document obligations, pricing, and recognition methodology
  • Set up deferred revenue schedule for contract

Deferred revenue schedule maintenance

Each contract generates a schedule showing:

  • Contract value and start/end dates
  • Monthly revenue recognition amount per obligation
  • Cumulative deferred revenue balance
  • Recognition triggers (time-based, milestone-based)

Monthly revenue recognition entries

At month-end, journal entries move revenue from deferred to recognized per each contract's schedule. For a SaaS business with 200 active customers, this might be 200+ journal entries monthly unless automated.

Contract modification tracking

Every upgrade, downgrade, renewal, or cancellation affects the deferred revenue schedule. Process must catch and record these changes.

Disclosures for financial statements

ASC 606 requires specific disclosures: disaggregation of revenue, contract balances, remaining performance obligations, significant judgments. Audited financials must include these; unaudited may include at investor request.

Tools that help

  • Native ERP: NetSuite Advanced Revenue Management, Sage Intacct Contract Revenue Management, Workday Financial Management have ASC 606 functionality built in
  • Specialized: SaaSOptics (now Maxio), Chargebee, Recurly have ASC 606 / deferred revenue features for businesses on simpler accounting platforms
  • Manual: Excel-based deferred revenue schedules work for businesses with under 30–50 active contracts; becomes unwieldy above that

Related: bookkeeping for startups, SaaS industry page, offshore controller.

Related

Related pages

Have specific questions? Let's talk.

Book my call →