Cut WIP Work 70%: Construction Revenue Recognition for Contractors With AI ERP

Under ASC 606, most long-term construction contracts recognize revenue over time once one of the over-time criteria is met, and the vast majority of contractors measure that progress using a cost-to-cost input method. Getting there compliantly means proving the over-time conclusion, controlling variable consideration like change orders, and running a reconciled WIP schedule every month. Those three disciplines, more than any accounting choice, determine whether your numbers survive an audit.
TL;DR:
- Most contractors rely on the cost-to-cost method for measuring progress, but inconsistent cost coding can inflate revenue prematurely if not monitored monthly.
- Estimating variable consideration like change orders and claims must be conservative, excluding amounts with high risk of revenue reversal, and documented thoroughly.
- A properly maintained WIP schedule with five key columns ensures accurate revenue recognition and builds trust with auditors and sureties.
- Changes in scope, such as contract modifications or termination, must be accounted for with accurate recalculations and clear documentation to prevent misstatements.
- Automated systems like Designflow-build reduce reconciliation errors, support real-time data, and strengthen operational discipline critical for ASC 606 compliance.
Table of Contents
- Understanding Construction Revenue Recognition Under ASC 606
- Cost-to-Cost, Output Methods, and When Completed-Contract Still Applies
- Handling Change Orders, Claims, and the Revenue Reversal Constraint
- Contract Costs and ASC 340-40: What Gets Capitalized
- Building a WIP Schedule Auditors and Sureties Will Trust
- A Worked Cost-to-Cost Example
- How Integrated Systems Reduce Recognition Risk
- Contract Modifications and Termination: What Changes for Recognition
- Practical Expedients Available to Contractors
- Retainage: Recognition Timing Versus Cash Timing
- Joint Ventures and Multi-Element Contracts
- Tax Timing Differences You Need to Track Separately
- Where Accounting Teams Should Focus First
- Reduce Revenue Recognition Risk With DesignFlow Build
- Sources
- FAQ
Understanding Construction Revenue Recognition Under ASC 606
The FASB’s ASC 606 replaced legacy percentage-of-completion guidance with a five-step model that applies to every contract with a customer, construction included. Each step maps to something your project teams already track, which is why the standard is workable in practice even though it reads like dense legal text.
- Step 1, identify the contract: confirm enforceability and that collection is probable. File the signed contract, purchase orders, and any letter of intent that establishes commitment.
- Step 2, identify performance obligations: determine whether design, procurement, and construction are one distinct bundle or several. Most single-site builds qualify for the “series” exception and get treated as one obligation.
- Step 3, estimate the transaction price: include the base contract value plus a defensible estimate of variable items like incentives or anticipated change orders.
- Step 4, allocate the price: for a single performance obligation this step is largely mechanical; for multi-element contracts, use a standalone selling price or a cost-plus-margin proxy.
- Step 5, recognize revenue: confirm you meet an over-time criterion (the customer receives and consumes benefits as you perform, your work creates an asset the customer controls, or the asset has no alternative use to you and you hold an enforceable right to payment for work completed to date) and document that conclusion in writing.
Cost-to-Cost, Output Methods, and When Completed-Contract Still Applies
Cost-to-cost is the default measurement method for most contractors because it ties directly to job costing data you’re already collecting. The math is simple: divide costs incurred to date by total estimated contract costs, then apply that percentage to the total contract price to get cumulative revenue earned.
- Build the cost pool correctly. Include direct labor, materials installed, subcontractor costs, and allocated equipment costs. Exclude uninstalled materials and mobilization from the numerator, since they don’t represent work performed.
- Choose output methods when they fit better. Milestone-based or units-delivered methods make sense when contract value ties to discrete deliverables, like linear feet of pipe installed, rather than to the cost of getting there.
- Reserve completed-contract treatment for narrow cases. This applies mainly when you genuinely cannot make reasonable cost estimates, which is rare for an established contractor and should be the exception, not a default.
- Lock in consistency. Once you pick a method for a contract type, apply it consistently and disclose any change with justification.
The most common control failure isn’t picking the wrong method. It’s inconsistent cost coding that lets mobilization or overhead leak into the percentage-of-completion numerator, inflating progress and revenue prematurely.
Pro Tip: Run a monthly review comparing percent-complete-by-cost against percent-complete-by-schedule for your largest jobs. A gap wider than 10 to 15 points usually signals a cost estimate that needs revisiting before your CFO does.
Handling Change Orders, Claims, and the Revenue Reversal Constraint
Variable consideration covers change orders, claims, incentive payments, and penalties, and ASC 606 requires you to estimate each one using either the expected value or most likely amount method, whichever better predicts the actual outcome.
- Change orders with verbal approval but no signed paperwork: use most likely amount, and only include the portion your team is confident will hold up.
- Performance bonuses tied to schedule: use expected value across multiple probability-weighted scenarios if the bonus has several possible payout tiers.
- Unresolved claims against the owner: these almost always fail the constraint test and should be excluded until resolution is probable.
The constraint exists specifically to stop contractors from booking optimistic revenue that later reverses. Exclude any amount where a significant revenue reversal is reasonably possible if the estimate turns out wrong. Operationally, that means maintaining a change order log with approval status and date, keeping documented evidence of customer sign-off, and reassessing collectibility every reporting period, not just at contract signing.
Contract Costs and ASC 340-40: What Gets Capitalized
ASC 340-40 sets the rules for capitalizing costs to obtain and fulfill a contract, and getting this wrong is one of the more common sources of restatement in construction accounting.
- Capitalize incremental costs to obtain a contract, such as a success-based sales commission, but only if you expect to recover them and the contract term exceeds one year.
- Capitalize costs to fulfill a contract when they relate directly to a specific contract, generate or enhance resources used in satisfying it, and are expected to be recovered.
- Expense as incurred any general and administrative costs, wasted materials from job-site errors, and costs related to past performance already recognized.
- Capitalize and amortize mobilization costs rather than folding them into your cost-to-cost numerator, since mobilization typically doesn’t represent progress toward the customer’s asset.
- Track uninstalled materials separately. Large-value items purchased but not yet installed usually get excluded from the progress calculation until they’re put in place.
- Test for impairment whenever estimated remaining costs plus recognized costs exceed the remaining transaction price, and record an onerous-contract provision when a loss is probable.
Building a WIP Schedule Auditors and Sureties Will Trust
Your work-in-process schedule is the single document that ties your revenue recognition conclusions to your balance sheet, and it’s usually the first thing an auditor or bonding agent asks to see.
- Track five columns per contract: original contract value, approved change orders, costs incurred to date, estimated cost to complete, and billings to date.
- Calculate percent complete from costs incurred divided by total estimated costs, then apply it to total contract value to find earned revenue.
- Map the variance. When earned revenue exceeds billings, record a contract asset (costs and estimated earnings in excess of billings). When billings exceed earned revenue, record a contract liability.
- Reconcile monthly, not quarterly, tying job cost reports to the general ledger and retaining the reconciliation as audit evidence.
Contractors who skip the monthly cadence tend to discover estimate errors in large, embarrassing chunks at year end instead of small, manageable ones each month, which is exactly the kind of surprise that worries sureties evaluating bonding capacity.
A Worked Cost-to-Cost Example
Take a $2 million contract with total estimated costs of $1.6 million. Through month six, the contractor has incurred $800,000 in costs and billed $850,000.
| Metric | Value |
|---|---|
| Total contract price | $2 million |
| Total estimated costs | $1.6 million |
| Costs incurred to date | $800,000 |
| Percent complete | half |
| Revenue earned to date | $1 million |
| Billings to date | $850,000 |
| Contract asset (underbilled) | $150,000 |
Applying that to the $2 million contract price yields $1 million in earned revenue. Since billings of $850,000 trail earned revenue, the contractor records a $150,000 contract asset. The journal entry debits accounts receivable for billings, debits the contract asset for the underbilled amount, and credits revenue for the full $1 million, with cost of revenue recorded at the $800,000 incurred. If next month’s estimated cost to complete rises, the percent-complete calculation shifts immediately and the cumulative catch-up hits that period’s revenue, which is why estimate revisions need their own disclosure note.
How Integrated Systems Reduce Recognition Risk
Manual WIP schedules built in spreadsheets break down exactly where revenue recognition needs the most rigor: cost coding consistency, change-order tracking, and monthly reconciliation. An AI-native ERP built for contractors closes those gaps by keeping job costing, change orders, and accounting in one system instead of scattered across Excel and QuickBooks.
- Integrated job costing by cost code feeds the cost-to-cost calculation directly, with no manual re-entry between field data and the general ledger.
- A live change-order log ties approval status to revenue estimates automatically, supporting the documentation auditors ask for.
- Automated amortization schedules handle mobilization and contract-cost capitalization without a separate spreadsheet.
- A built-in audit trail timestamps every estimate revision, which matters when an auditor asks why percent complete moved.
Contractors using Designflow-build report a 70% reduction in manual data entry and monthly savings of up to $847,000. Near-real-time WIP data also gives finance teams a stronger basis for the “reasonable estimate” standard that variable consideration and cost-to-cost calculations both depend on.
Contract Modifications and Termination: What Changes for Recognition
A contract modification gets treated one of three ways under ASC 606, and picking the wrong bucket throws off your entire revenue trend for that job. If the modification adds distinct goods or services at their standalone selling price, treat it as a separate contract with no impact on the original one. If it adds distinct goods or services not at standalone price, terminate the old contract and create a new combined one, resetting your percent-complete baseline going forward. Most construction change orders fall into the third bucket: they modify the scope of an existing, non-distinct performance obligation, which means you recognize the effect as a cumulative catch-up adjustment to revenue already recorded.
That cumulative catch-up is where a lot of contractors get surprised. If a change order increases both the transaction price and estimated costs, you don’t just apply the new numbers going forward. You recalculate percent complete using the revised total contract value and total estimated costs, then true up revenue as of the modification date, hitting current-period revenue with the full adjustment.
Termination is more straightforward but easy to mishandle procedurally. Once a customer terminates a contract, you stop recognizing revenue for any work not yet performed and evaluate whether costs incurred to date remain recoverable. Any capitalized contract costs under ASC 340-40 tied to that specific contract, such as amortized mobilization costs, need to be written off or accelerated at termination unless they have value on a different contract. Document the termination date, the final cost-to-complete estimate, and any claim for unbilled work separately, since termination disputes are one of the more common triggers for contractor claims litigation.

Practical Expedients Available to Contractors
ASC 606 includes several expedients that specifically reduce the compliance burden for construction contractors without compromising the underlying revenue picture. The most widely used one lets you expense incremental costs to obtain a contract as incurred when the amortization period would be one year or less, which spares smaller change-order-driven jobs from unnecessary capitalization schedules.
A second expedient allows you to recognize revenue in the amount you have a right to invoice when that amount corresponds directly to the value transferred to the customer, effectively simplifying certain time-and-materials or unit-price contracts. This won’t apply to most fixed-price jobs using cost-to-cost, but it’s useful for service and maintenance contracts billed on a straightforward per-unit basis.
Transition itself is largely behind the industry at this point, since ASC 606 has been in effect for years and most contractors have long since moved past the modified retrospective or full retrospective election. What still matters operationally is the disclosure legacy: if your company transitioned using the modified retrospective method, your comparative prior-year statements were prepared under the old standard, and that distinction should stay documented in your files even years later, particularly if a lender or acquirer ever asks to see historical reconciliations. New contractors setting up accounting systems today don’t need to think about transition at all. They simply apply ASC 606 from day one, which is one less complication than firms that lived through the 2018 to 2019 transition window had to manage.
Retainage: Recognition Timing Versus Cash Timing
Retainage creates one of the more persistent points of confusion in construction accounting because it decouples when you recognize revenue from when you actually collect cash. Under ASC 606, retainage withheld by the customer, typically 5% to 10% of billings, does not delay revenue recognition. You still recognize revenue based on percent complete and the transaction price, including the retained amount, as long as collection remains probable.
What retainage does affect is your contract asset and receivable presentation. The retained portion sits on your balance sheet as an unbilled or billed-but-uncollected receivable long after the related revenue hit your income statement, sometimes for months after substantial completion. That gap between recognized revenue and collected cash is exactly why WIP schedules need a separate line tracking retainage held, distinct from standard accounts receivable aging.

The bigger risk with retainage isn’t accounting treatment. It’s collectibility. If a customer disputes final punch-list items or the contract has extended payment terms tied to project closeout, retainage receivables can age well past typical 30 or 60 day terms. When collection becomes doubtful, that changes your assessment under Step 1 of the five-step model, potentially requiring a reserve or, in extreme cases, a reassessment of whether the contract still qualifies for over-time recognition. Contractors managing multiple large jobs should age retainage receivables separately in their WIP reconciliation and flag any balance outstanding more than 90 days past substantial completion for finance leadership review before it becomes a cash flow problem nobody saw coming.
Joint Ventures and Multi-Element Contracts
Joint ventures introduce a layer of complexity because revenue recognition happens at two levels: the JV’s own books, and each partner’s proportional share on their individual financial statements. The JV entity applies ASC 606 exactly as any single contractor would, running its own five-step analysis and WIP schedule. Each partner then typically recognizes its proportional interest using the equity method, which means the partner’s own revenue recognition depends heavily on the accuracy and timeliness of the JV’s internal accounting, a common friction point when partners use different job costing systems.
Multi-element contracts, meanwhile, force a harder question at Step 2 of the model: are design, procurement, and construction one performance obligation or several distinct ones? Most single-site vertical construction qualifies for the series exception, treating the whole project as one obligation recognized over time using a single measure of progress. But design-build contracts, or contracts bundling long-term maintenance with initial construction, often do contain genuinely distinct performance obligations that require separate transaction price allocation.
When that’s the case, allocate the transaction price based on standalone selling price for each obligation, using observable prices from similar standalone engagements where available, or a cost-plus-margin estimate when they aren’t. Getting this allocation wrong doesn’t just misstate one period. It shifts revenue timing across the life of the contract, since design services might be substantially complete while construction work has barely started, and lumping them into one blended percent-complete calculation would recognize design revenue too slowly and construction revenue too quickly.
Tax Timing Differences You Need to Track Separately
ASC 606 governs financial statement reporting, but it does not automatically govern how you recognize revenue for federal tax purposes, and that gap creates a permanent bookkeeping obligation for most contractors. The tax code has its own long-term contract rules, generally requiring the percentage-of-completion method for tax purposes on contracts expected to take more than two years, with a small contractor exception tied to average annual gross receipts.
Even when both book and tax use a percentage-of-completion approach, the inputs rarely match exactly. Tax rules define allocable contract costs differently than ASC 606 defines costs incurred for progress measurement, and capitalized costs under ASC 340-40, like mobilization or contract acquisition costs, may be treated differently for tax depreciation and amortization purposes than they are for book amortization.
The practical result is a book-to-tax timing difference that needs its own reconciliation schedule, tracked contract by contract, not just in aggregate. Deferred tax assets or liabilities arise whenever book revenue recognized in a period differs from taxable income recognized for that same contract in that same period. For a contractor running several large multi-year jobs simultaneously, these differences can swing materially from quarter to quarter, and getting them wrong doesn’t just create an accounting cleanup problem. It can distort estimated tax payments and create unpleasant surprises at extension time. Coordinate this closely with your tax preparer using the same WIP data driving your book revenue recognition, rather than reconstructing a separate tax schedule from scratch each year.
Where Accounting Teams Should Focus First
The technical accounting isn’t where most contractors get tripped up. It’s the operational discipline behind it. Cross-functional documentation between project managers and accounting, on a strict monthly cadence, is what actually makes your over-time conclusions defensible.
Keep change-order evidence current and tied directly to your WIP schedule the same month it happens, not reconstructed at quarter end. Small, repeatable process changes, done consistently, do more to reduce audit friction and protect your bonding capacity than any single accounting policy decision ever will.
— Keith
Reduce Revenue Recognition Risk With DesignFlow Build
Spreadsheets and disconnected QuickBooks entries are where most WIP errors start, since cost data, change orders, and billings live in three different places that someone has to reconcile by hand every month. Designflow-build combines job costing, change-order tracking, and accounting in one system, so your cost-to-cost inputs and contract asset calculations update automatically instead of waiting for a manual month-end pull.

The construction software glossary is a useful starting point if you want to see how terms like WIP, billings-in-excess, and mobilization map to actual platform features, and the AI takeoff and ERP platform page walks through how job costing and change-order data flow into your revenue recognition workflow. If your WIP schedule has been a source of late nights or lender questions, request a demo and see what a reconciled, real-time schedule looks like for your next reporting period.
Sources
For deeper technical reference beyond this guide, start with the standards themselves and the implementation papers major accounting firms have published specifically for contractors.
FAQ
What Are the Five Criteria for Revenue Recognition?
ASC 606’s five steps are identifying the contract, identifying performance obligations, determining the transaction price, allocating that price to each obligation, and recognizing revenue as each obligation is satisfied.
What Does Revenue Recognition Mean in Construction Contracts?
It means recording revenue on a contract as work is performed and control transfers to the customer, rather than only when the project is billed or fully completed.
What Are the Two Main Methods for Recognizing Revenue on Long-Term Contracts?
The two primary approaches are over-time recognition, most often measured with a cost-to-cost input method, and point-in-time recognition, used when over-time criteria aren’t met and revenue is recorded at completion or delivery.
How Does ASC 606 Recognize Revenue for Construction Contracts?
Most construction contracts qualify for over-time recognition because the contractor’s work creates or enhances an asset the customer controls as it’s built, and revenue is measured using cost-to-cost or another progress-based input method.
Does DesignFlow Build Support ASC 606 Compliance Workflows?
Designflow-build’s integrated job costing, change-order tracking, and WIP reporting are built to feed the documentation and cost-to-cost inputs that ASC 606 compliance and audits require.
