Job Costing: How Contractors Know Which Jobs Actually Make Money

Written by:

TL;DR

  • Job costing tracks costs by project rather than a single blended company number, and it is the only way to know which jobs actually make money.
  • A profit and loss statement, a job cost report, and a WIP schedule each answer a different question, and reading only one of them can hide a real problem.
  • Job costing usually breaks down in the same five ways: inconsistent cost codes, late time entry, miscoded materials, unallocated equipment, and change orders costed before approval.
  • Clean-looking reports built on loose coding discipline are more dangerous than rough numbers you already know to double-check.

If you are running more than a handful of jobs a year, you already know the feeling. Revenue looks fine on the P&L, but you cannot say with any real confidence which specific job drove it. 

Maybe it is the one that finished under budget. Maybe it is just the one that has not yet received its final invoice. A blended number cannot tell you the difference, and neither can a gut feeling. Job costing is the only tool built to actually answer that question.

The software your team already uses, whether that is Buildertrend, QuickBooks, or both together, is not what determines whether job costing works. It displays the number, but the discipline behind coding it correctly is what makes that number worth trusting. 

This guide walks through what job costing actually is, what it costs you to get wrong, and how to tell whether yours is one you can rely on.

What Job Costing Is

Job costing is the practice of tracking every cost tied to one project separately, so you can see the real profit on that specific job instead of one blended number for your whole company. That is the simplest job costing definition, and it is probably one you already understand instinctively, even if you have never used the term for it before now.

So what is job costing in practice? It means every job gets its own ledger of labor, materials, subcontractors, and equipment, coded as the work happens rather than dumped into a general expense account at the end of the month. 

General accounting tells you whether the company made money this quarter. Job costing tells you which job made it, which job lost it, and by how much.

Software vendors tend to gloss over that last part. A job costing definition that stops at “track your costs by project” makes it sound like a reporting feature, when it is more of a discipline. What is job costing worth, though, if the report only holds up when every dollar and every hour lands on the right job on the way in, not reconstructed after the fact?

What Actually Gets Costed to a Job

Four categories are straightforward. Labor is the hours your crew spends on that specific job, priced at what they actually cost you rather than just their hourly wage. 

Materials are whatever gets ordered, delivered, and used on that job site. Subcontractors get billed directly for the job they worked. Equipment refers to the machinery and tools required for the job, whether you own them or rent them for the week.

The fifth category is where job costing gets hard, and it is where most contractors quietly get it wrong. Indirect and overhead costs include office staff, insurance, depreciation, and equipment sitting idle between jobs. None of that attaches to any one project on its own, so someone has to decide how much of it gets allocated to each job, and that decision is a judgment call, not a formula you can look up. 

The Associated General Contractors of America notes that general costs and overhead not assignable to a specific task must still be built into the cost picture, alongside equipment costs and subcontractors’ work.

Whatever method you choose for overhead allocation, apply it consistently to every job. If one project absorbs a bigger share of overhead than another for no real reason, you cannot compare the two jobs honestly, and that comparison is the entire point of job costing in the first place.

What an Owner Sees With Job Costing, and What They See Without It

You already know the feeling if your job costing is not reliable. Revenue was up last month, but it still felt tight, and you cannot say exactly why. Ask that same question once real job costing is in place, and you’ll get an answer with a job number attached instead of a guess.

The QuestionWithout Job CostingWith Job Costing
Which job made the most money?A guess based on which client paid fastest or complained leastA ranked list, by job, with actual margin next to each one
Why did the good month feel tight?No clear answer, just a feeling that something is offA specific job or two eating margin, while the top line looks fine
Whether this bid is priced rightPriced off instinct and what similar jobs cost last yearPriced off what the last comparable job actually cost, not what it was supposed to cost
Which crew is actually efficient?Whoever finishes fastest looks best on paperLabor hours and output are compared honestly across jobs and crews
Whether to take the next job at this priceA yes or no based on gut feel and how busy you areA yes or no based on whether the last job at that price actually made money

This is the enhanced financial visibility job costing is supposed to deliver, and it is also why two contractors running the exact same revenue can end the year in very different places. You want to be the one who knows exactly which jobs to chase again, not the one guessing from the same starting point every time.

Job Costing, the P&L, and WIP Answer Three Different Questions

It is easy to mix these three up, and doing so costs you. The profit and loss statement tells you whether your company made money over a period of time, summed up across all jobs. 

Job costing tells you which specific job produced that profit or loss, broken down by cost code. Work in progress, or WIP, tells you something neither of the other two can, whether you are overbilled or underbilled on a job that is still running, and whether the revenue you have recognized actually matches the work that has actually been done.

Skip WIP and read the job cost alone; a job can look healthy purely because you billed ahead of the work. The National Association of Surety Bond Producers describes this exact trap: a contractor showing a positive margin on every job while cash still drains out of the bank account every month because the indirect-cost side of the math was never fully worked through. Run your full numbers, and a job that appeared to carry a 15 percent margin can turn out to be a 5 percent loss instead.

This is also exactly what a lender or surety looks at first, since a job cost report without a WIP schedule behind it will not withstand that kind of scrutiny.

Why Job Costing Goes Wrong Even When the Software Is Fine

Buildertrend and QuickBooks can both be set up correctly, and job costing can still fall apart anyway, because the software only records what your team tells it. The failure points are almost always the same five things.

Cost codes get applied inconsistently, so one person on your team calls it framing labor, another calls it carpentry, and now two identical tasks live in two different buckets. Time is entered late or in batches at the end of the week, so hours drift onto whichever job is open in the system instead of the job where the work actually happened. 

Materials get coded to the job that was open on the truck’s tablet, not the job that used them. Equipment costs are never allocated, so a piece of machinery sits as a company-wide expense instead of a cost on the job that actually needs it. Change orders get costed before they are approved, so the report ends up showing spending on scope that was never confirmed.

None of this shows up as an error message. The report still runs, and the numbers still add up to something, which is exactly what makes the failure dangerous. 

I work with construction owners, and it is pretty easy for a financial report to look fine to any owner. Nothing on the page shows that the coding behind it has slipped.

If your numbers are rough and honest, you already know to double-check them before making a decision. If your reports look clean but rest on loose coding discipline, you end up trusting a number that was never right, and that is the worst position to be in.

How to Tell If Your Job Costing Is Trustworthy

Run these checks this week. Each one should get a plain yes or no.

Ask yourself: 

  • Can you name the margin on your last three closed jobs without asking anyone? 
  • Do your job cost reports and your WIP schedule actually agree? 
  • Is every hour worked coded to a job within a week of the work happening? 
  • Is equipment cost allocated to jobs at all, or does it sit as overhead? 
  • Does the person who enters costs into the system understand your cost code structure well enough to use it consistently every time?

If you answered no to two or more of these, your numbers are not broken beyond repair, but they are not something you should be bidding your next job on either. You are not the only one dealing with this. 

The National Association of Home Builders runs entire courses dedicated solely to job costing for builders, built around its own chart of accounts, because the industry has learned the hard way that this does not run itself. NAHB runs the course on a regular cycle, so check the page for the next scheduled session.

How Nimbl Sets Up Job Costing for Contractors

The software is rarely the reason why job costing breaks down. The real issue is the operating discipline behind it, deciding how costs get coded and who owns that decision. That discipline is an accounting function, not a technology purchase.

Nimbl starts with the cost code structure itself, built around how you actually build rather than a generic chart of accounts. Someone has to own coding, meaning one person or one process decides how labor, materials, and change orders get classified every time, the same way. That ownership connects to construction bookkeeping done at a tight cadence, so job cost reports reflect last week’s work, not last quarter’s.

From there, job costing links to WIP and to cash. A job cost report that never touches your cash flow forecast is only giving you half of your financial reporting. That is where financial reporting stops being a monthly formality. It starts functioning as financial operations you can actually run the business on, the kind of strategic finance leadership a growing contractor needs once instinct alone stops being enough.

Nimbl builds this as integrated financial operations rather than a bolt-on service. That is also why contractors looking for CFO services for small businesses often end up needing accounting and strategic finance to work from the same numbers, rather than two departments arguing over whose report is right.

Start With the Job You Are Least Sure About

Pick one job right now, the one you have the least confidence in. Not the biggest job, not the most recent one, just the one where you would hesitate if someone asked what it actually made.

Try to answer that question with real numbers. Labor, materials, subs, equipment, and a fair share of overhead, all coded to that one job. Whatever is stopping you from answering cleanly is your actual job-costing gap, and it is usually more specific and fixable than it feels right now.

If you want help finding that gap and closing it, talk with Nimbl about what your job costing should be telling you and what it is not yet.

Dylan Dean, CMA, is Nimbl’s Construction Accounting Lead and works with construction business owners across the U.S.

Connect with Dylan on LinkedIn

FAQs

What Is the Difference Between Job Costing and a Profit and Loss Statement?

A profit and loss statement shows whether your company made money over a period by combining all revenue and expenses into a single number. Job costing breaks that same period down by individual job and cost code, showing which specific projects drove the result. 

A healthy P&L can still hide one job that lost money and another that carried it. Job costing is the only one of the two that tells you which job was which, so you know what to repeat and what to stop pricing the same way.

Which Indirect Costs Should Be Allocated to a Job, and Which Should Stay in Overhead?

Costs tied to running a specific job, a share of insurance, equipment depreciation, and supervision time spent on that job, should be allocated to it. Costs that support the whole company regardless of which jobs are running, like main office rent or ownership salary, usually stay in overhead. 

The exact line depends on your business, but the same rule has to apply to every job. Inconsistent allocation is what makes job margins impossible to compare honestly across projects.

How Often Should a Contractor Review Job Cost Reports, and at What Level of Detail?

Active jobs should get a job cost review at least weekly, at the cost code level, not just a single total. Waiting until the month ends means labor and material miscoding has already piled up across several jobs, and by then, the fix becomes a cleanup project rather than a five-minute correction. A weekly review at the cost code level catches a coding mistake while the person who made it can still remember what actually happened on the job that day.

Why Do Job Cost Reports and WIP Disagree, and Which One Should You Trust?

They disagree when billing and actual progress move at different speeds, which happens on almost every active job at some point. Job cost tells you what has been spent. 

WIP indicates whether what has been billed matches the actual percentage of work completed. Neither one is wrong on its own, but reading job cost without WIP can make an overbilled job look healthier than it is. Trust the two together, not either one in isolation, especially before a conversation with a lender or surety.

Can a Contractor Run Job Costing in QuickBooks Alone, or Is More Required?

QuickBooks can track job costs if every transaction is coded correctly and consistently, which is the part that usually breaks down. The software will not stop someone from miscoding an hour or leaving the equipment cost unallocated. 

If you are only running a handful of jobs a year with tight coding discipline, QuickBooks alone can work. Once your job volume or crew size grows past what one person can code carefully, you will likely need either a dedicated system on top of QuickBooks or a process someone else owns.

Tap our resource library for
everyday insights from top experts.