پرش به محتوای اصلی
Beancount.io LogoBeancount.io

Percentage-of-Completion Accounting for Contractors: Building an ASC 606 WIP Schedule

زمان مطالعه 9 دقیقهMike ThriftMike Thrift
Percentage-of-Completion Accounting for Contractors: Building an ASC 606 WIP Schedule

A general contractor calls her bookkeeper in a panic. The bank statement shows more cash than she's ever had, three jobs are humming along, and yet her accountant just told her the company actually lost money this quarter. How is that possible when the checking account looks healthiest it's ever been?

The answer, almost always, is billing that's drifted away from reality. The contractor has been front-loading invoices — billing ahead of the work actually done — and spending that cash on payroll, equipment, and the next job's mobilization costs. On paper it looks like a great month. In the WIP schedule, it's a warning sign.

This is the exact problem percentage-of-completion accounting exists to catch. If you run a construction company, a design-build firm, an engineering practice, or any business that works on long, multi-month contracts, understanding this method — and the work-in-progress (WIP) schedule that comes with it — is one of the highest-leverage things you can do for your bottom line and your ability to get bonded for bigger work.

2026-07-08-percentage-of-completion-accounting-contractors-wip-schedule-asc-606

Why Contractors Can't Just Use Cash-Basis Accounting

Most small businesses can get away with simple cash-basis bookkeeping: money in, money out, done. Contractors can't, because construction contracts routinely span months or years, with costs and billings landing in different accounting periods than the revenue they represent.

If a contractor waited until a project finished to record any revenue, a company running six-month or year-long jobs would show wildly inconsistent, misleading financials — a loss in month one when materials get purchased, a giant windfall in month twelve when the final invoice clears. Lenders, sureties, and even the contractor's own management would have no reliable read on how the business is actually performing in real time.

Percentage-of-completion (POC) accounting fixes this by recognizing revenue and profit gradually, in proportion to the work actually completed — not when cash changes hands, and not only at the finish line.

How the Percentage-of-Completion Method Works

The most common way to measure "how much work is actually done" is the cost-to-cost method, which compares costs spent so far to the total costs you expect the job to require:

Percent Complete = Costs Incurred to Date ÷ Total Estimated Costs

Say a contractor takes on a $1,000,000 remodel project and has spent $200,000 so far building it out. The job is estimated to cost $1,000,000 total to complete. That means:

$200,000 ÷ $1,000,000 = 20% complete

If the contract price is $1,000,000, the contractor should have recognized $200,000 of revenue by this point — regardless of how much has actually been invoiced to the client. That gap between "revenue earned" and "amount billed" is exactly what a WIP schedule exists to track.

Other progress measures exist — units completed, labor hours, engineering milestones — but cost-to-cost is by far the most widely used because most contractors already track job costs closely for estimating and bidding purposes.

Building a Work-in-Progress (WIP) Schedule

A WIP schedule is the report that operationalizes percentage-of-completion accounting. It's typically rebuilt every month, project by project, and it needs four core inputs for each job:

  1. Contract Price — the total agreed contract value, including any approved change orders
  2. Total Estimated Cost — everything the job is expected to cost from start to finish, including change orders
  3. Costs Incurred to Date — the actual direct and indirect costs spent so far
  4. Progress Billings to Date — the total amount actually invoiced to the customer so far

From these four numbers, the schedule calculates:

  • Percent Complete (costs incurred ÷ total estimated cost)
  • Earned Revenue (percent complete × contract price)
  • Earned Gross Profit (earned revenue − costs incurred)
  • Over/Underbilling (progress billings − earned revenue)

That last line is where most of the useful information — and most of the risk — lives.

Overbilling vs. Underbilling: The Trap Most Small Contractors Fall Into

Overbilling happens when you've invoiced more than you've actually earned based on percent complete. You've collected cash for work you haven't finished yet. On the balance sheet, this shows up as a liability (sometimes still labeled "billings in excess of costs," though ASC 606 has moved to cleaner terminology — more on that below).

A little overbilling is normal and even healthy — it funds mobilization, materials, and payroll ahead of collecting the final draw. The trap is when a contractor spends that extra cash on things unrelated to the job it came from: new equipment, distributions, or bonuses. When the job's real costs finally catch up, there's no cash left to cover them, and the contractor is suddenly funding the shortfall out of pocket or with a line of credit.

Underbilling is the more dangerous version, and it's easy to miss because there's no cash-flow alarm bell ringing yet — the opposite, actually. Underbilling means you've done more work than you've invoiced for. You've essentially extended your client an interest-free loan equal to the gap. Common causes include slow change-order approvals, milestone billing schedules that lag actual progress, or a project manager who's simply behind on submitting draws.

Left unmanaged, underbilling quietly drains a contractor's cash reserves. The company looks profitable on the income statement (revenue has been recognized) while the bank account tells a completely different story, because the cash for that "earned" revenue hasn't arrived yet. Enough underbilled jobs running simultaneously can make it nearly impossible to make payroll, even though the business is — technically — profitable.

Common Mistakes That Corrupt the WIP Schedule

The WIP schedule is only as good as the estimates that feed it, and a few habits reliably wreck its accuracy:

  • Eyeballing percent complete. A superintendent estimating "we're about 60% done" from a walk-through, instead of using actual cost data, introduces guesswork exactly where precision matters most.
  • Rolling forward stale cost-to-complete estimates. If nobody updates the "costs left to finish" figure when conditions change — a supplier price increase, a schedule delay, rework — the percent-complete calculation silently drifts from reality.
  • Reviewing WIP only at year-end. By the time a once-a-year review catches a job that's badly underbilled or has a cost overrun, the problem has often been compounding for months and is much harder to fix.
  • Ignoring change orders until they're fully executed. Costs from a change order often hit the job before the paperwork is signed, distorting the percent-complete math until the contract price catches up.

The fix for all of these is the same: rebuild the WIP schedule monthly, tie it to real job-cost data (not memory), and review it as a management tool — not just a year-end compliance exercise.

Why This Matters for Bonding Capacity

For contractors who need surety bonds to win larger public or private work, the WIP schedule isn't just an internal management tool — it's one of the first things a surety underwriter asks to see. Underwriters use it to gauge how consistently a contractor estimates jobs, whether overbilling cash is being managed responsibly, and whether underbilling patterns suggest cash-flow stress on active projects.

A clean, consistently maintained WIP schedule can meaningfully increase a contractor's bonding capacity, because it demonstrates financial discipline and predictable project performance. An inconsistent or manually cobbled-together WIP schedule does the opposite — sureties read it as a sign that the contractor doesn't have a firm handle on job costs, which can cap bonding capacity right when a company is trying to grow into bigger contracts.

The ASC 606 Update: New Language, Same Core Idea

Under current GAAP (ASC 606), the percentage-of-completion method is still the right approach for most long-term construction and engineering contracts, but the framework shifted its emphasis from "costs incurred" toward "when the customer gains control of the asset or service being created" — usually still measured, in practice, using the same cost-to-cost approach.

ASC 606 also replaced the old terminology. Instead of "costs and estimated earnings in excess of billings" and "billings in excess of costs and estimated earnings," contractors now report:

  • Contract assets — revenue earned but not yet billed (the old "underbilling" concept)
  • Contract liabilities — amounts billed or collected ahead of performance (the old "overbilling" concept)

The mechanics of the calculation are largely the same; what changed is the label on the balance sheet line and a more explicit requirement that a contractor have reliable cost estimates and a clear method for tracking progress before applying the method at all. If your cost estimates are consistently unreliable, that's a sign to fix the underlying job-costing process before leaning harder on percentage-of-completion reporting.

Keeping the Numbers Straight

None of this works without clean, current job-cost data. A WIP schedule built on stale, hand-typed spreadsheets is exactly how overbilling and underbilling sneak up on a contractor in the first place. Every job needs its costs tracked in a system that's easy to reconcile against the general ledger, easy to audit when a surety or lender asks questions, and easy to update the moment a cost estimate changes.

This is where plain-text, version-controlled bookkeeping earns its keep. Because every transaction lives in a human-readable ledger file instead of a locked database, you can see exactly when a job-cost estimate changed, diff two versions of a WIP calculation, and hand a surety underwriter a complete, auditable history — not just a snapshot.

Simplify Your Financial Management

Whether you're building a monthly WIP schedule for the first time or trying to clean up job-cost data that's drifted from reality, the foundation is the same: accurate, transparent, up-to-date records. Beancount.io offers plain-text accounting that's transparent, version-controlled, and AI-ready — no black boxes, no vendor lock-in, and full visibility into every job's numbers. Get started for free and see why contractors and finance professionals are switching to plain-text accounting.

زمان مطالعه 11 دقیقه

How to Read a Construction WIP Schedule: Percentage-of-Completion, Over- and Under-Billing

A construction WIP schedule recognizes revenue as work is performed using cost-to-cost percentage-of-completion, then exposes over- and under-billing on every…

construction
job-costing
زمان مطالعه 18 دقیقه

The Construction WIP Schedule: Percentage-of-Completion Accounting Under ASC 606

How construction contractors use the work-in-progress schedule and ASC 606 percentage-of-completion accounting to surface overbillings, underbillings, profit…

construction
job-costing
زمان مطالعه 12 دقیقه

AIA-Style Progress Billing With Forms G702 and G703: A Contractor's Guide to Schedule of Values, Retainage, Change Orders, and ASC 606

How AIA Forms G702 and G703 work together, how to build a defensible schedule of values, handle retainage and change orders on the continuation sheet, and…

construction
job-costing
زمان مطالعه 11 دقیقه

Percentage of Completion vs Completed Contract: A Contractor's Guide to Construction Revenue Recognition

A side-by-side comparison of the Percentage of Completion (PCM) and Completed Contract (CCM) methods for construction revenue recognition, with worked…

construction
job-costing
زمان مطالعه 16 دقیقه

AIA Pay Applications, Retainage, and WIP Schedules: How Construction Billing Ties to GAAP Revenue Recognition

AIA G702 and G703 pay applications, schedules of values, retainage, WIP schedules, and over/underbilling reconciliations are what tie construction billing to…

construction
revenue-recognition