Most contractors know their revenue. Far fewer know their profit — job by job, in real time. It's entirely possible to be booked solid every week and still be losing money on a chunk of those jobs without realizing it until the books close at the end of the month. That's the gap job costing is meant to close.
What Is Job Costing?
Job costing is the practice of tracking all the costs tied to a specific job — labor, materials, overhead — against the revenue that job generates, so you know the actual profit margin on that individual job rather than just your business's overall revenue.
For a service business, that typically breaks down into three cost categories:
- Labor — technician hours at their loaded cost (wage plus taxes, benefits, and overhead allocation)
- Materials — parts, equipment, and supplies used on that specific job
- Overhead — a portion of fixed costs like vehicle, insurance, and office expenses, allocated per job
Subtract those three from the revenue collected, and you get your true margin on that job — not your average margin across the business.
Why Revenue Alone Is a Misleading Number
A $4,000 job sounds great until you account for what it actually took to deliver it. If that job required two technicians for a full day, $1,200 in materials, and ran into unexpected complications that added two extra hours of labor, the real margin might be far thinner than it looked on the invoice — or negative.
Without job-level costing, contractors typically only find this out in aggregate, at the end of the month, when the bookkeeper reconciles total costs against total revenue. By then, it's too late to fix anything about that specific job — you can only see that something is off across the business as a whole.
The Real Cost of Not Job Costing
Businesses that don't track cost per job commonly run into the same set of problems:
- Underpriced estimates. Without knowing true labor and material costs on comparable past jobs, estimates are often guesses rather than data-driven.
- Invisible scope creep. A job that runs long due to added work often doesn't get re-priced, quietly eating the margin.
- Repeat unprofitable work. Certain job types (a specific repair, a certain customer, a certain crew) may consistently underperform — but that pattern is invisible without job-level data.
- Cash flow surprises. A business can look busy and profitable on paper while actually bleeding money on a subset of jobs that drag the average down.
How to Set Up Job Costing (Even Without Software)
If you're not using software yet, here's the manual version:
- Track labor hours per job, not just per day — technicians should log start/stop time against the specific job, not just clock in and out for the day.
- Assign materials to the job they were used on, not to a general supplies bucket.
- Calculate a loaded labor rate (wage + payroll tax + benefits + a share of overhead) rather than just the hourly wage — this is the number that reflects true cost.
- Compare cost to invoice total per job, not just per month, so you can catch underpriced or overrunning jobs individually.
- Review margin by job type periodically to spot patterns — certain services or customer types that consistently run thin.
This works, but it's slow and easy to fall behind on, which is why most growing contractors eventually move it into software.
What Real-Time Job Costing Looks Like
The more advanced version of this — and increasingly the standard for competitive service businesses — is real-time job costing, where labor and material costs are tracked automatically as the job happens, and margin is visible before the technician even leaves the site. Instead of discovering a job lost money weeks later, the business gets an alert the moment margin drops below a set threshold, while there's still time to address it — whether that means adjusting the invoice, flagging a pricing issue for future similar jobs, or having a conversation with the crew about time spent.
How ServTrackr Handles This
ServTrackr's real-time job costing tracks labor and materials automatically as a project moves through the system, showing profit margin, revenue, and cost breakdown on every job — before you've even left the site. Margin-drop alerts flag jobs that fall below your target profitability so problems get caught immediately instead of at month-end reconciliation. It's part of the same system that handles scheduling, estimates, and invoicing, so cost data flows through automatically rather than requiring separate manual tracking.
You can see it applied to your own jobs with a 14-day free trial.
Frequently Asked Questions
What is a good profit margin for a service business? Profit margins vary widely by trade, but many home service businesses target 15–30% net margin per job after all labor, materials, and overhead are accounted for, with higher-margin trades (like specialty repairs) often running toward the top of that range.
What's the difference between job costing and job pricing? Job pricing is what you charge the customer upfront, typically based on an estimate. Job costing is what it actually cost you to deliver that job. Comparing the two after the fact reveals whether your pricing model is accurate.
Can small service businesses do job costing without expensive software? Yes, though it requires more manual discipline — tracking technician hours and materials per job in a spreadsheet works, but most businesses find it becomes unsustainable to maintain accurately as job volume grows, which is when software-based tracking becomes worthwhile.
How often should I review job costing data? Ideally per job, in real time, so pricing or scope issues can be caught immediately. At minimum, a weekly review by job type or crew can catch patterns before they compound into a larger profitability problem.