| Takeaway | Detail |
|---|---|
| Median gross margin is 50% | Across 2,200+ service businesses, the median gross margin is 50% (levelcfo). |
| Bottom-quartile gross margin is under 35% | Operators in the bottom quartile see gross margins below 35% (levelcfo). |
| Each callback costs $1,500-$1,800 | Fully-loaded cost per callback ranges from $1,500 to $1,800 (levelcfo). |
| Benchmark to top 25%, not top 5% | Using the average of the top 25% of locations is effective; targeting the top 5% can backfire (ServiceDock). |
Median gross margin for service businesses is 50% (levelcfo). That's the good news. The bad news: bottom-quartile operators scrape by at under 35% (levelcfo). The gap isn't luck—it's dispatch. In multi-location operations, that gap widens when each shop runs its own scheduling. The most successful networks treat dispatch as a single system.
Every callback costs $1,500-$1,800 in fully-loaded expenses (levelcfo). When techs wait on parts, you burn billable capacity. A coordinated dispatch system across multiple shops can slash those callbacks—and that's where the cost advantage comes from. The difference between a 5-hour and 9-hour average visit is dispatch efficiency and parts availability. That's not a small variance; it's a dramatic swing in visit time.
But benchmarking against your best location is a trap. ServiceDock's data shows that using the top 5% as a target does more damage than good. Instead, benchmark to the average of the top 25% of locations. That's the sweet spot for realistic, achievable gains across multiple shops. One poorly performing location can drag down the entire brand—so set targets that lift the whole network, not just the star performer.

How It Works
The core mechanism behind the 2026 multi-location dispatch model isn't a smarter route planner—it's a shift from scheduling *jobs* to scheduling *capacity*. When you run multiple shops, the unit of value isn't the work order; it's the billable hour of a technician who is physically present at a location. The system works by continuously re-allocating that capacity across your shops based on real-time demand, rather than locking a tech to a single home base. According to the levelcfo benchmark of 2,200+ service businesses, the single largest controllable cost is not fuel or vehicle wear—it's the idle time of a paid technician. The mechanism is a closed loop: aggregate demand across all locations, cluster the work by geographic proximity, and then dispatch the nearest available tech regardless of which shop they walked into that morning. This collapses the distance between jobs, which is where the per-stop cost reduction comes from. It is not about doing more stops; it is about eliminating the dead miles and dead minutes between the stops you already have.
The critical, non-obvious detail is how the system handles the "waiting on parts" failure mode. In a traditional model, a tech who arrives at a job and lacks the correct part burns billable capacity at your cost—they are on the clock, but they are not producing revenue. The 2026 model treats parts as a separate dispatchable entity. The system does not just route the tech; it routes the part. A courier or a neighboring shop's stock is dispatched to intersect with the tech at the job site, rather than the tech returning to the home shop. This is a fundamental change in the routing graph: you are no longer solving a "traveling salesman" problem for techs, but a "meeting point" problem for techs and parts. The result is that the tech's billable hours are protected from the most common source of waste. The benchmark data from levelcfo suggests that shops which fail to decouple parts from techs see their effective capacity shrink by a measurable margin, because the tech's clock is running while they are idle.
To make this work, you need to understand the vocabulary of the system, because the terms are often used interchangeably and that causes misconfiguration.
| Term | Definition in 2026 Dispatch | Why It Matters |
|---|---|---|
| Geofenced Dispatch | A virtual boundary around each shop; the system only assigns jobs to techs whose current location is inside the boundary of the shop that owns the job. | Prevents a tech from being sent far away from their home base, which would destroy the cost savings. |
| Dynamic Reallocation | The system's ability to reassign a job to a different shop's tech if that tech is closer to the customer than the original assignee. | This is the engine of the cost reduction—it ensures the nearest resource, not the "home" resource, takes the call. |
| Billable Capacity | The total hours a tech is actively producing revenue, excluding travel, admin, and waiting. | According to levelcfo, techs who wait on parts consume this capacity at your cost—it is the metric the entire system optimizes for. |
| Intersection Routing | A pathing algorithm that calculates a meeting point for a tech and a part courier, rather than routing the tech back to a warehouse. | This is the specific mechanism that eliminates the "return to base" trip, which is often the most expensive mile in a service call. |
Here is the edge case that breaks most implementations: the system only works if your data on tech location is live and accurate. If you are relying on a tech to manually check in at a job site, the geofence is useless. The 2026 standard is passive location tracking via the dispatch app on the tech's phone or tablet. If a shop owner disables this to "protect privacy," the system degrades to a manual scheduling tool, and the cost savings evaporate. The mechanism is not a software feature; it is a data discipline. The system is only as good as the fidelity of the location feed. In practice, for a multi-shop operation, this means you need to verify that your dispatch software is pulling location data frequently, not just at job completion. A long lag in location data will cause the system to route a tech to a job that another tech has already finished, creating a duplicate visit and erasing the margin on that stop.
For a concrete example, consider a plumbing company with multiple shops covering a metro area. Under the old model, a customer calls the shop nearest them, and that shop dispatches its own tech. If that tech is busy, the customer waits. Under the 2026 model, the system sees that Shop B's tech is finishing a job close to the new customer, while Shop A's tech is farther away. It assigns the job to Shop B's tech, even though the customer called Shop A. The customer gets faster service, and Shop B's tech has no deadhead between jobs. The cost per stop drops because the travel time is minimized across the entire fleet, not just within a single shop's territory. The mechanism is a network effect: the more shops you have, the more opportunities there are to find a nearby tech, which is why the model is specifically tuned for the multi-shop range. A network that is too small is too sparse to find matches; one that is too large adds complexity in cross-shop inventory and payroll that eats into the gains.
Your next action is to audit your current dispatch data feed. Before you buy any new software, check whether your existing system can export a timestamped location log for each tech. If it cannot, that is your bottleneck. The software is not the mechanism; the data is.

Key Factors to Consider
Median gross margin runs 50% in service fleets, according to levelcfo. Until that ratio sits inside the dispatch model, any routing decision across multiple shops is guesswork. And the myth to discard is that the conventional approach "wastes money on unnecessary steps." The stops are not the waste; they are the profit units. The waste is dispatching a stop to a shop that cannot clear that stop's margin threshold, plus measuring success against a fleet median that hides what your best location already achieves.
First decision criterion: gross-profit-at-the-stop, not cost-per-mile. With a 50% median gross margin (levelcfo), a stop must recapture its direct dispatch cost before it contributes anything to overhead. Because gross profit is half of stop revenue, the revenue per stop must clear roughly double its dispatch cost at breakeven. That is the structural logic: a dollar removed from per-stop dispatch cost flows entirely to operating income, making dispatch optimization a full-P&L decision rather than a small efficiency line item.
Second decision criterion: benchmark against the top quartile. According to ServiceDock, benchmark performance is set to the average of the top 25% of locations. For a multi-shop operator, the top quartile is effectively the single best shop in your own cluster. The benchmark is not an external fantasy; it is a number your own network already produced. The gap between that best-location average and your fleet median is the actionable opportunity that the conventional dispatch report hides.
Third decision criterion: the margin-benchmark lock. Combine the two figures into one filter: assign a stop to a shop only when that stop's gross margin clears the dispatch-cost benchmark of your top-25% location (ServiceDock). If the stop clears the benchmark only at a farther shop, send it to the farther shop — distance is secondary, margin recovery is primary. If it fails at all shops, leave the slot empty.
Run the test on a cluster of shops in Columbus, Ohio. Compute the average of the top 25% of locations — the top shop's dispatch economics — and push every incoming stop through that margin filter before booking a slot. At a 50% gross margin (levelcfo), an empty slot carries no direct dispatch expense, while a margin-negative stop consumes operating income. The stops that survive the filter are the ones that produce the economic gain; the ones that fail are the stops the conventional dispatch was quietly subsidizing.
| Dispatch rule | Governing figure | Verdict |
|---|---|---|
| Nearest-shop routing | Ignores the 50% median gross margin (levelcfo) | Loses — margin-blind; sends stops to shops that cannot clear the threshold |
| Fleet-median benchmarking | Hides the top-25% cohort (ServiceDock) | Loses — sets the target at the middle, not at what your best shop already delivers |
| Top-quartile margin lock | 50% gross margin (levelcfo) against the top-25% benchmark (ServiceDock) | Wins — only books stops that clear the best-location margin threshold |
Set the filter to the top-shop threshold tonight, not after lengthy analysis. Then compare the per-stop cost of the stops that clear the filter against the per-stop cost of the stops that fail it. That comparison — using the 50% margin (levelcfo) and the top-25% benchmark (ServiceDock) — is the entire due-diligence package for the headline gain above.

Common Mistakes
Benchmarking against your best-performing shop is the fastest way to sabotage the cost advantage of a multi-location dispatch model. According to ServiceDock, comparing your operation against the top location or the top 5% of performers can do more damage than not benchmarking at all. The mechanism is straightforward: a top-quartile shop typically operates with different capacity constraints, customer density, and job mix than your median location. When you force the median shop to mimic the outlier, you over-schedule capacity, inflate idle time, and erode the very per-stop economics that make multi-shop dispatch viable.
Pitfall 1: Treating gross margin as a routing input instead of a survival threshold. According to levelcfo, the bottom quartile of service fleets operates at a gross margin below 35%. That figure is not a benchmark to beat; it is a red line. In a multi-location dispatch model, the dispatcher's job is to schedule capacity across shops so that every stop clears that margin floor. The concrete failure mode: a multi-shop operator in a mid-sized metro routes a low-margin maintenance job from Shop A to Shop B because Shop B has an open window. The job clears Shop A's books, but Shop B's crew now spends a long time driving to a stop that generates a thin gross margin. The network absorbed the cost, but the bottom-quartile shop just got closer to the 35% line. The fix is not better routing; it is a dispatch rule that rejects any stop below the margin floor unless it is bundled with a higher-margin job on the same route.
Pitfall 2: Benchmarking against the top 5% of locations. ServiceDock's finding on the damage of top-location benchmarking is the second trap. When you run multiple shops, the temptation is to take the best-performing location's metrics—stops per day, revenue per stop, utilization rate—and set those as the network standard. The problem: the top 5% of locations typically have a different customer mix, a denser service area, or a specialized crew. Forcing a suburban shop with wide gaps between stops to match a dense urban shop's stops-per-day target creates a phantom gap. The dispatcher then over-allocates vehicles to close that gap, which raises per-stop cost across the network. The correct benchmark is the median of your own network, not the top location. If your median shop runs fewer stops per day than your top shop, the dispatch model should optimize for the median pace, not chase the outlier.
| Mistake | Source | Symptom | Fix |
|---|---|---|---|
| Routing below the margin floor | levelcfo (bottom quartile <35% gross margin) | Network absorbs low-margin stops; bottom-quartile shops drift toward the 35% line | Reject any stop below the margin floor unless bundled with a higher-margin job |
| Benchmarking against top location or top 5% | ServiceDock | Over-allocation of vehicles to close a phantom gap; per-stop cost rises | Benchmark against the network median, not the top performer |
The actionable takeaway for a 2026 dispatch operator: set a hard margin floor at 35% gross margin per stop, sourced from levelcfo's bottom-quartile data, and reject any routing decision that dips below it. Then, ignore your top shop's metrics entirely when setting network targets. Use the median of your own multi-shop network as the baseline. That single shift—from chasing the top 5% to protecting the bottom quartile—is what keeps the per-stop cost advantage intact.

Insider Tactics
Start with the fully-loaded cost of a callback, because that number changes how you read every dispatch decision. According to levelcfo, a single callback runs $1,500–$1,800 once you account for the return trip, the re-dispatch, the idle technician time, and the customer's lost hours. That figure is your anchor for the non-obvious strategy: treat callback prevention as a capacity-planning problem, not a route-quality problem. The conventional approach—tightening time windows or adding buffer minutes to each stop—wastes money on unnecessary steps because it optimizes for the wrong variable. The real lever is sequencing your multiple shops so that no single location ever becomes a bottleneck that forces a second visit.
The non-obvious strategy is to stagger your dispatch windows by shop, not by route. When you run multiple locations, the natural instinct is to load all trucks at the same time and push them out. That creates a synchronized surge: every shop hits its first stop at roughly the same time, and when one location hits a delay—a part not ready, a bay occupied—the ripple effect cascades across the entire network. Instead, offset your dispatch windows by staggered intervals per shop. Shop A launches first, Shop B later, Shop C later still. This staggers the demand on your shared resources—the parts counter, the phone line, the dispatcher's attention—so that a delay at one location doesn't compound into a network-wide failure. The mechanism is simple: you're converting a synchronous load into an asynchronous one, which gives your dispatcher the slack to re-route a technician from Shop B to cover a callback at Shop A without burning a second truck.
The timing tip is to schedule your dispatch review later in the morning, not at the start of the day. By late morning, you have enough data from the morning's first stops to see which shops are running hot and which are running cold. An early-morning review is pure speculation—you're guessing at traffic, part availability, and technician speed. A late-morning review is evidence-based: you can see actual stop times, actual delays, and actual completion rates. This is when you make the call to shift a technician from a slow shop to a fast one, or to pre-emptively call a customer at a shop that's running behind. The cost of that call is trivial; the cost of a callback is $1,500–$1,800. According to ServiceDock, one poorly performing location can do untold damage to the brand—and that damage often starts with a single missed window that could have been caught in that review.
| Tactic | When to Apply | Mechanism | Why It Wins |
|---|---|---|---|
| Staggered dispatch windows | Every morning, staggered offset per shop | Converts synchronous load to asynchronous | Gives dispatcher slack to re-route without a second truck |
| Late-morning dispatch review | Daily, after first stops complete | Evidence-based re-allocation of technicians | Catches delays before they become callbacks |
| Callback-cost anchoring | When evaluating any dispatch decision | Compare $1,500–$1,800 callback cost vs. re-route cost | Justifies proactive phone calls and mid-day shifts |
The edge case is the single-shop surge. If one of your multiple locations has a known high-volume day—say, a Tuesday after a holiday weekend—you don't stagger that shop; you front-load it. Give that location the earliest dispatch window and the most experienced technician. The other shops absorb the offset. This is where the cost advantage lives: not in the average day, but in the days when one location threatens to drag the whole network down. The timing tip here is to identify those surge days well in advance, not the morning of. A quick look at your booking calendar tells you which shop will spike. Adjust your dispatch windows the night before, not the morning of the surge.
The final piece is the callback ledger. Track every callback by shop, by cause, and by time of day. According to levelcfo, the $1,500–$1,800 figure is fully-loaded—it includes the soft costs like customer churn and brand damage that ServiceDock warns about. If you see a pattern—say, Shop C generates most of your callbacks during an afternoon window—you have a specific, actionable insight. That's the time to shift a technician from a low-demand shop to cover Shop C's afternoon load. The late-morning review is your trigger; the callback ledger is your map. Together, they turn dispatch from a reactive firefight into a proactive system that protects both your margin and your brand.

Comparison
When operators ask me whether the 2026 multi-location dispatch model is worth the switch, they expect a debate about software subscriptions or routing algorithms. The real comparison is starker: it's a 5-hour visit versus a 9-hour visit for the same job class. According to levelcfo, that spread is driven almost entirely by dispatch efficiency and parts availability—not by the skill of the technician in the truck. That single data point reframes the entire cost conversation for a multi-shop operation.
The conventional model—where each shop dispatches independently, carries its own parts inventory, and schedules jobs in isolation—looks fine on paper until you stack it against a unified capacity model. The independent shop wins on local responsiveness. It loses on utilization. When a tech finishes a job quickly at Shop A, that tech sits idle waiting for the next assignment because Shop B's dispatcher doesn't know the capacity exists. The 2026 model treats all shops as one pool of labor and parts, which is precisely why the visit-time spread exists. Dispatch efficiency isn't about sending the closest truck; it's about sending the next available truck with the right part already loaded.
| Comparison Point | Independent Dispatch (per shop) | 2026 Multi-Location Model | Winner |
|---|---|---|---|
| Average visit duration | Runs toward the 9-hour end of the spread | Compresses toward the 5-hour end | Multi-location, by up to 4 hours per visit |
| Parts availability | Each shop stocks its own; stockouts send techs to supply houses mid-job | Shared inventory across locations; parts move with the tech | Multi-location, eliminates mid-job parts runs |
| Tech idle time between jobs | High; no visibility into adjacent shop capacity | Near zero; dispatcher sees all open slots across multiple shops | Multi-location, converts idle hours to billable hours |
| Local responsiveness | Immediate; a call from a nearby customer gets a truck fast | Slightly delayed; dispatch may pull a tech from a farther shop | Independent, but only for urgent same-day calls |
| Per-stop cost trajectory | Flat or rising; idle time is baked into every quote | Declining; the cost gap comes from cutting the fat hours | Multi-location, by the headline margin |
The decision tree is not about fleet size—it's about visit-time variance. If your operation already runs a tight 5-hour average per visit with independent dispatch, you have no spread to capture, and the multi-location model adds coordination overhead without a payoff. That's the edge case where the conventional approach wins. But if your visits drift toward the 9-hour end of the spread levelcfo documents, the unified model is the only lever that pulls that number down. The mechanism is simple: a tech who doesn't wait for parts and doesn't wait for the next assignment is a tech who finishes more stops per day.
When each option wins, in practice: independent dispatch wins for a shop that handles emergency calls within a tight radius and has a parts room that never runs dry—a rare combination. The 2026 multi-location model wins for everything else, because it attacks the two variables that actually move the per-stop cost: dispatch efficiency and parts availability. The 5-to-9-hour spread is your diagnostic. Measure your own average visit time across all shops for a month. If the variance between your best and worst shop is meaningful, the unified model isn't a luxury—it's the difference between billing for 5 hours of work and billing for 9.
What to do next
| Step | Action | Why it matters |
|---|---|---|
| 1 | Audit each of your shops: if any runs its own independent scheduling board, flag it. Compare your network's gross margin against levelcfo's 50% median from 2,200+ service businesses. | Fragmented dispatch is the root cause of the gap between the 50% median and the sub-35% bottom quartile. |
| 2 | Quantify your callback drain using levelcfo's $1,500–$1,800 fully-loaded cost per callback. Tally callbacks across all locations for the last month. | You can't fix what you haven't sized — this number is the baseline for your cost-advantage target. |
| 3 | Shift from scheduling jobs to scheduling capacity: aggregate demand across all locations, cluster work by geographic proximity, and dispatch the nearest available tech regardless of which shop they walked into that morning. | This collapses dead miles and dead minutes between stops — the single largest controllable cost per levelcfo's benchmark. |
| 4 | Implement a pre-dispatch parts verification so no tech leaves without the correct part for the job. | A tech who arrives and waits on parts burns billable capacity at your cost — the exact failure mode that drives callbacks and the $1,500–$1,800 per-incident expense. |
| 5 | Set performance targets using ServiceDock's method: benchmark to the average of your top 25% of locations, not the top 5%. | Targeting the top 5% backfires and demoralizes the network; the top-25% average is the realistic sweet spot that lifts all shops together. |
| 6 | Track your network's gross margin monthly against the 35% bottom-quartile floor and the 50% median benchmark. | This is your scoreboard — staying above 35% and climbing toward 50% confirms the dispatch overhaul is delivering the cost advantage. |
Frequently Asked Questions
What is the fully-loaded cost of a single callback?
Each callback costs $1,500-$1,800 in fully-loaded expenses.
What benchmark should a multi-location operator target instead of the top 5%?
Benchmark to the average of the top 25% of locations.
How does the 2026 dispatch model handle a tech waiting on parts?
The system routes the part to intersect with the tech at the job site, rather than the tech returning to the home shop.
What happens if a shop owner disables passive location tracking?
The system degrades to a manual scheduling tool, and the cost savings evaporate.
What is the median gross margin across service businesses?
Median gross margin is 50% across 2,200+ service businesses.
What is the first decision criterion for assigning a stop to a shop?
First decision criterion: gross-profit-at-the-stop, not cost-per-mile.
Quick answers
| What is the median gross margin across 2,200+ service businesses? | The median gross margin is 50%. |
| What is the fully-loaded cost per callback? | Each callback costs $1,500 to $1,800. |
| What benchmarking target is recommended instead of the top 5%? | Benchmark to the average of the top 25% of locations. |
| What is the core mechanism behind the 2026 multi-location dispatch model? | It's a shift from scheduling jobs to scheduling capacity. |
| What is required for the system to work effectively regarding location data? | The system only works if data on tech location is live and accurate, using passive location tracking via the dispatch app. |
Sources: Reddit, arXiv, arXiv, arXiv, arXiv