The three things that have to meet
Labour, material and revenue. Most shops capture all three, in a time sheet, a supplier statement and an invoicing tool that do not know about each other. Put back together at month end, the numbers are close enough to feel true and far enough off to make bad decisions.
- Labour: clocked hours tied to the job, not a weekly total
- Material: what was actually used, priced at what you actually paid
- Revenue: the invoice that came from the signed approval
Where it leaks
Return trips are the biggest one. The second visit to finish a job is often logged as its own job, so the first one looks profitable and the second looks like a disaster, and neither number is real.
Windshield time is the second. An hour each way on a rural call is an hour you paid for. If drive time is not on the job, your close-in work and your far-out work look identical, and you keep taking the far-out work.
The third is the discount nobody recorded: the part thrown in, the trip charge waived. It comes out of margin either way; the only question is whether you can see it.
Average ticket is not a vanity number
Average ticket tells you whether your pricing and your options conversation are working. But it is only meaningful when it is computed from actual invoices on actual jobs, not typed into a spreadsheet once a month.
The same goes for close rate. If estimates presented and estimates approved are counted by hand, the number will drift toward whatever you hoped it was.
How to know yours is right
One test: pick a job from last month at random. Can you see, in under a minute and in one place, who worked it, for how long, what the material cost, what it invoiced and what it made? If that takes an afternoon, your job costing is not a reporting problem. It is a capture problem, and no dashboard will fix it.
