Resources

Construction job costing, explained

What job cost accounting is, the cost codes and labor burden that make it accurate, and how to set it up in QuickBooks so margin by job is trustworthy.

What is job costing?

Job costing is the practice of assigning every dollar of revenue and cost to the specific job that generated it, so the business can report gross margin per job rather than only for the company as a whole.

Job cost accounting is the same discipline carried through the general ledger, so the job cost reports reconcile to the financial statements instead of living in a separate spreadsheet that quietly disagrees with the books.

Why company-level profit hides the problem

A contractor running at a 22% gross margin overall may be running 35% on service work and 8% on large commercial jobs. Company-level reporting averages those together and makes the losing work invisible. The owner keeps selling the wrong jobs because nothing in the reporting says to stop.

Job-level margin is what changes bidding, crew assignment, and which work you walk away from.

Cost codes: the foundation

Cost codes are the categories every job cost is filed under. They need to be granular enough to be useful and few enough that the field will actually use them correctly.

  • Labor — by crew type or phase, not one generic bucket
  • Materials — separated from labor so price movement is visible
  • Subcontractors — tracked per job for margin and for 1099 and lien exposure
  • Equipment — owned and rented, allocated to the job that used it
  • Other direct costs — permits, dumpsters, travel, disposal
  • A consistent structure across estimating, field entry, and accounting — mismatched codes are the number one reason job cost reports are not trusted

Labor burden is where most job costing breaks

Charging a job only the base wage understates cost by 20% to 40%. Payroll taxes, workers' compensation, general liability, benefits, vehicle and fuel, and non-productive time all belong in the burdened labor rate.

Calculate a burdened hourly rate per crew type, apply it to job cost entries, and true it up periodically against actual payroll. Without this, every margin number on every job is wrong in the same optimistic direction.

Committed costs and change orders

A purchase order issued today is money spent, even if the invoice arrives in six weeks. Job costing that only counts posted invoices always shows better margin than reality until the job is finished and it is too late to react.

Change orders and supplements need to hit job cost as they are approved. Work performed and not yet billed is one of the most common sources of margin fade on contractor jobs.

How to set up QuickBooks for contractor job costing

The setup order matters. Doing it in this sequence avoids a rebuild later:

  • Turn on projects or job tracking and make the job field required on cost entries
  • Build the cost code list as items or classes, mirroring the estimating structure
  • Split the chart of accounts between direct job costs and overhead
  • Enable payroll allocation to jobs and load burdened labor rates
  • Add separate accounts for retainage receivable and retainage payable
  • Set up WIP accounts so over- and under-billings can be posted monthly
  • Reconcile job cost reports to the profit-and-loss statement every month

From job costing to WIP reporting

Once job costs are accurate, WIP reporting becomes possible: percent complete, earned revenue, and over- or under-billing per job. That schedule is what lenders, bonding agents, and CPAs ask for, and it is what tells the owner whether reported profit is real or borrowed from future billings.

Want this reviewed against your actual numbers?

Your financial reports should answer questions.
Not create more of them.

Book a 20-minute review of your job margins, cash flow and reporting — or model a contract's cash impact first with the free analyzer.

Not ready to talk? Take the 3-minute Financial Health Check.

Book a 20-Minute Financial Review