Identify the performance obligations from the customer contract and allocate the transaction price to each obligation based on standalone selling price
Create a deferred revenue liability entry when cash is received or the invoice is raised, crediting the deferred revenue account and debiting cash or accounts receivable
Build a recognition schedule by dividing the allocated transaction price across the periods in which each performance obligation is satisfied
Post a revenue recognition journal entry in each period by debiting deferred revenue and crediting revenue for the scheduled amount
Reconcile the remaining deferred revenue balance on the balance sheet to the sum of unrecognized amounts across all open schedules at each period end
For modifications to contracts, reassess the remaining performance obligations and update the recognition schedule prospectively or with a cumulative catch-up adjustment as required by ASC 606
Known gotchas
Revenue must be recognized when control transfers, not when cash is received; using the cash receipt date as the recognition trigger is a common ASC 606 compliance error
Variable consideration (discounts, refunds, usage-based fees) must be estimated and constrained before being included in the transaction price; over-estimating variable consideration and recognizing it early causes restatement risk
Contract modifications that create a new distinct performance obligation are accounted for as a separate contract, not a cumulative catch-up; misclassifying the modification type leads to incorrect revenue timing
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp