
According to the Construction Financial Management Association (CFMA) via ContractorCFO (June 2026), 82% of construction business failures trace back to cash flow and costing problems — most of which are visible in QuickBooks Online weeks before they become fatal, if the file is set up correctly. This guide walks you through the five configuration steps that turn a generic QBO file into a real job costing system, and names the three default settings that silently drain your margin right now.
Why QuickBooks job costing for contractors is harder than it looks
QuickBooks Online is built for small businesses. Construction companies are not small businesses — they are multi-project, multi-phase operations with subcontractors, retainage, change orders, and materials that arrive weeks after they are approved. The software ships with defaults designed for a retail shop or a consultant, not a general contractor (GC) billing on a Schedule of Values.
The result is predictable. A contractor enables the Projects module, starts coding invoices to jobs, and assumes the numbers are right. They are not. Three defaults silently distort the picture from day one:
- Cash-basis reporting — QBO defaults to cash basis, which means costs and revenue only appear when cash moves. On a 90-day payment cycle, that is useless for managing a live project.
- Single vendor expense account — most files lump every subcontractor invoice into "Subcontractors" or "Outside Services," destroying any phase- or trade-level visibility.
- Billable expense toggle off — when this is disabled, materials and vendor costs purchased for a specific job never flow back to the client invoice, so they disappear from gross profit.
According to the AGC (May 2026), input prices for new nonresidential construction rose 8.4% year-over-year. With margins already thin — gross profit for GCs runs 12–16% per JMCO's 2025 performance benchmarks — a 2% costing error on a $1.2M project costs you $24,000. That is not a rounding error. That is a payroll week.
How do I set up job costing in QuickBooks Online for a construction company?
The five-step configuration below is the minimum viable setup for any GC, remodeler, or specialty trade doing more than one project at a time. Each step builds on the last — do not skip ahead.
- Switch to accrual basis and enable Projects. Go to Settings → Advanced → Accounting Method and set it to Accrual. Then go to Settings → Advanced → Projects and toggle it on. Accrual is non-negotiable — the average payment cycle in U.S. construction is 83 days according to Contractor Foreman (November 2025), so cash-basis reports are always stale by nearly three months.
- Build a construction-specific chart of accounts. Create separate expense accounts for: Direct Labor, Direct Materials, Subcontractor Costs, Equipment & Rentals, and Allocated Overhead. Do not use QBO's default "Job Materials" or "Contract Labor" buckets — they are too broad to produce a usable job cost report. Map these accounts to CSI (Construction Specifications Institute) division numbers if your estimates already use CSI codes; the one-to-one match is what makes variance reporting meaningful.
- Create a Project for every job and assign cost codes. Inside the Projects module, create one Project per contract. Then use Products & Services items (not the expense account directly) as your cost codes — one service item per phase or trade division. When your crew time, vendor bills, and subcontractor invoices are all coded to the same service item on the same Project, QBO can produce a phase-level cost breakdown without a spreadsheet.
- Enable purchase orders and link them to projects. Go to Settings → Expenses → Purchase Orders → On. From this point forward, every approved PO must be tied to a Project and a cost-code service item. This is how committed costs appear in your job cost report before the invoice arrives — which is the entire point of tracking POs in the first place.
- Turn on billable expenses and progress invoicing. Go to Settings → Expenses → Make expenses and items billable → On. Then go to Settings → Sales → Progress Invoicing → On. Progress invoicing lets you invoice a percentage of the original estimate on each draw, which is the foundation of AIA (American Institute of Architects) Schedule of Values billing.
Does QuickBooks Online support AIA progress billing for general contractors?
The short answer is yes, with configuration. QBO's progress invoicing feature lets you create an estimate in the system, then bill a percentage of each line item on each draw. That structure mirrors an AIA G702/G703 Application for Payment, where each line on the Schedule of Values (SOV) shows the original value, the amount billed to date, the current application, and the balance to finish.
The gap is that QBO does not produce a G702/G703 PDF natively. What it produces is a progress invoice that your office team can use to populate the AIA form, or that your Salisbury Bookkeeping team can map into a templated output before it goes to the owner or lender.
To make progress invoicing work correctly, three things must be true:
- The original estimate must be built line-by-line in QBO using the same service items you use as cost codes — not a lump-sum line.
- Each draw invoice must reference the original estimate, not be created from scratch.
- Change orders must be added to the estimate as approved line items before they are invoiced — not as separate invoices that float outside the SOV.
According to JMCO's 2025 performance benchmarks, net profit margins for GCs average just 5–6%. On a $2M project, that is $100,000 of net income that disappears if one change order is coded wrong or one draw is invoiced outside the SOV. The math is unforgiving.
How do I track committed costs in QuickBooks before an invoice arrives?
This is the question that separates contractors who run blind from those who run informed. A committed cost is a cost you have approved — a signed subcontract, an issued PO — but for which you have not yet received an invoice. Until that invoice arrives, most QBO files show zero cost in that category. Your margin looks better than it is. Then the bills land in the same week and your cash position collapses.
The fix is the purchase order workflow described in Step 4 above, combined with one reporting habit: pull the Open Purchase Orders by Job report every Monday and add those committed amounts to your job cost view manually, or use a QBO-connected tool that surfaces them automatically.
What is the difference between QuickBooks job costing and project tracking?
This is a distinction worth making clearly. Project tracking in QBO means attaching a transaction to a Project so you can filter reports by that Project. Job costing means comparing actual costs and revenue against a budget, broken down by phase or cost type, updated in real time.
Project tracking is the feature. Job costing is the discipline. You need both — but most contractors have the feature and skip the discipline.
The discipline looks like this:
- An original estimate loaded into QBO as a baseline before the first cost hits.
- Every bill, time entry, and PO coded to a Project and a cost-code service item.
- The Job Profitability Summary report run weekly, not at close-out.
- Variance flagged when actual cost exceeds budget by more than 5% on any line.
- The project manager notified before the next draw goes out.
According to the ABC (January 2026), the construction industry needs to attract 349,000 new workers in 2026. Labor is the tightest cost line on any estimate, and also the one most likely to run over without weekly reporting. A job cost report that is only reviewed at close-out tells you what went wrong — not what is going wrong.
The contractors who catch a margin problem in week three can fix it. The ones who find it at close-out write a check.
The three QBO defaults that silently distort job margins
These bear spelling out with enough specificity that you can audit your own file this week. Each one is a setting, not a feature — meaning it is off or misconfigured by default, and no one at QBO will tell you to change it.
| Default Setting | What It Does to Your Numbers | Where to Fix It | Time to Fix |
|---|---|---|---|
| Cash-basis reporting | Hides unbilled revenue and unpaid costs; job looks profitable until it isn't | Settings → Advanced → Accounting Method → Accrual | 2 minutes |
| Single "Subcontractors" expense account | Destroys phase-level cost visibility; every sub looks the same on the P&L | Chart of Accounts → add one account per CSI division or trade | 30–45 minutes |
| Billable expense toggle off | Materials bought for a job never flow to the client invoice; gross profit is understated | Settings → Expenses → Make expenses and items billable → On | 2 minutes |
The first and third fixes take four minutes combined. The chart of accounts restructure takes longer — but it is a one-time investment. If your bookkeeper has not done this, it is the highest-leverage hour they can spend on your file this month.
The team at Salisbury Bookkeeping runs this audit on every new construction client file before we touch anything else. The reason is simple: if the accounts are wrong, every report we produce from that point forward is wrong. We would rather spend an hour fixing the foundation than six months reconciling on top of sand.
The bookkeeper audit checklist — run this before your next bid
Print this and hand it to your bookkeeper. Each item is a yes/no check on a live QBO file. If any answer is "no," fix it before you submit another bid — because your current estimates are built on cost history from a file that may be telling you the wrong story.
- Accounting method is set to Accrual (not Cash).
- Projects module is enabled and every active job has its own Project record.
- Chart of accounts has separate accounts for Direct Labor, Direct Materials, Subcontractor Costs, Equipment & Rentals, and Allocated Overhead.
- Every Products & Services item used on job transactions maps to one of those accounts — not to "Services" or "Other Expenses."
- Purchase orders are enabled and every approved PO is tied to a Project and a cost-code item.
- Billable expenses are enabled, and billable costs are marked billable at the time of entry.
- Progress invoicing is enabled and every draw invoice references the original estimate.
- Retainage is tracked in a dedicated liability account on the balance sheet.
- The Job Profitability Summary report has been run in the last seven days.
- Change orders are added to the original estimate as approved line items — not as separate invoices.
For contractors using Top Builder AI — the six self-learning AI agents that connect once to your ServiceTitan and QuickBooks Online, then automate workflows across every department with your team approving each action — the Financial Agent runs this job cost variance check overnight and flags any project where actuals are drifting from budget, so your Monday morning briefing already has the answer waiting. The numbers stay locked and deterministic; the agent surfaces the signal, your team decides what to do with it.
Your next move — what to do this week
- Run the five-question triage on your QBO file today. Check: accounting method, Projects enabled, chart of accounts structure, PO workflow active, billable expenses on. Any "no" is a same-day fix.
- Pull the Job Profitability Summary on every active project. If a project shows no cost detail by phase, your cost codes are not mapped correctly — go back to Step 3 of the configuration above.
- List every approved subcontract and PO that has not been invoiced yet. Add those committed costs to your job cost view manually. That number is your real cost exposure — not what QBO's report shows.
- Hand the 10-item checklist above to your bookkeeper and ask for a written answer on each item before your next bid leaves the office.
- Schedule a QBO file review with a construction-specialist bookkeeper if the checklist surfaces more than two "no" answers. The Salisbury Bookkeeping services page describes exactly what a construction bookkeeping review covers and what it costs — it is the fastest way to know whether your cost history is reliable enough to bid from.
With input prices up 6.2% in just the first four months of 2026 per the ABC via Construction Dive, and copper wire alone up 24.2% year-over-year per ABC (May 2026), the cost of a wrong estimate is higher right now than it has been in years. A QBO file configured correctly is not a nice-to-have. It is the instrument panel you are flying the business with. Make sure it is reading true before you commit to another number.
Stop running your back office on screenshots and Slack pings.
Top Builder AI is six self-learning AI agents that plug into your ServiceTitan + QuickBooks — Booking & Dispatch that beat ServiceTitan's own AI, plus Financial, Inventory, Workforce & Documents it has no answer for. They get sharper every week on a leash (you approve every change), and the numbers stay locked — deterministic and audited. Built and installed by the developer who answers when you call — a direct line, not a ticket queue. Founding-25: a one-time $8,000 install locked for life, 30 days of free feature requests, board-ready or it's free.
From the team at Salisbury Bookkeeping — construction bookkeeping + fractional CFO for contractors. See how Salisbury Bookkeeping helps contractors like you →
Frequently Asked Questions
- How do I set up job costing in QuickBooks Online for a construction company?
- Enable the Projects module under Settings → Advanced, switch to accrual-basis accounting, build a chart of accounts with separate lines for Direct Labor, Direct Materials, Subcontractor Costs, Equipment, and Overhead, then create one Project per job and use Products & Services items as your cost codes. Every bill, time entry, and purchase order must be coded to both a Project and a cost-code item before the job cost reports will be meaningful.
- Does QuickBooks Online support AIA progress billing for general contractors?
- Yes, with configuration. Enable progress invoicing under Settings → Sales, build the original estimate line-by-line using your cost-code service items, and bill each draw as a percentage of that estimate rather than a new invoice. QBO does not produce a native G702/G703 PDF, but the progress invoice data maps directly to the AIA Schedule of Values format your team or bookkeeper can populate.
- What is the difference between QuickBooks job costing and project tracking?
- Project tracking means attaching a transaction to a Project so you can filter reports by job. Job costing means comparing actual costs and revenue against a budget, broken down by phase or cost type, updated continuously. Project tracking is the QBO feature; job costing is the discipline of loading an estimate as a baseline, coding every cost to a phase, and running the Job Profitability Summary weekly against that baseline.
- How do I track committed costs in QuickBooks before an invoice arrives?
- Enable purchase orders under Settings → Expenses, then require that every approved subcontract and material PO be created in QBO and tied to a Project before any work starts. Pull the Open Purchase Orders by Job report weekly and add those committed amounts to your active job cost view — this closes the gap between what you have approved and what you have been billed.
- Why does my QuickBooks job cost report show the wrong margin?
- The three most common causes are: cash-basis reporting (costs and revenue only appear when cash moves), subcontractor invoices lumped into a single expense account (destroying phase-level visibility), and the billable expense toggle being off (materials bought for a job never reach the client invoice). All three are default settings — check Settings → Advanced and Settings → Expenses to fix them.
- What chart of accounts structure should a general contractor use in QuickBooks Online?
- At minimum, create separate expense accounts for Direct Labor, Direct Materials, Subcontractor Costs, Equipment & Rentals, and Allocated Overhead. Map these to CSI division numbers if your estimates already use them. Avoid QBO's generic defaults like "Job Materials" or "Contract Labor" — they are too broad to produce a usable job cost breakdown by trade or phase.
- How often should I run the Job Profitability Summary in QuickBooks?
- Weekly, not at project close-out. With input prices up 8.4% year-over-year as of May 2026 per the AGC, and net margins for general contractors averaging just 5–6% per JMCO's 2025 benchmarks, a cost overrun caught in week three is recoverable; one caught at close-out is a loss you write a check for.
- Can QuickBooks Online handle retainage for construction billing?
- Yes, but only if you set it up correctly. Create a Products & Services item called "Retainage Held" mapped to a liability account on the balance sheet — not an income account. On each progress invoice, add retainage as a negative line item using that service item. This keeps retainage visible as a balance sheet liability, which is where it belongs, rather than buried in unbilled receivables or understating your revenue.
