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

Direct and indirect costs
CostWhat it includes
LaborHours on the job, times each person’s wage
Labor burdenPayroll taxes, workers’ comp, and benefits on top of wages
MaterialsEverything used on the job, at what you paid
Equipment and rentalsRentals, plus wear on your own equipment
Drive time and fuelGetting the crew and truck there and back
SubcontractorsAnything you paid someone else to do
Overhead shareA 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%)
Illustrative numbers for a fictional job. “Loaded” means wages plus labor burden.

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.

Filed under Running the business

Written by the JobSigner team

JobSigner makes quoting, scheduling, invoicing, and payments software for owner-operated service businesses, and builds websites, local ads, and SEO for them. JobSigner is a product of ZOAK Consolidated LLC.

About JobSigner More guides

Ready when you are

Put your name
on less paperwork.

Start with a few jobs alongside the way you work today. Keep your current software, spreadsheets, or paper running until you’re ready to switch.