A contractor can be busy all year and still not know which jobs made money. That is not a sales problem, it is a bookkeeping one. Construction books differ from ordinary small-business books in four ways: costs belong to jobs, revenue is earned over time, customers hold money back, and payroll rules change by project. This guide covers each, with worked examples you can copy.
What is job costing in construction bookkeeping?
Job costing means every cost is recorded against the project that caused it, and ideally against a phase or cost code within that project: labor, materials, subcontractors, equipment and permits. At the end you compare actual cost to the estimate, line by line. Without it your profit and loss shows one blended margin, and a job that lost $20,000 hides behind two that did well.
You do not need a hundred cost codes. Most small contractors do well with ten or fifteen that match how they estimate (site work, framing, electrical, plumbing, finishes and so on). If estimates and actuals use the same codes, the comparison takes minutes instead of an afternoon.
How to do job costing in QuickBooks Online
QuickBooks Online handles job costing for most small contractors without add-ons. Projects and classes are not in every plan, so check yours before you build the setup around them. Then:
- Turn on Projects in Account and settings, under Advanced.
- Create one project per job under the customer, and keep the signed estimate in the project so the contract value is on file.
- Set up your cost codes as products and services (or use classes for phases), each pointing at the right job cost account.
- Tag every transaction to the project when it is entered: bills, expenses, checks, invoices and timesheets. Time tracked by job is what moves labor cost onto the right project.
- Review the project reports monthly, profitability and estimates against actuals, and ask about every job that is drifting from its estimate.
QuickBooks Online Plus has no built-in WIP schedule like the one below. Since mid-2026, QuickBooks Online Advanced includes construction tools with WIP reporting. On other plans, most small contractors build the schedule in a spreadsheet each month from the project reports, which works well as long as the totals tie back to the books.
What is a WIP schedule, and how do you calculate WIP?
A work-in-progress schedule lists every open job with its contract value, estimated total cost, cost to date, percent complete and amount billed. It answers one question: for each job, have you billed more or less than you have earned? For each open job:
- Percent complete = cost to date ÷ estimated total cost.
- Revenue earned = percent complete × contract value.
- Over or under billing = billed to date, less revenue earned.
If you have billed more than you earned, you are overbilled, and the difference is a liability: cash you are holding for work not yet done. If you have billed less, you are underbilled, which often means unapproved change orders or a job running over budget. Banks and bonding companies read the WIP schedule before they read anything else.
Over and under billing, with an Example
Here is a month-end WIP schedule for three open jobs. The figures are made up, and they add up.
| Line | Job 101 | Job 102 | Job 103 |
|---|---|---|---|
| Contract value | $100,000 | $240,000 | $60,000 |
| Estimated total cost | $80,000 | $200,000 | $48,000 |
| Cost to date | $40,000 | $150,000 | $12,000 |
| Percent complete | 50% | 75% | 25% |
| Revenue earned | $50,000 | $180,000 | $15,000 |
| Billed to date | $60,000 | $165,000 | $15,000 |
| Over (under) billed | $10,000 | ($15,000) | $0 |
- Overbilled, job 101
- $10,000, shown as a liability: billings in excess of costs and estimated earnings
- Underbilled, job 102
- $15,000, shown as an asset: costs and estimated earnings in excess of billings
- Net position
- $5,000 underbilled across the three jobs
Example only: a made-up business. The figures add up but belong to no real client.
Job 101 has collected $10,000 more than the work done so far. That cash feels like profit but is owed back in labor and materials, so it sits on the balance sheet as a liability. Job 102 is the one to ask about: $15,000 of work done and not billed usually means a missed progress bill, an unsigned change order or costs running over the estimate. At month end, one adjusting entry brings revenue on the profit and loss to the earned figure, so the P&L shows the work you did, not the invoices you sent.
Percentage of completion
The schedule above uses the percentage of completion method, measured by cost (often called cost-to-cost). Revenue follows the work, so a job's profit shows up as it is built rather than all at once at the end. Two cautions. The method is only as good as the estimate, so re-estimate the cost to complete every month on any job that has changed. And if a job is now expected to lose money, the whole expected loss is normally booked as soon as you know it, not spread over the months that remain.
Tax is a separate decision. The rules for long-term contracts sit in section 460 of the tax code, and smaller contractors that meet its gross receipts test can often use simpler methods for jobs finished within two years. Your tax preparer makes that call; clean job costing supports either.
How do you account for retainage?
Retainage is the 5% to 10% of each invoice the customer holds until the project is complete. It is revenue you have earned but cannot collect yet, so it belongs in a separate retainage receivable account, not in ordinary accounts receivable, where it would make your aging report look worse than it is. The same applies in reverse: retainage you hold from subcontractors is a separate payable.
How to record retainage in QuickBooks Online
- Create an other current asset account called Retainage receivable, and a service item called Retainage that posts to it.
- On each progress invoice, add the Retainage item as a negative line. The invoice total is what the customer pays now, and the held amount moves to Retainage receivable.
- When the retainage is released, invoice the Retainage item as a positive line. The customer pays it and the receivable clears.
- Mirror the setup for subs with a Retainage payable account, so the retainage you owe them is never mistaken for profit.
How should change orders be handled?
A change order changes both the contract value and the estimated cost. Until it is signed, the extra cost sits in the job with no matching revenue, and the job looks like it is losing money. Record approved change orders in the contract value the day they are approved, and keep a list of pending ones so underbilling on the WIP schedule can be explained.
What is certified payroll?
On federally funded construction contracts over $2,000, the Davis-Bacon Act requires contractors to pay prevailing wages and to submit a weekly certified payroll report listing each worker, their classification, hours and pay. The Department of Labor's optional form for it is the WH-347. Many states have their own version for state-funded work. The bookkeeping requirement is that time is tracked by worker, by job, by classification, every week. Many payroll systems, or a certified payroll add-on that imports from them, can produce the report if the time data is clean.
Do contractors send 1099s to subcontractors?
Yes. Any unincorporated subcontractor paid $2,000 or more for work in 2026 gets a 1099-NEC. The threshold was $600 through 2025 and is adjusted for inflation from 2027. The usual deadline is January 31, but for 2026 payments it is February 1, 2027, because January 31 falls on a Sunday. Our guide to the 1099 rules for 2026 has the detail.
Collect a W-9 and a certificate of insurance before the first payment, not in January. Missing insurance certificates are also what turns a workers’ compensation audit into a large bill, because uninsured subs get treated as your employees.
A construction chart of accounts (Example)
Most small contractors need fewer accounts than they think. What standard templates leave out are the job cost accounts and four balance sheet accounts: retainage receivable, retainage payable, and the two WIP accounts from the schedule above. A chart of accounts for a construction company can be as short as this.
- Assets
- Operating checking; Accounts receivable; Retainage receivable; Costs and estimated earnings in excess of billings (underbillings); Vehicles and equipment; Accumulated depreciation
- Liabilities
- Accounts payable; Retainage payable; Billings in excess of costs and estimated earnings (overbillings); Payroll liabilities; Equipment and vehicle loans; Line of credit
- Income
- Contract revenue; Service and repair revenue
- Job costs
- Direct labor; Labor burden (payroll taxes, workers’ comp, benefits); Materials; Subcontractors; Equipment rental; Permits and fees; Dump and disposal
- Overhead
- Office wages; Rent; General liability insurance; Vehicles and fuel; Small tools; Software and phones; Professional fees
- The test
- If a cost would not exist without the job, it is a job cost. If you would pay it anyway, it is overhead.
Example only: a starting point for a made-up business, not a recommendation for yours.
Cash or accrual for a construction company?
Small contractors can often use the cash method for tax, but manage the business on accrual with percentage of completion. Cash-basis books make a month with a big deposit look brilliant and the month the materials get paid look terrible. Neither is true. One well-kept accrual file can give you both: management reports on accrual, and the cash figures your tax preparer needs.
What should a contractor see every month?
- Profit and loss by job, with estimate against actual
- The WIP schedule with over and under billings
- Receivables aging, with retainage shown separately
- Payables aging, including retainage owed to subs
- Cash forecast for the next eight weeks
Frequently asked questions
What does WIP stand for in construction?
Work in progress: jobs that have started and are not yet finished. The WIP schedule lists each one with its contract value, estimated cost, cost to date and billings, so you can see whether each job is overbilled or underbilled.
Is overbilling a liability or an asset?
Overbilling is a liability, usually called billings in excess of costs and estimated earnings. Underbilling is the opposite, an asset called costs and estimated earnings in excess of billings. Both are current items on the balance sheet and both are updated every month from the WIP schedule.
What is a typical retainage percentage?
Commonly 5% to 10% of each progress bill, set by the contract. Some public jobs and some states limit it, so read the contract and the rules for the project before you set up billing.
Does a small contractor really need a WIP schedule?
If your jobs run longer than a month or two, yes. Without it, revenue follows your invoices, and a job can look profitable right up to the point it is not. Banks and bonding companies will ask for one as soon as you want credit or a bond.
What is a cost code, and how many does a small contractor need?
A cost code is a label for one phase or type of work, such as site work, framing or electrical, so every cost on a job can be grouped and compared with the estimate. Most small contractors need ten to fifteen that match how they estimate. Use the same codes in estimates and in actuals, and the comparison takes minutes.
Remote Bookkeepers keeps the books for construction companies and contractors across the US: job costing, WIP schedules and retainage, kept current every month. Not sure your jobs are costed properly? Add us as your accountant for a free books review, and you get a written list of what we find in about 48 hours.