RECOGNIZE REVENUE AS THE WORK HAPPENS
Percentage-of-completion (POC) accounting recognizes revenue and gross profit as a construction project progresses — usually measured as costs incurred divided by total estimated costs. It’s the standard method for subcontractors with long-duration jobs and is required for most commercial work above $25M average annual gross receipts. POC is the basis for WIP schedules, drives the P&L for each reporting period, and is what sureties and banks expect to see. Done wrong, it overstates or understates profit. Done right, it’s the foundation of financial visibility.
Cash accounting tells you what came in and went out. Completed-contract waits until the job is done. POC tells you where you are right now — which is the only timing that lets you steer the business.
HOW POC ACTUALLY WORKS
POC recognizes revenue based on the percentage of a project that has been completed during the reporting period. The standard formula:
Percent Complete = Costs Incurred to Date ÷ Total Estimated Costs
If a $2M contract has incurred $600K in costs against a total estimated cost of $1.5M, percent complete is 40%. Recognized revenue is 40% × $2M = $800K. Recognized gross profit is $800K - $600K = $200K. That $200K hits your P&L for the period — not when the GC pays the pay app, not when the project closes out, but as the work earns it.
This is why POC is sometimes called the “cost-to-cost” method. Costs incurred is the measurement basis, total estimated costs is the denominator, and the relationship drives recognition. Other measurement methods exist (units delivered, milestones achieved) but cost-to-cost is the standard for subcontractor work.
WHEN POC IS REQUIRED VS. OPTIONAL
POC is the default method for long-term construction contracts under both GAAP (ASC 606) and tax accounting. The triggers:
AVERAGE ANNUAL GROSS RECEIPTS OVER $25M
The IRS small contractor exception lets businesses under $25M average annual gross receipts (3-year average, indexed for inflation) use the completed-contract method for tax purposes. Above $25M, POC is required for tax. Most subs we work with are below $25M and have a choice for tax, but POC for book/GAAP is still the right answer.
FINANCIALS REVIEWED BY A SURETY OR BANK
Sureties and banks expect POC-based financials for any contractor with multi-period contracts. Completed-contract financials are technically allowed but read poorly — they distort the P&L (huge profit recognition years followed by lean years), make the WIP schedule useless, and signal to the surety that the financial setup isn’t sophisticated. For any sub pursuing bonded work, POC is functionally required.
ANYTHING UNDER $25M WITH MULTI-PERIOD JOBS
Even when not required, POC gives you a much better operational picture. Recognizing revenue as it’s earned means the P&L reflects actual business performance month to month. Completed-contract distorts everything — revenue lumps when jobs close, costs run separately, gross profit by month is meaningless. For decision-making purposes, POC is the right answer regardless of size.
THE WIP SCHEDULE IS POC ON A SPREADSHEET
If you’ve seen a WIP schedule, you’ve seen POC laid out by job. The standard columns:
- Contract amount
- Total estimated costs
- Estimated gross profit
- Costs incurred to date
- Percent complete (costs incurred ÷ total estimated)
- Earned revenue (contract amount × percent complete)
- Billed to date
- Costs in excess of billings (CiE) — underbilled position
- Billings in excess of costs (BiE) — overbilled position
The WIP schedule is POC applied job by job. The aggregated CiE and BiE positions flow to the balance sheet. The earned revenue total flows to the P&L. Every number in your financials is downstream of the POC calculation on each active job.
THREE WAYS SUBS BREAK POC
TOTAL ESTIMATED COSTS NEVER GET UPDATED
The bid number stays as “total estimated costs” for the life of the job. When the job runs over — change orders, scope creep, productivity loss — the estimate doesn’t move. Percent complete calculations use a stale denominator. Recognized revenue and gross profit get progressively wrong. By job close, the cumulative error is significant. Fix: update total estimated costs monthly based on cost-to-complete assessments by the PM, not just at the start.
COSTS INCURRED INCLUDES MATERIAL NOT YET USED
Big material deliveries that arrive on site but haven’t been installed get coded as job cost. Cost-to-cost POC overstates percent complete because the materials are paid for but not consumed. Fix: track materials-on-hand separately and exclude them from cost-to-date until installed. This is one of the most common WIP errors and one of the most visible to sureties during review.
CHANGE ORDERS NOT BOOKED PROPERLY
Approved change orders increase both contract value and estimated costs. Pending change orders shouldn’t be in either until approved. Many subs add pending COs to revenue but not to costs, which inflates margin. Or they add approved COs to revenue but not to total estimated costs, which overstates percent complete. CO accounting is granular work that most bookkeepers don’t handle right. CFO-level review catches it.
THE TRADE-OFFS, SIDE BY SIDE
| FACTOR | PERCENTAGE-OF-COMPLETION | COMPLETED-CONTRACT |
|---|---|---|
| Revenue timing | Recognized as work performed | Recognized at project completion |
| P&L smoothness | Reflects ongoing operations | Lumpy — spikes when jobs close |
| WIP schedule | Standard, drives reporting | Less developed, often missing |
| Surety reading | Expected, supports capacity | Acceptable but limits capacity |
| Tax timing | Earlier income recognition | Deferred until job close |
| Operational visibility | Month-by-month performance clear | Performance visible only at close |
Completed-contract has one advantage: deferred tax recognition. For some small contractors with cash-flow-tight tax situations, completed-contract for tax (combined with POC for book) is a legitimate strategy. But that’s a tax planning conversation with your CPA, not a reason to run completed-contract for management reporting.
WHAT MAKES POC ACTUALLY USEFUL
POC done with stale estimates, undisciplined cost coding, and sloppy CO accounting produces numbers that look right but lie. The financial statements look clean. The WIP schedule looks reasonable. The job-level reality is hidden underneath.
POC done right requires monthly cost-to-complete reviews by PMs, a cost coding structure that splits materials-on-hand from materials-installed, disciplined change order accounting, and reconciliation between job-level books and project-level reality. That’s CFO work, not bookkeeper work. The bookkeeper records transactions; the CFO ensures the structure produces accurate POC.
Same POC method. Different financial picture. Depends entirely on whether the structure underneath is built to support it.