Job costing: was that job actually profitable?
Revenue is not profit — and averages hide the truth
You can have a record month and still lose money on half your jobs. A busy year where the bank account never grows almost always means the same thing: a few job types are subsidising the others, and nobody has measured which.
The formula
For each finished job:
Job profit = invoiced total − materials − (actual hours × your true hourly cost) − travel − subcontractors
Note true hourly cost, not your billing rate. Your true cost is what an hour of your time actually costs the business — that calculation is here. If you bill $85 and your true cost is $62, every unplanned hour burns $62 of real money, not "nothing".
The only three numbers you must capture
Job costing dies when it becomes bookkeeping. Capture three things, per job:
- Actual hours on site (including the supply run and the drive).
- What materials actually cost — the receipt, not the estimate.
- The final invoiced amount (after any discount you gave).
That's enough. Ten minutes a week, on the jobs you finished.
What the numbers will tell you
Do it for a month and patterns appear immediately:
- Small call-outs often lose money — 40 minutes of work, 50 minutes of driving, one flat "minimum" fee that never covered it. Fix: raise the minimum call-out, or batch them geographically.
- Emergency work is usually your best margin — and often underpriced out of habit.
- The "favor" jobs for good clients are frequently the worst performers.
- One task type is your quiet winner. Quote more of it. Say it out loud in your marketing.
Turn the finding into a price change
A finding you don't act on is trivia. Each month, pick one number to change: raise the minimum call-out by $25, add the disposal line you keep forgetting, stop the 10 % "nice client" discount. Small, specific, applied to the next quote.
Where your history already lives
You don't need a spreadsheet to start. Pro Speak Artisan already stores every estimate line you've priced, builds a personal catalog with your typical price per task, and flags any new line priced below your own historical average — job costing that feeds straight back into the next quote. See also 7 estimating mistakes that kill margin.