Skip to main content
2,200+ service businesses benchmarked. How does your cash flow stack up? See where you stand →
Level
Job Costing

How to Set Up Job Costing in QuickBooks for Contractors

Sam YoungEx-CFO across trades, SaaS & services · $2.5B in service-business transactions · Stanford MBA
Updated April 8, 2026·Originally published July 9, 2025·12 minute read
Share

From Level's proprietary contractor research

QuickBooks job costing technically works. In practice, 91% of contractor jobs in our dataset have no cost data attached because the discipline never sticks. Here's the realistic setup — and the 3 spots where it always breaks.

Pattern across 2,200+ contractors, $13.25B in job revenue analyzed

12 minute readJob Costing

Why Most Contractors Don't Know Which Jobs Make Money

Here's a number that should worry you: 35% of contractors don't track job-level profitability at all. They know their total revenue and total expenses. They know if the year was "good" or "bad." But they can't tell you which jobs made money and which lost it.

Having built AI-powered accounting products for commercial contractors and worked directly with over 1,000 of them, I've seen this firsthand. The vast majority of jobs in any contractor's system show inflated margins — because cost isn't being tracked properly. Among the contractors who actually track their numbers, margins typically center around 20-50%. The rest are flying blind.

The ones who do track it usually find something uncomfortable. A job they thought was profitable was actually underwater once you allocate overhead. A customer they love is actually their worst margin account. A service type they've been pushing is diluting their overall profitability.

Job costing fixes this. It's the practice of tracking every dollar of revenue and cost against a specific job, so you can see true profit per job, per customer, per service type.

And you can set it up in QuickBooks. Here's how.

QuickBooks Online vs. Desktop: Which Is Better for Job Costing?

QuickBooks Desktop (QBD) has historically been better for contractors because of its dedicated "Job Costing" reports and the ability to create sub-customers as jobs. Many established contractors still use QBD for this reason.

QuickBooks Online (QBO) has caught up significantly. It now supports Projects (essentially jobs), class tracking, and custom reports. For most contractors under $30M in revenue, QBO is sufficient.

FeatureQBOQBD
Sub-customers as jobsYesYes
Projects featureYesNo (uses jobs natively)
Class trackingYes (Plus and above)Yes
Job costing reportsLimited — needs customizationBuilt-in
Time trackingYesYes
Multi-user accessCloud-basedServer or hosted
Integrations750+ appsFewer, but TSheets, etc.

Our recommendation: If you're starting fresh, use QBO Plus or Advanced. If you're already on Desktop and it's working, stay there.

Step 1: Set Up Your Chart of Accounts

Before you can track costs per job, your chart of accounts needs to separate costs into categories that matter for contractors.

Revenue accounts:

  • Service Revenue
  • Install/Project Revenue
  • Maintenance Agreement Revenue
  • T&M (Time & Materials) Revenue

Cost of Goods Sold (direct costs):

  • Direct Labor (field technicians, installers)
  • Materials & Parts
  • Subcontractor Costs
  • Equipment Rental
  • Permits & Fees

Overhead (indirect costs):

  • Office Salaries
  • Rent & Utilities
  • Vehicle Expenses (fleet)
  • Insurance (GL, WC, auto)
  • Marketing
  • Software & Subscriptions
  • Depreciation

The key distinction: direct costs are assignable to a specific job. Overhead is not. You'll allocate overhead later.

Step 2: Create Customers and Jobs

In QBO, every project is a "sub-customer" under the main customer:

ABC Property Management (Customer)
  ├── ABC - HVAC Install Building A (Job)
  ├── ABC - Service Call 4/1 (Job)
  └── ABC - Maintenance Q2 (Job)

Naming convention matters. Use a consistent format:

[Customer Abbreviation] - [Job Type] [Description] [Date or #]

This makes it easy to search, sort, and report. When you have 500 jobs in a year, consistent naming is the difference between usable data and chaos.

Step 3: Assign Every Transaction to a Job

This is where discipline matters. Every invoice, every bill, every time entry must be tagged to a job.

Revenue: When you create an invoice, assign it to the sub-customer (job). Not just the parent customer.

Materials: When you enter a bill from your supply house, split it by job. If one PO covers parts for three jobs, create three line items on the bill, each assigned to the correct job.

Labor: Use QBO Time Tracking (or an integration like Buildertrend, ClockShark, or your field service software). Every hour logged by a field tech needs a job assignment.

Subcontractors: Bills from subs should be assigned to the job they worked on.

The #1 reason job costing fails is that someone gets lazy with tagging. One untagged bill throws off the whole report.

Free cash flow audit

Find out which jobs are actually making money.

We benchmark your books against 2,200+ service businesses and tell you exactly where the money is going.

Step 4: Handle Overhead Allocation

Here's where it gets real. Your direct costs (labor, materials, subs) tell you the gross margin on each job. But they don't include the cost of running your business.

The overhead rate method:

  1. Calculate total annual overhead (all indirect costs)
  2. Calculate total annual direct labor hours
  3. Overhead rate = Total Overhead / Total Direct Labor Hours

Example:

  • Annual overhead: $800,000
  • Annual direct labor hours: 40,000
  • Overhead rate: $20/hour

Now every job gets charged $20 per labor hour for overhead. A job with 200 labor hours gets $4,000 in overhead allocation.

Why this matters: A job might show 45% gross margin on direct costs, but after overhead allocation, it's actually 15%. That changes your pricing strategy. In my experience, labor carries roughly 45-50% margins while materials run closer to 30%. If your revenue mix is materials-heavy, you need a higher overhead markup to compensate.

If you're not sure whether your cash position can absorb overhead correctly, read our guide on how retainage kills contractor cash flow — it's a related problem that compounds when overhead isn't allocated.

Step 5: Run the Reports

In QBO, run these reports weekly or monthly:

Profit & Loss by Customer: Shows revenue and direct costs per customer. Filter by date range. This is your first view of who's profitable.

Job Profitability Detail: (QBD has this built in. In QBO, use the "Profit and Loss by Customer" report and drill into sub-customers.) Shows revenue minus direct costs per job.

Unbilled Charges by Customer: Critical for catching revenue leaks. If you've incurred costs on a job but haven't invoiced, this report shows the gap.

Common Mistakes

1. Not tracking labor by job. If your techs aren't logging hours against specific jobs, you're missing your biggest cost. Labor is typically 30-50% of a contractor's direct costs.

2. Dumping everything into one "Materials" account. Break it out. You need to know if a job's materials cost was $5K or $50K without digging through individual transactions.

3. Ignoring WIP (Work in Progress). If you bill monthly on a project that takes 6 months, your financials are misleading unless you track WIP. Revenue recognized doesn't equal cash collected doesn't equal work completed.

4. Not reviewing regularly. Job costing data is only useful if someone looks at it. Monthly at minimum. Weekly is better. The contractor who reviews job profitability every Friday makes better decisions than the one who looks at it in January.

What Job Costing Reveals

Once you have 3-6 months of clean job costing data, you'll see patterns:

  • Which customers are actually profitable (your biggest customer might be your worst margin)
  • Which service types earn the best margin (service calls vs. installs vs. T&M)
  • Which techs are most productive (labor efficiency by employee)
  • Where materials waste happens (comparison of estimated vs. actual materials)
  • Whether your pricing is right (if half your jobs are under 20% margin, you're underpriced)

This is the data that turns a contractor from "we had a good year" to "we know exactly why."

When Job Costing Isn't Worth the Effort

Not every contractor needs a full job costing system. If you're under $1M in revenue, running a single service type out of one location with a small crew — the overhead of maintaining job-level tracking may exceed the insights it provides.

Similarly, if 95% of your work is identical residential service calls at flat-rate pricing, your margins are embedded in the price book, not in job-level variance. Tracking every call as a separate "job" adds friction without much signal.

Job costing becomes essential when you have multiple service types (installs vs. service vs. T&M), multiple crews or divisions, or jobs that vary significantly in scope and margin. That's usually $3M+ in revenue. Below that, a clean P&L by service type may be enough.

If you're at the stage where job costing matters but you don't have the bandwidth to maintain it, that's typically the point where a fractional CFO makes more sense than a bookkeeper.


The Bottom Line

Job costing in QuickBooks isn't hard to set up. It's hard to maintain. The setup takes a weekend. The discipline takes a culture shift — every person who touches a transaction needs to tag it correctly, every time.

If you're a $3-30M contractor and you're not tracking job-level profitability, you're flying blind. The data is in your system. You just need to structure it.

Q: Can Level help me set up job costing? A: Yes. We connect to your QuickBooks and field service software (ServiceTitan, Jobber, Housecall Pro, etc.) and build job-level profitability reporting automatically. Our AI cross-references your accounting data with your operational data to give you margin visibility you can't get from QuickBooks alone. The first audit is free — we'll show you which jobs and customers are making money before you pay anything.

Q: What if I'm already on QuickBooks but my data is messy? A: That's most contractors. We start by cleaning up your chart of accounts and transaction tagging, then layer in automated job costing going forward. You don't need to fix 5 years of history — we focus on making the next 12 months clean and actionable.

Q: What should I be tracking beyond job-level P&L? A: Job costing is step one. The next layer is understanding why 91% of jobs appear to show 80%+ margins — it's because cost data isn't being entered. Layer in WIP schedules for commercial work, and build a monthly P&L review process that connects your job-level numbers to your financial statements. That's the progression from bookkeeping to actual financial management.

Share

Get the next one

Want next week's benchmark in your inbox?

One email a week. Real numbers from 2,200+ service businesses. No fluff. Unsubscribe anytime.

Sam Young

About the author

Sam Young

Founder & Fractional CFO

Founder of Level — fractional finance and operations for service businesses, startups, and SMBs. Ex-CFO across trades, SaaS, and service businesses. 4 years as Director of Growth Product at BuildOps, building financial tooling used by 1,000+ commercial contractors. Four years in PE and investment banking rolling up and acquiring service businesses — $2.5B in total transactions including M&A and IPOs. Stanford MBA, Brown undergrad. Level operates its own proprietary benchmark research (2,200+ companies, $13.25B in revenue analyzed) which informs every client engagement.

LinkedIn

Find out which jobs are actually making money.

We connect to your books and rank every job by real margin — not what your software shows. Free audit included.

2,200+ service businesses benchmarked$13.25B in revenue analyzed24-hour response

No credit card. 15-min audit. We only follow up if we can actually help.

No commitment. Real numbers, not generic advice.