How to do job costing in QuickBooks Online for a service business?

By the Truceipts team · Last updated

Turn on Projects in QuickBooks Online Plus or Advanced, create one project per job, and tag every invoice, bill, expense, and timesheet to that project. Profit per job is income minus those tags. An FSM sync that dumps every ticket onto one customer leaves the report empty until you retag.

This is the setup for a 5-to-15 tech HVAC, plumbing, or electrical shop on Jobber, Housecall Pro, or Workiz: what to turn on, where each cost gets its job, and where the sync breaks.

What to turn on first

QuickBooks Online does not have a job-costing toggle. It uses Projects: one project per job, tied to a customer. Intuit’s help center (updated 2026-10-06) puts Projects on Plus, Advanced, and Intuit Enterprise Suite.

Setting Where What it does
Plan Subscription and billing Plus is the floor. Simple Start and Essentials have no Projects.
Organize all job-related activity in one place Account and settings, Advanced Turns Projects on.
Track expenses and items by customer Account and settings, Expenses, Bills and expenses Shows the Customer/Project column on bills, expenses, and checks.
Hourly cost rates Projects, Employee hourly rate Lets the project overview estimate labor before payroll posts.

Intuit’s pricing page, read 2026-10-08, lists these monthly list prices. A 50 percent intro discount for three months was on the page that day.

Simple Start Essentials Plus Advanced
List price $38/mo $85/mo $140/mo $340/mo
Users 1 3 5 25
Project profitability No No Yes Yes
Class tracking No No 40 combined classes and locations Unlimited

You do not need Make expenses and items billable to job-cost. That switch puts a cost on the customer’s invoice. Enter billable expenses (updated 2026-08-04) is a Plus and Advanced reimbursement tool. Leave Billable off on flat-rate tickets.

Classes are a poor fit for individual jobs. Turn on class tracking (updated 2026-08-03) is for departments and product lines: HVAC vs plumbing, or a crew.

Whether this tagging is worth the hours is a different question. See Is QuickBooks job costing worth it for a small contractor?.

Create one project per job

Name the project for the job address or ticket number, not the customer’s last name. Two water-heater swaps at the same house need two projects.

  1. Go to All apps, then Projects, then Projects.
  2. Select New project.
  3. Enter the project name. Pick the customer. Start and end dates are optional.
  4. Select Save.

The project stays empty until something is tagged to it. Intuit’s add-to-project help (updated 2026-08-03) is the same field wherever you enter the transaction: pick the project in Customer/Project on the invoice, bill, expense, check, or timesheet.

Labor is a second setup. Intuit’s labor-costing help (updated 2026-08-05) gives two views:

Labor method When the number shows up What it includes
Payroll expenses After you run payroll Wages plus taxes and workers’ comp posted from payroll
Estimated hourly costs As soon as timesheets hit the project A rate you type per employee; Intuit says it is less accurate

Hourly rates only apply to time entered after you set them. Salaried techs still need timesheets if you want their cost on a job. The Project profitability report uses payroll expenses, so a shop that only tracks hourly costs will see a thin report there.

Where each cost gets its job

The report only knows what someone tagged. A typical week includes card swipes, emailed Ferguson invoices, timecards, a sub’s bill, and a return credit with no PO.

Cost Where it shows up Job tag in QuickBooks
FSM invoice The sync Customer/Project on the invoice. Often the parent customer, not the job.
Home Depot or supply-house swipe Credit card feed Customer/Project on the charge, not on the statement payment. How to assign credit card expenses to jobs is that click path.
Mixed receipt One swipe, two jobs Split the charge. Category, amount, and Customer/Project on each line.
Supply-house bill Email or vendor bill Customer/Project on each line of the bill.
Tech hours Timesheet on the project After you set an hourly cost, or after payroll if you use payroll expenses.
Sub invoice Vendor bill Customer/Project on the bill.
Truck stock The van Only if someone logs quantity used. Otherwise the job looks fat.
Statement payment, card interest, fuel Checking or the card No. Overhead, not a job.

A CPA who works with home-service shops put the hole on X in July 2026: Ramp, Housecall Pro, and QuickBooks can all be connected, and a Lowe’s swipe still does not inherently know the job number.

What the FSM sync actually posts

The sync is built to stop double-entry of invoices. It is not built to fill a project P&L.

Jobber. The new QuickBooks Online integration (updated 2026-08-11) is one-way from Jobber: clients, products and services, invoices, payments, and timesheets. Timesheets sync for payroll when names match and QuickBooks Payroll is on. They do not create a Project per job. Does Jobber have job costing? covers the in-app profit bar, which lives in Jobber.

Housecall Pro. The QBO sync help (updated 2026-09-03) lists what pushes: invoices, payments, new customers, and new price book items. Labor, material job inputs, and miscellaneous costs stay in Housecall Pro. How to get job costing reports out of Housecall Pro is the in-app path.

Workiz. How invoice details map (updated 2026-10-06) syncs the client, invoice, line items, and payments. Item cost and labor cost do not sync. An extra job field can map to a QuickBooks class. Class is still a trade or a crew, not a ticket.

If every invoice lands on one customer and one service item, there is nothing real to tag a Ferguson bill against. Open last week’s invoices in QuickBooks. If the Customer field is the homeowner, or a catch-all like “Jobber customers,” and the line is one generic service, the sync did its job and job costing did not start.

Where the report still comes out empty

On r/Bookkeeping, shops hit the same wall: the Project Overview stays empty until a transaction is tied to that project and coded to a cost account. On r/smallbusiness, uncategorized expenses in the bank feed are what later wrecks the job P&L, and cleanup eats the month.

Four holes show up in the same shops:

  1. The dump. Revenue is in. Costs have nowhere to land.
  2. Labor that is late or light. Payroll expenses hit after payroll. Estimated hourly costs miss time entered before you set the rate. A job that “made 40%” with wage-only labor still loses money once payroll tax and workers’ comp are in.
  3. Truck stock and mixed receipts. Parts off the van never hit the card. One Home Depot ticket for two jobs is wrong on both until you split it.
  4. Overhead. Trucks, rent, insurance, and software stay off every project P&L unless you bake them into the hourly cost rate. Intuit’s labor help says you can. Most small shops do not.

Advanced, after Intuit’s August 2026 construction tools, adds estimates versus actuals, AIA-style invoicing, change orders, and WIP. Those pay off when the office enters POs and phases. They do not assign a supply-house swipe by themselves.

Four ways shops actually keep the tags current

1. Run QuickBooks job costing as designed

Stay on Plus. Projects on. One project per job, named for the address or ticket. Set a burdened hourly cost on every tech. Put the job address on supply-house POs. Tag the bank feed the same week. Right answer when the owner still sees every receipt. It breaks the first busy week nobody tags.

2. Keep the profit bar in the FSM, and tag only the books

Stay on Jobber Grow or Plus, or turn on Housecall Pro’s job costing breakdown, for the in-app view. In QuickBooks, retag each synced invoice to the project and tag the costs that never left the bank feed. This holds for a one- or two-truck shop. It is two reports, not one.

3. Hire a job-costing VA

Job posts for the role ask someone to assign 5 to 10 transactions a day to the right job by property address. Offshore listings for that work commonly run about $800 to $1,100 a month. A person can split a receipt and chase a credit with no PO. You still train them on your jobs and check their work.

4. Use software that tags from the FSM and the bank feed

A newer set of tools leaves the FSM and QuickBooks in place and matches card swipes, supply-house bills, timecards, and sub invoices to a job using tech, time, address, and supplier. Anything they cannot place goes to a short exception list. We make Truceipts, which does this, so weigh that suggestion accordingly. Ask whether a tool only adds tags, whether changes can be undone, and whether it shows why it matched each cost.

How to tell this week

You know the setup is working when you are on Plus or Advanced, every open job has a project, last week’s closed jobs show labor and materials on the project overview, mixed receipts are split, and you can open that overview on Monday without a spreadsheet rebuild.

If the overview shows revenue and almost no cost, the feature is on and the data is not.

Pull last week’s ten closed jobs from the FSM. Lay each one next to the timesheets, the supplier PDFs in your inbox, and the card charges in QuickBooks. Start with those three files. They already exist.

Frequently asked questions

Do I need QuickBooks Online Plus to job-cost a service business?

Yes. Projects, which is how QuickBooks Online does job costing, are on Plus, Advanced, and Intuit Enterprise Suite. Simple Start and Essentials do not include them. Intuit's pricing page, read 2026-10-08, lists Plus at $140 a month and Advanced at $340 a month at list. Check Account and Settings, because plan names move.

Does the Jobber or Housecall Pro sync fill in profit per job in QuickBooks?

No. Jobber's new QuickBooks integration, updated 2026-08-11, syncs clients, products, invoices, payments, and timesheets one way into QuickBooks. Housecall Pro's sync help, updated 2026-09-03, pushes invoices, payments, new customers, and new price book items. Neither creates a Project per ticket. Profit by job still needs every cost tagged to that project.

Should I use classes instead of Projects for each service call?

No. Classes on Plus (40 combined with locations, per Intuit's pricing page read 2026-10-08) are for a trade or a crew. Intuit's class help, updated 2026-08-03, describes departments and product lines. A class per ticket blows that list. One project per job is the job-costing tool.

Do I have to mark expenses billable to job-cost them?

No. Billable puts the cost on the customer's next invoice. Profit by job only needs Customer/Project filled in. Intuit's billable-expense help, updated 2026-08-04, is a Plus and Advanced reimbursement tool. On flat-rate work, leave Billable off so you do not invoice parts already in the price.

Why does the project overview show revenue and almost no cost?

The overview only counts transactions tagged to that project and coded to a cost account. Revenue from the FSM invoice is there. Card swipes, supply-house bills, and labor are not until someone picks the project. If last week's closed jobs show income and almost no cost, the feature is on and the tags are missing.

Related

Request your spot

Month-to-month. No card needed today. Privacy