ASC606 Revenue Accounting
Performance obligations + transaction price + monthly schedule — asc 606 revenue recognition software in minutes per contract.
SaaS-2025-114
The Problem
Manual ASC 606 revenue recognition is not one calculation — it’s a chain of document-dependent judgments repeated for every contract, every period. A controller managing 40–80 active SOWs faces four structurally hard failure modes that even the best spreadsheets can’t prevent.
Bundled performance obligations get treated as one
A fixed-fee website replatform bundled with a 12-month support retainer is two distinct POBs under ASC 606-10-25-19 — each requiring its own transaction price allocation by relative SSP. Treating the bundle as one obligation overstates near-term revenue and understates the deferred liability on the balance sheet.
Variable consideration recognised too early
Time-and-materials contracts with performance bonuses require controllers to refresh the probable-of-not-reversing assessment every period under ASC 606-10-32-11. Without a systematic link between acceptance records and the SOW, bonuses get recognised before the constraint clears — or held too long, understating revenue.
Loss contracts hidden until quarter-end
Timesheet hours quietly breach the SOW fixed-fee estimate over a few months — nobody runs the comparison until close. The undetected loss contract surfaces as an audit adjustment under ASC 420, often after the period has already been reported externally.
Cut-off misses on late-uploaded acceptance records
An acceptance record signed on 30 March but uploaded on 5 April lands in the wrong reporting period if the controller relies on the upload timestamp. The error generates a prior-period adjustment memo under ASC 250 and a comment-letter risk for SEC registrants.
Per month-end close cycle just to manually trace MSA → SOW → timesheet → acceptance record for every active contract. And that’s assuming no documents are missing or amended — the moment a change order arrives, the SSP allocation done at contract inception is rarely revisited, silently misstating deferred revenue.
Why It Matters: The ASC 606 Five-Step Model
ASC 606 Revenue from Contracts with Customers (FASB ASC Topic 606) replaced ASC 605 for public companies in 2018 and private companies by 2019. Its five-step model is procedurally clear but evidence-intensive — each step is a judgment requiring traceable documentation that doesn’t fit naturally into a spreadsheet.
Identify the performance obligations
Read every contract to assess whether promised goods or services are distinct. A judgment that depends on both the contract terms and observable market evidence of standalone selling prices — missed POBs are the most common ASC 606 audit finding.
Allocate the transaction price by SSP
For multi-POB contracts, total transaction price must be allocated to each obligation using relative standalone selling prices. Wrong allocation between a deliverable and an associated support period directly distorts the deferred-revenue balance on the balance sheet.
Recognise revenue over time or at a point
Pick and consistently apply either an input method (e.g. labour hours from timesheets) or an output method (e.g. milestone completion from acceptance records). Changing method mid-contract without documented basis is a restatement-risk under ASC 250.
Variable consideration constraint
Bonus or contingent fees can only be included in the transaction price when it is probable that a significant revenue reversal will not occur. The assessment must be refreshed each reporting period — the AICPA Audit and Accounting Guide flags this as a high-risk area requiring reproducible evidence.
For SEC registrants, a material revenue recognition error triggers a restatement under ASC 250-10 and potential comment letters from the SEC’s Division of Corporation Finance. For private companies in acquisition due diligence, an incorrect deferred revenue balance or an unrecognised loss contract typically surfaces as an audit adjustment, a qualified opinion, or a purchase-price reduction. None of those outcomes are theoretical — they are the standard pattern when manual spreadsheets meet 60+ active SOWs.
What This Workflow Automates
Seven deterministic steps that turn raw contract PDFs into an ASC 606 revenue schedule. Extraction, allocation, scheduling and exception-flagging all execute in under 90 seconds per contract batch, with field-by-field traceability back to the source document page and paragraph.
Document ingestion & classification
Accepts MSA, SOW, Contract, Timesheet, Acceptance Record and Offering files. Each file is assigned to its role in the contract hierarchy automatically — no manual tagging required.
Contract & SOW field extraction
Pulls parties, effective dates, total contract value, deliverable milestones, billing schedules, payment terms and any variable consideration clauses (bonuses, penalties, success fees) from each MSA and SOW.
Performance obligation identification
Parses each contract for distinct promises under ASC 606-10-25-19. Bundled deliverables (e.g. a replatform plus a stand-ready support period) are split into separate performance obligations each with their own recognition schedule.
Transaction price allocation by SSP
For multi-POB contracts, the workflow allocates the total contract price to each obligation using relative standalone selling prices — either from the Offering document (catalogue pricing) or a controller-supplied SSP table, per ASC 606-10-32-28 through 32-41.
Progress measurement & revenue scheduling
Applies the elected method per POB — hours-based input method from timesheets for T&M engagements, milestone-based output method from acceptance records for fixed-fee deliverables — and computes recognised revenue per reporting period.
Variable consideration constraint
Bonus or contingent-fee amounts are held as constrained variable consideration until a matching acceptance record arrives. On match, the amount is released to recognised revenue in the period bearing the signature date, not the upload date.
Exception detection (4 classes)
Deterministically flags: (a) timesheet hours exceeding SOW fixed-fee estimates → loss contract under ASC 420; (b) contract modifications priced at SSP requiring separate-contract treatment per ASC 606-10-25-12(a); (c) inconsistent progress-method changes; (d) acceptance dates straddling a closed period → prior-period adjustment memo under ASC 250.
Edge Cases We Simulate
The workflow ships with a battery of synthetic test scenarios that exercise every failure mode we have seen in real-world data. Each scenario produces a deterministic outcome that an auditor or controller can verify in seconds.
Multiple Performance Obligations in a Single Contract
Contract Modification — Scope Addition
Timesheet Hours Exceed SOW Estimate
Input Method vs. Output Method Selection
Acceptance Record Date Straddles Period End
Sample Documents
Seeded sample files used to demonstrate this workflow. Each one exercises a specific scenario or failure mode.
Demonstrates extraction of billable hours by resource and project code for Q1 2026; used to measure progress toward satisfying a time-and-materials performance obligation under ASC 606-10-55-17 input method.
Client-signed acceptance record for a website deliverable; execution date triggers release of constrained variable consideration and marks the performance obligation as satisfied.
Master Services Agreement covering payment terms, IP transfer, and warranty clauses; workflow extracts contract asset/liability treatment and identifies enforceable rights and obligations per ASC 606-10-25-1.
Statement of Work defining project phases, fixed fee, milestone schedule, and post-launch support period; workflow uses this to identify distinct performance obligations and allocate transaction price.
Why Automation Wins Here
Replacing the manual ASC 606 close process with this revenue recognition software collapses a 2–3 day per-contract exercise into 5 minutes of controller review. For a firm managing 60 active SOWs, that’s 120–180 analyst-hours recovered every quarter — plus a material reduction in restatement risk.
POBs split correctly, every time
Bundled deliverables are detected automatically and split into distinct performance obligations under ASC 606-10-25-19 — preventing the most common ASC 606 audit finding (treating a multi-element arrangement as one POB).
Variable consideration constraint enforced
Bonus and contingent-fee amounts are held as constrained variable consideration until a signed acceptance record arrives — eliminating both upfront-recognition errors and under-recognition lag.
Audit-ready workpaper
POB schedule, SSP allocation table, constrained variable consideration register and exception memos all output as stand-alone workpapers traceable to source document page and clause — meeting AICPA AU-C 230 documentation standard without reformatting. Continuous ASC 606 compliance evidence and contract revenue recognition support delivered in one package.
Frequently Asked Questions
The questions accountants and finance controllers ask most often before deploying this workflow.
The workflow addresses all five steps: (1) contract identification by parsing MSA and SOW documents for enforceable rights and obligations under ASC 606-10-25-1; (2) performance obligation identification using the distinct-good-or-service test in ASC 606-10-25-19; (3) transaction price determination including variable consideration constraints under ASC 606-10-32-11; (4) standalone selling price allocation under ASC 606-10-32-31; and (5) revenue recognition timing keyed to acceptance records, milestones, or ratable periods depending on the elected measurement method.
Yes. For SaaS arrangements the workflow treats the subscription as a stand-ready performance obligation satisfied ratably over the contract term, consistent with ASC 606-10-25-14(b). For hybrid contracts that bundle a SaaS license with implementation or customization services, the workflow separates the two performance obligations and applies the appropriate recognition pattern to each, preventing the common error of accelerating SaaS revenue into the implementation period.
Cadel connects to NetSuite via the SuiteAnalytics REST API and to QuickBooks Online via the Intuit OAuth 2.0 API, reading open contracts and posting recognized revenue journal entries directly to the designated deferred-revenue and revenue accounts. No manual CSV export is required. For teams still on Tally Prime, Cadel supports XML voucher import aligned to Tally's ledger structure.
Every recognition event is stored with a timestamped evidence chain: the source document (MSA, SOW, acceptance record, or timesheet), the extracted field values, the allocation calculation, and the resulting journal entry. Auditors can trace any revenue balance to its originating contract clause without manual reconstruction. This documentation supports the PCAOB AS 2410 related-parties and AICPA AU-C Section 240 fraud risk procedures that focus on revenue cut-off.
The workflow applies the three-way test from ASC 606-10-25-12: if the modification adds distinct goods or services at their standalone selling price it is treated as a new contract; if it changes the scope or price of existing obligations it is treated as a termination of the old contract and creation of a new one (cumulative catch-up) or as a prospective adjustment, depending on whether the remaining obligations are distinct. Controllers receive a modification memo showing the before/after allocation and the adjustment amount for the current period.
Yes. The workflow records the transaction price in the contract currency and applies the exchange rate on the transaction date for initial measurement, consistent with ASC 830-10-45-9 (for US GAAP reporters) and Ind AS 21 paragraph 21 (for Indian entities). Period-end remeasurement of contract assets and liabilities uses the closing rate, and the resulting foreign exchange gain or loss is posted to a separate FX line rather than being mixed into revenue.
Yes. ASC 606 and IFRS 15 (which Ind AS 115 mirrors) share the same five-step model, the same definitions of distinct performance obligations, and the same variable consideration constraint. Cadel’s engine produces identical structural outputs for either standard — performance obligation schedule, SSP allocation table, recognised & deferred revenue per period. The differences sit at the disclosure layer (e.g. IFRS 15 paragraph 113 requires a more granular qualitative revenue disaggregation than ASC 606-10-50-5), which the workflow surfaces as separate disclosure fields on the export. Teams reporting under both standards in parallel (typical for a US-headquartered SaaS company with an Indian operating subsidiary) run the same workflow once per contract and pick the disclosure flavour at export time.
Yes — SaaS revenue recognition is one of the highest-volume use cases the engine is tuned for. For a standard annual SaaS subscription, the workflow recognises subscription fees ratably over the contract term (typically straight-line, per ASC 606-10-55-29 series-of-distinct-services treatment). Mid-term upgrades (e.g. customer moves from a $10K Standard plan to a $25K Pro plan in month 7) are evaluated against the contract-modification tests in ASC 606-10-25-12: if the upgrade adds distinct services at SSP, it’s treated as a new contract; if it changes the price of the existing entitlement, it’s a prospective adjustment with the remaining transaction price allocated across the remaining performance period. Implementation fees, free trial periods, and ramp-deal billing schedules are handled as either material rights (ASC 606-10-55-41) or separate POBs as appropriate — without manual journal entries.