CST 304 · Advanced · Finance track · 12 min read

Revenue Recognition (ASC 606)

The rules and judgments that determine when and how much revenue a contractor books on a contract, governed by ASC 606's five-step model and the transfer of control over time.

Definition — what it is

Revenue recognition is the accounting process that determines when a contractor records revenue on a contract and how much, and in the United States it is governed by ASC 606, Revenue from Contracts with Customers. ASC 606 replaced the old percentage-of-completion and completed-contract standards with a single five-step model: identify the contract, identify the performance obligations, determine the transaction price, allocate that price to the obligations, and recognize revenue as each obligation is satisfied. For most construction contracts, control of the asset transfers to the customer over time, so revenue is recognized over the contract's life using a measure of progress — commonly a cost-based input method equivalent to cost-to-cost percent complete. Revenue recognition is not billing and it is not cash collection; it is the earnings measurement that the WIP schedule operationalizes, and its integrity rests entirely on the estimate at completion behind the progress measure.

Also known as: ASC 606, Percentage of Completion, POC, Revenue from Contracts with Customers

Why it matters — what it protects

Revenue recognition determines reported earnings, so it is the point where every cost object in this category becomes financial-statement fact. The estimate at completion, the percent complete, and the over/under position all exist to feed this calculation, and an error in the forecast flows straight into recognized revenue and profit. It is the most consequential accounting judgment a contractor makes and the one auditors examine most closely.

ASC 606's structure changed what has to be judged and disclosed. Identifying separate performance obligations, accounting for variable consideration like unpriced change orders and claims, and treating contract modifications correctly are all live judgments on a construction contract, and getting them wrong misstates both the timing and the amount of revenue. The standard forces contractors to be explicit about judgments that were previously buried in percentage-of-completion mechanics.

Over-time recognition ties earnings to a progress measure, which makes that measure a control point for the entire income statement. Because cost-based input methods recognize revenue as cost is incurred against estimated total cost, an understated estimate at completion overstates recognized revenue, pulling profit forward that has not been earned. This is the mechanism behind most profit fade and most revenue restatements in the industry.

Variable consideration is where construction revenue recognition is most dangerous and most misunderstood. Unpriced change orders, pending claims, and incentive or liquidated-damages provisions must be estimated and constrained so that revenue is only recognized to the extent a significant reversal is not probable. Recognizing optimistic claim revenue that later collapses is a classic and costly restatement pattern, which is why the constraint on variable consideration is a core discipline, not a formality.

Lifecycle — how it moves

  1. Contract identification

    The contract is confirmed to meet ASC 606's criteria — approval, identifiable rights and payment terms, commercial substance, and probable collection. A signed change or a combined set of contracts may need to be assessed as one arrangement.

  2. Performance-obligation identification

    Distinct promised goods or services are identified. Most construction contracts are a single obligation because the work is highly integrated, but design-build, multi-phase, or bundled contracts may contain several, changing how revenue is allocated.

  3. Transaction-price determination

    The total consideration is set, including estimated variable consideration — unpriced changes, claims, incentives, liquidated damages — constrained so revenue is recognized only to the extent a significant reversal is not probable. This is the standard's central judgment.

  4. Price allocation

    The transaction price is allocated across performance obligations by relative standalone selling price. For a single-obligation contract this is trivial; for multiple obligations it determines the shape of recognized revenue.

  5. Progress measurement

    For over-time recognition, a measure of progress is chosen — usually cost-to-cost input — and applied each period. The estimate at completion behind it is the integrity risk that carries the whole recognition.

  6. Revenue recognition and adjustment

    Revenue is recognized each period as progress is earned, and changes in estimate — of cost or of variable consideration — are accounted for as cumulative catch-up adjustments in the period they occur, not restated retrospectively.

  7. Contract asset and liability presentation

    The difference between revenue recognized and amounts billed is presented as a contract asset (underbilled) or contract liability (overbilled), reconciling to the over/under billing on the WIP schedule.

  8. Disclosure and audit

    Judgments, remaining performance obligations, and the effect of estimate changes are disclosed. Auditors test the estimate at completion, the variable-consideration constraint, and the consistency of the progress measure.

Anatomy — the data it carries

Contract and combination assessment
Whether the arrangement is one contract or several combined, which sets the unit of account for everything downstream.
Performance obligations
The distinct promises in the contract. Most construction is a single integrated obligation; misidentifying multiples reshapes revenue timing.
Transaction price
Total expected consideration including constrained variable amounts, the ceiling on revenue that can be recognized.
Variable consideration estimate
Expected value of unpriced changes, claims, incentives, and penalties, the most judgmental and most restatement-prone input.
Constraint on variable consideration
The reduction applied so revenue is recognized only to the extent a significant reversal is not probable. The discipline that prevents optimistic claim revenue.
Measure of progress
Usually cost-to-cost input; the method must faithfully depict transfer of control and be applied consistently.
Estimated cost at completion
The denominator of cost-based progress, inheriting all the integrity risk of cost to complete and driving recognized revenue.
Revenue recognized to date
Progress applied to transaction price, the cumulative earnings that must reconcile to the income statement.
Contract asset / liability
Revenue recognized minus billed, presented as underbilled asset or overbilled liability, tying to the WIP over/under.
Change in estimate
Cumulative catch-up adjustment when cost or variable-consideration estimates change, recognized in the current period.
Loss provision
The full expected loss on a contract recognized immediately when estimated cost exceeds transaction price, regardless of progress — a mandatory conservatism.
Disclosure notes
The judgments, remaining obligations, and estimate-change effects disclosed, which are what auditors and readers actually scrutinize.

Failure modes — how it breaks

Optimistic variable consideration recognized too early

Revenue from unpriced change orders or a pending claim is recognized at full hoped-for value without applying the constraint. When the claim settles low or is denied, the revenue reverses, producing a restatement and a fade the market did not expect.

Understated estimate at completion overstating revenue

A soft cost to complete makes cost-based progress overstate, so revenue is recognized ahead of the work. The correction lands as a cumulative catch-up loss, the accounting expression of profit fade.

Loss provision not recognized when required

A contract is heading for an overall loss but the full loss is deferred rather than recognized immediately as ASC 606 and cost guidance require. Earnings are overstated until the loss can no longer be hidden, and the deferral is an audit finding.

Performance obligations misidentified

A contract with genuinely distinct obligations is treated as one, or an integrated contract is split, so the timing and pattern of recognition are wrong. The revenue is booked in the wrong periods even if the total is eventually correct.

Progress measure that does not reflect control transfer

Cost-to-cost is used where uninstalled materials or inefficiencies distort it, so the measure of progress no longer faithfully depicts value transferred. Revenue is recognized for cost that did not advance the asset the customer is receiving.

Change in estimate mishandled

A revised cost or consideration estimate is applied prospectively only, or worse, prior periods are restated, instead of a current-period cumulative catch-up. The mechanics violate the standard and misstate the period's earnings.

Contract asset and liability not reconciled to the WIP

The over/under on the WIP schedule and the contract asset and liability on the balance sheet diverge because they are maintained separately. The financial statements and the project accounting disagree, and neither is trusted.

Metrics — how it is measured

Revenue-to-progress alignment

Whether recognized revenue tracks a faithful measure of progress. Divergence signals a distorted measure or a stale estimate at completion.

Variable-consideration recognized versus constrained

How much unpriced-change and claim revenue is booked versus held back under the constraint. Measures recognition conservatism and restatement risk.

Cumulative catch-up adjustments

Frequency and magnitude of estimate-change adjustments. Large or frequent catch-ups indicate weak forecasting, not just changing reality.

Loss-provision timeliness

Whether expected losses are recognized in the period identified. Late loss recognition is a serious control and audit failure.

Contract-asset to WIP reconciliation

Agreement between balance-sheet contract assets and liabilities and the WIP over/under. Should be exact; a gap signals a control break.

Audit adjustment volume

Auditor-proposed adjustments to recognized revenue. A direct external measure of recognition quality.

The AI shift — what actually changes

Conversational

Revenue recognition becomes explainable rather than a black box. You ask how much recognized revenue depends on unconstrained variable consideration, which contracts are riding a stale estimate at completion, and which are heading for a loss that has not been provisioned — and get the specific contracts and estimates cited so the judgment can be examined, not just accepted.

Generative

The recognition workpapers and disclosures are drafted. Given contracts, cost, and estimates, a model applies the five-step model per contract, computes cost-based progress, proposes a constrained variable-consideration estimate with its rationale, calculates recognized revenue and contract asset or liability, and drafts the estimate-change and judgment disclosures for accounting review.

Orchestrated

Recognition stops being a quarter-end scramble. It pulls cost and estimate at completion from cost to complete, billings from pay applications, and pending changes and claims from the change log, computes recognized revenue and the cumulative catch-up for estimate changes, reconciles the contract asset and liability to the WIP over/under, and flags any contract where the loss provision, variable-consideration constraint, or progress measure looks wrong with the records attached.

Autonomous

The routine recognition runs unattended: progress applied to the transaction price, cumulative catch-ups computed for estimate changes, contract assets and liabilities posted and reconciled to the WIP, and any contract needing a loss provision or carrying unconstrained variable consideration flagged — while humans own every variable-consideration judgment, every performance-obligation determination, the loss-provision decision, and the sign-off that turns the calculation into reported revenue.

Prompts — put it to work

Tool-agnostic and copy-ready. Adapt the specifics — thresholds, contract windows, cost codes — to your own project before you run them.

Conversational — Quarter-end and you want to know where recognized revenue is exposed to reversal.

Review recognized revenue across the portfolio for reversal risk under ASC 606. Tell me how much recognized revenue depends on variable consideration — unpriced change orders, pending claims, incentives — and how much of that has not been reduced by the constraint against a significant reversal. Identify contracts riding a stale estimate at completion, since an understated estimate overstates cost-based progress and revenue. Flag any contract where estimated cost at completion now exceeds the transaction price, because the full loss must be provisioned immediately. Confirm the contract assets and liabilities reconcile to the WIP over/under. Cite the contracts, estimates, and change records behind each finding, and quantify the revenue at risk of reversal.

What good output looks like: A reversal-risk review that quantifies revenue resting on unconstrained variable consideration, identifies stale estimates and required loss provisions, and confirms the WIP reconciliation, each finding cited.

Follow-ups:

  • For the claims driving unconstrained revenue, what settlement probability would justify recognition?
  • Which contracts need a loss provision this quarter, and how large?
  • Where contract assets and the WIP disagree, what is the reconciling item?

Generative — Preparing the revenue recognition workpapers for a set of contracts.

Prepare ASC 606 revenue recognition workpapers for these contracts. For each, walk the five steps: confirm the contract, identify performance obligations and note whether it is a single integrated obligation or multiple, determine the transaction price including an estimated variable consideration amount with the constraint applied and your rationale stated, allocate the price, and compute recognized revenue using cost-to-cost progress from the estimate at completion. Where estimates changed since last period, compute the cumulative catch-up adjustment in the current period. Recognize any full loss immediately where estimated cost exceeds the transaction price. Present recognized revenue, the contract asset or liability, and draft disclosure language for the key judgments and estimate changes. Flag any contract whose obligation structure or progress measure you are not confident about.

What good output looks like: Five-step workpapers per contract with a constrained variable-consideration estimate and stated rationale, cumulative catch-ups, loss provisions where required, recognized revenue, contract asset or liability, and draft disclosures, with low-confidence judgments flagged.

Follow-ups:

  • Redo the variable-consideration estimate under a more conservative constraint and show the revenue delta.
  • Draft the loss-provision entries for any contract in an expected-loss position.
  • Which contracts' progress measures might not faithfully depict control transfer, and why?

Orchestrated — You want recognition computed across systems and reconciled to the WIP and balance sheet.

Compute this period's revenue recognition across the connected systems and reconcile it. Pull cost incurred and estimate at completion from cost to complete, billings from pay applications, and pending and approved changes and claims from the change log. For each contract, compute cost-to-cost progress, apply it to the constrained transaction price, and recognize revenue; compute the cumulative catch-up for any estimate change this period. Derive the contract asset or liability and reconcile it exactly to the over/under on the WIP schedule and to the balance-sheet contract accounts, naming any difference. Flag every contract in an expected-loss position, every contract carrying material unconstrained variable consideration, and every progress measure distorted by stored materials. Return recognized revenue, the reconciliation, and the exceptions with source records cited.

What good output looks like: Cross-system recognized revenue with cumulative catch-ups, reconciled exactly to the WIP over/under and balance-sheet contract accounts, and exceptions for loss positions, unconstrained consideration, and distorted progress named.

Follow-ups:

  • For contracts where the WIP and contract assets disagree, identify the reconciling item.
  • Show the recognized revenue impact if stored materials were backed out of every progress measure.
  • List the estimate changes this period and the catch-up each produced.

Autonomous — Standing policy for how revenue recognition should run each period.

Operate revenue recognition each period under these rules. Apply the standing measure of progress to each contract's constrained transaction price, using the estimate at completion from cost to complete, and compute recognized revenue and the contract asset or liability. Compute cumulative catch-up adjustments for estimate changes in the current period. Reconcile contract assets and liabilities exactly to the WIP over/under and flag any break. Flag every contract where estimated cost exceeds the transaction price so a loss provision can be decided, and every contract carrying material unconstrained variable consideration. Never set or change a variable-consideration estimate or its constraint, never determine performance obligations, never record a loss provision, and never sign recognized revenue into the financial statements without human approval — route those with the supporting analysis, and give me an exception report of loss positions, unconstrained-consideration exposure, large catch-ups, and reconciliation breaks rather than the full recognition schedule.

What good output looks like: A running recognition process where routine computation, catch-ups, and WIP reconciliation are automatic, and every variable-consideration judgment, obligation determination, loss provision, and sign-off stays human-owned, with exceptions escalated.

Follow-ups:

  • Show me the variable-consideration and loss-provision items you flagged and how accounting resolved them.
  • Report our cumulative-catch-up frequency and magnitude this year as a forecasting-quality signal.

Get the full Construction AI Prompt Catalog — every prompt in the library in one document.

Maturity — locate yourself honestly

  1. Level 0 — Cash or billing basis

    Revenue is booked on cash collected or amounts billed, ignoring progress. Earnings bear no relation to work performed and do not comply with ASC 606.

  2. Level 1 — Over-time, mechanical

    Cost-to-cost progress drives recognition, but variable consideration, loss provisions, and disclosures are handled inconsistently and often late.

  3. Level 2 — Full ASC 606 discipline

    The five-step model is applied per contract, variable consideration is estimated and constrained, losses are provisioned immediately, catch-ups are handled correctly, and contract assets reconcile to the WIP.

  4. Level 3 — Assisted and integrated

    Recognition is computed across systems, workpapers and disclosures are drafted, reconciliation to the WIP is automatic, and loss positions and unconstrained consideration are flagged for accounting review.

  5. Level 4 — Operated

    Routine computation, catch-ups, and reconciliation run unattended, while humans own every variable-consideration judgment, obligation determination, loss provision, and the sign-off into the financial statements.

Common questions

How did ASC 606 change revenue recognition for contractors?

It replaced the industry-specific percentage-of-completion and completed-contract guidance with a single five-step model applied across all industries. In practice, most construction contracts still recognize revenue over time using a cost-based input measure that resembles the old percentage-of-completion, so the mechanics feel familiar. What changed most is the explicit discipline around identifying performance obligations, estimating and constraining variable consideration such as unpriced changes and claims, and disclosing the judgments — areas the old standard left largely implicit.

How is revenue from an unpriced change order or a claim recognized?

As variable consideration, estimated at the amount the contractor expects to be entitled to, and then constrained so revenue is only recognized to the extent that a significant reversal is not probable. This is deliberately conservative: recognizing the full hoped-for value of a disputed claim and then having it settle low is a classic source of restatement. The estimate and the constraint are matters of judgment that must be documented and revisited each period as the change or claim develops.

When must a contractor recognize a loss on a contract?

Immediately and in full, in the period it becomes probable that estimated total cost will exceed the transaction price, regardless of how far along the job is. Unlike profit, which is recognized gradually as progress is earned, an expected loss is not spread over the remaining work — it is booked at once as a provision. Deferring a known loss to smooth earnings is both a violation of the standard and one of the more serious findings an auditor can raise.

Why must contract assets and liabilities reconcile to the WIP schedule?

Because they are the same information viewed from two documents. The over/under billing on the WIP schedule — earned revenue versus billings — is exactly what ASC 606 presents on the balance sheet as contract assets (underbilled) and contract liabilities (overbilled). If they do not tie, either the project accounting or the financial accounting is wrong, and the divergence undermines confidence in both. A clean reconciliation each period is a basic control that proves the two systems agree.

Read this article as markdown · Browse all 110 objects