Job costing means adding up everything a single job cost you, so you know what you actually made on it. For a small service shop, a job's real cost has five parts: labor at a loaded rate (not the tech's wage), the truck, materials, a reserve for callbacks, and a share of your overhead. Add those up, then set the price by dividing the cost by one minus the profit margin you want. Pricing from the tech's wage leaves out most of that list.
To run the steps below with your own numbers, use the free service job cost calculator. It opens on this article's worked example.
The five parts of a job's cost
| Cost | What goes in it | The common mistake |
|---|---|---|
| Labor | Hours on the job, including the drive to it, at a loaded rate | Using the tech's hourly wage |
| Truck | Payment, insurance, fuel, maintenance, spread across trips | Counting only fuel |
| Materials | Parts, equipment, fittings, consumables, disposal fees | Forgetting the small stuff and the dump fee |
| Callbacks | A reserve for the jobs that come back under your warranty | Treating a callback as free because "it's our fault" |
| Overhead | Office, rent, insurance, phones, software, advertising, the owner's office time | Leaving it out of the job and hoping volume covers it |
The first four are direct costs: they exist because this job exists. Overhead is the cost of being open at all. You still have to recover it from jobs, because the work you sell is where the money comes from.
Step 1: Find your loaded labor rate
A tech's wage is what you pay per hour. Their loaded rate is what they cost you per hour of work you can actually charge for. The gap comes from two things: costs on top of the wage, and paid hours that aren't spent on a customer's job.
Costs on top of the wage include your share of payroll taxes, workers' comp and unemployment insurance, health insurance, paid time off, and tools, phones and uniforms. Payroll taxes alone are not small: the employer pays 6.2% for Social Security and 1.45% for Medicare, according to the IRS's Topic no. 751, Social Security and Medicare withholding rates. (Social Security stops at a yearly wage cap, $184,500 for 2026 per that page, far above the $58,240 in the example below.) Your workers' comp and unemployment rates depend on your state and your insurer, so get them from your policy and your payroll provider.
Hours you can't charge for include holidays and vacation, training, warehouse runs, stocking the truck, and the morning meeting. Count the drive to a customer as job time, since that job is the reason for the drive. The rest is time you pay for and recover elsewhere.
Worked example (made-up numbers)
Say you have one tech at $28 an hour, full time. These numbers are round examples. Use your own.
| Yearly cost of one tech | Amount |
|---|---|
| Wages: $28 × 2,080 paid hours | $58,240 |
| Employer Social Security and Medicare: 7.65% of wages | $4,455 |
| Workers' comp and unemployment insurance (your rates) | $3,500 |
| Health insurance contribution | $6,000 |
| Tools, phone, uniforms | $1,200 |
| Total cost of the tech | $73,395 |
Now the hours. Of 2,080 paid hours, take out 80 for holidays and vacation: 2,000 hours worked. Say 80% of those are on customer jobs, drive included: 1,600 job hours.
$73,395 ÷ 1,600 = about $46 per job hour.
That's the number. A $28 tech costs you about $35 for every paid hour ($73,395 ÷ 2,080), and about $46 for every hour you can put on a customer's job. If you price labor from the $28, you are losing money on every hour before overhead even shows up.
Step 2: Put a number on the truck
Add up a year of the truck: payment or depreciation, insurance, fuel, maintenance and tires, registration. Divide by the trips it makes in a year.
Made-up example: $7,000 payment, $3,000 insurance, $7,500 fuel, $2,500 maintenance and tires is $20,000 a year. At four trips a day over 250 working days, that's 1,000 trips: $20 per trip.
Per trip is simpler than per mile for a shop that works one metro area. If your service area is large and some jobs are an hour out, cost the truck per mile instead, or add a distance charge for far-out jobs.
Step 3: Count materials, all of them
Materials are the easiest part to see and the easiest to under-count. Put on the job:
- The equipment or main part, at what you paid, including freight.
- Fittings, wire, fasteners, sealant, tape and the other small stuff. If you can't track it per job, use a flat consumables amount per job type.
- Disposal or haul-away fees for the old equipment.
- Permit fees, where your city requires a permit for the work.
- A second trip to the supply house, if the job needed one. That's labor and truck, too.
Step 4: Set aside a callback reserve
Some jobs come back: a leak at a fitting, a part that fails in a week, a customer who wasn't shown how the thermostat works. You pay for the return trip. A reserve spreads that cost across every job instead of letting it ambush the one that came back.
Made-up example: about 1 job in 20 comes back, and the average callback takes 1.5 hours plus a trip. That's 1.5 × $46 + $20 = $89 per callback. Spread over 20 jobs, that's $4.45 a job; round it up to $5 per job. Track your own callback count for a few months to get your real rate. If it's climbing, find out why before you raise the reserve: the fix may be training, not pricing.
Step 5: Spread your overhead
Overhead is everything that isn't tied to one job: the office person, rent, liability insurance, phones, software, advertising, the accountant, and the time the owner spends on paperwork instead of in a truck. Add up a year of it and divide by your shop's job hours.
Made-up example: a two-tech shop with $120,000 a year of overhead and 1,600 job hours per tech has 3,200 job hours. $120,000 ÷ 3,200 = $37.50 per job hour.
That number can surprise owners, and leaving it out is how a shop can stay busy and still not make money.
Putting it together: one job, costed
Here's a water-heater replacement using the numbers above. Made-up, and rounded.
| Line | Cost |
|---|---|
| Labor: 3 hours on site + 0.5 hour drive = 3.5 hours × $46 | $161 |
| Truck: one trip | $20 |
| Materials: water heater $650, fittings and supplies $60 | $710 |
| Disposal of the old heater | $25 |
| Callback reserve | $5 |
| Direct cost | $921 |
| Overhead: 3.5 job hours × $37.50 | $131 |
| Total cost of the job | $1,052 |
If you quoted this job at $1,100 from memory, it would feel profitable, since $1,100 is well over the $710 of materials and the $84 of wages ($28 × 3 hours on site). The real profit is $48, about 4% of the price. One callback beyond the reserve and the job loses money.
How to use job costs to set prices
Price from a margin, not a markup
To leave a 20% profit, divide the cost by 0.80. Don't multiply it by 1.20. Those are different numbers.
| Method | Math | Price | Profit share of price |
|---|---|---|---|
| 20% markup | $1,052 × 1.20 | $1,262 | about 17% |
| 20% margin | $1,052 ÷ 0.80 | $1,315 | 20% |
The gap grows with the percentage. Pick a margin target that covers your growth, slow months and the owner's pay, and use division every time.
Turn it into an hourly rate and job prices
Once you know your loaded labor ($46) and overhead ($37.50) per job hour, you have a cost per job hour of $83.50. At a 20% margin, that's $83.50 ÷ 0.80 = about $104 an hour before truck and materials. Use it to:
- Price your common jobs once, not every time. Cost your ten most common jobs the way the table above does, and write the price down. When a tech quotes a water heater, they're reading a number, not inventing one.
- Price your trip charge or diagnostic fee. The same per-hour and per-trip costs set what a visit is worth before any repair. See how to set a trip charge or diagnostic fee.
- Price tiers and plans. Each option in a good-better-best estimate, and each visit in a maintenance agreement, should be costed the same way.
Check estimates against what happened
Job costing pays off when you compare the estimate to the real job. Once a week, pick a handful of finished jobs and check:
- Hours. Did the 3-hour job take 3 hours, or 4.5? If one job type runs long every time, raise its price or fix the process.
- Materials. Did the tech make a supply-house run that wasn't in the estimate?
- Callbacks. Which jobs came back, and who did them?
You don't need to cost every job forever. Cost every job for a month, then spot-check. The goal is that your prices come from your numbers.
Rerun the numbers once a year
Wages go up, insurance renews, the truck gets older, and your overhead grows as you hire. Rerun the loaded rate, the truck cost and the overhead rate at least once a year, and before you raise prices. A shop that priced right two years ago and never checked may be underpriced today.
A lighter way to run it
Jobsite's Home Services Suite doesn't do the job-costing math for you. A spreadsheet like the tables above does that. What it gives you is the paperwork the math starts from: techs clock in and out from their phones for timesheets, and each signed estimate becomes an invoice. It's $49 a month with 25 worker-days included, then $1 per additional worker-day, month to month, and you can set it up on free sample data first.
FAQ
What is job costing in a service business?
Job costing is adding up everything one job cost you, including labor at a loaded rate, the truck, materials, a callback reserve and a share of overhead, so you can see what you made on it and price the next one correctly.
What is a loaded labor rate?
A loaded labor rate is what a tech costs you per hour of work you can charge for. It adds payroll taxes, insurance, benefits, paid time off and tools to the wage, then divides by job hours instead of paid hours. In the example above, a $28-an-hour tech has a loaded rate of about $46.
Should drive time be part of a job's cost?
Yes. The drive to a customer happens because of that job, so count it as job labor and charge for the truck trip. Time that isn't tied to any job, like stocking the truck or training, belongs in the loaded rate instead.
What's the difference between markup and margin?
Markup is profit as a share of cost; margin is profit as a share of price. A 20% markup on a $1,052 job gives $1,262, which is only about a 17% margin. To get a 20% margin, divide the cost by 0.80.
How often should I redo my job costs?
Rerun your loaded rate, truck cost and overhead rate at least once a year and whenever a big cost changes, such as a raise, a new hire or a new truck. Spot-check a few finished jobs against their estimates every week.
See how Jobsite handles this in practice: Home services on the platform →
About the author
The Jobsite Editorial Team — Construction safety & OSHA compliance
The Jobsite Editorial Team writes the safety and compliance library behind Jobsite, the construction safety, OSHA compliance, and training platform for contractors. Every article starts from the primary regulatory text — the CFR section itself, not a summary of it — and is fact-checked against that source before it publishes, so what you read here is what the standard actually requires of small and mid-size contractors in the field.