QuickBooks Job Costing for Contractors, Done Right

The JobWorkflowPro Team
Contractor seen from behind at a folding table in a framed house, laptop showing a grid of colored cells beside a tape measure and rolled plans.

Quick answers

  • What is job costing in QuickBooks? Job costing ties every dollar of income and expense to a specific job so you can see what each one actually made, not just your total revenue.
  • Does QuickBooks Online do job costing for contractors? Yes — you set up each job as a sub-customer under the property owner, then tag estimates, invoices, and costs to that job.
  • What is a sub-customer in QBO? A sub-customer is a job nested under a customer, so one homeowner or GC can have several tracked jobs without muddying your reports.
  • Do I still need QuickBooks Desktop for job costing? No. QBO handles contractor job costing well enough for most shops now, though some Desktop holdouts stay for its deeper cost-tracking features.
  • How do I avoid double entry between my job software and QuickBooks? Use a jobs platform that syncs customers, estimates, invoices, and AR to QBO so you enter each number once.

If you run a contracting business, your books already have the answer to "did that job make money?" buried somewhere in them. The problem is getting it out without spending your Sunday reconciling spreadsheets. Job costing in QuickBooks isn't complicated in theory. Every job is its own bucket. Money in, money out, tagged to the bucket. The mess starts when you're hand-keying the same estimate into your field tool and then again into QuickBooks, misspelling the customer name the second time, and wondering why your reports don't tie.

This is about setting up QuickBooks job costing for contractors so the structure is right, and then letting the integration carry the busywork instead of you.

Get the QuickBooks structure right first

Everything downstream depends on how you set up customers and jobs. Get this wrong and no amount of clean invoicing will save your reports.

Customers, then jobs as sub-customers

In QuickBooks Online, the pattern for contractors is simple: the customer is who pays you, and each job is a sub-customer nested under them.

  • General contractor doing three houses for one developer? The developer is the customer. Each address is a sub-customer.
  • Remodeler working directly for homeowners? Each homeowner is a customer, and if they hire you twice, that second project is a new sub-customer job under the same name.

The reason to bother: reports roll up by customer and drill down by job. You see everything you've done for that developer, and you see whether the Elm Street build lost money while Oak Street covered for it. Lump both into one customer record and that detail is gone.

Name your jobs so a human can read them a year later. "Miller — 214 Elm — Kitchen Remodel" beats "Miller Job 2." Your future self reconciling AR in the winter will thank you.

Items and cost tracking

QBO tracks job costs through products/services items and expenses tagged to the customer/job. For a construction shop that usually means a handful of items — labor, materials, subs, equipment — mapped to the right income and expense accounts. You don't need fifty items. You need enough to answer "where did the money go on this job" and no more.

If you want to see labor cost against a job, you have to actually assign time to that job. Which brings us to the part most shops skip.

The four things that feed job costing

Job costing is only as good as what you feed it. Four streams matter, and all four should land in QuickBooks tagged to the right job.

1. Estimates. Your bid is the baseline. Without it in the system, "bid vs. actual" is a guess. Build the estimate, tie it to the job, and you've got something to measure against. If you're consistently off, that's a signal — we dug into closing that gap in bid vs. actual estimating.

2. Invoices. Progress billing, deposits, final invoice — every one tagged to the job. This is your income side. It also drives AR, which is the difference between a profitable job on paper and cash in the bank.

3. Costs. Material receipts, sub invoices, equipment. Tag them to the job when you enter them. A receipt that hits "Materials" with no customer attached is money you can't cost to anything.

4. Time. Labor is usually the biggest and slipperiest cost on a construction job. If your crew's hours never make it to a job, your job costing is fiction. You don't have to run payroll through your job tool, but you do need hours landing against jobs. Crew time tracking without the headaches walks through keeping that clean from the field.

Miss any one of these and your profitability number lies to you. Usually it lies in the optimistic direction, which is the expensive kind.

The double-entry problem (and QBO vs. Desktop)

Here's where most contractors actually live: you've got a field tool or a stack of spreadsheets for running the work, and QuickBooks for the money, and the two don't talk. So somebody re-types every estimate, every invoice, every customer into QuickBooks by hand.

That's double entry, and it costs you three ways. It eats hours. It introduces typos that break your reports. And it creates a lag, so your books are always a week behind the actual job.

A quick note on Desktop vs. Online, because plenty of shops still run QuickBooks Desktop. Desktop has long had deeper job-costing guts, and some contractors stay for exactly that. But Intuit has been steering everyone toward QBO for years, third-party integrations increasingly assume QBO, and for most contracting businesses the Online job costing is more than enough once it's set up right. If you're already on QBO, you're on the road the tooling is actually being built for.

The fix for double entry isn't discipline. It's not re-entering the data. A QBO construction integration should push customers, estimates, invoices, and AR from your job software into QuickBooks so you type each number once. We covered the mechanics of that in QuickBooks Online sync for the trades — worth a read if you're evaluating how a sync should behave.

How the integration should actually work

Not all syncs are equal. Here's what a contractor accounting workflow should do so the integration does the work instead of creating new work.

Sync customers and jobs both directions

Create a job in your field tool and it should show up as a sub-customer in QBO, matched to the right customer. No duplicate customer records, no "Miller" and "Miller Construction" and "Miller Const." fragmenting your history.

Push estimates and invoices without re-keying

You build the estimate where you scope the work. It lands in QuickBooks as an estimate. You bill from it. The numbers match because nobody typed them twice. When the invoice goes out, AR starts tracking automatically — and getting paid faster is mostly about not letting invoices sit, which we get into in AR and invoicing for the trades.

Keep the money data in QuickBooks, the job data in your job tool

Your accountant lives in QuickBooks. Let them. The integration's job is to make sure what's in QBO is accurate and current, not to replace it. You run jobs, notes, photos, documents, and time in a platform built for construction; QuickBooks stays the source of truth for the books; the sync keeps them honest.

Once that's in place, the payoff shows up in your reports. Job profitability and AR aging stop being a month-end fire drill and become something you glance at on a Tuesday. If you're still assembling that by hand across tabs, that's one of the signs you've outgrown spreadsheets. Real job costing is the reason to make the jump — we broke down reading those numbers in job profitability for contractors.

A workable setup, start to finish

If you're building this from scratch, the order that works:

  1. Clean up your QBO customer list — real customers, jobs as sub-customers, consistent naming.
  2. Set up a small, honest list of items mapped to the right accounts.
  3. Connect your job software to QBO so customers and jobs sync.
  4. Build estimates in your job tool and let them flow to QuickBooks.
  5. Invoice from the estimate; tag costs and time to the job as they happen.
  6. Read job profitability and AR aging weekly, not just at tax time.

Do that and job costing stops being a chore you dread and becomes the thing that tells you which work to chase and which to walk away from.

Frequently asked questions

How is job costing different from project accounting?

Job costing tracks income and cost against individual jobs — it's the contractor-friendly version. Project accounting is a broader discipline with things like WIP schedules and percentage-of-completion revenue recognition, which larger firms and their CPAs care about. Most small-to-mid contractors need solid job costing first.

Can I do job costing in QuickBooks without third-party software?

Yes, if you're willing to enter estimates, invoices, costs, and time directly in QBO and tag each to a job. The friction shows up as your volume grows and hand entry becomes the bottleneck — that's when an integration earns its keep.

How should retainage and progress billing show up in job costing?

Bill progressively from your estimate so each invoice ties to the job, and track retainage as its own line or holdback so your AR reflects what's actually collectible now versus later. The key is that partial billings still roll up under the same job.

What reports tell me if a job made money?

Job profitability (income minus cost by job) tells you the margin, and AR aging tells you how much of that profit is still sitting uncollected. Read them together — a profitable job you haven't been paid for isn't done yet.


If your books and your jobs still live in two places and somebody's re-typing everything in between, that's the exact gap this is built to close. You can start a free trial and connect it to QuickBooks Online to see your own job costing come together, or check pricing first. Questions about your setup? Email sales@jobworkflowpro.com and we'll talk through it like the peers we are.

Get the Work Authorization Signed on Day One

Why day-one e-sign of your restoration work authorization protects your pay, and how to make same-day signed contracts your standard, not the exception.

Read more →