Revenue Recognition Journal Entries: A Practical Guide

Introduction

Revenue recognition in construction isn't just an accounting exercise — it's a discipline that directly shapes your financial statements, WIP accuracy, and compliance standing. Get the journal entries wrong, and the damage ripples through your income statement, balance sheet, and every downstream report your lenders and bonding agents rely on.

For construction CFOs, controllers, and CPAs serving contractor clients, the real difficulty is translating ASC 606's performance obligation framework into specific debits and credits at period-end — particularly across a portfolio of long-term contracts at varying stages of completion.

This guide breaks down the journal entry mechanics step by step, covering:

  • The accounts involved in percentage-of-completion revenue recognition
  • The calculations that drive each period-end entry
  • Over-billing and under-billing entries and how they affect your balance sheet
  • The most common errors that cause financial statements to misrepresent project performance

Key Takeaways

  • ASC 606's five-step framework governs when and how much revenue to record — billing dates and recognition dates are not the same thing.
  • The cost-to-cost percentage-of-completion method drives most construction revenue entries, using costs incurred divided by total estimated costs.
  • Three accounts are central: Construction in Progress (CIP), Billings on Construction, and Contract Revenue.
  • CIP > Billings = underbilled (contract asset); Billings > CIP = overbilled (contract liability).
  • Errors in percent-complete estimates cascade directly into misstated journal entries and distorted income statements.

What Is Revenue Recognition in Construction Accounting?

Revenue recognition is the process of recording earned income in the period it is earned — not when cash arrives and not when an invoice goes out. Under accrual accounting, revenue is recognized when performance obligations are satisfied, which for most construction contracts means as work is performed.

FASB's ASC 606 (and its international counterpart, IFRS 15) establishes this as the controlling standard in the US. In plain terms: record revenue when you've earned it by delivering on what the contract promises — not before, not after.

Why Construction Is Different

Most businesses recognize revenue at a single point in time — a product ships, a service is delivered. Construction contracts span months or years, involve multiple billing milestones, and require contractors to estimate how complete a project is at every reporting period.

That estimation challenge is what drives the choice between two recognition approaches:

  • Over time (percentage-of-completion method): Revenue recognized progressively as work is performed. This is the approach ASC 606 favors for most construction contracts, because the customer typically controls the asset as it is constructed.
  • At a point in time (completed contract method): Revenue deferred until project completion. Now limited under ASC 606 to contracts where none of the over-time criteria are met.

For the vast majority of construction contracts — particularly those where work is performed on customer-owned land or a customer-controlled site — the over-time criteria are met, and the percentage-of-completion method applies.


The Five-Step ASC 606 Framework and How It Shapes Journal Entries

ASC 606's five-step model has direct, concrete consequences for what journal entries get recorded and when. Each step either opens a new ledger obligation or closes one.

Step 1: Identify the Contract

A valid contract under ASC 606 must satisfy four criteria:

  • Approval from both parties with identifiable rights and payment terms
  • Commercial substance (the economic reality changes hands)
  • Probable collection of the consideration owed

Change orders complicate this step. Depending on scope and price, a change order may be treated as a contract modification — adjusting the existing contract — or a new contract entirely. That distinction determines whether you open new ledger tracking or revise existing entries.

Step 2: Identify Performance Obligations

Performance obligations are the distinct promises within a contract. Site preparation, structural work, and mechanical fit-out may be separate obligations if each has standalone value. Each distinct obligation requires its own revenue allocation and potentially its own recognition timeline in the general ledger.

Step 3: Determine and Allocate the Transaction Price

The transaction price includes fixed fees plus variable consideration — incentives, penalties, and unpriced change orders. Variable consideration is only included in revenue entries when it is probable that a significant revenue reversal will not occur when the uncertainty resolves. Unpriced change orders stay out of the recognized revenue calculation until that threshold is met.

Once the transaction price is confirmed, allocate it across performance obligations using standalone selling prices. A $2M contract split across three obligations won't recognize revenue evenly — each obligation carries its own allocated amount and its own recognition trigger.

Steps 4 & 5: Recognize Revenue as Obligations Are Satisfied

For over-time contracts, the cost-to-cost input method is the most common measurement approach:

% Complete = Costs Incurred to Date ÷ Total Estimated Contract Costs

Revenue to Recognize This Period = (% Complete × Total Contract Price) − Previously Recognized Revenue

This calculation directly determines the credit to Contract Revenue in the period-end journal entry. Stale or optimistic cost-to-complete estimates don't just skew the math — they create the conditions for revenue restatements, audit findings, and margin surprises that surface at project closeout rather than when there's still time to act.


Cost-to-cost percentage-of-completion revenue recognition formula calculation breakdown

Construction Revenue Recognition Journal Entries: Practical Scenarios

In practice, construction revenue recognition requires a sequence of journal entries throughout the project lifecycle. Three accounts anchor the entire system:

Account Type Purpose
Construction in Progress (CIP) Balance sheet asset Accumulates costs incurred + recognized gross profit
Billings on Construction Contra-asset / liability Tracks amounts invoiced to the client
Contract Revenue Income statement Records earned revenue for the period

Recording Costs Incurred (CIP Entry)

As direct labor, materials, subcontractor costs, and allocated overhead are incurred:

Debit:  Construction in Progress (CIP)      $XXX
Credit: Accounts Payable / Cash / Accrued Expenses  $XXX

This entry grows the CIP balance and provides the numerator for the cost-to-cost calculation.

Recording Progress Billings

When you invoice the client at a project milestone:

Debit:  Accounts Receivable    $XXX
Credit: Billings on Construction    $XXX

Critical point: This entry does not recognize revenue. It records the billing only. Billings on Construction will be compared to CIP at period-end to determine over/under-billing status.

Recognizing Revenue at Period-End

This is the core ASC 606 entry, driven by the cost-to-cost calculation.

Example: $1,000,000 contract, 40% complete at period-end, $350,000 previously recognized.

  • Cumulative revenue earned: 40% × $1,000,000 = $400,000
  • Previously recognized: $350,000
  • Recognize this period: $50,000
Debit:  Construction in Progress (CIP) [gross profit portion]    $50,000*
Credit: Contract Revenue                                          $50,000

*The CIP debit records the profit component being added to the asset balance; the cost component was already debited when costs were incurred.

Recording Cash Collections

Debit:  Cash                $XXX
Credit: Accounts Receivable     $XXX

This entry has no impact on revenue recognition timing. It clears the receivable and nothing more.

Over-Billing and Under-Billing Presentation

At period-end, the net balance between CIP and Billings on Construction determines balance sheet presentation:

  • CIP > Billings → Asset: Costs and Recognized Profits in Excess of Billings (underbilled / contract asset)
  • Billings > CIP → Liability: Billings in Excess of Costs and Recognized Profits (overbilled / contract liability)

Construction overbilling versus underbilling balance sheet presentation comparison infographic

CFMA confirms that the legacy construction terms map directly to ASC 606's contract asset and contract liability concepts.

An underbilled project means you've earned more than you've invoiced. Revenue recognition is fine; the issue is cash flow and billing cadence. An overbilled project means you've invoiced more than you've earned, creating a contract liability that needs active monitoring.

Project Completion Close-Out Entry

Once all revenue has been recognized and the project closes, clear both accounts against each other:

Debit:  Billings on Construction [full contract amount]    $XXX
Credit: Construction in Progress [costs + recognized profit]   $XXX

If final costs exceeded estimates and the contract becomes onerous, recognize the full expected loss immediately in the period it becomes apparent. Do not spread it across the remaining project life.


Key Factors That Affect Revenue Recognition Accuracy

The percent-complete estimate is the single biggest driver of correct revenue recognition. An error in estimated costs to complete doesn't just affect one period — it distorts every revenue entry that follows.

ENR has reported that WIP can represent 50% or more of annual reported profit, and that subjective field reporting and opinion-based estimates create profit distortion. A 5% error in percent-complete on a $10M contract moves $500,000 of revenue between periods.

Percent-complete errors don't happen in a vacuum. Two structural issues compound them: change order complexity and data lag.

Change Orders Add Complexity

Change orders require careful sequencing:

  • Approved change orders: Modify the contract price. Trigger an immediate recalculation of percent complete and a catch-up adjustment in the current period's revenue entry.
  • Unapproved or unpriced change orders: Carry variable consideration under ASC 606. They cannot be included in recognized revenue until it's probable a significant reversal won't occur — including them prematurely overstates revenue.

The Data Lag Problem

Firms relying on manual spreadsheets for percent-complete calculations face a structural accuracy problem. When cost-to-date figures are 10–20 days stale by period-end close, the revenue recognition entry is based on outdated data — and nobody knows by how much until the next month's reconciliation.

Datateer's ASC 606 Revenue Recognition module addresses this directly. It syncs overnight with construction ERPs (Procore, Sage, Viewpoint, Acumatica, and others), pulling current cost-to-date figures automatically.

The output is percent-complete calculations and revenue recognition schedules (per job, per contract, per period) generated from live ERP data — not manually assembled spreadsheets. Entries get posted on figures that actually reflect where each project stands.


Datateer ASC 606 revenue recognition dashboard displaying per-job percent-complete schedules

Common Mistakes in Construction Revenue Journal Entries

Treating Billing as Revenue Recognition

The most common misconception in construction accounting: when an invoice goes out, revenue has been earned. It hasn't. The billing entry (Debit AR / Credit Billings on Construction) and the revenue recognition entry (Debit CIP / Credit Contract Revenue) are completely separate transactions.

Conflating them turns overbillings into prematurely recognized revenue — inflating the income statement and misrepresenting project performance.

Defaulting to the Completed Contract Method

Some firms defer all revenue until project completion out of conservatism or to simplify month-end close. Under ASC 606, this applies only when the outcome cannot be reliably estimated — not as a default preference.

For most construction contracts where over-time recognition criteria are met, using the completed contract method understates revenues throughout the project and creates a large, distorting spike at completion. The method you use follows directly from whether the ASC 606 over-time criteria are satisfied.

Deferring Loss Recognition

When revised cost estimates make a project unprofitable, the full expected loss must be recognized in the period it becomes apparent. Not over the remaining project life. Not at completion.

Both Deloitte's guidance on onerous performance obligations and RSM's construction practice confirm this: recognize the full loss immediately.

Deferring a known loss overstates income in interim periods and forces a large adjustment later. The downstream effects are predictable:

Three downstream effects of deferred loss recognition on lenders auditors and project performance

  • Lenders and sureties lose confidence when the adjustment hits
  • Auditors flag the deferral as a material misstatement risk
  • Project performance looks healthy right up until it doesn't

Frequently Asked Questions

How do you recognize revenue in construction accounting?

Under ASC 606, construction revenue is recognized over time using the percentage-of-completion method. Divide costs incurred by total estimated costs to get percent complete, then multiply by the contract price for cumulative earned revenue. The current period entry is cumulative earned revenue minus amounts recognized in prior periods.

What is the journal entry for revenue recognition in construction?

The period-end entry debits Construction in Progress (gross profit portion) and credits Contract Revenue for the amount earned. This entry is separate from both the billing entry and the cash collection entry — never combine them.

What is the difference between the percentage-of-completion and completed contract methods?

The percentage-of-completion method recognizes revenue progressively as work is performed — the required approach under ASC 606 for most construction contracts. The completed contract method defers all revenue until project completion and is now limited to contracts where the outcome cannot be reliably estimated.

What are the Construction in Progress and Billings on Construction accounts?

CIP is a balance sheet asset that accumulates costs incurred plus recognized profit on active projects. Billings on Construction tracks amounts invoiced to the client. The net difference between the two at period-end is reported as either a contract asset (underbilled) or a contract liability (overbilled).

How do change orders affect revenue recognition journal entries?

Approved change orders modify the contract price and require a recalculated percent complete plus a catch-up revenue adjustment in the current period. Unapproved or unpriced change orders are variable consideration — include them in recognized revenue only when a significant reversal is unlikely.

What is overbilling and underbilling in construction?

Overbilling occurs when amounts invoiced exceed revenue earned (Billings on Construction > CIP), creating a contract liability. Underbilling occurs when revenue earned exceeds amounts invoiced (CIP > Billings on Construction), creating a contract asset. Both are normal — but monitor each to confirm they reflect timing differences, not recognition errors.