
October 29, 2026 · Mitt Patel · 6 min read
Friday afternoon, you run payroll. Your technician clocked 80 hours over the two weeks. You billed customers for 61 hours of labor on their tickets. You shrug and move on, because the truck's waiting and the invoices are paid. That gap between 80 and 61 is where labor margin quietly disappears.
Why the gap happens and what it costs you
Paid hours and billed hours are tracked in two different places, by two different systems, often by two different people. Payroll comes from a time clock. Billed hours come from invoices and job tickets. Nobody is lying on either end, but nothing forces the two numbers to match, so they drift apart without anyone noticing.
The drift comes from ordinary shop life. Technicians wait on parts. They clean the bay. They run to the parts store. They help a teammate finish a job that got billed under someone else's ticket. They sit through a slow Tuesday. All of that is paid time. None of it is billed time, unless you deliberately count it and decide what to do with it.
The cost isn't hard to find once you look. If you price jobs and plan staffing based on what you assume technicians are producing, and the real number is lower, you're running the shop on a number that doesn't exist. You might think you need another technician when the real problem is that your current ones are only billing about three-quarters of what you're paying them for. You might hold pricing steady on a job when your real labor cost per billed hour has crept up. You might praise a technician's speed because tickets close fast, without noticing that half their paid time never makes it onto a ticket at all.
Without a regular comparison, you only find out there's a problem when cash is tight and you're not sure why.
A worked example
Say you run a two-bay shop with one technician. Over a two-week pay period, they clock 80 hours and you pay them $25 an hour, so payroll for that period is $2,000.
You pull the invoices for the same two weeks and add up the labor hours billed to customers. It comes to 61 hours. At your shop labor rate of $90 an hour, that's $5,490 in labor revenue.
On paper, that looks fine. But look at the gap: 80 paid hours, 61 billed hours. That's 19 hours, almost two and a half workdays, that you paid for but didn't bill. Your real labor cost per billed hour isn't $25 (what you pay per clocked hour). It's $2,000 divided by 61 billed hours, or about $32.79. That's the number that matters when you're deciding whether your $90 labor rate still makes sense.
Now break down where the 19 hours went. Maybe 8 hours were a slow stretch with no cars in the bay. Maybe 6 hours were spent on a comeback repair that couldn't be billed again. Maybe 5 hours were parts runs and cleanup. Each of those has a different fix. Idle time might mean you need more marketing or fewer paid hours scheduled. Comeback time might mean a specific job or a specific process needs attention. Parts runs might mean you need a better relationship with a local supplier who delivers.
None of that shows up if you only look at payroll totals or only look at invoice totals. You have to put the two side by side.
How to set it up
- Pick a pay period as your unit. Weekly or biweekly, matching your payroll schedule, so the comparison lines up with a number you already calculate.
- Pull total paid hours per technician from your time clock or payroll system for that period, excluding holiday or vacation pay if you track those separately.
- Pull total billed labor hours per technician from your invoices for the same period. If your shop management software tracks labor hours by technician, use that. If not, add up labor hours from tickets by hand for now.
- Calculate the gap for each technician: paid hours minus billed hours.
- Calculate the real labor cost per billed hour: total pay for that technician divided by their billed hours, not their paid hours.
- Write down a reason for the biggest gaps. Idle time, comebacks, training, parts runs, shop cleanup, or something else. A short note is enough.
- Keep a running log period over period so you can see whether a technician's gap is shrinking, growing, or steady. One bad pay period tells you little. Three in a row tells you something.
- If you use QuickBooks Online for payroll, export the pay period totals directly rather than retyping them, so the paid-hours side of the comparison stays accurate.
The mistakes that undo it
The most common mistake is comparing totals across the whole shop instead of by technician. A shop average can look acceptable while one technician is billing well and another is barely billing half their time. You need the comparison by person to know where to act.
The second mistake is treating every gap as a technician problem. Some of the gap is scheduling. If you don't have enough cars booked, a technician can't bill hours that don't exist. Blaming the person for a scheduling or sales problem damages trust and doesn't fix anything.
The third mistake is doing this once and stopping. A single pay period tells you almost nothing, because one slow week or one comeback job can swing the number. The value comes from watching the trend.
The fourth mistake is ignoring hours that should be billed but got left off a ticket by mistake. Sometimes the gap isn't lost productivity, it's lost billing. A technician did the work, but it never made it onto the invoice. That's worth catching too, since it affects revenue, not just labor cost.
Monthly checklist
- Pull paid hours by technician for each pay period in the month.
- Pull billed labor hours by technician for the same periods.
- Calculate the gap and the real labor cost per billed hour for each technician.
- Note the likely reason for any gap larger than a few hours.
- Compare this month's gaps to last month's to spot a trend.
- Flag any ticket that looks like it's missing labor hours that were actually worked.
Common questions
What's a normal gap between paid and billed hours?
There isn't one number that fits every shop, since it depends on your mix of work, how much idle time is unavoidable, and how you staff for slow periods. The point of tracking it isn't to hit a target, it's to know your own number and watch whether it's getting better or worse.
Should I count training or cleanup time as part of the gap?
Yes, track it, but label it separately from time you can't explain. Training and cleanup are often necessary and expected. The goal is to tell the difference between planned unbilled time and time that's disappearing for reasons you haven't identified yet.
What if my shop management software already tracks this?
Many shop management systems can show billed hours by technician already. If yours does, use it, and just make sure you're pulling paid hours from payroll for the same period so the two sides match up cleanly.
Is this the same as technician efficiency or productivity percentage?
It's related. Efficiency and productivity are often calculated from the same two numbers, paid hours and billed hours, just expressed as a percentage instead of a gap in hours. Either way of looking at it works, as long as you track it consistently period over period.
North Hudson Bookkeeping sets up this kind of pay-period comparison for auto repair shops across North Jersey and helps keep it current, so you're working from real numbers instead of guesses. The first call is free.
