Job costing: how to know which jobs actually make money
Job costing means adding up what each job actually cost you (labor at its loaded hourly cost, materials, purchases and job expenses) and comparing it to what you billed, before tax. The difference is the job's gross profit, and dividing that by revenue gives you its gross margin.
Once you do this for every job, patterns show up fast: job types that look busy but barely break even, technicians whose jobs consistently run long, and prices that haven't kept up with costs.
Why isn't the bank balance enough?
Your bank account tells you whether the business as a whole made money last month. It doesn't tell you which work made it. A company can be busy, growing and still losing money on a third of its jobs, with the good jobs quietly paying for the bad ones.
Job costing answers questions like:
- Do drain calls make more per hour than water heater installs?
- Is our flat-rate price for this repair still right?
- Did that big remodel actually make money after the change in scope?
- Which technician's jobs run consistently over the time we priced?
What costs belong to a job?
Direct job costs are the ones you wouldn't have had without that job:
- Labor: hours on the job and driving to it, times each technician's loaded hourly cost.
- Materials: parts and supplies used, at what they cost you.
- Purchases for the job: special-order equipment or materials bought for it.
- Job expenses: permits, equipment rental, disposal fees, subcontractors, a supply house run paid out of pocket.
Overhead (office rent, insurance, software, the owner's salary, trucks sitting in the yard) isn't assigned to individual jobs in basic job costing. Gross margin has to be high enough to cover that overhead and still leave a profit.
What is a loaded labor rate?
A technician who earns a certain hourly wage costs you more than that per hour. The loaded (or burdened) rate adds the costs that come with each hour of pay:
- Employer payroll taxes
- Workers' compensation insurance
- Health insurance and other benefits
- Paid time off and holidays
- Other per-employee costs you choose to include, like uniforms or phone stipends
To calculate it, add up a year of wages plus those costs for a technician, then divide by the hours they actually work. Your accountant or payroll provider can help with the exact components. Using the plain wage instead of the loaded rate is one of the most common reasons job costing looks rosier than reality.
A worked example
Here's a made-up job, just to show the math. The numbers are for illustration, not typical prices.
A water heater replacement was billed at $2,400 before tax.
- Labor: two techs on site for 3 hours each, plus 30 minutes of travel each, for 7 hours total. At an example loaded rate of $45 an hour, that's $315.
- Materials: water heater, fittings, venting and supplies at your cost: $950.
- Expenses: permit $75, disposal of the old unit $25.
Total job cost: $315 + $950 + $75 + $25 = $1,365.
Gross profit: $2,400 − $1,365 = $1,035.
Gross margin: $1,035 ÷ $2,400 = about 43%.
Now imagine the same job ran into problems: rotted shutoff valves, an extra trip to the supply house, and two more hours each. Labor jumps to 11 hours, or $495, and parts go up $60. Cost becomes $1,605, gross profit $795, and margin falls to about 33%. If that happens on most installs, your price is wrong, or your quoting is missing something.
How do you job cost flat-rate service calls?
Flat-rate pricing makes job costing more important, not less. When you charge the same price for a repair whether it takes 40 minutes or two hours, the margin on that task depends entirely on how long it really takes and what parts it really uses.
A practical approach:
- Group jobs by the flat-rate task they were sold as.
- For each task, look at the average labor hours and parts cost over the last few months.
- Compare the average cost to the flat-rate price.
- Look at the spread, not just the average. A task that's profitable on average but loses money a third of the time may need a clearer scope or a separate price for the hard version.
This is also how you keep a flat-rate pricebook current as wages and part costs change.
What margin should you aim for?
There's no single right answer. It depends on your trade, your overhead and how you price. The right way to find your target:
- Add up your annual overhead.
- Decide on the net profit you want.
- Estimate your annual revenue.
- Your required gross margin is roughly (overhead + desired profit) ÷ revenue.
If most of your jobs fall below that number, the problem isn't one bad job. It's your pricing. Raising prices thoughtfully is often the fix.
What do you need to job cost accurately?
Job costing is only as good as the data going in:
- Time tied to jobs. Techs' job and travel time recorded against the job. See our guide to time tracking and timesheets.
- Parts recorded on the job when used, at your cost.
- POs linked to jobs for special orders; see purchase orders for small contractors.
- Expenses and receipts attached to jobs, including supply house runs paid by card.
- Invoices tied to the job, so revenue lands in the right place.
If even one of these is spotty, margins will look better or worse than they really are. Start by fixing whichever is weakest.
What should you do once you see the numbers?
Look at margin by job type, by technician and by month. Then act:
- Re-price job types that consistently fall short.
- Adjust estimated hours on quotes for work that always runs long.
- Coach, don't punish, when one tech's jobs run long. It may be training, tools or the job mix they're given.
- Look at callbacks. A free return trip can erase the profit on the original job. Better checklists and SOPs help here.
- Check quotes before sending. A margin preview on each quote option catches underpriced jobs before they're sold.
A job costing checklist
- Loaded labor rate calculated for each technician
- Job and travel time tied to jobs
- Parts recorded on jobs at cost
- Special-order purchases linked to jobs
- Expenses and receipts attached to jobs
- Margin reviewed monthly by job type and technician
- Target gross margin set from your overhead and profit goals
FAQ
Should travel time count as job cost? Yes. You pay for it, and it exists because of the job. Including it shows the real cost of jobs in far corners of your area.
What about warranty callbacks? Track them as their own jobs, linked to the original if you can, so you can see the true cost of work that needed a return trip.
Is job costing the same as profit? No. Job costing shows gross profit per job. Net profit comes after overhead. Your accountant can help you connect the two.
How often should I review job costing? Monthly is a good rhythm for most small businesses, with a quick look at large jobs when they close.
How ServFlo helps
ServFlo's job costing (Pro plan) shows each job's revenue before tax, labor from job and travel time at each technician's burdened hourly cost, materials at their cost snapshots, what purchase orders for the job received, and job expenses, with gross profit and margin. The jobs list can show a margin column, the quote builder shows an internal margin preview for each option that customers never see, and a profitability report rolls it up. See reports and job costing and pricing.
Photo by Timur Shakerzianov on Unsplash.