Home  /  Blog  /  AI Dispatch & Routing
ServiceTitan · Dispatch · Margin

AI Dispatch & Routing for ServiceTitan: Priority, Drive Time, and Margin — Not Just the Calendar (2026)

Top Builder AI Published July 17, 2026 ~12 min read HVAC · Plumbing · Electrical
Dispatcher reviewing a route board with service trucks staged in the lot outside a home-service back office

ServiceTitan's Dispatch Pro already routes technicians by predicted job value, priority, and drive time. What it optimizes is, in ServiceTitan's own words, predicted job value of the assigned technician minus drive cost, equals total revenue. That is a revenue formula, not a margin formula. It does not know a technician is 20 minutes from triggering overtime, and it does not know that sending them to this call bumps a higher-margin install off tomorrow's schedule. An AI Routing agent reads the same dispatch board, adds labor cost, overtime exposure, and downstream schedule impact to the ranking, and shows the dispatcher the margin-aware pick next to the revenue-ranked one. The dispatcher still makes every call. The agent just makes the tradeoff visible before the click, not after the payroll run.

A dispatch board can look full and profitable all day and still bleed margin nobody notices until the biweekly payroll run shows more overtime than expected, or the fractional CFO's job-costing report shows a normally-strong install job came in thin because the lead technician was pulled for two emergency calls that week. The board did its job: every slot got filled, every call got answered. The board just was not built to ask whether filling that slot with that technician was the profitable choice.

This is not a knock on ServiceTitan's dispatch tooling, which is genuinely good at what it is built to do. It is a specific, provable gap in what the formula counts.

Why does a "good" dispatch day sometimes turn into a bad margin week?

The mechanism is the same in almost every shop that runs into this. A P1 no-heat or no-AC call comes in mid-afternoon. Two or three technicians could plausibly take it. The dispatch board, running on predicted revenue and drive time, correctly ranks the technician who will likely generate the highest ticket with the shortest drive as the top pick. The dispatcher assigns them. The call closes well. Revenue for the day looks right.

What the board did not weigh: that technician was 25 minutes from their overtime threshold, so the call added a time-and-a-half premium to labor cost that never shows up on the dispatch screen. Or that technician had a $4,200 install booked as the first job tomorrow morning that now gets pushed, or handed to a less experienced tech, because today ran long. Neither of those costs is visible on the board in the moment. Both of them are visible three weeks later in a P&L line the owner cannot trace back to a specific Tuesday.

Field service operations that run on unoptimized routing typically see drive time consume roughly 25 to 30 percent of a technician's workday, and a 15 to 20 percent reduction in that drive time can add one to two extra billable jobs per technician per day, according to MSI Data's 2026 Field Service Optimization guide. Drive time is real money. It is also only one input in the decision, and it is the one input every dispatch tool already optimizes for. Margin and overtime exposure are the inputs nobody's board is tracking in real time.

Does ServiceTitan's Dispatch Pro already solve this?

It solves a meaningfully related but different problem. According to ServiceTitan's own Dispatch Pro documentation, the algorithm applies a sequence of hard constraints, Dispatch Pro-enabled technicians, correct zone or business unit, matching job-type skills, availability within the arrival window, maximum drive-time range, and technician performance ranking, and among the technicians who pass those filters, it computes: predicted job value of assigned technician minus drive cost equals total revenue. It then simulates hundreds of scenarios across the day's board to find the setup predicted to generate the most revenue, learning from each technician's total sales, average ticket, sold memberships, and lead-generation rate over the trailing 30 days and 12 months.

That is a sophisticated, genuinely useful algorithm, and on ServiceTitan's own feature page it reports real results: customers using Dispatch Pro see drive time decrease by 6%, dispatcher efficiency roughly double, and average ticket size increase by 14%, alongside 1.5x revenue growth over a six-month measurement window, per ServiceTitan's Dispatch Pro feature page. None of that is in question. What is missing from the formula, by ServiceTitan's own description of it, is labor cost, overtime exposure, and the margin on the job the technician gets pulled away from.

What Dispatch Pro's own formula counts
Revenue − Drive Cost
ServiceTitan's documented Dispatch Pro formula: predicted job value of the assigned technician, minus drive cost, equals total revenue. Labor cost, overtime premium, and the margin of the job a technician is pulled from are not inputs.
Source: help.servicetitan.com, "Dispatch Pro Overview" (2026).

What is the real difference between routing for revenue and routing for margin?

Revenue is the number on the invoice. Margin is what is left after every real cost of producing that invoice, including a cost most dispatch boards never see in the moment: the labor premium of the specific technician doing the specific job at that specific hour, and the schedule cost of what else that technician was supposed to be doing.

Two technicians can look identical on a revenue-ranked board and represent very different margin outcomes. A technician mid-shift with no overtime exposure and an open slot tomorrow costs the shop its normal labor rate. A technician close to their weekly overtime threshold, or already booked on a higher-margin job the next morning, costs more than the board shows, even if their predicted ticket value is marginally higher. ServiceTitan's own field service metrics guide puts a strong technician utilization benchmark at 60 to 80 percent of billable hours; every unplanned overtime hour or bumped install pulls a shop away from that benchmark in a way a revenue-only dispatch decision cannot see coming.

How does an AI Routing agent add margin and priority, without replacing the dispatch board?

The Routing agent in Top Builder AI does not compete with Dispatch Pro or replace ServiceTitan's dispatch board. It reads the same underlying data, the open board, technician shift and hours-worked status, job priority tier, estimated job value and drive time, plus two inputs that are not part of ServiceTitan's own formula: real-time overtime exposure per technician, and the margin of each technician's already-scheduled upcoming jobs.

1
Read the live dispatch board Open jobs, priority tier (P1/P2/P3), technician availability, and the same predicted-value and drive-time figures Dispatch Pro already computes.
2
Pull hours-worked and overtime status per technician From the payroll/time-tracking data already flowing through the Workforce agent, so the agent knows who is close to a premium-rate threshold before a new assignment pushes them over it.
3
Check each candidate's next scheduled job If reassigning a technician to this call bumps or delays a higher-margin job already on their board, that cost is weighed against the revenue gain of the current call.
4
Surface the margin-aware recommendation alongside the revenue-ranked one The dispatcher sees both, with the reasoning attached, and assigns. Nothing routes automatically.

How does the agent decide who goes where, in what order?

Priority. A P1 no-heat or no-AC emergency is a floor, not a tradeable input. It gets filled regardless of margin impact; the reputational and safety cost of an unanswered emergency outranks any margin calculation. Margin scoring applies within a priority tier, among the technicians who can legitimately fill a given P1, P2, or P3 slot in the required window.

Drive time. Kept exactly as Dispatch Pro already computes it, a real cost subtracted from predicted value.

Overtime exposure. A technician within roughly 30 minutes of a weekly or daily overtime threshold carries a real time-and-a-half labor premium on the assignment. The agent flags this explicitly rather than letting it hide inside a single revenue score.

Downstream schedule impact. If assigning this technician means bumping, delaying, or reassigning a higher-margin job already on their board, that cost is shown, not buried. A $6,000 install at strong margin tomorrow morning is a real number to weigh against a same-day emergency fill.

Worked example: a 12-tech HVAC and plumbing shop, one afternoon

All figures below are illustrative, built to demonstrate the tradeoff the formula misses. They are not a client result.

Illustrative dispatch decision — 2:15pm P1 no-heat call
Candidate A — revenue-ranked pick
Predicted job value$420
Drive cost−$9
Dispatch Pro revenue score$411 (top rank)
Hours into shift7.5 of 8 (overtime in ~30 min)
Tomorrow 8am job on their board$2,100 install, 52% margin
Candidate B — margin-aware pick
Predicted job value$360
Drive cost−$14
Dispatch Pro revenue score$346 (second rank)
Hours into shift3.5 of 8 (no overtime exposure)
Next job on their board$180 filter change, easily moved to tomorrow
Revenue-only, Candidate A wins by $65. Once overtime premium (~$28 for the last 30 minutes at 1.5x) and the risk to tomorrow's $2,100 install are counted, Candidate B is the better margin outcome even at a lower predicted ticket. The Routing agent surfaces both numbers; the dispatcher decides.

Comparison: manual dispatch vs. ServiceTitan Dispatch Pro vs. Top Builder AI Routing agent

CapabilityManualServiceTitan Dispatch ProTop Builder AI Routing agent
Priority-tier aware (P1/P2/P3)At dispatcher's judgmentYes, via constraintsYes, as a non-negotiable floor
Drive-time optimizedNoYes — predicted value minus drive costInherits the same drive-cost input
Overtime exposure factored inAt dispatcher's memoryNot in the documented formulaFlagged per technician, per assignment
Downstream schedule / margin impactNoNot in the documented formulaCompares against the technician's next scheduled job margin
Replaces the dispatcher's final callNo — dispatcher assignsNo — proposes only, dispatcher assigns
Works alongside existing ServiceTitan boardReads the same board; no separate system

The short version: Dispatch Pro is a genuine upgrade over a manual board for revenue and drive time, ServiceTitan's own numbers on that are solid. What it does not claim to do, by its own documented formula, is weigh labor cost or downstream margin. That is the specific layer the Routing agent adds on top, never replacing the dispatcher's final decision.

How does dispatch and routing fit the rest of the back office?

Routing is one of eight agents in Top Builder AI's back-office stack. The overtime data the Routing agent surfaces at 2pm on a Tuesday is the same overtime data the Workforce agent uses to catch payroll cost before the check runs, and the same margin data the Financial agent uses in the job-costing and cash-position reports. A dispatch decision made in the moment is not supposed to be invisible until the biweekly payroll run or the month-end close, it is supposed to be one line in a system that already knows what a technician-hour and a job-margin point are worth.

The full back-office overview covers all eight agents and how Routing, Workforce, Financial, Inventory, Booking, Documents, Pricebook, and Collections work together on the same live ServiceTitan and QuickBooks data.

What will the agent never do without my approval?

  • No automatic assignment. The agent proposes a recommendation with reasoning attached; the dispatcher assigns every job.
  • No overriding a manual placement. If a dispatcher assigns a technician for a reason the agent cannot see, a same-day complaint, a customer relationship, a personal circumstance, that decision stands.
  • No fabricated figures. Every predicted value, drive cost, overtime premium, and margin number comes from deterministic, tested code reading live ServiceTitan and payroll data. The language model explains the tradeoff; it does not calculate or invent one.
  • Priority never gets traded for margin. A P1 emergency is filled regardless of what the margin math says.

See what your dispatch board is optimizing for

If you have never checked whether your highest-revenue dispatch picks are also your highest-margin ones, that gap is exactly what the Routing agent surfaces first. Book a 30-minute fit call and we will walk through a real week of your board.

Book a fit call →

Frequently asked questions

Does ServiceTitan's Dispatch Pro already optimize for margin?
No. According to ServiceTitan's own Dispatch Pro documentation, the algorithm computes predicted job value of the assigned technician minus drive cost to equal total revenue, and simulates hundreds of scenarios to find the board setup predicted to generate the most revenue for the day. Revenue and margin are not the same number. A high-revenue assignment that triggers overtime or pulls a technician off a higher-margin job later in the week can be a net loss even though the dispatch board shows a win.
What exactly does Dispatch Pro's algorithm optimize for?
Per ServiceTitan's help documentation, Dispatch Pro applies hard constraints first (Dispatch Pro-enabled technicians, correct zone, matching skills, shift availability, maximum drive time, performance ranking), then ranks the remaining candidates by predicted job value minus drive cost. It learns from each technician's total sales, average ticket, sold memberships, and lead-generation probability over the last 30 days and 12 months. Job margin, labor cost, and overtime exposure are not inputs to that formula.
What is the real difference between routing for revenue and routing for margin?
Revenue is what the invoice will likely total. Margin is what is left after labor cost, including any overtime premium, parts cost, and the opportunity cost of pulling a technician off a better-margin job later in the schedule. Two technicians can produce the same predicted revenue on a call and still represent very different margin outcomes once labor cost and downstream schedule effects are counted.
How does an AI Routing agent add margin awareness without replacing Dispatch Pro or the dispatch board?
The Routing agent in Top Builder AI reads the same ServiceTitan data Dispatch Pro reads, plus each technician's current hours worked toward overtime and their next scheduled job's margin. It runs alongside the native dispatch board, not instead of it, and surfaces a recommended assignment with the margin reasoning attached. The dispatcher sees both the revenue-ranked suggestion and the margin-aware one, and approves the assignment.
How does the agent weigh priority against margin?
Priority is a floor, not a factor to trade off. A P1 no-heat or no-AC emergency call gets dispatched regardless of margin impact; the safety and reputational cost of an unanswered emergency outweighs any margin calculation. Margin scoring applies within a priority tier, choosing among the technicians who can legitimately fill a P1, P2, or P3 slot in the required window.
Does the agent ever override a technician assignment automatically?
No. The Routing agent proposes; the dispatcher approves, edits, or overrides. It has no visibility into a technician's personal circumstances, a customer relationship history, or a same-day complaint the dispatcher already knows about. Automated dispatch without a human checkpoint removes judgment the office genuinely needs.
How does overtime risk factor into a dispatch decision?
The agent tracks each technician's hours worked against their shift and weekly overtime threshold. Sending a technician already close to overtime into a new call carries a real labor-cost premium, typically time-and-a-half, that does not show up in a revenue-only ranking. The agent flags when the highest revenue-ranked technician is also the one about to trigger overtime, so the dispatcher can weigh that cost against the alternative.
What data does the Routing agent need from ServiceTitan?
The open dispatch board, technician shift and hours-worked data, job type and priority tier, estimated job value and drive time (the same inputs Dispatch Pro already computes), and each technician's already-scheduled jobs for margin comparison. It reads this data; it does not require a separate system or a Zapier connection.
Does this replace my dispatcher?
No. The dispatcher makes the final call on every assignment. The agent's job is to surface the margin and overtime tradeoff that a revenue-only board does not show, in the seconds before the dispatcher clicks assign, not to remove the dispatcher from the loop.
How does drive time get weighed against margin?
Drive time already factors into Dispatch Pro's revenue formula as a cost subtracted from predicted job value. The Routing agent keeps that drive-cost input and adds the labor-cost and downstream-schedule dimensions on top, so a technician with slightly longer drive time but no overtime exposure and no schedule conflict can outrank a technician with shorter drive time who would trigger both.
What happens when there is no margin-positive choice, only a least-bad one?
The agent surfaces the tradeoff explicitly rather than hiding it inside a single ranked score. For a P1 emergency with no technician available under normal conditions, it will show the dispatcher the overtime cost or the schedule disruption each candidate creates, so the decision is made with full information rather than defaulting silently to whichever technician the board ranks first.
Does the agent affect technician commission or incentive structures?
No. Commission and incentive structures are set by the shop and remain unchanged. The agent's recommendation is about which assignment protects margin for the business; it does not alter how a technician is paid for the job once assigned.
How does dispatch and routing connect to the rest of Top Builder AI's back office?
The Routing agent's overtime and margin data feeds the Workforce agent's labor-cost tracking and the Financial agent's job-margin reporting, so a dispatch decision made at 2pm is visible in the same-week cash and labor picture instead of surfacing only at payroll close or month-end reconciliation.
What will the agent never do without my approval?
It never assigns a technician, never overrides a dispatcher's manual placement, and never fabricates a margin or labor-cost figure. Every number comes from deterministic, tested code reading live ServiceTitan and payroll data; the language model explains the tradeoff in plain language, it does not calculate or invent one.
How long before I see a margin improvement from routing?
The first week typically surfaces the pattern: which recurring assignments are quietly triggering overtime, and which technicians are repeatedly pulled off higher-margin work for lower-margin emergency fills. Fixing the pattern the dispatcher can now see is what moves the number, and that starts as soon as the office begins acting on the margin-aware recommendation.