Trades industry news, updated weekly
Business Tips

Your Techs Are Billing 6 Hours on an 8-Hour Day

Sam ReevesSam Reeves··11 min read

Your Techs Are Billing 6 Hours on an 8-Hour Day

Your dispatch board says everyone was busy yesterday. Eight hours scheduled, eight hours logged. Five trucks, no gaps. Looks clean.

It's not clean.

What "Productive" Actually Means in Your Dispatch Board

Most platforms — Jobber, Service Fusion, Housecall Pro — mark a tech as occupied from job-start to job-close. That's the colored block on your board. What's inside that window is a different conversation.

Inside that window: the drive that took 40 minutes instead of 20 because dispatch didn't check traffic at scheduling time. The wrap-up that became a 15-minute walkthrough about the homeowner's other outlets. The "I'm heading out now" that means the tech's finishing paperwork in the driveway. None of that is billable. All of it shows as scheduled.

I track CallRail attribution down to booking rate by channel. I have UTM tags on every marketing surface. I know that 41% of our LSA calls booked last quarter versus 67% of organic. And I watched myself, for longer than I want to admit, accept "8 hours scheduled, 8 hours logged" as a real number.

It's not a real number. It's a record of what the board said you intended to do.

Most shops don't know their booking rate is 38% because they've never listened back to their calls. Most shops don't know their productive window per tech is somewhere around 5.5 to 6 hours because they've never separated drive time from job time in their reporting. Same data gap, same cost structure, different symptom.

The 40-Minute Gap Nobody Owns

A residential service day in Austin has natural dead zones, and they're not random. They're baked into the schedule design.

Tech finishes a job in Brentwood at 11:40am. Next call is Cedar Park at noon — customer requested noon because her husband's home for lunch. Dispatch confirmed noon at 8am when they built the board. That's a 35-minute drive on a good day. It's 55 minutes at 11:30am headed northwest. Tech leaves at 11:45, arrives at 12:40, logs "traveling" for the whole window, and the board shows a gray block that nobody owns.

Multiply that by two or three gaps per day, five trucks.

At Lonestar Electrical Services, I ran service jobs inside a 40-truck dispatch operation. Forty trucks with individual gray blocks adds up fast — you're looking at six or eight truck-days of lost capacity every single day. You can't ignore it at that scale, so you staff a dispatch function specifically to tighten it.

At five trucks, the same problem is invisible. You're not losing 40 truck-days a week. You're losing five or six billable hours across the fleet. That number doesn't scream at you. It just costs you money every day.

East Austin to Cedar Park is 35 minutes at 9am and 70 minutes at 4:30pm. A 3pm booking that looked fine on the board at scheduling time is a 4:30pm arrival that blew the next job. That's a dispatch design failure. Not a traffic complaint, not a tech problem.

You're Optimizing for the Customer's Calendar, Not Your Labor Cost

Here's the contrarian read: accommodating customer time windows is costing you billable hours you can't see. And the industry treats it as a service quality issue when it's a margin issue.

The cost of that noon window is invisible. The customer complaint if you miss it is visible. So owners keep making the wrong trade, every day, at every booking, without realizing it's a trade at all.

Think about how the decision gets made. Customer calls, wants noon. Dispatcher checks the board, noon looks possible if Brentwood wraps by 11:30. Dispatcher confirms noon because the alternative is a harder conversation. Tech leaves Brentwood at 11:50, drives 55 minutes, arrives at 12:45. The 45-minute overage lives in a gray block. No one invoices it. No one notices it. Customer got their noon window and left a fine review.

I've written the same math for the admin-hours problem. Owner doing payroll and invoicing instead of hiring — the $52,000 hiring cost is visible, the $150,000 in lost output is invisible, so the owner keeps not hiring. Same structure. Comfortable customer is visible. Lost billable hour is invisible.

The objection I hear: "I know my market, I've been dispatching for years, I know which windows are worth accommodating." That's experience talking, and experience is real. But without tracking drive legs and wrap time separately in your software, that experience is running on incomplete information. Your gut after 4,000 service calls is data. Your gut after 80 is not.

What Lonestar's Schedule Looked Like vs. What Mine Did at Launch

When I left Lonestar in early 2022 to start Reeves Electric, I had a clear mental model of what a well-run dispatch operation looks like. Dedicated dispatch function. Geographic clustering — you don't send a truck from south Austin to Round Rock and back without a full morning of north work to justify it. Drive-time tracking built into the daily debrief. Hard rules about same-day add-ons: within two miles of a scheduled job or on a board with slack after 3pm, otherwise you're booking tomorrow.

Then I launched two trucks and I was doing dispatch myself at 6am between my first cup of coffee and my first call. Whatever the customer asked for, I confirmed. Noon? Sure. 2pm in Cedar Park? No problem. Quick stop in Round Rock before the Mueller job? Probably, yeah.

I knew better. I scheduled like I'd never been to Lonestar.

Month two, my NPS was a 4. I started answering every call myself for the next ninety days, taking notes on what was actually breaking. Techs were calling me frustrated — not about the work, about the driving. Thirty-five minutes to a job that should have been 15. Wrapping a panel job at 4pm in Pflugerville with a 5pm appointment in South Austin. I was designing schedules that made customers happy at booking time and made everyone miserable on the day of.

What I didn't see fast enough: the dispatch problem and the intake problem were connected. Bad intake data — vague job scope, no notes about the panel being in the back of the garage, customer's not home until 4 — inflated on-site time and pushed jobs late. A job that runs 30 minutes long because the tech had to troubleshoot something a better intake call would have flagged pushes the next job's start, which compresses the drive, which means the tech leaves in heavier traffic.

I treated them as separate problems for too long. They're not.

How to Actually Measure Billable Utilization

The metrics that matter here are not complicated. They're just not defaults in most software setups.

Per tech, per day, you want: drive-leg time between jobs, wrap time per job (clock-out at site to departure), and actual invoiced hours against clock time as a rolling weekly average. Not scheduled hours. Invoiced hours.

Jobber and Service Fusion both have time-tracking features that will get you most of this. Nobody has them configured correctly at the tech level. The data is in the tool you're already paying for. You just haven't turned it on.

Tracking drive time separately from job time is the specific unlock. Right now your board probably shows total time blocks. A job that runs four hours with a 45-minute drive leg embedded looks identical to a job that runs four hours with a 10-minute drive leg. They are not identical. The cost difference is 35 minutes of a journeyman's time, every single occurrence, every single day.

Billable utilization belongs in the weekly numbers review. Not in a quarterly "things feel slow" conversation. Weekly, alongside booking rate and average ticket. I close the week on Fridays and this goes on the same page as every other number I track.

In my shop, 6.5 to 7 invoiced hours on an 8-hour day is the target for a well-designed schedule in Austin. Under 6, the schedule has a design problem. At 7.5, something is off — either the geography is unusually dense or the time logging needs a closer look.

Those aren't industry benchmarks. They're what I see in my own books and what I hear from other residential service owners I actually talk to. Your market may run differently. Measure yours first.

What You Do Monday Morning

Step one: Pull last month's completed jobs in Jobber or Service Fusion and spot-check five techs. Scheduled hours versus invoiced hours versus time-on-site if you have GPS or clock-in data. You're looking for the gap. Do this before anything else.

Step two: Pick one tech, one week, and reconstruct the schedule in retrospect. Not how the board said the day looked. How it actually went, job by job, including every drive leg. Same move as listening back to a call recording — you cannot fix what you cannot see, and most owners have never done this for a single tech on a single day. Do it for five days.

Step three: Change one scheduling rule before Friday. One. Maybe it's a 20-minute minimum buffer between jobs. Maybe it's a hard rule against Cedar Park bookings after 3pm if the previous job is south of the river. One rule, applied consistently, will tell you more about where your slack is than any software purchase.


FAQ

My techs say they're busy all day. How do I bring up utilization tracking without it feeling like surveillance?

Tell them exactly what you're doing. "I'm looking at how I'm routing jobs because I think I'm building days with too much drive time in them. I want to find the gaps so I can fix the routing." That's true, it's not accusatory, and most techs will go with it because they're already frustrated by the drive time. They've been sitting in traffic between jobs for months. They just haven't been asked about it.

What's a realistic billable hour target for a residential service tech on an 8-hour day?

In my shop in Austin, 6 to 6.5 hours is attainable without doing anything exotic to the schedule. With deliberate geographic clustering and tighter arrival windows, you can push toward 7. I'd want to see the time logs of anyone claiming 7.5 consistently in Austin residential — the geography here doesn't support it without some creative logging or a route density I haven't seen. Start by measuring what you're actually running. The number will probably surprise you.

Our jobs vary wildly in length. How do I track utilization when a panel upgrade takes all day and a breaker swap takes 45 minutes?

Track them separately and weight toward your high-volume job types. Drive-leg time and gap time are meaningful regardless of job length — a 40-minute drive to a 45-minute job is a very different cost structure than a 40-minute drive to a full-day panel upgrade. The question is: of the hours my tech was on the clock, what percentage were on-site and invoiced? If half your tickets are troubleshooting calls under two hours, start there. That's where the gap patterns will be most consistent.

We do same-day scheduling as a selling point. Does tightening the dispatch design mean giving that up?

Not automatically, but you have to be honest about what same-day costs you. A same-day slot that's "available" today is usually available because it fits the customer's window, not because it fits your routing. If you're charging a same-day premium, the question is whether that revenue covers the utilization hit. I've talked to owners who run same-day profitably because they price it in. I've talked to more who are eating the cost without knowing it. Know your number before you decide it's worth keeping.

Should I be looking at GPS data or clock-in data?

Both. GPS tells you where the truck was and when. Clock-in tells you when the tech said the job started and ended. The gap between them is usually the most interesting number in the whole analysis. A tech who clocks job-start at 10am but whose GPS shows arrival at 9:42am isn't doing anything wrong — they're getting tools, reviewing the work order, talking to the homeowner. But that 18 minutes is real time your schedule isn't accounting for. Run both sources for two weeks on one truck and compare.

What if I run this analysis and the gap is under 45 minutes? What's left to work on?

Probably intake quality. Job scope accuracy, parts availability, how often techs are making a second trip because the first appointment didn't surface the full scope. A tight schedule built on bad intake data will look fine on the board and still feel chaotic in the field. That's a different problem with a different fix — and it usually starts with the phone screen before the booking.

Enjoyed this article?

Get articles like this in your inbox every Monday. Free, no spam.

More from The Backcharge