How to track subcontractor costs against contract amounts in QuickBooks
If your books track subcontractor payments but not committed contract amounts, there is no way to catch an overbilling before the check clears.
A general contractor we work with ran a $1.2 million office buildout with seven subcontractors. When the electrical work was roughly 80 percent complete, the electrical sub submitted an invoice that brought their total billings to $109,000. The signed subcontract was $96,000. There were no approved change orders on file for the additional $13,000.
The project manager approved the invoice. Accounting cut the check. The overrun showed up the following month when we compared cumulative billing to the committed contract amount. By then, $13,000 had cleared without a signed change order behind it. The conversation about recovering that money was uncomfortable and avoidable.
What was missing from the workflow
The problem was not the subcontractor. It was the absence of a comparison step. Invoices arrived, the project manager approved the work, and accounting paid. Nowhere in that sequence did anyone check whether the cumulative billing matched the agreed contract amount before releasing payment.
That check requires one additional step when each subcontract is signed: entering the committed amount as a purchase order in QuickBooks. Every invoice that follows gets linked to that purchase order. The remaining balance on the commitment is visible before any payment is approved.
Why payment-only tracking falls short
Construction bookkeeping that tracks what was paid but not what was committed misses four situations that cost money.
Unapproved billing goes out before anyone notices. A subcontractor who invoices beyond their contract scope may believe the extras were verbally authorized, or they may have made a billing error. Once the check is issued, the dispute is harder to resolve than if the invoice had been held for a 10-minute conversation before payment.
Job cost reports carry the wrong figures. If the electrical sub’s contract is $96,000 and the books show $109,000 paid, the job cost report shows a $13,000 trade overrun. The project manager may flag a cost failure when the real issue is an unapproved billing. Scope decisions for the remaining work get made on a wrong baseline.
Change orders create a gap between the field and the books. When a GC approves a change order on site, the project manager knows. Accounting often finds out when the sub’s next invoice arrives and the books show it exceeding the original contract. The gap persists until someone sends the signed document to accounting and the purchase order is updated.
Retainage is difficult to release accurately. When a sub finishes their scope and requests final payment, the GC needs to know exactly how much retainage has been held and against what billing total. If the billings exceeded the contract without a documented change order, the retainage calculation is based on an incorrect figure.
What the commitment comparison looks like
Here is what the subcontractor cost report looked like for four of the seven subs on the office buildout at the 80 percent mark.
| Subcontractor | Original contract | Approved change orders | Revised commitment | Invoiced to date | Variance |
|---|---|---|---|---|---|
| Electrical | $96,000 | $0 | $96,000 | $109,000 | $13,000 over |
| Plumbing | $58,000 | $4,200 | $62,200 | $59,800 | $2,400 under |
| HVAC | $74,000 | $8,100 | $82,100 | $71,400 | $10,700 under |
| Drywall | $41,000 | $0 | $41,000 | $38,200 | $2,800 under |
Only the electrical line shows a problem, and it shows before any additional payment is released. Without a purchase order comparison, finding the overrun requires pulling every invoice and adding them up manually. That calculation rarely happens between invoice approval and payment.
What proper subcontractor cost tracking looks like
For construction clients we work with, every signed subcontract is entered as a purchase order in QuickBooks the day the agreement is signed. The purchase order records the vendor, the job, and the committed amount.
When the sub bills for progress work, the invoice is entered linked to the purchase order. QuickBooks shows the remaining commitment balance. When cumulative billings reach 90 percent of the committed amount, the next invoice goes to the project manager for review before accounting processes payment.
Change orders signed on site are sent to accounting the same day. The purchase order is revised before the next billing cycle, so the committed amount in the books stays in step with what was agreed in the field.
Retainage is held on each payment and credited to a Retainage Payable account tracked by subcontractor. When a sub completes their scope, accounting requests a signed lien waiver before releasing the per-sub balance.
Best practices for tracking subcontractor costs
- Enter every signed subcontract as a purchase order on the day it is executed. Approving a sub’s invoice without a linked purchase order removes the only check against the committed amount.
- Require signed change orders to reach accounting the day of approval. Update the purchase order before the next invoice from that sub arrives.
- Set a review trigger at 90 percent of the committed amount. Any sub approaching the ceiling should be reviewed with the project manager before the next payment clears.
- Track retainage by subcontractor, not as a single job-level balance. When a sub requests final payment, you need the per-sub figure, not a shared total.
- Collect a signed lien waiver from each sub before releasing retainage. The waiver confirms the sub has been paid and will not assert a claim on the property.
Three questions worth asking
If you are not sure whether commitment tracking is in place today, three questions to bring to whoever manages your books:
- Can you pull a report right now showing each active subcontractor’s contract amount, approved change orders, total invoiced to date, and retainage held, by job?
- How are approved change orders communicated to accounting, and how quickly is the committed amount updated in QuickBooks?
- When a subcontractor requests final payment, where does the per-sub retainage balance come from, and how long does it take to produce?
If those answers require a call to the project manager or a manual spreadsheet reconstruction, the books are tracking payments but not commitments. Setting up the purchase order workflow takes less than a day. Every subcontractor billing becomes reviewable before it turns into a dispute.
Send us a list of active jobs and active subs. We will show you whether committed amounts are visible alongside invoiced amounts, or whether that comparison has to happen outside the system.
- Record the signed contract as a purchase orderCreate a purchase order in QuickBooks the day the subcontract is signed. This sets the committed amount and gives every future invoice a ceiling to check against before approving payment.
- Link each invoice to the open purchase orderWhen the sub bills for progress work, enter the bill linked to the purchase order. QuickBooks shows the remaining commitment balance and flags when invoices push cumulative billing toward the ceiling.
- Hold retainage on each approved paymentPay the sub the net amount: the approved invoice minus the retainage percentage. Credit the withheld balance to a Retainage Payable account tracked by subcontractor, not by job alone.
- Update the commitment when a change order is approvedRevise the purchase order the same day the change order is signed. If accounting does not receive the approved document, the next invoice from that sub will look like an overrun when it is not.
- Review billings against the commitment before every paymentBefore releasing any check, compare cumulative billings to the revised commitment. Invoices within 10 percent of the ceiling go to the project manager for confirmation before accounting processes the payment.
- Release retainage after acceptance and lien waiverWhen the sub completes their scope and the inspection passes, release the per-sub Retainage Payable balance. Require a signed lien waiver first: the sub's written confirmation that payment is final and no claim on the property will be asserted.
Want a second set of eyes on your books?
30 minutes on Zoom. We'll look at your books and tell you what's working and what isn't.
This is the work we do every day. See bookkeeping for construction.
Book a call