How do you do bookkeeping for contractors in QuickBooks Online?
Bookkeeping for contractors in QuickBooks Online comes down to 4 controls. Tag every labor, materials, and subcontractor cost to a project, hold retainage in its own receivable and payable accounts, post a monthly WIP adjustment for over- and under-billings, and collect a Form W-9 and certificate of insurance before paying any subcontractor.
Bookkeeping for contractors goes wrong in a predictable way: the company-wide P&L looks fine while individual jobs quietly lose money. A $2,000,000 contractor can show a healthy net profit for the year and still not know that the commercial jobs ran at 25% gross margin while two residential remodels lost money on unbilled change orders and labor overruns.
The fix is not more categories. It is four controls that keep each job’s numbers separate: project-level job costing, retainage accounts, a monthly work in progress (WIP) entry, and subcontractor compliance. Each one is below, with the entries we post in QuickBooks Online.
Control 1: Job costing, direct costs vs. overhead
Every cost a contractor pays is either a direct job cost (Cost of Goods Sold, the 5000 series) or overhead (operating expenses, the 6000 series). A direct cost would not exist without a specific job:
- Materials delivered to the site.
- Subcontractor invoices for electrical, plumbing, or masonry.
- Field labor and job site supervision.
- Equipment rented for the job, such as an excavator or scaffolding.
- Building permits and inspection fees.
Overhead exists whether you run three jobs or thirty: office rent, bookkeeping fees, estimating software, and legal fees.
Burden field labor before it hits the job
A carpenter’s hourly rate is not the job’s labor cost. On a $32.00 wage, the employer’s share of Social Security and Medicare (7.65% under IRC §3111) adds $2.45, so the job carries $34.45 an hour before federal and state unemployment tax, workers’ compensation premiums, and benefits.
In QuickBooks Online Plus and Advanced, turn on Projects and tag every payroll run, subcontractor bill, and supply house receipt to a project. A cost posted without a project still lands in the P&L but never shows up against the job that caused it, so project margins come out too high.
The full account list is in our contractor chart of accounts guide and the construction chart of accounts explorer. If you are building a new file, start with setting up QuickBooks Online for construction.
Control 2: Progress billing and retainage
Commercial and larger residential jobs bill in stages, often on AIA Document G702 (Application and Certificate for Payment) with a G703 Continuation Sheet. On each progress payment, the owner or general contractor commonly withholds 5% to 10% as retainage, released under the contract’s terms, often at substantial completion or final acceptance. Some states cap retainage on public projects.
Why retainage cannot sit in Accounts Receivable
Post a $60,000.00 progress bill with 10% retainage entirely to Accounts Receivable and the customer pays $54,000.00. The other $6,000.00 then ages past 90 days for months, even though the contract does not make it payable yet. The A/R aging stops telling you who is actually late.
Retainage needs two balance sheet accounts:
- 1150 Retainage Receivable (Other Current Asset): retainage your customers withhold from you.
- 2110 Retainage Payable to Subcontractors (Other Current Liability): retainage you withhold from your subcontractors.
Invoicing a progress bill with retainage
A $60,000.00 progress bill with 10% retainage:
| Date | Account | Debit | Credit |
|---|---|---|---|
| Oct 10 | 1100 Accounts Receivable | 54,000.00 | |
| Oct 10 | 1150 Retainage Receivable | 6,000.00 | |
| Oct 10 | 4010 Contract Revenue - Progress Billings | 60,000.00 |
Accounts Receivable now shows the $54,000.00 the customer owes on normal terms. The $6,000.00 waits in 1150 until the contract releases it, when a final invoice moves it back into Accounts Receivable for collection.
Withholding retainage from a subcontractor
Your drywall subcontractor bills $18,000.00 and the subcontract lets you hold back 10%:
| Date | Account | Debit | Credit |
|---|---|---|---|
| Oct 12 | 5030 Subcontractor Expense (1099) | 18,000.00 | |
| Oct 12 | 2010 Accounts Payable | 16,200.00 | |
| Oct 12 | 2110 Retainage Payable to Subcontractors | 1,800.00 |
Accounts Payable shows the $16,200.00 due now. The $1,800.00 stays in 2110 until you release it to the subcontractor.
Control 3: Work in progress (WIP) and over- and under-billing
Billing schedules rarely match the work. A WIP schedule compares what you have earned on each open job with what you have billed, and the difference becomes a monthly balance sheet entry.
Which revenue method applies
The answer depends on which books you mean:
- GAAP financial statements: under ASC 606, most construction contracts meet the criteria for recognizing revenue over time (ASC 606-10-25-27), usually measured cost-to-cost. The older ASC 605-35 name for this was percentage of completion. Banks and surety companies that ask for reviewed or audited statements will expect it.
- Federal income tax: IRC §460 requires the percentage-of-completion method for long-term contracts, with two exceptions. Home construction contracts are exempt (§460(e)(1)(A)). So are contracts expected to finish within 2 years for a contractor whose average annual gross receipts for the prior 3 years do not exceed the §448(c) limit (§460(e)(1)(B)): $31 million for 2025 tax years and $32 million for 2026. Those contractors can generally use the completed-contract method or their overall accounting method instead.
Your CPA chooses the tax method. The WIP schedule below is for management reporting and GAAP-basis statements, and most contractors need it whichever tax method they use.
Percent complete = Costs incurred to date ÷ Total estimated contract costs × 100
Earned revenue to date = Percent complete × Total contract price
Over-billings and under-billings
- Over-billing: you have billed $120,000.00 on a job, but cost-to-cost supports only $80,000.00 of earned revenue. The $40,000.00 difference is a liability, revenue billed for work not yet done.
- Under-billing: costs support $70,000.00 of earned revenue, but you have billed only $50,000.00. The $20,000.00 difference is an asset, revenue earned but not yet billed.
The monthly WIP entries
For the over-billed job, move the excess out of revenue:
| Date | Account | Debit | Credit |
|---|---|---|---|
| Oct 31 | 4010 Contract Revenue - Progress Billings | 40,000.00 | |
| Oct 31 | 2120 Billings in Excess of Costs (Overbillings) | 40,000.00 |
For the under-billed job, record the earned but unbilled revenue:
| Date | Account | Debit | Credit |
|---|---|---|---|
| Oct 31 | 1300 Costs in Excess of Billings (Underbillings) | 20,000.00 | |
| Oct 31 | 4010 Contract Revenue - Progress Billings | 20,000.00 |
Reverse both entries on the first day of the next month and post fresh ones from the new WIP schedule, so each month’s balances come from that month’s estimates. Over-billing works like deferred revenue; our deferred revenue journal entry guide covers the same mechanics outside construction. A full WIP schedule for three jobs, and the entry for a job heading for a loss, is in our post on WIP in accounting.
Control 4: Subcontractor 1099s and insurance certificates
Subcontractors create two year-end problems: missing 1099 data and workers’ compensation audit charges. Both are cheaper to prevent at the first payment than to fix in January.
Form 1099-NEC
For payments made after December 31, 2025, you file Form 1099-NEC for each subcontractor you pay $2,000 or more in a calendar year (IRC §6041(a), as amended by the One Big Beautiful Bill Act). The threshold was $600 for 2025 and earlier payments, and it is indexed for inflation after 2026.
Who gets one depends on the subcontractor’s entity:
- Gets a 1099-NEC: individuals, sole proprietors, partnerships, and LLCs taxed as a partnership. A single-member LLC that has not elected corporate tax treatment is disregarded, so the form goes to its owner.
- Generally does not: C corporations, S corporations, and LLCs that elected corporate treatment (Treas. Reg. §1.6041-3(p)), with narrow exceptions such as legal fees.
Collect a signed Form W-9 before the first payment. If a subcontractor will not give you a taxpayer identification number, IRC §3406 requires you to withhold 24% backup withholding from reportable payments. Track it in 2220 1099 Backup Withholding Payable. If you should have withheld and did not, the tax becomes your liability, and filing a 1099 with a missing or wrong TIN can add information return penalties under §6721 and §6722.
Workers’ compensation audits
Your workers’ compensation carrier audits payroll after each policy year and asks for every payment to subcontractors. When a subcontractor cannot produce a certificate of insurance (COI) showing coverage for the dates they worked, many carriers count those payments as your payroll and bill additional premium, depending on the policy and state rules. Keep a current COI on file for every subcontractor before they start.
Monthly close checklist for contractors
Run these 5 steps by the 5th business day of each month:
- Find untagged job costs: run a transaction report filtered to an empty Customer/Project field and assign every materials, labor, and rental cost to a job.
- Tie out retainage: agree 1150 and 2110 to the retainage columns of each active job’s billing schedule.
- Post WIP entries: update the WIP schedule and post over-billings to 2120 and under-billings to 1300.
- Check subcontractor files: confirm a W-9 and an unexpired COI for every subcontractor paid this month.
- Reconcile bank and card accounts: complete bank reconciliations for operating, payroll, and credit card accounts.
The full sequence is in our month-end close checklist. For what we handle on contractor files and what goes wrong in them, see our construction bookkeeping services page.
When contractor books need a cleanup first
If months of job costs were never tagged, retainage sits in Accounts Receivable, or prior years show jobs with impossible margins, starting the controls above today will not correct the balance sheet you already have. That takes a QuickBooks cleanup:
$99per month of backlog20% off 6+ monthsWe rebuild project allocations, reconcile retainage, and set up the WIP schedule. To find out how far back the problems go, send your file for a free review. Accounting firms with contractor clients can use our white-label services for CPAs. Once the file is clean, our monthly bookkeeping service closes job costs, progress billings, and subcontractor files by the 5th business day of each month.
Published October 7, 2026 · Updated October 12, 2026