5.0 from 22 Google reviews
Pricing Process Reviews About FAQ Contact Blog

Job Costing for Contractors: How to Track Profit on Every Job

How to tag labor, materials and sub costs to each job so you can see which jobs actually make money.

What a client says

★★★★★

I can’t recommend Shea Business Solutions Bookkeeping & Tax enough! Managing a gym is busy, and my financials had fallen 4 years behind. Ryan tackled the QuickBooks reconstruction seamlessly and completely turned my business finances around. Thanks to his expertise, I finally have accurate reporting and total peace of mind.

Brad Melanson · Verified Google review

Read all Google reviews

Job costing means tagging every dollar of revenue and every direct cost to the job that produced it, so you can see the profit on each job instead of one company-wide number. For a contractor that means you can see which jobs made money and which ran over, and whether your estimates held up once the work was done, none of which a regular P&L will show you.

A company P&L can show a healthy year while two or three jobs lost money. Job costing picks those out, ideally in time to change how you bid the next one.

What job costing tells you

Once revenue and costs are tagged by job, profit by job shows which work is worth chasing. Estimate versus actual shows where bids run thin, usually labor hours or materials, and cost by type within a job tells you where an overrun came from so the next bid can account for it.

You don't need special software for any of it, just one rule held on every transaction: no bill, expense, timesheet or invoice gets saved without a job attached.

The cost buckets to track

  • Labor: wages for hours worked on the job, plus the employer costs that ride along with them, such as payroll taxes and workers' comp.
  • Materials: lumber, concrete, drywall, fixtures and anything else bought for that job.
  • Subcontractors: bills from subs who worked on the job.
  • Equipment and other direct costs: rentals, permits, dumpsters and disposal fees tied to one job.

Overhead, like office rent, insurance that is not job-specific and your own admin time, stays out of the job numbers. You cover overhead with the margin the jobs produce. Spreading it into individual jobs makes every job look worse and hides which ones are actually weak.

Setting it up in QuickBooks Online

Each client is a customer, each job for that client is a project (or sub-customer) under them, and every cost and invoice gets assigned to the project.

  1. Set up the job first. Create the project when the contract is signed. Anything bought before the job exists in QuickBooks tends to land untagged.
  2. Split cost of goods sold by type. In the chart of accounts, use separate cost accounts for job labor, materials, subcontractors and equipment. Our guide to the QuickBooks chart of accounts explains how cost accounts sit apart from overhead expenses.
  3. Tag every purchase. The customer or project field gets filled on bills, card charges, checks and expenses, no exceptions.
  4. Track time by job. Hours have to be recorded against the job they were worked on, not as one weekly lump.
  5. Invoice from the job. Progress bills and change orders go to the same project, so revenue and cost meet in one place.

Feature names and the reports included vary by QuickBooks Online subscription, so check what your plan offers before you design the setup around one report. The structure above works in any version that lets you assign transactions to a customer.

Labor is where job costing breaks

Materials and sub bills usually arrive with a job name on them. Labor does not. When payroll is entered as one total per pay period, every job shows its materials and subs but no labor, and the profit on every job looks better than it is.

The fix is time tracked by job, then labor cost assigned from that time. Payroll taxes and workers' comp should follow the hours too, either through your payroll setup or a consistent allocation each pay period. If a crew lead splits a day across two sites, split the hours the same way.

Materials and card purchases

Two habits cause most material errors. The first is a card charge at a supply house saved with no job, often because the receipt was entered weeks later. The second is materials bought for stock and later used on several jobs without being moved to them.

Enter purchases close to the date they happen, keep the receipt with the job name written on it, and record returns against the same job the original purchase hit. A return booked to no job leaves the full cost sitting on the job that bought the material.

Reading the job profitability report

Here is a hypothetical example, not a Shea Business Solutions client result. A remodel was bid with an expected gross margin of 30 percent. At completion the job report shows 18 percent. Materials came in close to the estimate and subcontractors matched their bids, but labor hours ran well over. That points somewhere specific: either the labor estimate for that kind of job is too low, or the crew did extra work that should have been a change order.

Check the tagging before you act on a number like that. Open the transactions on the job and look for anything missing or posted to the wrong job.

A weekly job costing routine

  1. Enter the week's bills, receipts and card charges, each with a job.
  2. Approve timesheets with hours split by job.
  3. Run a report of costs with no customer or project and assign them.
  4. Invoice approved change orders to the job they belong to.
  5. Compare each open job's costs to date against its estimate.

Fifteen untagged transactions a week turns into hundreds by year end. Clearing them weekly keeps the job reports usable. Retainage on progress billing needs its own handling, which our guide on how to record retainage walks through.

When the job numbers cannot be trusted

If the file has months of untagged costs, payroll entered in lumps, or jobs that were never closed out, fix the history before building reports on it. Rebuilding job tags from bills, receipts and timesheets is part of what our catch-up bookkeeping work covers.

For contractors who want job costing kept current every month, see our construction bookkeeping service in Orlando, or start with a QuickBooks setup built around jobs from day one.

Quick Answers

What is job costing in construction?

Job costing assigns each job's revenue and direct costs, such as labor, materials, subcontractors and equipment, to that job so you can see the profit on each one instead of only a company-wide total.

Should overhead be included in job costs?

Usually not in the job profit report. Office rent, general insurance and admin time are covered by the margin jobs produce. Keeping them separate shows which jobs are actually weak.

Why do my job reports show no labor?

Most often because payroll is entered as one total per pay period instead of from hours tracked by job. Labor cost has to be assigned to jobs from timesheets.

RS

Ryan Shea

QuickBooks Level 2 ProAdvisor • Orlando, FL

Ryan Shea is the founder of Shea Business Solutions, a bookkeeping firm serving small businesses in the Orlando, Florida area. As a certified QuickBooks Level 2 ProAdvisor, Ryan specializes in QuickBooks setup, cleanup, monthly bookkeeping, payroll processing, and tax preparation. He works directly with business owners to bring clarity, accuracy, and confidence to their finances.

Stop Guessing. Start Knowing Your Real Numbers.

Whether you need a one-time QuickBooks cleanup or ongoing monthly bookkeeping, we can help. Schedule a free, no-pressure consultation with Ryan today.

Call (603) 759-8547 Schedule a Free Meeting
Back to All Posts
Call Now: (603) 759-8547