For controllers, CFOs and project accountants at contractors of 50 to 500 people who approve subcontractor pay applications and sign off the WIP schedule. Billing consulting work in stages? This guide is not for you.
Progress billing is the construction practice of invoicing a contract in installments, each one claiming a cumulative percent complete for every line of the schedule of values. That percentage is a claim, not a measurement. Controlling it means comparing the percent billed with the percent of cost incurred and the percent of work verified in place, line by line, before you pay a subcontractor or bill an owner. The gaps between those three numbers are your overbillings and underbillings, and they belong on the WIP schedule every month.
Key takeaways
- On the AIA G703 continuation sheet, the percent complete of each line includes materials stored but not yet installed, because column G adds completed work and stored materials before dividing by the scheduled value.
- ASC 606-10-55-21 requires a cost-based measure of progress to exclude wasted materials and, under set conditions, uninstalled materials, so the percent billed and the percent earned differ by design.
- Billing ahead of earned revenue creates a contract liability, reported by contractors as billings in excess of costs; earning ahead of billing creates a contract asset.
- On federal construction contracts, FAR 52.232-5 treats any amount billed for non-conforming work as unearned and charges interest on it from the 8th day after receipt.
What is progress billing, and what does it actually claim?
Progress billing is a contract payment method in which the contractor bills the value of work completed to date, period by period, against a schedule of values agreed at the start of the job. In US construction the standard format is the AIA G702 application for payment and its G703 continuation sheet, one line per scheduled item.
Each application is cumulative. It does not bill "this month's work" in isolation. It restates the total completed to date on every line, subtracts what was certified before, and asks for the difference, less retainage. That cumulative logic is what makes progress billing controllable, because every new application has to be consistent with the previous one.
What the application actually asserts is a percentage per line. Phacet's analysis of construction accounts payable, published in May 2026, starts from the same point: a subcontract invoice represents a percentage of completion against a defined scope, and the invoiced amount has to match the percentage claimed against the schedule of values. The math of the form is easy to verify. Whether the percentage is true is the part that needs a control.
Why the percent on a pay application is not the percent you earned
There are three different ways to say how far a job has progressed, and they answer three different questions. A contractor who tracks only one of them cannot see the other two drifting.
| Measure | Where it comes from | What it includes | What distorts it |
|---|---|---|---|
| Percent billed | The pay application: column G divided by column C on the AIA G703 | Work completed plus materials presently stored | Front-loaded schedules of values, optimistic estimates, stored materials that never move |
| Percent of cost incurred | Job cost: costs incurred to date divided by estimated total cost | Labor, materials, subcontracts actually charged to the job | A stale cost-to-complete estimate, wasted materials, uninstalled equipment |
| Percent verified in place | Superintendent, site walk, architect or owner's representative | Work physically installed and accepted | Nothing structural, but it is slow and rarely recorded line by line |
The first two numbers diverge by construction. AIA's own instructions for the G703 say to enter in column F "the value of Materials Presently Stored for which payment is sought", then to total columns D, E and F in column G and divide by the scheduled value. Stored materials therefore raise the percent billed.
The accounting standard pulls the other way. ASC 606-10-55-21 tells an entity using a cost-based input method to exclude "the effects of any inputs that... do not depict the entity's performance." It names two cases: costs from significant inefficiencies, such as unexpected wasted materials, and goods whose cost is not proportionate to progress, typically equipment delivered but not yet installed. Revenue on those goods is recognized at cost, with no margin.
Put the two texts side by side and the gap is structural, not a bookkeeping error: the form you bill on counts uninstalled materials as progress, and the standard you report under does not. Practitioners feel it without naming it. As one controller put it in a thread on r/QuickBooks, a WIP report needs you to "compare costs incurred vs percentage complete vs what you've actually billed."
The published guides mostly stop at the form. Across the five most visible progress billing pages we reviewed on 27 September 2026, 9,444 words in total, the terms cost-to-cost, costs incurred, cost to complete, overbilling and underbilling appear zero times, while lien waivers come up 23 times and G702/G703 19 times. The form gets explained. The number it produces rarely gets questioned.
How do you compute progress billing, and how do you check it?
You compute a progress bill by taking the total completed and stored to date on each schedule of values line, subtracting retainage, then subtracting what was already certified. You check it by testing each input of that formula against evidence, not against the previous form.
Example. A structural steel subcontract carries a $400,000 line. The previous application certified $100,000 of work, 25%. This month the subcontractor claims $120,000 of new work and $40,000 of steel stored in its yard. Column G reaches $260,000, 65% of the line. With 10% retainage, $26,000 is held in total, and the amount requested is $234,000 minus the $90,000 already certified, so $144,000.
Now the check. Your superintendent's log shows steel erected on about 45% of the line, $180,000, against $220,000 of work claimed in columns D and E. The yard stock has a delivery ticket and photos, so the $40,000 of stored material holds. Paying on verified progress gives a column G of $220,000 and a payment of $108,000. The $36,000 difference is not a dispute yet. It is work the subcontractor has not done, and you would otherwise have financed it.
Four tests cover most of what goes wrong in the calculation itself:
- Consistency. Column D on this application equals D plus E on the previous one, and no line exceeds 100% of its scheduled value.
- Scope. Every scheduled value matches the subcontract plus approved change orders. A line that grew without a change order is a price change, not progress.
- Stored materials. Column F is backed by evidence and falls as materials get installed. AIA's instructions require the column to be recalculated at the end of every pay period.
- Retainage. The rate applied matches the subcontract and any reduction milestone it defines.
Is progress billing an asset or a liability?
Progress billing itself is neither: it is the invoicing trail. The asset or liability comes from comparing what you billed with what you earned. Billing ahead of earned revenue creates a liability, earning ahead of billing creates an asset. The question keeps coming back, including in a thread on r/CPA asking why progress billing sits in current liabilities.
ASC 606 answers it in two paragraphs. Under 606-10-45-2, a contract liability is an obligation to transfer goods or services for which the customer has already paid, or for which payment is already due. Under 606-10-45-3, when the entity performs before payment is due, it presents a contract asset. Contractors put their own labels on the same positions in the WIP schedule.
| Position on the job | WIP schedule label | ASC 606 presentation | What it usually signals |
|---|---|---|---|
| Billed more than earned | Billings in excess of costs and estimated earnings (overbilling) | Contract liability | Healthy cash, or a schedule of values that front-loads early lines |
| Earned more than billed | Costs and estimated earnings in excess of billings (underbilling) | Contract asset | Unbilled work, a stalled change order, or costs running ahead of progress |
Neither position is wrong on its own. Sureties and lenders read them as a pair, job by job, and a rising overbilling next to a flat cost ratio usually means the job is being billed faster than it is being built. That cash will have to be paid back in work later, often at a worse margin.
How to control subcontractor pay applications before you pay them
You control a subcontractor pay application by testing its percent complete against verified progress, line by line, before approval, and paying only what is earned. The form's arithmetic is the least of it. What matters is whether each percentage reflects work in place.
This is where most of a general contractor's exposure sits. Subcontractor invoices arrive against progress statements, not simple purchase orders, which is why Phacet's approach is to validate them before payment rather than audit them after. Once a percentage is paid, recovering it means offsetting future applications from the same subcontractor, and that only works while the job lasts.
- Freeze the schedule of values at award. Load each subcontract's lines and approved change orders once, so every application is compared with a reference nobody retypes. Phacet's analysis of construction AP flags the typical failure: a subcontract set up incorrectly, or amended verbally without a change order, which the ERP then applies consistently.
- Collect verified progress per line. Superintendent logs, quantities installed or the architect's walk, recorded against the same line numbers as the G703.
- Compare claimed and verified percent. Flag any line where the claim exceeds verified progress by more than the tolerance you set, in points or in dollars.
- Challenge front-loading. Mobilization, general conditions and early trades often carry more value than their cost. Compare the percent billed on those lines with the percent billed across the whole subcontract.
- Pay the verified amount and document the difference. The reason for each reduction goes back to the subcontractor with the line reference, so the next application starts from an agreed position.
On federal jobs this is more than prudence. Under FAR 52.232-5, progress payments are made "on estimates of work accomplished which meets the standards of quality established under the contract," and each request carries a certification that "the amounts requested are only for performance in accordance with the specifications, terms, and conditions of the contract." A portion that fails that test is an "unearned amount", and the contractor owes interest on it from the 8th day after receipt. A subcontractor's inflated percentage that passes into your own application becomes a percentage you certified.
Checking every line of every application by hand is exactly what gets skipped at month-end. The agent that matches each subcontractor invoice against the schedule of values runs these comparisons as applications arrive, and blocks the ones that do not reconcile before they reach approval.
How to build a monthly WIP schedule that catches fade and front-loading
A work-in-progress schedule is a monthly, job-by-job report that compares billings to date with revenue earned to date, measured by the percent of cost incurred. It is where the three measures from the table above finally meet, and it is the document your auditor, your surety and your bank will ask for.
Example. A $2,000,000 prime contract has an estimated total cost of $1,700,000. Costs incurred reach $765,000, including $60,000 of switchgear delivered but not installed. The raw cost ratio is 45.0%. Taking the switchgear out of both costs incurred and the estimated total gives 43.0%, which earns about $834,000 on the rest of the contract, plus the $60,000 of switchgear recognized at cost: roughly $894,000 of revenue. You have billed $1,050,000, 52.5% of the contract. The overbilling is about $156,000, and the project manager's own estimate of work in place is 44%. The billed percent is the outlier, not the cost ratio.
- Refresh the estimate to complete. The cost ratio is only as good as its denominator. A cost-to-complete that has not moved in three months makes every job look further along than it is.
- Clean costs incurred. Exclude uninstalled materials, and costs from significant waste or rework, as ASC 606-10-55-21 requires, before computing the ratio.
- Compute earned revenue, then over and underbilling. One line per job, with billed to date next to earned to date.
- Track fade. Compare this month's estimated gross margin on each job with last month's and with the bid. A margin that erodes a point a month rarely stops on its own.
- Tie the schedule to the ledger. Total overbillings and underbillings must match the contract liability and contract asset balances booked at month-end.
Two agents handle the repetitive part of that routine. A cut-off and revenue recognition agent calculates the revenue to recognize by period according to your rules and generates the accrual and deferral entries, with detail by contract. A budget vs actual variance agent, broken down by project, shows which jobs are consuming cost faster than planned, which is where fade starts.
How Phacet automates progress billing control
Phacet puts AI agents on the controls described above, so that every pay application is checked before approval and every job reaches month-end with its three measures already compared. An AI agent here is software that reads documents, applies a defined control and flags what disagrees, with its reasoning shown.
Structure. Pay applications, subcontracts, change orders and schedules of values arrive as PDFs and emails. The agents extract them into tables, one row per line, so claimed percent, scheduled value and approved changes sit side by side.
Match. Each subcontractor invoice is matched against the schedule of values and the corresponding progress statement. The contract terms agent checks each invoice against the contract rates and change orders. When a line does not reconcile, the invoice is blocked and the discrepancy is flagged with the affected line, the variance in dollars and percent, and the source document.
Analyze. Cost to date, billings and earned revenue come together by job, which turns the WIP schedule from a spreadsheet rebuilt at every close into a report that updates as the month moves.
The agents do not replace your construction ERP. Foundation, Sage 300 CRE, Viewpoint Vista or Procore keep the job cost and the billing. Phacet sits on top of them, does the cross-checking that the controller used to do by hand, and routes only genuine exceptions to a person. Every value keeps its source and every decision lands in a native audit trail. Phacet runs in production at more than 100 companies, and a first agent is typically live in under two weeks. The page on financial controls built for construction lists the agents that apply to subcontractor billing.
Start where the money moves first: the subcontracts with the largest monthly billings over the next quarter. Load their schedules of values, let the agents compare the last three applications with verified progress, and look at the lines that were paid ahead of the work. That list is your first exception report, and usually your argument for doing the same on the owner side.
FAQ
What is an example of a progress payment?
A progress payment is the amount paid on one application. On a $400,000 line certified at 25% last month, a claim of 65% this month, including $40,000 of stored materials, adds $160,000 of value. With 10% retainage, $16,000 is held and $144,000 is paid, provided the work and the stored materials are verified.
What is the difference between progress billing and percentage of completion?
Progress billing is how you invoice: the amounts your contract lets you request on each pay application. Percentage of completion is how you recognize revenue, usually through the ratio of costs incurred to estimated total cost. The two rarely match, and the monthly difference is the overbilling or underbilling on your WIP schedule.
Why do pay applications get rejected?
Pay applications get rejected when a line claims more than the work in place, when a scheduled value changed without an approved change order, or when stored materials lack delivery evidence. Arithmetic breaks between columns D, E, F and G, missing lien waivers and lapsed insurance certificates account for most of the remaining returns.
Can you build a WIP report from QuickBooks data?
Partly. QuickBooks holds costs incurred and billings to date by job, but the estimated total cost usually sits with project managers, and a WIP report needs all three. Most teams export and merge the data in a spreadsheet each month. Phacet agents can assemble the job-level comparison from the accounting export and the project estimates.





