Roofing Crew Dispatch: Why Drive Time Is Eating Your Margin
Ask a roofing owner what a job costs and you will get materials, labor, and overhead. Almost nobody says drive time — which is strange, because it is often the difference between a profitable repair and one you would have been better off declining.
A two-man crew driving 45 minutes each way to a $600 repair has spent an hour and a half of paid labor, plus fuel and vehicle wear, before touching a shingle. Do that three times a week and you have quietly donated a crew-day per week to the interstate.
The math nobody runs
Take a simple case. Two techs at a fully-burdened $45/hour each. Ninety minutes round trip.
- Labor in transit: 1.5 hrs × 2 techs × $45 = $135
- Vehicle cost at ~$0.70/mile over ~50 miles: $35
- Real cost before work begins: ~$170
On a $600 repair, that is 28% of revenue consumed by driving. On a $22,000 replacement, the same drive is noise. This is the entire insight: drive time is not a fixed cost, it is a percentage — and the percentage only makes sense relative to ticket size.
The question is never "is this job too far?" It is "is this job too far for what it pays?"
Zone your service area, then price by zone
Most roofing companies have an informal sense of "our area" that lives in the owner's head. Formalize it. Three zones, measured in drive time from your shop — not radius, because a 20-mile drive on an interstate and a 20-mile drive through town are different businesses.
| Zone | Drive time | Policy |
|---|---|---|
| Primary | 0–25 min | Standard minimum ticket. Any job type. |
| Extended | 25–50 min | Higher minimum. Trip fee applies. Batch when possible. |
| Out of area | 50+ min | Replacement-size only, or decline. Deposit required. |
The value here is not the specific thresholds — pick what fits your market. The value is that the decision stops being a judgement call made by whoever answers the phone, and becomes a rule. A dispatcher who can say "that's extended zone, minimum is $X plus a trip fee" is protecting your margin without needing to ask anyone.
Sequence, do not just schedule
Scheduling answers "when." Sequencing answers "in what order, and how far apart." A day built as four appointments at 9, 11, 1, and 3 — scattered across the metro — is a day with three hours of driving baked in that nobody counted.
Practical rules that recover real hours:
- Cluster by geography, then by time. Book the area first and the hour second. "Tuesday morning, north side" beats "Tuesday 9am, wherever."
- Give arrival windows, not appointment times. A two-hour window lets a dispatcher sequence sensibly. A hard 9:00 forces the route.
- Build in a buffer. Roofs run long. A schedule with zero slack turns one overrun into four late arrivals and a bad review.
- Batch the extended zone. Never send a crew 45 minutes for one job. Hold extended-zone work until you can pair two, or attach it to a replacement already out there.
- Anchor the day with the big job. Put the replacement in the middle and fill around it with nearby small work.
Emergencies break the rules — deliberately
Active leaks and storm emergencies are a different calculation. The right move is usually to break the zone rules and eat the drive, because an emergency tarp at 8pm becomes a full replacement in three weeks, and the homeowner who was rescued does not shop the estimate.
But make that a deliberate exception with its own routing (closest available crew, not the crew whose turn it is), not a quiet erosion of the whole policy.
What to actually measure
If you track nothing else, track these three:
- Wrench time percentage. Hours on the roof ÷ hours on the clock. Below 60% and you have a routing problem, not a productivity problem.
- Revenue per crew-day. The cleanest single number for whether the schedule is working.
- Jobs per zone. If half your volume is extended-zone, either your minimums are wrong or your service area is.
None of this needs a data team. It needs the job records to know where they were and when the crew was actually there — which is exactly the thing that does not exist when scheduling lives on a whiteboard.
How GlobalShield handles this
GlobalShield Roofing OS calculates drive time from your home base for every incoming lead and tags it primary, extended, or out-of-area automatically — so the zone rule is applied when the lead arrives, not argued about later. The dispatch board shows jobs by stage, crews carry their route in the field app, and minimum tickets, trip fees, and zone thresholds are configurable per company in Settings.
Start a free 14-day trialThe takeaway
Drive time is the cost that never shows up on an invoice and always shows up in the P&L. Zone your area by minutes, set minimums per zone, sequence by geography, and batch anything far away. The crews are not slow — the route is.