All Workflows

ASC606 Revenue Accounting

Performance obligations + transaction price + monthly schedule — asc 606 revenue recognition software in minutes per contract.

Live demo Upload a customer contract. Cadel identifies performance obligations, allocates the transaction price, and builds the monthly revenue schedule.

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.

2–3 days

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.

Step 2 · ASC 606-10-25-19

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.

Step 4 · ASC 606-10-32-28 through 32-41

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.

Step 5 · ASC 606-10-55-16 through 55-21

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.

Constraint · ASC 606-10-32-11

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.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

07

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.

Variable Consideration Constraint

What's wrongA time-and-materials SOW includes a performance bonus that is only probable of not reversing once the client issues a formal acceptance record. Without linking the acceptance record to the SOW, unconstrained variable consideration is incorrectly recognized upfront, violating ASC 606-10-32-11.
Expected outcomeWorkflow holds the bonus amount as constrained variable consideration until a matched acceptance record is ingested, then releases it to recognized revenue in the correct period.

Multiple Performance Obligations in a Single Contract

What's wrongAn MSA bundles a website replatform (distinct deliverable) with 12 months of post-launch support (stand-ready obligation). Treating the contract as a single POB understates deferred revenue and overstates near-term revenue.
Expected outcomeWorkflow identifies two distinct performance obligations under ASC 606-10-25-19, allocates transaction price to each using relative standalone selling price, and schedules support revenue ratably over the service period.

Contract Modification — Scope Addition

What's wrongA change order adds new deliverables at prices that reflect their standalone selling prices. Under ASC 606-10-25-12(a) this must be treated as a separate contract, not a modification of the original allocation.
Expected outcomeWorkflow detects the incremental SOW, confirms SSP alignment, and creates a new contract record rather than re-allocating the original transaction price.

Timesheet Hours Exceed SOW Estimate

What's wrongBillable hours reported in the timesheet exceed the hours estimated in the SOW for a fixed-fee engagement. Over-run hours do not create incremental revenue but may signal a loss contract requiring immediate recognition under ASC 420.
Expected outcomeWorkflow flags the hour overage, computes the implied margin erosion against the fixed fee, and raises a loss-contract exception for controller review before the period is closed.

Input Method vs. Output Method Selection

What's wrongFor a multi-phase project, the SOW defines discrete deliverable milestones (output method) but the available evidence is only labor hours (input method). Mixing methods across periods creates inconsistent revenue curves.
Expected outcomeWorkflow enforces a consistent measurement method per performance obligation as elected at contract inception, and flags any period where the available evidence type changes from the elected method.

Acceptance Record Date Straddles Period End

What's wrongA client signs an acceptance record on the last day of the quarter but the document is uploaded two days after the books close. Recognizing revenue in the subsequent period misclassifies it as a cut-off error under ASC 606-10-25-1.
Expected outcomeWorkflow reads the execution date on the acceptance record independently of the upload date and posts revenue to the period containing the acceptance date, generating a prior-period adjustment memo if the period is already closed.

Sample Documents

Seeded sample files used to demonstrate this workflow. Each one exercises a specific scenario or failure mode.

Timesheet
Billable hours report JantoMarch 2026.xls

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.

Acceptance Records
Pattern_-_Mike_s_Amazing_-_Acceptance_Record.pdf

Client-signed acceptance record for a website deliverable; execution date triggers release of constrained variable consideration and marks the performance obligation as satisfied.

MSA
Pattern_-_Mike_s_Amazing_Website_Redesign___Replatform__MSA_and_SOW_pages_1-8.pdf

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.

SOW
Pattern_-_Mike_s_Amazing_Website_Redesign___Replatform__MSA_and_SOW_pages_9-16.pdf

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.

2–3 days → 5 min
Per-contract revenue close cycle
60
Active SOWs reconciled per firm per cycle — 120–180 hrs recovered/quarter
4
Exception classes caught deterministically (loss / modification / method / cut-off)
< 90 s
Per-bundle processing including SSP allocation + schedule build

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.

Which ASC 606 five-step model steps does this workflow automate?

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.

Does this workflow handle SaaS subscription revenue as well as professional services?

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.

How does the workflow integrate with our ERP — we use NetSuite and QuickBooks?

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.

What audit trail does the workflow produce for our external auditors?

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.

How does the workflow handle contract modifications such as change orders or price reductions?

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.

Does it support multi-currency contracts, such as USD-invoiced engagements for an Indian subsidiary reporting in INR?

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.

IFRS 15 vs ASC 606 — can this workflow also drive IFRS 15 revenue recognition for an Ind AS or IFRS entity?

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.

Is this revenue recognition software suitable for SaaS subscription companies with annual contracts, monthly billing and frequent mid-term upgrades?

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.