Job costing for small service businesses: find out which jobs make money
Revenue tells you how busy you were. Job costing tells you which of those jobs were worth doing.
On this page
Key takeaways
- Job costing compares what a job paid with what it really cost, including labor burden, materials, drive time, and a share of overhead.
- Revenue tells you how busy you were. Job costing tells you which jobs were worth it.
- Compare estimated hours to actual hours on every job. The gap is where margin leaks.
- A 15-minute weekly routine is enough to spot underpriced services, far-off customers, and scope creep.
A busy season can hide a lot. The calendar is full, money is coming in, and it feels like the business is doing well. Then the year ends and there’s less left over than you expected. Usually the reason is a handful of services or customers that cost more to deliver than they pay, quietly eating into the good work.
Job costing is how you find them. It sounds like accounting, but for a small service business it comes down to a simple question asked about every job: what did this cost us?
What goes into the cost of a job
| Cost | What it includes |
|---|---|
| Labor | Hours on the job, times each person’s wage |
| Labor burden | Payroll taxes, workers’ comp, and benefits on top of wages |
| Materials | Everything used on the job, at what you paid |
| Equipment and rentals | Rentals, plus wear on your own equipment |
| Drive time and fuel | Getting the crew and truck there and back |
| Subcontractors | Anything you paid someone else to do |
| Overhead share | A slice of insurance, office, software, phone, and your own admin time |
Allocate overhead in a way you can live with
Overhead doesn’t belong to any one job, but every job has to help pay for it. The simplest method for a service business is an overhead rate per crew hour.
Overhead per crew hour = yearly overhead ÷ yearly billable crew hours
- Yearly overhead
- Insurance, office, software, phone, accounting, marketing, vehicles not assigned to jobs.
- Billable crew hours
- The hours crews spend working on customer jobs in a year.
Once you have that number, every hour a crew spends on a job carries its share of overhead automatically.
A worked example
Example: a $4,800 exterior repaint
- Labor: 2 painters × 3 days × 8 hr = 48 hr at $30 loaded
- $1,440
- Paint and supplies
- $1,100
- Equipment rental
- $150
- Drive time and fuel
- $120
- Overhead: 48 hr × $18 per crew hour
- $864
- Total cost
- $3,674
- Profit on the job ($4,800 − $3,674)
- $1,126 (23.5%)
Now suppose the job ran a day long because of extra prep that wasn’t on the quote. Another 16 crew hours adds $480 in labor and $288 in overhead, and profit drops to $358, about 7.5%. Nothing about the job looked wrong from the outside. The customer was happy, the invoice was paid. Only the job costing shows what happened.
Estimated vs. actual: where margin leaks
The most useful job costing habit is comparing the hours you estimated with the hours the job actually took. Over a season, patterns show up fast.
- One service is always over. It’s underpriced, or the estimate misses a step.
- Some customers always take longer. Access problems, extra requests, or a property that needs more than it looks.
- Far-off jobs lose money. Drive time isn’t being priced in.
- Scope creep. “While you’re here” requests done for free add up.
- Callbacks. Return trips to fix something are pure cost.
Recurring work: cost per visit
For recurring services like mowing, cleaning, or pool care, look at cost per visit instead of per job. Time on site plus drive, times your loaded cost per hour, compared with what the visit pays. It’s the same math used to price lawn mowing jobs, run in reverse to check the price still holds.
A 15-minute weekly routine
Every week
- Record actual crew hours on each job, not just total hours
- Attach material receipts to the job they were bought for
- Compare estimated and actual hours on finished jobs
- Flag any job with a margin well below your target
- Note the reason: pricing, scope, access, drive, or callback
You don’t need special software to start. A spreadsheet with one row per job works. What matters is doing it every week while you still remember what happened.
Pair your costs with your revenue
Job costing needs two halves: what each job cost and what it brought in. Keep the revenue side clean by invoicing every job promptly and recording every payment, and it becomes easy to line the two up. It also helps to know which kinds of jobs you’re bidding, which is where estimates, quotes, and bids come in.
Common questions
What’s the difference between job costing and profit and loss?
Your profit and loss statement shows the whole business over a period. Job costing breaks it down job by job, so you can see which services and customers are driving the result.
How accurate does job costing need to be?
Close enough to make decisions. Tracking crew hours per job and material costs gets you most of the value. Don’t let perfect overhead allocation stop you from starting.
What’s a good profit margin for a service business?
It varies by trade, size, and market. Rather than chasing a benchmark, set a target based on your own costs and goals, then use job costing to find the work that falls short of it.
Should I job cost small recurring visits?
Yes, but by service type or route rather than every single visit. Check the average cost per visit for each recurring service a few times a year.
