QuickBooks Job Costing for Contractors — Setup, Limits, and When You've Outgrown It
Last updated:
Expertly reviewed by: Kaaviya Sivakumar
Illustrative Scenario
The Job That Was Profitable Until Reconciliation (Anonymised)
A remodeler ran a $62,000 basement build-out tracked in QuickBooks Online Projects. Mid-job, the Project Profitability report showed a healthy 31% gross margin, so he priced the next two bids off it. Then his bookkeeper reconciled the month: $4,800 of lumber on the owner's personal card, two subcontractor invoices sitting in an email inbox, and 60 crew hours that had been logged against the wrong project. The "31%" job was actually a 19% job — and the two bids he'd priced off the phantom margin were already signed.
⚡ QuickBooks Job Costing in 60 Seconds
- ✓ QuickBooks Online: use Projects (Plus plan or higher) and tag every expense, bill, and timesheet to a project.
- ✓ It tracks what's been ENTERED — not committed costs, unbilled change orders, or labor burden.
- ✓ Accuracy depends entirely on discipline: every receipt, every hour, every sub invoice, coded to the right job, fast.
- ✓ Keep QuickBooks for accounting and taxes. If you need to know whether a job is on budget TODAY, that's a different tool.
What QuickBooks job costing actually is
QuickBooks is an accounting system. Job costing in QuickBooks means tagging accounting transactions — expenses, bills, invoices, payroll — to a job, so that reports can group them per job. Done with discipline, that produces an accurate historical record of what each job cost.
That’s genuinely useful. It’s also a different thing from what most contractors mean when they say they need job costing: knowing whether the job you’re standing on is still on budget today. Keep that distinction in mind through the setup below, because every limitation in this guide traces back to it.
Setting it up correctly in QuickBooks Online
You need the Plus plan or higher — that’s the cheapest tier with the Projects feature and project profitability reporting.
- Turn on Projects (Settings → Advanced → Projects) and create one project per job, under the customer.
- Tag everything. Every expense, check, bill, and credit-card charge gets a project assigned. No exceptions — one untagged lumber run quietly inflates your margin.
- Use items/products & services for cost codes. Set up service items for your major cost buckets (demo, framing, electrical, finish) so reports can break a job down past one lump number.
- Route time through payroll or timesheets with a project attached, and add a burden factor — more on that below, because this is where most QBO job costing silently breaks.
- Enter bills when committed, not when paid. A sub invoice entered on payment day is a cost your reports missed for 30 days.
On Desktop/Enterprise, the equivalent is customer:job records with items — mechanically stronger (item-level estimates vs. actuals reports are better than QBO’s), but it inherits every timing problem below, plus Desktop’s own end-of-life pressures.
The older workarounds — classes and sub-customers — still function, but for per-job profitability in 2026, Projects is the answer. Classes are better used for divisions (remodel vs. service work), not individual jobs.
The four structural limits you will hit
These aren’t setup mistakes. They’re what QuickBooks, used perfectly, still can’t do for a remodeler.
1. It reports entered costs, not incurred costs
A job’s true cost includes the lumber bought this morning, the sub working today who invoices next month, and the PO you issued last week. QuickBooks sees none of that until a transaction is entered. For shops where receipts ride in the truck for two weeks before the bookkeeper sees them, the Project Profitability report describes the job as it stood weeks ago.
2. Labor shows up raw, not burdened
QuickBooks payroll posts wages. Your $35/hour carpenter costs $45–$55/hour once payroll taxes, workers’ comp, and liability are added — a 25–40% gap. Unless you’ve built burden allocation manually (most shops haven’t), every labor-heavy job in QuickBooks looks more profitable than it is. Get your real number from the labor burden calculator and check it against what your reports assume.
3. No committed-cost view
“Budget $18,000 for electrical, sub contract signed at $19,400, nothing invoiced yet” — that’s a $1,400 overrun you already own. QuickBooks shows $0 spent. Committed-cost tracking (POs and sub contracts against budget lines) is standard in construction job costing and absent from QuickBooks.
4. The field doesn’t live in it
Job costing accuracy dies in the gap between the jobsite and the bookkeeper. Crew leads won’t open an accounting system to log hours or snap receipts — so the data arrives late, secondhand, and miscoded. The Arizona kitchen remodel that lost $18,000 to an un-updated spreadsheet fails the same way in QuickBooks: the tool only knows what someone eventually types in.
How old is the newest cost in your QuickBooks job report right now — days, or weeks?
Your answer helps us improve our financial tools and guides for the trade.
"How old is the newest cost in your QuickBooks job report right now — days, or weeks?"
Feedback Received
Thank you. Your real-world input helps us build better financial tools for the trade.
So should you job cost in QuickBooks?
Yes, if you run a handful of jobs, your bookkeeper enters costs within a few days, and you mainly need to know how jobs ended up — for pricing reviews and taxes. QuickBooks Projects, set up as above, is a real upgrade over job costing in Excel.
No longer sufficient, if any of these are true:
- You learn about overruns at closeout — the “profit autopsy” — instead of mid-job.
- Costs wait on office data entry because the crew won’t touch QuickBooks.
- You’re pricing new bids off margins that later get revised down at reconciliation (the case study above).
- You need committed costs, change-order capture, or per-phase budget vs. actual that QBO reports can’t produce.
The fix is rarely to rip out QuickBooks. It does accounting, payroll, and taxes well, and your accountant lives in it. The fix is a dedicated job costing layer that captures costs as they’re incurred — field time entry, receipt photos, sub invoices, change orders — and shows a live per-job margin, while QuickBooks stays the system of record for accounting. That division of labor is exactly what purpose-built job costing software does, and we’ve written a direct comparison of the options in QuickBooks alternatives for contractors.
Bottom line
Set up QuickBooks Projects properly and it will tell you, accurately, what every job cost — eventually. Just don’t ask it whether today’s job is on budget; it structurally cannot know. Use QuickBooks for the books. Use a real-time job costing layer for the decisions that still have time to change the outcome.
Sources & Further Reading
Written by Kaaviya Sivakumar
Kaaviya Sivakumar is the founder and lead engineer of RemodelFin. She built the platform after studying the financial failure patterns of residential remodeling firms, and works directly with contractors to understand how job costing, labor burden, and change order workflows affect real-world profitability.
Contractor Q&A
Can you do job costing in QuickBooks Online?
Yes — on the Plus plan or higher, using the Projects feature. Create a project per job, then assign every expense, bill, invoice, and timesheet to it. The Project Profitability report shows income minus costs per job. The catch: it only reflects transactions that have been entered and categorized, so the report typically lags the real job by weeks.
What's the difference between QuickBooks Projects, classes, and sub-customers for job costing?
Projects (QBO Plus+) is the modern method — one project per job with its own profitability report. Classes tag transactions by category or division and suit company-level reporting more than per-job costing. Sub-customers (jobs under a customer) are the legacy Desktop-style method. For a remodeler starting today in QBO, use Projects.
Why is my QuickBooks job costing report wrong?
The usual causes: costs entered as journal entries or batch credit-card imports without a project assigned, labor entered at raw wages with no burden (taxes, comp, insurance — typically 25–40% on top), missing subcontractor bills that haven't arrived yet, and change-order work performed but never invoiced. The report is only as accurate as the slowest, least disciplined entry.
When have I outgrown QuickBooks for job costing?
Three signals: you discover overruns after the job closes instead of during it; your field crew won't open QuickBooks so costs wait for a bookkeeper; and you can't see committed costs (POs issued, sub contracts signed) against the budget. At that point keep QuickBooks for accounting and add a dedicated job costing layer on top.
Ready to protect your margins on every job?
RemodelFin gives you live job costing, change order tracking, and profit alerts so you never finish a job wondering what you made.
Does this guide address the specific profit leak you're seeing on-site?
Your answer helps us improve our financial tools and guides for the trade.
"Does this guide address the specific profit leak you're seeing on-site?"
Feedback Received
Thank you. Your real-world input helps us build better financial tools for the trade.