QuickBooks · Job Costing

Job costing in QuickBooks Online: a contractor’s complete guide

Most contractors know whether the business made money this year. Far fewer know which specific jobs made money and which lost it. Job costing answers that question — and the answer is usually surprising.

The short version
  • Job costing tracks revenue and expenses by individual job — so you can see profit per job, not just per month.
  • QBO Plus or higher is required. Simple Start and Essentials don’t include project tracking.
  • Set up jobs as Projects (newer feature, better than sub-customers).
  • The discipline that makes job costing work: tag every transaction to a job at the time of entry.
  • The payoff: you stop bidding low on jobs that look profitable but aren’t, and you charge real prices on the ones that are.

Job costing is the difference between running a contracting business and running on instinct. Without it, you finish a year with a profit number and a vague sense of which jobs went well. With it, you know — line by line — exactly where your money came from.

I see contractors who’ve been in business for 10 years discover, the first time they look at job costing data, that one client they’ve been working with for years is consistently unprofitable. Or that a category of work they assumed was bread and butter is their thinnest margin.

Setting up projects in QuickBooks Online

QBO has two ways to track jobs: sub-customers (older) and Projects (newer, introduced 2017, now recommended). Projects is better because it has a dedicated project dashboard, integrates with QuickBooks Time for labor tracking, and handles unbilled costs.

From the gear icon → Account and settings → Advanced → Projects → toggle on “Organize all job-related activity in one place.” A “Projects” tab appears in the left sidebar. From there: New Project → enter project name, assign customer, optionally add start date.

Pick a project naming convention and stick to it. A common one: [YYYY-MM] [Customer last name] - [Job type]

Chart of accounts choices that affect job costing

The principle: job-related costs live in Cost of Goods Sold (COGS), not Expenses. The reason: QBO’s project P&L report calculates gross profit by job (revenue minus COGS). If you put materials, subcontractor costs, and job supplies under “Expenses,” your project gross profit numbers will be inflated and useless.

For a contractor, COGS should include: Materials — Direct Job Costs, Subcontractor Costs — 1099, Equipment Rental (for specific jobs), Permits and Inspection Fees, Job Supplies — Consumable, Direct Job Labor.

Tagging transactions to projects

Every transaction that touches a job needs the project field populated. The biggest place this falls apart: bulk transactions that span jobs. You bought $800 of lumber for three jobs. You have to split the transaction in QBO and assign portions to each project.

The discipline that makes this sustainable: get specific receipts at the time of purchase. Have the lumber yard ring you up separately for each job.

Tracking labor by job

Three approaches: (1) Daily summary entry — cheap, low-tech, prone to memory error. (2) QuickBooks Time (formerly TSheets) — mobile app with GPS clock-in, syncs directly to QBO Projects. ~$20/month base. Best mid-tier option. (3) Buildertrend or CoConstruct — industry-specific construction management software. Overkill for smaller contractors.

Reading the project P&L report

The whole point of job costing. What to look for: Gross profit percentage by job — a $5k job at 45% is more valuable than a $20k job at 8%. Jobs that ran long — labor allocation should be higher. Customers whose jobs consistently underperform. Job types that consistently overperform.

The full job costing setup with a sample QBO file

The QuickBooks Online for General Contractors course walks through job costing setup with a real sample contractor file.

See the course

The most common job costing mistakes

Not splitting receipts. A single $800 receipt for three jobs gets thrown against one. Not job-costing overhead time. Hours spent doing admin and driving between jobs are still costs. Backfilling job costs at month-end. Job costing only works at the moment of entry. Tag at entry or your data is junk.

Foad Nabi, EA
Enrolled Agent · Founder, Help With Tax

Foad is a federally licensed Enrolled Agent who writes about tax and bookkeeping for small businesses.