Percentage-of-Completion Accounting: A Real Job Walkthrough

A step-by-step walkthrough of percentage-of-completion accounting using a real $1.2M medical office buildout, covering earned revenue, WIP, overbillings, and month-end entries.

EZBilling Team Apr 24, 2026 5 min read

The Method That Actually Matches Revenue to Work Done

Most GC owners understand cash flow intuitively. What trips them up is recognizing revenue the right way on paper, especially when jobs span multiple months or fiscal years. Percentage-of-completion (POC) accounting ties the revenue you report to the work you have actually completed, not to the cash sitting in your bank account or the invoices you have sent out. Get it wrong and your P&L looks like noise: fat months followed by lean months, with no clear picture of whether you are actually making money on any given job.

This walkthrough uses one real-world scenario to show exactly how POC accounting works, what numbers go where, and what the entries look like at month-end.

The Scenario: Riverview Medical Office Buildout

Your company, Summit Commercial Builders, has a contract to build out a 12,000 SF medical office. The contract value is $1,200,000. Your estimated total cost to complete is $960,000, which gives you a projected gross margin of $240,000, or 20%.

The job started in March. You are now closing April. Here is where things stand at April 30:

  • Costs incurred through April 30: $384,000
  • Estimated cost to complete: $576,000 (unchanged from original estimate)
  • Total estimated cost: $960,000
  • Amount billed to owner through April 30 (G702 pay apps): $420,000
  • Retainage held at 10%: $42,000
  • Net billed to date: $378,000

Step 1: Calculate Percent Complete

Under POC using the cost-to-cost method, percent complete is calculated as costs incurred to date divided by total estimated costs.

$384,000 / $960,000 = 40.0% complete

That percentage drives everything downstream. It tells you how much of the contract revenue you have earned, regardless of what you have billed.

Step 2: Calculate Earned Revenue

Apply the percent complete to the total contract value:

40.0% x $1,200,000 = $480,000 earned revenue to date

You have earned $480,000 in revenue through April 30. That is the number that belongs on your income statement, not $420,000 (what you billed) and not $378,000 (what you collected net of retainage).

Step 3: Calculate Gross Profit Earned

Earned revenue minus costs incurred:

$480,000 - $384,000 = $96,000 gross profit earned to date

That is exactly 20%, which makes sense because your cost estimate has not changed. If your cost-to-complete estimate had increased, your percent complete would have shifted and your earned margin would have compressed accordingly. That is one of the most powerful features of POC: it forces you to update estimates regularly or your reported income will be wrong.

Step 4: Identify the Overbilling or Underbilling

This is where most GC owners get confused. Billed to date is $420,000. Earned revenue is $480,000. The difference is a $60,000 underbilling.

Underbilling means you have done more work than you have invoiced for. On your balance sheet, this appears as an asset called Costs and Estimated Earnings in Excess of Billings, or informally, the WIP asset or underbilling. Some systems label it Account 1410 or similar depending on your chart of accounts.

If the math were reversed (billed more than earned), you would have an overbilling, which sits as a liability: Billings in Excess of Costs and Estimated Earnings. Overbillings are often called deferred revenue or bill-ahead liability.

In this case, Summit has been conservative with its billings and is sitting on $60,000 in earned but unbilled revenue. That is real money on the table.

Step 5: The Journal Entry at April Month-End

Assuming this is the first month-end close for this job, your bookkeeper or controller posts the following:

  • Debit: Costs and Estimated Earnings in Excess of Billings (Asset) $60,000
  • Credit: Revenue, Job #2024-07 Riverview $60,000

Separately, the $384,000 in job costs already hit the books when invoices from subs were posted and payroll was allocated. Those debit job cost accounts (CSI Division 03 for concrete, Division 09 for finishes, etc.) and credit accounts payable or payroll liability. POC does not change cost recognition; it adjusts revenue recognition to match the cost curve.

You also have retainage receivable on the balance sheet. The $42,000 withheld by the owner is not lost. It lives in Account 1220 (Retainage Receivable) as a current or long-term asset depending on when it is expected to be released. It does not affect revenue recognition under POC; the full $480,000 is still earned revenue. Retainage is a collection timing issue, not a revenue issue.

Step 6: What Changes If Your Estimate Changes

Now imagine your site super flags a problem in May: unforeseen MEP coordination issues will add $48,000 to your cost-to-complete. Your new total estimated cost is $1,008,000.

At May month-end, suppose costs incurred are now $480,000.

New percent complete: $480,000 / $1,008,000 = 47.6%

New earned revenue: 47.6% x $1,200,000 = $571,200

New gross profit earned: $571,200 - $480,000 = $91,200

Your total earned margin has dropped from a projected $240,000 to a projected $192,000 (the $1,200,000 contract minus the $1,008,000 new estimated cost). POC picks up that compression immediately in May, rather than hiding it until job closeout. That is the whole point. Early warning matters. It gives you time to submit a change order, renegotiate with subs, or at minimum prepare the owner conversation before the problem compounds.

What Happens Without POC

Contractors on straight cash-basis or invoice-basis accounting report revenue when they bill and expenses when they pay. On a job like Riverview, they might show a big profit in March when the first draw is funded, then show losses in months where they incur heavy costs with no corresponding billing. The job-level P&L is unreadable, and a consolidated P&L across five active jobs is worse. Lenders, bonding agents, and CPAs who look at your financials for surety credit or year-end tax planning will spot this immediately. POC is not just an accounting preference; it is required under GAAP for many GCs and is the basis for most bonding underwriting.

Tools That Make This Easier

Running POC manually in a spreadsheet on five or ten concurrent jobs is manageable until it is not. One missed estimate update or a transposed cost figure and your WIP schedule is off. The reconciliation process between your AIA schedule of values (G703), your job cost ledger, and your WIP asset on the balance sheet has to tie out every single month. Any gap between those three documents is a red flag on a bonding review.

Construction accounting works better when the software understands jobs, cost codes, and pay apps natively. EZBilling does.

Ready to simplify your AIA billing?

EZBilling handles G702/G703 progress billing, job costing, and compliance tracking in one platform built for general contractors.

Start 30-Day Free Trial Schedule a Demo