Metrics finance

Job costing for small service companies

Set up job costing in a small home service company: capture labor and materials per job, allocate overhead per billable hour and run a monthly review.

Ava research teamPublished 7 min read

On this page
  1. Why job costing matters in a service business
  2. The four cost buckets
  3. Labor: capture the hours and price them right
  4. Materials, subcontractors and permits
  5. Allocating overhead per billable hour
  6. Example: one roof repair, costed
  7. A 30-day start plan
  8. The monthly job cost review
  9. Mistakes that make job costing useless
  10. Frequently asked questions
  11. References

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.

Direct costs (the first three) produce gross profit; overhead allocation produces job net profit
BucketWhat goes in itWhere the number comes from
LaborHours on the job and driving to it, at a burdened rateTimesheets or the field app, with job numbers
MaterialsParts, equipment and consumables used, at cost plus freightSupplier invoices and truck stock records
Subcontract and permitsSubcontractors, permit and inspection fees, disposal, rentalsBills coded to the job
Overhead allocationShare of office, rent, software, insurance and marketingOverhead 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.

Average US private employer compensation cost per hour worked, June 2026Total $46.89 per hour; wages shown as total minus benefits
Average US private employer compensation cost per hour worked, June 2026Stacked bar chart. Wages and salaries: $32.82; Benefits: $14.07.Wages and salaries: $32.82 (70%)Benefits: $14.07 (30%)Average US private employer compensation cost per hour worked, June 2026Stacked bar chart. Wages and salaries: $32.82; Benefits: $14.07.Wages and salaries: $32.82 (70%)Benefits: $14.07 (30%)
  • Wages and salaries $32.82 70%
  • Benefits $14.07 30%

Source: U.S. Bureau of Labor Statistics, 2026[1]

Show the data
ItemValue
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.

  1. Total your annual overhead

    Office and dispatch wages, rent, utilities, software, insurance, marketing, office vehicles, accounting and owner salary at a market rate.

  2. 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.

  3. Divide

    Overhead ÷ billable hours = overhead rate per billable hour. Recalculate each quarter, or when you add staff or a location.

  4. 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:

  1. Every job with negative gross profit. Find the cause: underquoted labor, missed materials, a callback or a discount.
  2. The 20 largest jobs by revenue. Large jobs move the totals, and their overruns are usually labor hours.
  3. 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.
  4. Callbacks and warranty visits, coded to the original job so the true cost of that job is visible.
  5. 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

  1. U.S. Bureau of Labor Statistics (2026). Employer Costs for Employee Compensation — June 2026 (opens in a new tab) ↑

  2. 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) ↑

  3. U.S. Bureau of Labor Statistics (2025). Roofers: Occupational Outlook Handbook (pay) (opens in a new tab) ↑

  4. U.S. Bureau of Labor Statistics (2025). Roofers: Occupational Outlook Handbook (opens in a new tab) ↑

Book a demo

See Ava handle your calls.

Book a short demo. We’ll walk through your calls and workflow, and agree what Ava should take care of.

Book a demo