Job Costing for Service Businesses
Most service-business owners can tell you what they charged for a job. Far fewer can tell you what that job actually cost them — and whether it made money. Job costing closes that gap. It is the practice of adding up every cost tied to a single job so you can compare it against the revenue that job produced, and see the profit (or loss) clearly.
Done consistently, job costing turns gut feel into evidence. It tells you which types of work are worth chasing, which customers or jobs quietly drain your margin, and whether your prices are actually covering your costs. This guide walks through what goes into a job cost, how to compare your estimate against reality, and how the numbers feed back into smarter pricing.
This article is educational and general in nature. It is not accounting or tax advice, and costing and bookkeeping practices vary by business and jurisdiction — check with a qualified accountant for your situation.
What job costing is (and why it matters)
Job costing assigns costs to a specific unit of work — one service call, one installation, one project — rather than lumping everything into a single monthly total. The alternative, looking only at whole-company profit at month's end, hides the story. A profitable month can easily contain jobs that lost money, propped up by a few that did well. You just can't see it.
When you cost jobs individually, you can answer questions that actually change how you run the business: Are our replacement jobs more profitable than our repairs? Is that one big recurring client worth the discount we gave them? Did the job we quoted flat-rate leave anything on the table? These are decisions about where to point your time, your crew, and your marketing — and they are hard to make well without job-level numbers.
The components of job cost
A complete job cost usually includes five categories. The first three are direct costs (traceable to the job); the last two often require some allocation.
- Direct labor at a loaded rate. This is the biggest trap in job costing. The cost of a technician's time is not their hourly wage — it is their loaded cost, which adds payroll taxes, workers' comp, benefits, paid time off, and other employment costs on top of the base wage. A tech paid $30/hour might genuinely cost you $40–$50/hour once everything is included. Using the raw wage understates every job. (Our billable hourly rate calculator walks through building a loaded rate.)
- Materials and parts. The parts, consumables, and supplies consumed on the job — priced at what you actually paid, including freight where relevant.
- Subcontractors. Any work you paid an outside party to perform for this job.
- Equipment. Costs tied to using specific equipment — rental, fuel, or a usage allocation for owned machines. Small-tool and vehicle costs are sometimes folded into overhead instead; either approach can work as long as you are consistent.
- Allocated overhead. The indirect costs that keep the business running but aren't traceable to one job — office rent, software, insurance, advertising, admin salaries, general vehicle costs. You spread a share of these across your jobs using a reasonable basis (a common one is a percentage of labor hours or of direct cost). The exact method varies; the important thing is that overhead is included somewhere, because it is very real money.
Estimated vs. actual costing
Job costing happens at two moments, and both matter.
Estimated cost is what you project before the work, when you build the quote. You forecast the labor hours, parts, and other costs, add overhead, and price from there. This estimate is the foundation of a profitable quote.
Actual cost is what the job really consumed once it's done — the hours logged, the parts pulled, the subs paid. Capturing this requires discipline in the field: techs recording real time on the job, and parts getting attributed to it rather than disappearing into a general supply bucket.
The value comes from closing the loop — comparing estimated to actual after the job. A job that repeatedly runs over on hours is telling you your estimates are optimistic, your process is inefficient, or your scope is creeping. If you never compare the two, you keep repeating the same estimating mistakes indefinitely.
A worked example
Consider a hypothetical equipment-replacement job quoted at $4,200. Here is how the actual cost might break down:
| Line | Basis | Amount |
|---|---|---|
| Revenue (invoiced) | — | $4,200 |
| Direct labor | 12 hrs × $45 loaded rate | −$540 |
| Materials / parts | Equipment + supplies | −$1,850 |
| Subcontractor | Electrical hookup | −$300 |
| Equipment | Fuel + tool allocation | −$60 |
| Allocated overhead | ~15% of direct cost | −$412 |
| Total cost | −$3,162 | |
| Profit | Revenue − cost | $1,038 |
| Gross margin | Profit ÷ revenue | ~24.7% |
The numbers above are illustrative, not benchmarks — your real figures depend on your rates, region, and cost structure. But the shape of the calculation is what matters: revenue minus fully-loaded cost equals profit, and profit divided by revenue is margin. Notice how the loaded labor rate and the overhead allocation both pull real dollars out of the result. Drop either one and the job looks more profitable than it is. To run your own numbers, the job profit margin calculator does this math for you.
How job costing feeds pricing
Job costing and pricing are two ends of the same loop. Your estimated costs set the floor for a quote — you price up from cost to hit a target margin, not down from a competitor's number. Then actual costs from completed jobs tell you whether that floor was real.
Over time, patterns in your actual costs become your best pricing input. If service calls of a certain type consistently cost more than you assumed, that is a signal to raise the price, tighten the scope, or improve efficiency — not to keep absorbing the difference. This is why costing is upstream of pricing: you cannot price profitably for long if you do not know your true cost. For the pricing side of the loop, see how to price service jobs profitably.
Common mistakes
- Ignoring overhead. Costing only direct labor and parts makes nearly every job look profitable while the business as a whole struggles. Overhead is a cost of doing the job — include it.
- Using wage instead of loaded cost. Pricing off a technician's base wage systematically underprices your work, because it ignores taxes, benefits, and the rest of the true cost of employment.
- Never comparing quoted vs. actual. Estimating without ever checking the result is guessing with extra steps. The comparison is where the learning lives.
- Inconsistent method. Moving overhead in and out, or costing some jobs and not others, makes the numbers uncomparable. Pick a method and apply it the same way every time.
FAQ
How is job costing different from just tracking expenses? Expense tracking tells you what the business spent over a period. Job costing assigns those costs to individual jobs, so you can see profit at the job level rather than only in the monthly total.
Do small service businesses really need job costing? Even a light version helps. If you at minimum capture actual labor hours and parts per job and compare them to what you quoted, you will surface pricing problems that a whole-company P&L hides. You can add overhead allocation as you grow.
How do I allocate overhead to a job? There is no single correct method. Common approaches spread overhead as a percentage of direct cost or per labor hour. What matters most is choosing a reasonable, consistent basis — an accountant can help you pick one that fits your business.
Next steps
Start by fixing the two inputs that trip up almost everyone: build a proper loaded labor rate and make sure overhead lands on your jobs. From there, cost a handful of recent jobs, compare estimated against actual, and look for the pattern. To go further, pair this with your operational numbers in the field-service KPIs and metrics guide, and run individual jobs through the job profit margin calculator to see margin at a glance.