How to set up job costing in QuickBooks Online, step by step

By Zia Nawaz, Owner & General Contractor, Eiffel Builders Inc.9 min read

QuickBooks Online can do job costing. Most contractors who say it can't have simply never switched the feature on, or switched it on and then kept entering bills without telling QuickBooks which job they belong to. Once it is set up properly, every job gets its own page showing income, costs and profit.

This guide walks through the setup in the order you actually do it: turn on Projects, create a project for each job, put costs on the job as you enter them, get labor onto the job, and read the numbers. It ends with the honest part: what QuickBooks does well here, and the one thing it cannot do on its own.

Menus in QuickBooks move around between updates. If a label below doesn't match your screen exactly, search the feature name in QuickBooks' own help and it will point you to the current spot.

Before you start: which QuickBooks plan you need

Job costing in QuickBooks Online runs through a feature called Projects. According to Intuit, Projects is available on the Plus and Advanced plans. If you are on Simple Start or Essentials, you won't find the setting, and the only way to get it is to upgrade.

Advanced adds one thing contractors care about: project estimates, so you can compare what you estimated against what the job actually cost on the project dashboard. On Plus, you still see actual income, costs and profit per job, just without the estimate beside it.

Once you turn Projects on, Intuit says you can't turn it off again. That is fine for almost every contractor, but it is worth knowing before you click.

Step 1: Turn on Projects

  1. Open the Settings menu (the gear icon) and choose Account and settings.
  2. Select the Advanced tab.
  3. Find Projects and turn on "Organize all job-related activity in one place".
  4. Save. A Projects page now appears in the menu, usually under Business overview.

Nothing about your existing books changes when you do this. Old bills and invoices stay where they are; Projects only starts collecting the transactions you assign to it from here on, plus any older ones you choose to move in.

Step 2: Create a project for each job

A project in QuickBooks is one job. It sits under a customer, so a client with three jobs gets three projects. Keep it to one project per contract, not one per client, or the profit you see will be an average across jobs and hide the one that is losing money.

  1. Go to Projects and select New project.
  2. Name it the way your crew refers to the job: an address or a short job name works better than a contract number nobody remembers.
  3. Pick the customer. You can add or change this later.
  4. Add a start and end date if you want them on reports. Status defaults to In progress.
  5. Save.

Step 3: Put every cost on the right job

This is the step that makes or breaks job costing in QuickBooks. A project only knows about a cost if the transaction is assigned to it. On bills, checks and expenses, each line has a Customer/Project column; choose the project there. On invoices and estimates, choose the project in the Customer field.

  • Supplier bills: assign each line to the project it was bought for. A bill that covers two jobs gets split across two lines.
  • Card and bank expenses: when you categorise a transaction from the bank feed, set the Customer/Project on it, not just the account.
  • Materials you'll charge back to the client: tick Billable so they show up when you build the next invoice.
  • Subcontractor bills: same as supplier bills, one project per line.
  • Anything you entered before turning Projects on: you can add existing expenses to a project afterwards, so recent jobs can be backfilled.

The most common reason a QuickBooks project shows a fat margin is not good work; it is costs sitting in the books with no project on them. If a job's profit looks too good, check for unassigned bills from that week first.

Step 4: Get labor onto the job

Labor is usually the biggest cost on a job and the one QuickBooks is most likely to miss. It only shows up in a project when time is recorded against that project and QuickBooks knows what an hour of that person costs you.

  1. Record time against the project. Each time entry or timesheet line needs the project selected, the same way a bill does.
  2. Set an hourly cost rate for each worker. In Projects, use the settings menu and choose the option to set cost rates, then add each employee.
  3. Make the cost rate the real, fully loaded cost: pay rate plus payroll taxes, workers comp and any benefits, not just the wage.
  4. Enter cost rates before the timesheets. Intuit notes that a cost rate only applies to timesheets entered after it was set; older ones will not be counted in the project.
Cost of one hourExample
Pay rate$28.00
Payroll taxes (about 10%)$2.80
Workers' comp (varies by trade and state)$3.50
Benefits and paid time off$1.70
Cost rate to enter$36.00

The figures above are an illustration, not a benchmark; your own taxes, comp rate and benefits set the real number. The point is that entering $28 when an hour really costs you $36 makes every job look about 22% cheaper on labor than it was.

Step 5: Read the numbers

Open any project and the overview shows income, costs and profit for that job. The project also has its own reports, including profitability and unbilled time and expenses, so you can see what has been spent and what has not been invoiced yet. On Advanced, the estimate sits beside the actuals.

Look at it weekly, not at the end. The value of job costing is catching a job that is drifting while there is still time to act: price a change order, move a crew, or have a conversation with the client. A profit number that appears only after the final invoice is a history lesson.

Cost codes in QuickBooks Online

QuickBooks Online has no built-in cost codes in the construction sense. Contractors usually get close with one of two workarounds: use your Products and Services list as cost codes (for example Framing labor, Framing materials, Drywall labor), or use Classes, available on Plus and Advanced, to tag each line with a phase or trade.

Pick one approach and stick to it. Mixing both, or letting each person who enters bills invent their own, is how you end up with a job cost report nobody trusts.

Where QuickBooks falls short for a crew

QuickBooks is good at the books. Its job costing is only as current as the last time someone entered the week's bills, receipts and timesheets with the right project on each line. For an office with a bookkeeper that happens daily. For a small contractor, it often happens on Sunday night, or at month end, or when the accountant asks.

  • Receipts sit in trucks and wallets until someone collects them.
  • Crew hours arrive as texts or paper sheets and get typed in late, sometimes to the wrong job.
  • The project report is accurate for last month and silent about this week.

The fix is not replacing QuickBooks. It is getting costs captured where they happen: the hour logged when the worker clocks in on site, the receipt photographed at the counter, both already tagged to the job. SiteLedger does that part in the field and shows live profit per job, and on the Professional plan it sends receipts and timesheets across to QuickBooks Online, so the books stay in QuickBooks and the job numbers stop lagging a week behind.

Common questions

Can QuickBooks Online do job costing?
Yes, on the Plus and Advanced plans, through the Projects feature. You create a project for each job, assign bills, expenses and time to it, and QuickBooks shows income, costs and profit per job. Advanced adds estimates so you can compare estimate against actual.
Why does my QuickBooks project show higher profit than the job really made?
Almost always because costs are missing from it: bills or card expenses entered without the project selected, or labor with no hourly cost rate. Check for unassigned transactions from the job's dates and confirm every worker has a cost rate.
Why are my labor costs missing from the project?
Labor only appears when time is recorded against the project and the worker has an hourly cost rate. Intuit notes the rate applies only to timesheets entered after it was set, so older timesheets will not show up in the project.
Does QuickBooks Online have cost codes?
Not in the construction sense. Most contractors use the Products and Services list or Classes as a stand-in for cost codes. Choose one method and use it consistently so reports stay comparable.
Do I need separate job costing software if I use QuickBooks?
Not to see profit per job; QuickBooks can do that. Separate software helps when the problem is getting hours and receipts in on time and on the right job. Field tools capture those on site, show profit per job as costs land, and can send the transactions on to QuickBooks for the books.