CatalystFor the Trades

Learn

Job Costing 101: Why We're Busy Doesn't Mean We're Profitable

A full schedule feels like success. Without job costing, it might actually be hiding a slow bleed across every job on the board. Here's how to find out which one is true.

Jennifer Bagley, Founder and CEO

By Founder & CEO · 5 min read

What Is Job Costing, and Why Does Being Busy Not Guarantee Being Profitable?

Job costing is the practice of tracking actual labor, materials, subcontractor, and overhead costs against each individual job, then comparing that to what the job actually billed. It's the only way to know whether a specific job — not the business in aggregate, the specific job — made or lost money. Without it, a trade business owner is flying on vibes: the calendar looks full, trucks are rolling, and revenue is coming in, but there's no way to know whether that activity is translating into profit or just churn.

Being busy and being profitable are not the same thing, and the gap between them is exactly what job costing exists to reveal. A crew can work every day for a month, hit revenue targets, and still lose money — if the jobs are systematically underpriced, running over on labor, or bleeding materials waste that nobody is tracking at the job level.

This applies across every trade — HVAC, electrical, plumbing, roofing, garage door, restoration — wherever a job has a defined scope, cost, and price. It matters more, not less, as a business scales, because more jobs running simultaneously means more opportunities for a systemic pricing or execution problem to hide inside a busy-looking topline.

Who Needs Job Costing

Any trade business running more than a handful of jobs a month needs at least basic job costing. It's non-negotiable once there's more than one crew, because at that point the owner can no longer personally track each job's profitability from memory. It's especially critical for businesses bidding fixed-price or flat-rate work, where a bad estimate on the front end directly becomes a loss on the back end — see Cash Flow vs. Profit: The Distinction That Kills Trade Businesses for the related cash-timing risk on top of this.

Failure Modes: How Businesses Stay Busy and Broke

Pricing off average cost instead of the specific job's cost

Using a single blended hourly rate or flat markup across all jobs hides the fact that some job types are systematically more expensive to deliver than others — travel time, material waste, complexity. Every job gets priced as if it were average, and the harder jobs quietly lose money every time.

Not tracking actual labor hours against estimated hours

If a job is estimated at eight labor hours and takes fourteen, and nobody tracks that gap, the same underestimate repeats on the next similar job, and the one after that. The business never learns from its own history.

Treating change orders casually

Scope creep on a job — extra work added without a formal change order and price adjustment — is one of the most common silent profit killers in the trades. The crew does the extra work because it feels reasonable in the moment; nobody bills for it because there's no process to capture it.

Confusing revenue per job with profit per job

A $20,000 job and a $5,000 job can have wildly different margins. An owner tracking only revenue, not cost-to-deliver, will chase the bigger jobs even when the smaller ones are more profitable.

Reviewing job costs only after the job is long closed

Job costing reviewed months after a job is finished is a history lesson, not a management tool. The value comes from catching a job running over while it's still in progress, when there's still time to adjust.

What Job Costing Looks Like When It's Working

Businesses that do this well track four things on every job: estimated versus actual labor hours, estimated versus actual materials cost, any subcontractor cost, and the final margin against the original bid. They review this weekly, not monthly, catching jobs that are running hot while there's still time to course-correct — pull a crew off a job that's clearly over budget, renegotiate a change order, or simply learn for the next estimate. Over time, this data becomes the foundation for better estimating, because the business is pricing off its own real history instead of guesswork.

This discipline is central to the Ultimate Contractor Financial Guide and directly supports the operator-level financial reading described in Reading Your P&L Like an Operator, Not a Bookkeeper — job costing is where the P&L's gross margin number actually comes from.

Your Job Costing Action Plan

  • Start tracking estimated versus actual labor and materials on every job, even with a simple spreadsheet if you don't have job-costing software yet.
  • Review job costs weekly, on jobs still in progress, not only after they close.
  • Build a formal change order process — any scope change gets documented and priced before the crew proceeds, not after.
  • Break out margin by job type and crew to find your systematically underpriced service lines or your most efficient teams.
  • Feed job costing data back into your estimating process — use real historical labor and material data, not gut-feel numbers, for future bids.
  • Set a margin floor per job type and flag any job that falls below it in real time, not at month-end.

Find Out Which Jobs Are Actually Making You Money

If you don't currently know your margin by job type, that's the single highest-leverage financial gap to close. Book a consult with Catalyst or get in touch and we'll help you build a job costing process that fits how your crews actually work.

Share this operator note

Privacy choices

Analytics and call tracking stay on. Choose whether optional advertising may personalize your experience. Change this anytime.

Cookie Policy