Short version: Job costing ties every dollar of cost and revenue to the job that earned or spent it, so you learn which jobs make money while you can still do something about it. In QuickBooks it comes down to a few setup choices, jobs as customer jobs, costs and revenue coded with items, labor costed with burden, and the discipline to code everything to a job. Get the setup right and the reports tell the truth. Get it wrong and they lie convincingly.
Every contractor knows the company made money this year. Far fewer can tell you which jobs made it and which quietly lost it. That's the gap job costing closes, and in the trades it's the difference between bidding from data and bidding from hope. Here's how to set it up so the numbers are real.
Done right, job costing answers three questions the company-level P&L can't: which jobs are profitable and which are bleeding, whether your bids match reality, and where the margin is leaking, labor, materials, or scope creep. You catch a losing job while it's running, not at year-end when it's history. For a sign shop, a GC, or any trade, that's the whole game.
Set up each project as a job under its customer (Desktop's Customers:Jobs, or sub-customers in QuickBooks Online). Every cost and every invoice then points at a job, and the reports roll up by job automatically.
This is the one that trips people up. QuickBooks job-costing reports are driven by items, not accounts. Build a service and cost item for each type of work (labor, materials, subcontractor, equipment), and use two-sided items so the same item carries both the cost and the revenue to the job. Code a bill straight to an expense account and it hits your P&L but vanishes from Job Profitability.
Track time to jobs and run payroll so wages flow to the job. Then add labor burden, the employer taxes, workers' comp, insurance, and benefits layered on top of the base wage. A $30/hour field hand can cost $40 or more fully burdened. Leave burden out and every job looks more profitable than it is.
Enter the estimate for each job so you can run Estimates vs. Actuals. Without the estimate in the file, you have actuals with nothing to measure them against, and the single most useful job report goes dark.
These only work if the coding upstream is clean, which is why the setup matters more than the reporting. Garbage in, convincing garbage out.
The five that make the reports lie: coding costs to accounts instead of items; not costing payroll and burden to jobs; pushing overhead into jobs that should stay in overhead; skipping estimates so there's nothing to compare against; and never costing owner or field time, which hides the most expensive labor on the job.
Every one of these produces job reports that look authoritative and aren't. A job that shows 40% margin because you never costed labor burden isn't a 40% job, and bidding the next one off that number is how a busy shop stays broke.
Longer construction jobs add a layer: work in process and over- or under-billing, where you recognize revenue on percentage of completion rather than when you invoice. QuickBooks has no native WIP schedule, so this is the report people end up building by hand every month, or in our Contractor Job Costing & WIP Schedule workbook. That's its own discipline on top of clean job costing, but it rests on the same foundation, so get the job-cost setup solid first. It's also one of the areas that converts poorly between QuickBooks versions, if a move is on your radar, see what transfers from Desktop to Online.
Setting up job costing so the reports tell the truth, items, burden, estimates, and the review that keeps it clean, is core controller work. If you'd rather run it yourself, the Contractor Job Costing & WIP Schedule workbook is the burden calculation and the percentage-of-completion schedule in a spreadsheet. Or The Practical Controller can set it up with you.
Job costing ties every cost and dollar of revenue to the specific job that generated it, so you see profit per job rather than only the company total. You set up each job as a customer job or sub-customer and code costs and revenue to it with items.
QuickBooks job-costing reports are driven by items, not accounts. Coding a bill straight to an expense account hits the P&L but won't show up properly in Job Profitability or Estimates vs. Actuals. Two-sided items let the same item carry both cost and revenue to the job.
Track time to each job and run payroll so wages flow to the job, then add labor burden, the employer taxes, insurance, and benefits on top of the wage, so the job carries the true cost of labor. Leaving burden out understates cost and overstates margin.
Coding costs to accounts instead of items, not costing payroll and burden to jobs, pushing overhead into jobs, skipping estimates, and never costing owner or field time. Any one of them makes the job reports lie.
General guidance on job costing in QuickBooks, not accounting, tax, or legal advice. Adapt the setup to your trade, entity, and software.
Practitioner guides on job costing, the close, and controller-grade books. One email per guide. Unsubscribe in a click.