Contractor Bookkeepers Free quote (888) 720-4009

Job Costing in QuickBooks Online, Step by Step

Updated 2026-10

Rolled architectural drawings for a construction project

Before you start

You need QuickBooks Online Plus or Advanced; Projects are not in the lower tiers. You also need your estimate format in front of you, because the whole point is to build cost codes that match it. If you estimate in a spreadsheet with nine lines, you are about to create nine cost codes, not forty.

Step 1: turn on Projects and classes

Settings, Advanced, Projects: on. Settings, Advanced, Categories: turn on class tracking, and choose "one to each row" so a bill with lines for two departments can be split. If you do not have a service-versus-construction split, you can leave classes off for now; they can carry a second dimension later.

Step 2: create the cost codes as products and services

Each estimate line becomes a product/service item. Use the type "Service" for labour and sub lines, "Non-inventory" for materials. Map each item’s expense account to the matching cost-of-sales account (direct labour, materials, subcontractors, equipment) and its income account to the matching revenue account. Name them so they sort: 01 Site, 02 Foundation, 03 Framing, and so on.

Items are what let an estimate-versus-actual report line up. Classes alone can do it, but items also appear on invoices and on time entries, which classes do not do as cleanly.

Step 3: create the jobs as Projects

Each job is a Project under its customer. Name it so the crew recognises it: "Smith – kitchen remodel" beats "Job 0047". Set the start date. If you track estimates in QuickBooks, enter the estimate against the project with the items as lines; if your estimate lives in field software, you can still enter a summary estimate by item so the report has something to compare against.

Step 4: post costs to jobs

  • Bills from subs and suppliers: enter with the Project in the customer/project field on each line, and the item as the cost code
  • Bank-feed purchases: when coding, add the Project and the item; a materials purchase with no project is overhead and is almost always wrong
  • Time: use QuickBooks Time or weekly time entries with the Project and the service item; this is what makes labour appear on the job
  • Equipment: an internal charge via a journal or a zero-dollar bill against the job, at your hourly or daily rate per machine

Step 5: get labour onto jobs at the burdened rate

Time entries carry hours; payroll carries the wage. QuickBooks posts wages to jobs from the time data if payroll is set up for it, but the burden (employer taxes, workers’ comp, benefits) does not follow automatically. Two practical approaches: set a burdened cost rate per employee in payroll settings so job cost uses it, or post a monthly burden allocation to jobs in proportion to direct labour. Either is better than labour at bare wages.

Step 6: invoice from the project

Create progress invoices from the project so revenue is tied to the job. For work billed against a schedule of values, invoice by item in the percentages the contract allows. For deposits, use a deposit item mapped to the customer deposits liability account, and apply it against the final invoice, so a deposit never appears as income on the day it arrives.

Step 7: the reports to run every month

  • Project profitability (per project): revenue, costs by item, margin
  • Estimates vs actuals by project, if estimates are entered
  • Profit and Loss by Customer or by Class, depending on how you carry jobs and departments
  • Unbilled time and expenses: anything costed to a job and not yet invoiced
  • Transactions with no project: the weekly check that catches miscoding

QuickBooks Online does not produce a WIP schedule with over- and under-billings on its own. That is built outside the software from the project reports and the estimates, monthly, and it is the one piece most owners hand to a bookkeeper rather than build themselves.

Where it goes wrong

Three things, in order. Costs coded to the customer but not the project, which QuickBooks allows and which drops them off the job report. Time entered without a service item, so hours appear with no cost code. And deposits invoiced as income because the deposit item was mapped to a revenue account. Check all three in the first month and they stay fixed.

Where to go next

Common questions

Does QuickBooks Online produce a WIP schedule?

Not natively. It produces the project cost and billing data; the WIP schedule with over- and under-billings is built from that monthly.

Items or classes for cost codes?

Items for cost codes, classes for a second dimension such as department. Items flow onto invoices and time entries, which classes do not.

Can I retrofit this to existing jobs?

Yes, by recoding the history. The effort depends on how many months and transactions; it is the core of a cleanup engagement.

More guides

Request a quote

Tell us about the company and the state of the books. Your bookkeeper replies within one business day with a plain answer: what it would take, and what it would cost. Requests answered within one business day · Calls Mon–Fri, 9am–5pm Eastern Or call (888) 720-4009 if you would rather talk it through first.

Call (888) 720-4009 Contractor bookkeeping · From $250/mo