The Complete ASC 606 Guide for SMBs
ASC 606 explained for SMB finance teams: the 5-step model, SaaS and multi-element examples with real math, SSP allocation, modifications, and disclosures.
ASC 606 - Revenue from Contracts with Customers - is the US GAAP standard that governs when and how you recognize revenue. It applies to every company that reports under GAAP, from a 10-person SaaS startup to a public enterprise. If you invoice customers for subscriptions, services, usage, or any mix of the three, ASC 606 decides what portion of that invoice is actually revenue this month and what portion sits on your balance sheet as deferred revenue.
Most SMB explanations of ASC 606 either drown you in technical-desk language or reduce it to "recognize revenue when earned." This guide sits in the middle: the full five-step model, the specific contract patterns SMBs actually sign, worked math you can check, and the operational mistakes that surface later in audits and due diligence.
The five-step model
ASC 606 replaces industry-specific rules with a single principle: recognize revenue when you transfer control of goods or services to the customer, in the amount you expect to be entitled to. The standard operationalizes that principle in five steps, applied contract by contract.
The ASC 606 five-step model
- 1
Identify the contract with the customer
A contract exists when both parties have approved it, rights and payment terms are identifiable, it has commercial substance, and collection is probable. A signed order form, a countersigned SOW, or even an accepted online checkout all qualify. If collectibility is doubtful, you cannot recognize revenue yet - cash received sits as a liability.
- 2
Identify the performance obligations
A performance obligation is a promise to transfer a distinct good or service. "Distinct" has two tests: the customer can benefit from it on its own (or with readily available resources), and it is separately identifiable from other promises in the contract. A SaaS subscription and generic onboarding training are usually two obligations; a subscription plus custom integration work the software cannot run without is usually one combined obligation.
- 3
Determine the transaction price
The total consideration you expect to be entitled to - fixed fees plus variable consideration (usage fees, rebates, penalties, discounts), estimated using the expected-value or most-likely-amount method, and constrained so a significant revenue reversal is not probable.
- 4
Allocate the transaction price to the performance obligations
Allocate in proportion to each obligation’s standalone selling price (SSP) - what you would charge for it sold separately. If you never sell it separately, estimate SSP using adjusted market, cost-plus-margin, or (rarely) residual approaches.
- 5
Recognize revenue when (or as) each obligation is satisfied
Over time if the customer consumes the benefit as you perform (SaaS access, support, managed services), typically ratably or by measure of progress; at a point in time when control transfers (delivered hardware, a completed one-time deliverable).
Every downstream complexity - deferred revenue, SSP studies, modification accounting - is just one of these five steps applied to a messier contract. Keep the model in view and the edge cases stay tractable.
How common SMB contracts map to ASC 606
The same five steps produce very different recognition patterns depending on the contract shape. Here is how the deals SMBs sign most often typically resolve. (These are the common outcomes, not a substitute for reading your own contracts - small wording changes move deals between rows.)
| Scenario | Performance obligation(s) | Typical recognition |
|---|---|---|
| SaaS subscription (monthly or annual) | One obligation: continuous access to the service | Ratably over the subscription term as access is provided |
| Implementation / onboarding fee | Distinct if it has standalone value (generic setup, training); not distinct if the software is unusable without it | If distinct: when the implementation is complete. If not distinct: bundled with the subscription and recognized over the term (often the longer expected customer life) |
| Usage-based / consumption pricing | A series of distinct daily/monthly services | As usage occurs, usually via the "right to invoice" practical expedient when price per unit reflects value delivered |
| Multi-element deal (software + support + services) | Multiple obligations - each distinct promise separated | Transaction price allocated by relative SSP; each element recognized on its own pattern |
| Annual prepay (12 months billed up front) | Same obligation as monthly SaaS - billing does not change the obligation | Cash on day 1 is a contract liability (deferred revenue); revenue recognized 1/12 per month |
Worked example: a $36,000 contract with an onboarding fee
The mechanics click fastest with real numbers. Take a deal shape almost every B2B SaaS company signs: an annual subscription with a one-time onboarding fee.
Step 2: onboarding here is generic setup and training the customer could buy from a partner, so it is a distinct performance obligation. That gives two obligations. Step 4 says to allocate the $36,000 by relative SSP - not by the line items on the order form:
Relative SSP allocation
Total SSP = $33,000 + $7,000 = $40,000 Subscription: $36,000 × ($33,000 ÷ $40,000) = $29,700 Onboarding: $36,000 × ($7,000 ÷ $40,000) = $6,300
The $4,000 bundle discount is spread proportionally across both obligations, so neither line is overstated. Note the allocated amounts ($29,700 / $6,300) differ from the contract’s stated prices ($30,000 / $6,000) - the order form does not drive the accounting.
Step 5: onboarding revenue of $6,300 is recognized when the work completes on January 31. Subscription revenue of $29,700 is recognized ratably at $2,475 per month. So January revenue is $6,300 + $2,475 = $8,775; February through December each show $2,475. Of the $36,000 invoiced on day 1, $33,525 sits in deferred revenue at the end of January and unwinds monthly.
Standalone selling price without a pricing department
SSP intimidates SMB teams because it sounds like it requires a formal study. It does not. It requires a documented, consistently applied method - and for most SMBs the evidence already exists in the closed-won data.
- Observable prices first. If you sell an element separately (support renewals, training packs, seat add-ons), the observable range of those standalone sales is your SSP. A common practice is to set SSP as the median of standalone sales and treat a band (for example ±15–20% around it) as acceptable.
- Adjusted market assessment. No standalone sales? Anchor to what customers in your market pay for comparable offerings, adjusted for your positioning.
- Expected cost plus margin. For services obligations, build up delivery cost (loaded labor hours) and add your normal services margin.
- Residual approach - last resort. Only appropriate when the price of one element is highly variable or uncertain, such as enterprise software with wildly dispersed pricing. Auditors push back on residual as a default.
Contract modifications: upsells, downgrades, and extensions
Growing SMBs modify contracts constantly - mid-term seat expansions, plan upgrades, term extensions, negotiated discounts. ASC 606 sorts every modification into one of three treatments, and the sorting question is always the same two tests: are the added goods or services distinct, and is the added price at their SSP?
- 1Separate contract - the modification adds distinct goods/services at a price reflecting their SSP. Example: 10 more seats mid-term at your normal per-seat rate. Account for it as a brand-new contract; the original is untouched.
- 2Termination-and-replacement (prospective) - the remaining goods/services are distinct from what was already delivered, but pricing does not reflect SSP (a discounted expansion, a renegotiated renewal blended into the current term). Combine the unrecognized old transaction price with the new consideration and spread it over the remaining, go-forward obligations. No restating the past.
- 3Cumulative catch-up - the remaining goods/services are NOT distinct from what was delivered (typical for a single partially complete services obligation measured on percentage-of-completion). Update the transaction price and measure of progress, and book a catch-up adjustment to revenue in the current period.
For subscription businesses, the practical outcome is that most modifications land in the first two buckets: expansions at list are separate contracts, and discounted mid-term changes are prospective blends. Cumulative catch-ups are mostly a professional-services phenomenon.
Disclosure requirements that actually apply to you
Private companies get significant disclosure relief under ASC 606, but "relief" is not "nothing." If you produce GAAP financial statements - for a bank covenant, an audit, or investors - expect to disclose at minimum:
- Disaggregated revenue - revenue split by timing (point-in-time vs over-time) at minimum; many SMBs also split by product line or geography.
- Contract balances - opening and closing deferred revenue (contract liabilities) and contract assets (unbilled receivables), plus revenue recognized this period that was deferred at the start of it.
- Performance obligations - a plain-language description of what you promise, when you typically satisfy it, and significant payment terms.
- Significant judgments - how you determine SSP, how you estimate variable consideration, and why you recognize over time vs at a point in time.
The deferred revenue rollforward is the disclosure that fails first in practice. If your systems cannot produce "deferred revenue opening balance + billings − revenue recognized = closing balance" by month, fix that pipeline before the audit, not during it.
Common mistakes (and when spreadsheets break)
Spreadsheet revenue schedules work at low volume, then fail predictably. The breaking points: more than roughly 50–100 active contracts, any mid-term modifications (a prospective blend in Excel means rebuilding the row and hoping the old version is preserved), co-termed or multi-element deals, usage data that arrives after close, and the moment more than one person edits the workbook. The failure mode is silent - a dragged formula that stops one row short doesn’t error, it just misstates revenue until an auditor ties the schedule to the GL.
This is the point where teams move recognition into a system that stores contracts and obligations as data, generates the monthly waterfall, posts the journal entries, and keeps an audit trail of every modification. That is exactly the revenue layer Fintra provides inside the same platform that runs the rest of the close.
Frequently asked questions
Does ASC 606 apply to small private companies?
Yes. ASC 606 applies to every entity that prepares US GAAP financial statements, public or private - private companies simply get reduced disclosure requirements. If you produce GAAP statements for a lender, investor, or audit, ASC 606 governs your revenue. Cash-basis or tax-basis books are outside GAAP, but expect diligence processes to re-cut your revenue under ASC 606 anyway.
When should a SaaS company recognize an annual prepayment?
Ratably over the 12-month subscription term - typically 1/12 per month. The full prepayment is a contract liability (deferred revenue) on day one and earns into revenue as you provide access. Billing terms never change the recognition pattern; they only change when cash arrives.
Are setup and onboarding fees recognized up front?
Only if the onboarding is a distinct performance obligation - meaning the customer could benefit from it independently and it is separately identifiable from the subscription. Generic training and standard data migration often qualify. If the setup has no standalone value (custom work the software cannot run without), the fee is bundled and recognized over the subscription term or expected customer life.
What is standalone selling price and how do I estimate it?
SSP is the price you would charge for a good or service sold on its own, and it drives how a bundled contract price is allocated. Use observable standalone sales when you have them; otherwise estimate via adjusted market assessment or expected cost plus margin. Document one method per product line and apply it consistently - that consistency is what auditors test.
How does ASC 606 treat usage-based pricing?
Usage arrangements are generally a series of distinct services. Most companies apply the right-to-invoice practical expedient and recognize revenue as usage occurs, provided the per-unit price corresponds to the value delivered. Minimum commitments are recognized ratably, with overages recognized as consumed.
What is the difference between deferred revenue and a contract asset?
Deferred revenue (a contract liability) arises when you have billed or collected ahead of performance - you owe the customer service. A contract asset is the mirror image: you have performed ahead of your right to invoice, common in milestone-billed services. Both must reconcile to the GL each month and both appear in ASC 606 disclosures.
Stay in the loop
One practical finance briefing a week - new guides, checklists, and benchmarks.
See how Fintra automates this
Fintra is the AI Finance Operating System for SMBs - accounting, payroll, forecasting, and compliance in one governed platform, with AI doing the heavy lifting.
Talk to us