Most trade contractors know their revenue to the dollar but only guess at their profit. Job costing closes that gap. It is the simple discipline of assigning every cost a job creates — labor, materials, and a slice of overhead — back to that specific job, so you can see what you actually kept after the truck pulled away.
Done well, job costing tells you which services, customers, and job types fund your business and which ones quietly drain it. Here is how to do it without an accounting degree or a 40-tab spreadsheet.
What job costing actually means
Job costing answers one question for each ticket: revenue minus the cost of doing this specific job equals what? The hard part is not the subtraction — it is capturing the costs honestly and consistently. Three buckets cover almost everything:
- Labor: the fully burdened cost of the people on the job, including travel time, not just their base wage.
- Materials: parts, fixtures, consumables, and disposal — at your cost, before markup.
- Overhead: the share of rent, insurance, vehicles, software, and admin that this job has to help cover.
Step 1: Capture revenue per job
Start with what the customer paid (or was invoiced) for the job, net of refunds and discounts. The discount line matters: a "friendly" $75 knocked off the invoice comes straight out of profit, not out of revenue you never see.
Step 2: Track labor at its true cost
Your technician's wage is only part of their cost. Payroll taxes, workers' comp, benefits, paid time off, and non-billable hours all inflate the real number. A tech you pay $30/hour often costs $42–$48/hour fully burdened. Log work time and travel time for each job — drive time is real labor cost even when it is not billable.
Step 3: Record materials at cost
Enter the actual amount you paid suppliers for parts on the job, before any markup you charge the customer. A quick photo of the receipt or a running total per job is enough. If you only track the marked-up price the customer paid, you will overstate profit.
Step 4: Allocate overhead
Overhead is the cost that does not belong to any single job but has to be paid by all of them. Add up monthly overhead (rent, insurance, vehicle payments, fuel, phones, software, office staff) and spread it across your jobs — the simplest method is an overhead cost per billable hour. If overhead is $8,000/month and your crew bills 400 hours, that is $20 of overhead per billable hour.
Step 5: Calculate profit and margin
Now the math is easy:
- Profit = Revenue − Labor − Materials − Allocated overhead.
- Margin = Profit ÷ Revenue, expressed as a percentage.
A $680 bathroom job with $158 labor, $112 materials, and $70 allocated overhead leaves $340 profit — a 50% margin. Run this on every job and patterns appear fast.
Step 6: Compare jobs and act
The payoff is in the comparison. Sort your jobs by margin and you will usually find that a few job types carry the business while others barely break even. Use that to raise prices on the losers, do more of the winners, and fire the customer types that always run long.
Common job costing mistakes
- Using unburdened labor. Wage-only costing makes every job look more profitable than it is.
- Ignoring travel time. A 25-minute drive each way is real cost on a short service call.
- Forgetting callbacks and rework. A job you have to revisit can erase its entire margin.
- Costing only big jobs. Small repeat tickets are where margin quietly leaks.
Final takeaway
Job costing is not about accounting perfection — it is about consistent, honest numbers you can act on between stops. Capture labor, materials, and overhead the same way on every job, and within a few weeks you will know exactly which work to chase and which to reprice.
Track margin without the spreadsheet
MarginMate logs labor, travel, and materials per job and shows your true margin instantly — while you keep your existing invoicing tools.