Esc

↑↓ move↵ openIndex · Pagefind
Accounting

Revenue Recognition (ASC 606)

Definition

The accounting rules for when and how much revenue to record. Under ASC 606, most construction contracts recognize revenue over time as work progresses.

ASC 606 is the US GAAP standard for revenue from contracts with customers. It replaced the older construction-specific guidance and applies to public and private companies. It uses a five-step model:

  1. Identify the contract.
  2. Identify the performance obligations (often one per construction contract, since the pieces are highly integrated).
  3. Determine the transaction price, including variable consideration like incentives, penalties and unpriced change orders, constrained so a significant reversal isn’t probable.
  4. Allocate the price to the performance obligations.
  5. Recognize revenue as each obligation is satisfied.

Most construction contracts qualify for over-time recognition, because the owner controls the work as it’s built or the asset has no alternative use and the contractor has a right to payment for work done. Progress is commonly measured with an input method like cost-to-cost.

This is general education, not accounting advice. Talk to your CPA about your specific contracts.

Why it matters

Revenue on the income statement is earned revenue, not billings. The gap shows up on the balance sheet as contract assets (under billings) or contract liabilities (over billings), and lenders and sureties read it closely.

Worked example

Riverside Medical Center (sample data): contract $49.3M, estimated total cost $43,679,800, cost to date $31.7M, so 72.6% complete cost-to-cost. Earned revenue to date is about $35.78M. Billed to date is $33.0M, so the job is under billed by about $2.78M, a contract asset.

Common mistakes

  • Booking billings as revenue.
  • Including unapproved change orders without applying the constraint.
  • Counting uninstalled materials or other costs that don’t reflect progress in cost-to-cost, which overstates percent complete.

How os.construction handles it

We’re building earned revenue and WIP to calculate from the same contract, cost and forecast records your PMs update. It’s in development.

Open file