Key takeaways
- Job costing compares what each job earned with what it cost, so you can see which job types, techs and customers make money.
- Labor is the hardest cost to capture and the most important; use a burdened hourly rate, because benefits alone are about 30% of employer compensation costs[1].
- Drive time between jobs is paid work time under federal rules, so it belongs in job cost or in a clearly tracked overhead pool[2].
- A one-hour monthly review of the 20 largest jobs and every job that lost money is enough for most small companies.
Why job costing matters in a service business
A profit and loss statement tells you whether the company made money last month. Job costing tells you which work made it and which work lost it. Without it, a profitable maintenance department can quietly subsidize an install crew that loses money on every third job, and nobody notices until the year-end accounts arrive.
Small companies often skip job costing because it sounds like something only builders with large projects need. In practice a service company needs it more, because it runs hundreds of small jobs a month and small errors on each one add up. For example, a 20-minute overrun on a two-hour repair is a 17% labor overrun, and it repeats every day the cause goes unnoticed.
You do not need special software to begin. A spreadsheet, a timesheet that records job numbers and supplier invoices that reference a job number are enough for the first three months. The habits matter more than the tool.
The four cost buckets
Every job cost falls into one of four buckets. Keep them separate on every report so you can see which one went wrong.
| Bucket | What goes in it | Where the number comes from |
|---|---|---|
| Labor | Hours on the job and driving to it, at a burdened rate | Timesheets or the field app, with job numbers |
| Materials | Parts, equipment and consumables used, at cost plus freight | Supplier invoices and truck stock records |
| Subcontract and permits | Subcontractors, permit and inspection fees, disposal, rentals | Bills coded to the job |
| Overhead allocation | Share of office, rent, software, insurance and marketing | Overhead rate per billable hour |
Labor: capture the hours and price them right
Labor is usually the largest cost on a service job and the one most often understated. Two decisions matter: which hours you count and what rate you apply.
Hours: count time from leaving the previous job to finishing this one, including parts runs and paperwork done on site. Under the Fair Labor Standards Act, time spent traveling from job site to job site during the workday is work time that must be counted as hours worked[2]. If you leave drive time out of job cost, track it as its own line so it does not disappear.
Rate: never cost labor at the raw hourly wage. Add payroll taxes, workers' compensation, health and retirement benefits, paid time off and any tool or uniform allowance. Across US private employers, total compensation averaged $46.89 per hour worked in June 2026, of which $14.07, or 30.0%, was benefits[1]. Our guide on how to calculate labor burden walks through each piece.
- Wages and salaries $32.82 70%
- Benefits $14.07 30%
Source: U.S. Bureau of Labor Statistics, 2026[1]
Show the data
| Item | Value |
|---|---|
| Wages and salaries | $32.82 |
| Benefits | $14.07 |
Apprentices and helpers count too. If a helper rides along on a job, add their hours at their own burdened rate. Leaving them out makes two-person jobs look as cheap as one-person jobs and hides the true cost of training.
Materials, subcontractors and permits
- Ask suppliers to put your job number or purchase order on every invoice. Reject invoices without one, or code them the same day while the tech still remembers.
- For truck stock, record what was used on each job in the field app. Replenishment purchases then go to an inventory account, not to whichever job happened to be open that day.
- Include freight, delivery and supply-house fees in the material cost. They are part of what the job cost.
- Code permits, inspection fees, crane lifts, dumpsters and equipment rental to the job. They are easy to forget when you quote and easy to miss when you invoice.
- Return unused materials promptly and credit the job, or the job carries cost it never used.
Allocating overhead per billable hour
Overhead does not belong to any single job, but every job has to help pay for it. The simplest method for a service company is an overhead rate per billable hour.
Total your annual overhead
Office and dispatch wages, rent, utilities, software, insurance, marketing, office vehicles, accounting and owner salary at a market rate.
Estimate annual billable hours
Field techs multiplied by the hours you realistically expect each to bill, after PTO, training and slow days. Use last year's actual figure if you have it.
Divide
Overhead ÷ billable hours = overhead rate per billable hour. Recalculate each quarter, or when you add staff or a location.
Apply to each job
Multiply the job's billable hours by the overhead rate. Add it to direct costs to get the job's full cost.
This method assumes overhead is driven by labor hours, which is close enough for most trades. If one service line uses a lot of office time, such as insurance roofing claims, give it a higher rate or add a fixed admin charge per job. For the wider picture, see our guide to overhead cost control.
Example: one roof repair, costed
Example (fictional): a roofing company repairs storm damage on a ranch house and invoices $2,400. Two roofers spend 5 hours each on site plus 1 hour each driving, so labor is 12 hours. Their burdened cost is $44 per hour, so labor cost is $528. For context, the median hourly pay for US roofers was $26.65 in May 2025 before any burden[3].
Example materials: shingles, underlayment, flashing and fasteners cost $410 including delivery. A disposal fee adds $85 and a permit $60, so subcontract and permits are $145. Direct costs total $528 + $410 + $145 = $1,083. Gross profit is $1,317, a 55% gross margin.
Example overhead: the company's overhead rate is $38 per billable hour. Ten billable hours on site bring an allocation of $380. Full job cost is $1,463 and job net profit is $937, or 39%. The same job quoted with 3 hours each on site and done in 5 would have run over by 4 labor hours and $176 of cost before anyone noticed.
Rain matters in this example. Roofers usually do not work during inclement weather[4], so a job that is started, stopped for rain and finished the next day often costs an extra round trip. Code that drive time to the job so weather-related cost shows up in your quoting.
A 30-day start plan
Trying to cost every job perfectly from day one is the fastest way to give up. Start narrow and widen once the habit sticks.
- Week 1: give every job a number in your scheduling or invoicing system and make it mandatory on timesheets and purchase orders.
- Week 2: agree the burdened labor rate for each pay grade with your bookkeeper and write it on one page.
- Week 3: cost your ten largest jobs from the week by hand, including drive time and any helper hours, and compare them with the quotes.
- Week 4: hold the first review meeting with the service manager and lead installer, agree two estimate changes and set the date for next month's review.
After the first month, add the overhead rate and extend the review to every job with negative gross profit. Most companies find their first real discovery within the first two reviews, usually a job type that has been quoted on old labor hours for years.
The monthly job cost review
You do not need to read every job. Once books are closed for the month, run a report sorted by job net profit and work through it in this order:
- Every job with negative gross profit. Find the cause: underquoted labor, missed materials, a callback or a discount.
- The 20 largest jobs by revenue. Large jobs move the totals, and their overruns are usually labor hours.
- Jobs where actual hours were more than 25% over the estimate. Example threshold; set your own. Group them by job type to see if the estimate itself is wrong.
- Callbacks and warranty visits, coded to the original job so the true cost of that job is visible.
- A summary by job type and by tech, so patterns rather than single jobs drive decisions.
End the review with no more than three actions: update an estimate template, change a price, or coach a tech. Write them down and check them next month. The job cost data then feeds your net profit review and your gross margin targets.
Mistakes that make job costing useless
- Timesheets filled in on Friday from memory. Capture hours per job the same day, ideally from the field app clock-in and clock-out.
- Costing labor at raw wages, which makes every job look better than it is.
- Charging warranty labor to overhead, so the job that caused it looks profitable.
- Never closing the month, so supplier bills arrive after the review and nobody updates the numbers.
- Using job costing to punish techs. Use it to fix estimates and processes, or techs will stop recording time honestly.
Warranty work deserves special care. If you offer a labor warranty, decide how you will price warranty labor into the original job, then compare the warranty cost you actually incur with what you priced in.
Frequently asked questions
Do I need job costing software?
Not to start. A field app that records hours by job, suppliers who reference job numbers and a spreadsheet are enough. Most field service platforms include job costing once you outgrow that.
Should drive time be in job cost or overhead?
Either, if you are consistent. Many service companies put drive time to the job in job cost so routing problems show up per job. Whatever you choose, it is paid time and must be counted somewhere.
How accurate does the overhead rate need to be?
Close enough to rank jobs correctly. Recalculate it quarterly from actual overhead and billable hours, and do not spend more time refining it than reviewing the jobs themselves.
References
U.S. Bureau of Labor Statistics (2026). Employer Costs for Employee Compensation — June 2026 (opens in a new tab) ↑
U.S. Department of Labor, Wage and Hour Division (2026). Fact Sheet #22: Hours Worked Under the Fair Labor Standards Act (FLSA) (opens in a new tab) ↑
U.S. Bureau of Labor Statistics (2025). Roofers: Occupational Outlook Handbook (pay) (opens in a new tab) ↑
U.S. Bureau of Labor Statistics (2025). Roofers: Occupational Outlook Handbook (opens in a new tab) ↑