TL;DR: A residential plumbing company in Dallas-Fort Worth had 22 techs covering a 60+ mile service area. Dispatchers routed jobs based on "who's available" rather than who's closest or best qualified. Techs wasted 90+ minutes daily in unnecessary driving. We built an agent that tracks real-time location, matches skills to job requirements, factors traffic, and recommends optimal assignments. Drive time dropped 28 minutes per tech per day. Job completion increased 18%. The senior tech called the owner to say he actually had time for lunch.

Passing Each Other on the Highway

Mike runs a residential plumbing company in the Dallas-Fort Worth metroplex. 34 employees. 22 field technicians. Service area spanning Tarrant, Dallas, Collin, and Denton counties. Over 60 miles across.

The dispatch situation was chaos that looked like order.

Two dispatchers, both experienced, both doing their best. Jobs came in. They'd check the board, see who was available or finishing up soon, and assign the next job.

Simple enough. Except it wasn't working.

A tech would finish a job in Plano and get dispatched to Fort Worth. Meanwhile, another tech finishing in Irving got sent to McKinney. They'd literally pass each other on the highway, each driving 45 minutes to a job the other one could have reached in 15.

"I spend more time driving than fixing pipes," one of the senior techs told Mike. That wasn't quite true mathematically. But it felt true. And when your best people feel like they're wasting their day in traffic, you've got a problem.

The Math Nobody Was Tracking

Mike had a vague sense that routing could be better. He didn't know how much better until we measured it.

90+ minutes per day in unnecessary drive time. Per tech. That's across the whole team, obviously some worse than others, but the average was brutal.

25% of dispatches were suboptimal. Not disasters—the job still got done—but a different tech could have gotten there faster.

$4,200 per month in excess fuel costs. Gas adds up when you're driving in circles.

15% fewer jobs completed than the team actually had capacity for. They weren't slow. They were stuck in traffic.

The dispatchers weren't incompetent. They were working with incomplete information. They could see who was available. They couldn't see where everyone was in real time. They couldn't calculate drive times accounting for current traffic. They couldn't remember which techs had which certifications.

For more on how to calculate what inefficiencies like this actually cost, we've built a framework.

The Skill Matching Problem

Here's what made this harder than simple distance optimization.

Not every tech could do every job.

Tankless water heaters? Only 5 techs trained on those. Send the wrong person and they'd have to call for backup or reschedule the customer.

Commercial jobs? Specific insurance requirements. Only certain techs qualified.

Gas line work? Separate certification. 8 techs had it, 14 didn't.

Water heater installations vs. drain cleaning vs. leak detection—different equipment needed, different skill sets.

The dispatchers knew most of this. They had a mental map of who could do what. But under pressure, with phones ringing and jobs stacking up, they'd sometimes send whoever was available and deal with the mismatch later.

"Later" usually meant an unhappy customer, a wasted trip, or a tech standing in someone's garage calling the office saying "I can't do this job."

What We Built

The scheduling agent has five stages.

Stage 1: Job Intake

New job enters the system. Agent captures: location, job type, urgency level, specific skill requirements (tankless? gas line? commercial?), equipment needed, customer history.

This happens automatically when the job is booked. No manual tagging required—the agent infers requirements from job type and notes.

Stage 2: Fleet Status

Real-time picture of every tech. GPS location (updated continuously). Current job status and estimated completion time. Skills and certifications on file. Equipment currently on their truck.

The agent knows that Tech 7 is finishing a water heater install in Frisco, has tankless certification, carries the right tools, and will be available in approximately 18 minutes.

Stage 3: Optimization Engine

This is where the math happens.

Calculates ETAs from every available tech to the new job location. Factors real-time traffic via Google Maps API. Matches required skills to tech certifications. Considers truck inventory.

Ranks all viable options by: time to arrival, skill match quality, current workload balance, and customer priority.

For a breakdown of what agents actually do versus regular automation, we've explained the difference here.

Stage 4: Recommendation

Presents the top 3 options to the dispatcher with reasoning.

"Option 1: Rodriguez (14 min ETA, tankless certified, light day). Option 2: Chen (18 min ETA, tankless certified, moderate day). Option 3: Williams (31 min ETA, tankless certified, but currently closest to afternoon cluster in Denton)."

One click to dispatch. Or the dispatcher can pick an alternative.

Stage 5: Execution

Assignment goes to the tech's mobile app. Provides turn-by-turn routing. Updates the customer with accurate ETA. Logs everything for later analysis.

The Human Checkpoint

Dispatchers don't lose control. They gain clarity.

Every recommendation comes with reasoning. The dispatcher can accept the top option, pick an alternative, or override entirely with their own choice.

When they override, the system asks why. Not to second-guess—to learn. If dispatchers consistently override for reasons the agent missed (like "Rodriguez doesn't do well with that customer"), that feedback improves future recommendations.

The agent handles the calculations. The dispatcher handles the judgment calls.

What Made This Hard

Real-time data integration was finicky. Getting GPS updates, job status changes, and new bookings to sync in near-real-time required careful API work. Delays of even a few minutes made recommendations stale.

Traffic patterns needed learning. Google Maps API provides good estimates, but Dallas traffic has quirks. The 635/75 interchange at 4 PM is worse than the API predicts. We built in adjustment factors based on historical actual vs. estimated drive times.

Dispatcher trust took time. The first two weeks, dispatchers checked every recommendation against their own judgment. They found the agent was right about 85% of the time. After that, they started trusting it. By week four, they were frustrated when they had to override because the system didn't know something it should have.

The Numbers

Before:

  • 90+ minutes wasted drive time per tech per day

  • 25% of dispatches suboptimal

  • $4,200/month in excess fuel

  • 15% fewer jobs completed than capacity allowed

After:

  • 28-minute improvement per tech per day

  • 6% suboptimal dispatch rate

  • $3,100/month fuel savings

  • 18% more jobs completed with same team

The call that made it real:

Mike's senior tech, a guy who'd been there 11 years and complained about everything, called him two weeks after launch.

"I don't know what you did. But I actually had time for lunch today."

That's what efficiency feels like when it's real. Not a dashboard metric. A person getting their lunch break back.

The Pattern

If you've got a field service team covering a wide area, you probably have dispatch inefficiency. The question is how much.

The symptoms:

  • Techs complain about drive time

  • Jobs take longer than they should (travel eating into work hours)

  • You've had skill mismatch problems (wrong tech for the job)

  • Dispatchers are doing mental math that doesn't scale

The core issue: Human dispatchers route based on "who's available." Systems can route based on "who should go."

Next Steps

Want to see 25 agent architectures across different industries? Download Unstuck—it includes this one plus blueprints for lead gen, invoicing, collections, and more.

Think dispatch might be your bottleneck? Book a Bottleneck Audit. 30 minutes, no pitch. We'll map your current routing and estimate how much efficiency you're leaving on the table.

by SP, CEO - Connect on LinkedIn
for the AdAI Ed. Team

Keep Reading