PurchasomaticPurchasomatic
← Blog
QuickBooks Guide

Job Costing in QuickBooks: A Guide for Trades Contractors

Job costing tells you which jobs made money. But that’s only true if the numbers feeding it are right — and for most trades businesses, the vendor-bill side never quite is.

By Heather Dillon, former HVAC office manager · Founder of Purchasomatic

I ran accounts payable for an HVAC and mechanical contractor for years. We turned on job costing in QuickBooks early on, because the owner wanted to know which jobs were actually profitable. The reports looked complete. They were also wrong, constantly — not because job costing itself was broken, but because half the vendor bills that fed into it had been coded to the wrong job, or no job at all, by whoever was rushing to get invoices entered before end of day.

That’s the part almost nobody talks about when they explain job costing. Setting it up is the easy half. Keeping the data underneath it honest is the part that actually determines whether you can trust the report — and it applies whether you’re HVAC, plumbing, electrical, roofing, or general contracting.

What Job Costing Actually Means in QuickBooks

Job costing is just tracking income and expenses per job instead of just per company. QuickBooks Online gives you two ways to structure that:

Neither one requires QuickBooks Desktop or a third-party app to turn on. Both are sitting in your QuickBooks account right now, whether you’re using them or not.

Setting It Up Correctly

1
Turn on job costing preferences

Settings → Account and Settings → Advanced → Categories. Turn on "Track expenses and items by customer" if it isn’t already — this is what lets bills and expenses carry a job/customer tag at all.

2
Pick a structure and stick with it

If you’re on Plus or Advanced, use Projects for anything going forward — it’s built for this and gives you the profitability view for free. If you’re on Simple Start or Essentials, Customer:Job is your only option; create the job as a sub-customer of the actual customer, not as a new top-level customer, so your customer list doesn’t fragment.

3
Assign a class if you track cost types

Classes let you split a job’s costs further — labor vs. materials vs. equipment, for example. Not required, but useful if you bid jobs by cost category and want to compare bid vs. actual by type, not just in total.

4
Code every vendor bill to the job it belongs to

This is the step that actually determines whether the report means anything — and the one that breaks down first under any kind of volume or deadline pressure.

The Part QuickBooks Doesn’t Do For You

QuickBooks Online has a native bill upload (Expenses → Bills → Add Bill → Upload multiple bills) that reads the vendor name and total off a PDF. It does not know which job that Ferguson or Winsupply invoice belongs to. Someone still has to look at every line, remember or look up the right job, and assign it — for every vendor bill, every week, indefinitely.

That step is where job costing quietly falls apart in most shops. Not from lack of will — from volume. Twenty invoices on a Friday afternoon with three other things going on is exactly the condition under which "I’ll fix the job later" invoices pile up and never get fixed. Six months later, the job profitability report says a job lost money, and nobody can tell if that’s true or if $4,000 in material costs just landed on the wrong job number.

Purchasomatic handles exactly this step — matching every vendor invoice to the right job before it ever reaches your books, automatically.

Try free — 25 invoices

How Purchasomatic Fixes the Weak Link

Forward a vendor invoice to Purchasomatic and here’s what happens before it lands in QuickBooks:

  1. It reads the PDF — vendor, line items, amounts, invoice number, even on scanned documents.
  2. It matches the invoice to the right job or Project in QuickBooks — using vendor history, PO references, and invoice details, not a guess.
  3. It assigns the class, if you track cost types — by vendor default or by job, your call.
  4. It checks the invoice against any open purchase order and flags price or quantity mismatches before you pay.
  5. It publishes a fully-coded bill to QuickBooks — job assigned, class set, ready for review or auto-published after your first few accurate invoices from that vendor.

The job costing structure doesn’t change. Whether you’re on Customer:Job or Projects, Purchasomatic tags the transaction the same way a careful person would — just without the Friday-afternoon shortcut of "I’ll fix it later."

See your real job profitability

Forward your next 25 vendor invoices to Purchasomatic and see them land in QuickBooks already matched to the right job. No credit card. No QuickBooks connection required to start.

Start free trial

25 invoices free · No credit card · 15-minute setup

Frequently Asked Questions

Does QuickBooks Online do job costing?
Yes. QuickBooks Online supports job costing through sub-customers (jobs under a customer) or, on Plus and Advanced plans, the Projects feature. Neither one is turned on by default, and neither one codes your vendor bills to the right job for you — that part is still manual.
What’s the difference between Projects and Customer:Job in QuickBooks Online?
Customer:Job is the older structure — you create a "job" as a sub-customer underneath a customer, and every transaction gets tagged to that sub-customer. Projects (Plus/Advanced only) is a newer feature built specifically for job costing: it groups transactions, shows a running profitability summary, and doesn’t require restructuring your customer list. Most trades businesses on Plus or Advanced should use Projects going forward; Customer:Job still works fine and is the only option on Simple Start or Essentials.
Why does my QuickBooks job costing report look wrong?
Almost always because some vendor bills were never assigned to a job — or were assigned to the wrong one. QuickBooks can only report on what was tagged correctly at entry. If bill entry happens under deadline pressure (which it usually does), miscoded and untagged lines are the normal outcome, not the exception.
Can QuickBooks automatically assign vendor bills to the right job?
No — not on its own. QuickBooks’s native bill upload reads the vendor and amount off a PDF, but a person still has to pick the job and class for every line, every time. Purchasomatic adds that missing step: it reads the invoice, matches it to the right job in QuickBooks automatically, and codes each line before it ever reaches your books.
How much job costing detail do I actually need as a small trades business?
Enough to answer one question with confidence: did this job make money? For most contractors that means labor cost, material cost (from vendor bills), and revenue, rolled up per job or per project. You don’t need elaborate cost-code structures to get value from job costing — you need the vendor-bill side to actually be accurate, since that’s usually the biggest cost category and the one most likely to be wrong.
👋
Written by Heather Dillon, Founder of Purchasomatic

Heather ran accounts payable for years at an HVAC and mechanical contractor that was barely breaking even — job costing was supposed to explain why, but the numbers were only as good as the bill coding underneath them. She built Purchasomatic to fix that step. If you have questions, reply to any email or call (541) 250-0448.