Percentage of Completion vs Completed Contract: A Contractor's Guide to Construction Revenue Recognition
Imagine you start a $4 million hospital expansion in March, finish framing by December, and don't hand over the keys until the following October. When did you actually earn that revenue? If you booked all $4 million in October, your tax bill, your bank covenants, and your bonding capacity would all swing wildly between two calendar years. That whiplash is exactly why construction accounting has its own playbook.
Most industries can match revenue to invoices and call it a day. Construction can't. Projects span years, costs come in unpredictable waves, and customers pay on milestones that rarely align with the work being performed. Two methods solve this puzzle: the Percentage of Completion Method (PCM) and the Completed Contract Method (CCM). Picking the wrong one can mean missed tax savings, blown loan covenants, or an income statement that bears no resemblance to economic reality.
This guide walks through how each method works, when each is required, and how to keep your books defensible when an auditor, surety, or IRS agent comes asking.
Why Construction Accounting Is Different
A typical retail business earns revenue when a customer walks out with a bag. Construction doesn't have that moment. A general contractor might pour foundations in Q1, frame walls in Q2, and finish punch lists in Q4 of the following year. Recognizing all the revenue at hand-off would distort financial statements and overstate or understate every quarter in between.
So contractors need a way to spread revenue across the project's life in a way that reflects actual progress. That's the job of these two methods.
A few terms you'll see throughout:
- Long-term contract: A contract that won't be completed in the same tax year it begins. The IRS uses this definition in Section 460.
- Job costing: Tracking direct labor, materials, equipment, and overhead at the project level rather than the company level.
- WIP (Work in Progress) schedule: A report listing every active project's contract value, estimated cost, cost incurred to date, billings, and earned revenue.
The Percentage of Completion Method (PCM)
PCM recognizes revenue gradually as the project progresses. If you've completed 30% of a $1 million contract by year-end, you book $300,000 in revenue and the proportional share of estimated profit.
How to Calculate Percent Complete
The most common approach is the cost-to-cost method:
Percent complete = Costs incurred to date / Total estimated costs
A worked example for a $2,000,000 contract with $1,500,000 in estimated total costs:
- Costs incurred through December: $600,000
- Percent complete: $600,000 / $1,500,000 = 40%
- Revenue to recognize: 40% × $2,000,000 = $800,000
- Gross profit recognized: $800,000 − $600,000 = $200,000
Other progress measures include physical units installed (tons of steel, square feet of drywall) or labor hours. Cost-to-cost dominates because it's the easiest to audit and ties directly to the general ledger.
When PCM Is Required
Under U.S. GAAP, ASC 606 reframed revenue recognition around "performance obligations satisfied over time." For most construction contracts that's still PCM in everything but name. The standard generally requires over-time recognition when:
- The customer simultaneously receives and consumes the benefit (most service work)
- The customer controls the asset as it's created (most construction-on-customer-land)
- The asset has no alternative use to the contractor and there's an enforceable right to payment for work to date
For tax purposes, IRC Section 460 requires PCM for long-term contracts unless the contractor qualifies for a small contractor exception (more on that below).
Strengths and Trade-offs of PCM
PCM produces financial statements that match economic reality. Bonding companies and lenders prefer it because it shows steady, predictable performance instead of lumpy year-end spikes. The downside: it depends on the contractor's ability to estimate total costs accurately. Garbage in, garbage out. If your final cost estimate drifts by 15%, your reported profit drifts with it.
PCM also accelerates taxable income. You pay tax on profit before the customer has paid the final invoice, which can pinch cash flow on slow-paying jobs.
The Completed Contract Method (CCM)
CCM is the simpler cousin: defer all revenue, costs, and profit recognition until the project is substantially complete. During the project, costs accumulate on the balance sheet as a "Construction in Progress" asset and billings stack up as a liability. When the job closes out, the accumulated balances flush through the income statement at once.
When CCM Makes Sense
CCM is appealing for tax deferral. If a contractor finishes a $500,000-profit project in January 2027, recognizing that profit in 2027 instead of spreading it across 2025–2027 pushes the tax bill out by years.
It also works for projects where progress genuinely can't be estimated reliably—small home builders with one-off custom builds, for example.
Why GAAP Doesn't Love CCM
Under ASC 606, CCM only fits when the contract represents a single performance obligation satisfied at a point in time. For most construction work, the over-time criteria are met, and CCM isn't an option for GAAP financial statements.
The IRS, on the other hand, allows CCM for contractors who qualify for the small contractor exception.
The Small Contractor Exception (IRC Section 460)
Here's where tax planning gets interesting. The IRS lets smaller contractors skip PCM if both conditions are met:
- Two-year contracts. The contract must be expected to complete within two years of starting.
- Gross receipts test. Average annual gross receipts for the three prior tax years must fall under the inflation-adjusted threshold. The original Tax Cuts and Jobs Act (TCJA) limit was $25 million; for 2026 the inflation-adjusted threshold sits around $31 million.
Contractors who clear both tests can use CCM, the cash method, or any other "exempt-contract" method. That's a powerful planning lever for closely held builders sitting near the threshold—careful entity structuring and revenue timing can keep them under the limit and on a deferral-friendly method for years.
The OBBBA legislation that took effect for contracts entered in 2026 expanded several of these exceptions, so contractors near the cutoff should run the numbers with their CPA before locking in a method for the year.
Job Costing: The Foundation Beneath Both Methods
Neither method works without solid job costing. If you can't tell what each project actually cost, you can't compute percent complete and you can't close out a contract under CCM either.
A defensible job costing system tracks at minimum:
- Direct materials. Lumber, concrete, steel, fixtures—coded to the project and ideally to the cost code (e.g., 03-300 Cast-in-Place Concrete using CSI MasterFormat).
- Direct labor. Hours and burdened wages by employee, by cost code. Time entry needs to happen the same week the work is done; reconstructing it from memory at month-end is how job costs lie.
- Equipment. Owned equipment should be charged to jobs at internal rental rates that capture depreciation, fuel, and maintenance.
- Subcontractors. Track committed cost (PO or subcontract amount), billed-to-date, and retainage held separately.
- Overhead. Allocate field overhead (project managers, supers, jobsite trailers) using a defensible driver—labor hours and direct cost are common.
Cost codes are non-negotiable. "Concrete" as a single line tells you nothing. "Footings concrete," "slab on grade concrete," and "site curbs concrete" tell you which crew is bleeding money.
The WIP Schedule: Where It All Comes Together
The WIP schedule is the construction CFO's most-used report. Each row is a project; each column is a number you need to manage profit and cash. A typical WIP schedule includes:
| Column | What It Means |
|---|---|
| Contract value | Original contract plus approved change orders |
| Estimated total cost | Best current estimate—update monthly |
| Cost to date | Actual costs through the reporting date |
| Percent complete | Cost to date / estimated total cost |
| Earned revenue | Percent complete × contract value |
| Billed to date | Total invoiced (net of retainage as appropriate) |
| Over/under billing | Billed minus earned |
The total earned revenue on the WIP should reconcile exactly to revenue on the income statement, and the total over/underbillings should match the related liability and asset accounts on the balance sheet. If those numbers don't tie out, your books are wrong somewhere.
Overbillings and Underbillings: The Cash Flow Trap
Overbilling (billed > earned) shows up as a current liability—often labeled "billings in excess of costs and estimated earnings." You've collected money for work you haven't yet performed. Front-loaded billing is normal early in a project and helps fund work, but it's borrowed money. Spend it on the next project's payroll and you'll find yourself short of cash when your costs finally catch up to your billings near the end of the job.
Underbilling (earned > billed) is a current asset—"costs and estimated earnings in excess of billings." It usually signals slow billing, unapproved change orders sitting in limbo, or scope creep that hasn't been documented. Chronic underbilling is a cash flow killer; it means your bank is financing your customer's project.
A healthy contractor reviews WIP monthly, ages overbillings and underbillings, and closes the gap quickly. Sureties and lenders study the trend just as closely as the period balance.
Common Mistakes That Land Contractors in Trouble
A few patterns show up again and again in audits and busted bond programs:
- Stale cost estimates. The "estimated total cost" column is the linchpin of PCM. If project managers don't push it monthly, percent complete drifts off reality and reported profit becomes fiction. Push back when a PM says "we're fine"—make them show the data.
- Booking unapproved change orders. Pending change orders aren't revenue until the customer agrees to pay. Including them inflates earnings and creates write-downs later.
- Spending overbilling cash. Treating billings-in-excess as profit is the #1 reason healthy-looking contractors run out of cash mid-job.
- Mixing methods inconsistently. GAAP-PCM books and tax-CCM returns are fine when the differences are tracked. Sloppy reconciliation between book and tax is what triggers IRS adjustments.
- No retainage tracking. Withheld retainage on customer billings is revenue you've earned but won't collect until close-out. Forgetting to age it warps cash forecasts.
Picking the Right Method for Your Business
If you're a public company or seeking GAAP financial statements, ASC 606 likely points you to PCM (or its over-time equivalent). If you're a small contractor under the gross receipts threshold, CCM offers real tax deferral but only if you can stomach lumpier earnings and tighter scrutiny when the bonding company asks for interim numbers.
Many contractors run a hybrid: PCM for GAAP financials given to the bank and bonding company, CCM for tax returns. That's allowed under IRS rules as long as you maintain proper Schedule M reconciliations. Talk it through with a CPA who actually works in construction—general practitioners often default to PCM-only without exploring the legitimate tax savings on the table.
Keep Your Job Costs Honest from Day One
Construction accounting only works when the underlying records are clean. Hand-typed spreadsheets with formulas overwritten by interns will eventually mislead a project manager, miss a change order, or double-count a cost. The contractors who survive audits and stay bondable share one habit: a single source of truth for every transaction, with an audit trail that traces every WIP number back to a coded invoice or timesheet.
Plain-text accounting is uniquely well-suited to this discipline. Every transaction is a human-readable entry, every change is captured in version control, and you can run the same set of books through PCM and CCM logic simultaneously to compare what each method tells you. Beancount.io gives you that transparency without the vendor lock-in of legacy construction ERPs—your data stays in plain text files you control. Get started for free and pair it with Fava for the dashboards you'd expect from any modern accounting platform.
Sources
- Percentage of Completion vs. Completed Contract Method – NetSuite
- The Future of the Percentage-of-Completion Method: ASC 606 – Foundation Software
- Construction Industry Audit Technique Guide (Publication 5522) – IRS
- Construction Accounting: Examining IRS Code Section 460 – Corrigan Krause
- Overbilling vs. Underbilling in the Construction Industry – Deltek
