The $50K Margin Leak in Your Dispatch: How to Find It This Month

2026-05-28 · 9 min read · By Jason Osajima

Service truck fleet ready for dispatch

Most mid-market HVAC and electrical shops are losing $40-80K per year to dispatch margin leaks they can't see. The leaks don't show up in standard reports because they live in the gap between "the job was completed" and "the job was profitable." Your platform records the first. The second requires looking.

Here are the five most common dispatch margin leaks, the specific queries to find them in your data this month, and what to do once you find them.

Leak #1: The wrong tech on high-margin jobs

Your dispatcher knows your best tech. Your data confirms it: tech A closes at 78% margin, tech B closes at 61%. But dispatch assignment is driven by availability, not by margin-per-job. Result: tech B gets sent to the high-ticket job because tech A is already booked, and you lose 17 points of margin on a $4K install.

Query to run this month: Group last 90 days of completed jobs by tech, average margin per ticket size band ($0-500, $500-2K, $2K-5K, $5K+). Identify the top 2 techs by margin in the $2K+ bands. Cross-reference how often they were assigned to those jobs.

Typical finding: top techs handle 35-45% of high-margin jobs in shops without margin-aware dispatch. With margin-aware assignment, that number should be 60-70%.

Recovery potential: $15-30K/year for a 10-tech shop.

Leak #2: Unbilled overtime and drive time

Your techs clock in at the shop at 7am. They're onsite at the first job at 8:30am. Who paid for that 90 minutes of drive time? Sometimes the customer (built into the price). Often nobody (eaten as overhead). Worse: the tech burns 6 hours of customer-facing work and 2 hours of drive time on a job priced for 6 hours flat. You just lost 25% of your margin.

Query to run: Pull GPS/timesheet data from the last 30 days. Calculate total drive time per tech per day. Calculate ratio of drive time to billable time. Identify techs with >1.4x drive-to-billable ratio (the healthy mark is usually 0.8-1.2x depending on service area).

Typical finding: 15-25% of jobs in shops without route optimization have unbilled drive time that erodes margin by 5-12 points.

Recovery potential: $10-25K/year. See crew productivity variance fix for the broader pattern.

Leak #3: Callbacks not attributed to the original job

Tech does an AC repair on Tuesday. Customer calls back Saturday with the same issue. New ticket gets created, new dispatch, new invoice (often zeroed out as warranty). The shop's P&L looks fine. The actual job's margin? Negative.

Query to run: Pull jobs from the last 90 days where the same customer had a follow-up service call within 21 days for the same equipment. Calculate true margin including the second visit's cost. Group by original tech and by job type.

Typical finding: 8-12% of completed service jobs have a follow-up within 21 days. Of those, the true margin is negative on 60%+. Most shops never see this because the second visit is booked under a new ticket.

Recovery potential: $15-30K/year — partially through tech training, partially through dispatch decisions (don't send the lowest-skill tech to the diagnostic if you're likely to send a higher-skill one for the repair).

Leak #4: Pricebook misses on parts

Tech uses 6 parts on a job. Pricebook has the markup configured on 4. Two get billed at cost. That's 30-50% margin lost on those line items. Multiply by 20 jobs/week.

Query to run: Pull all parts billed in the last 60 days. For each part SKU, calculate (billed price - cost) / billed price = realized margin %. Sort by parts with lowest realized margin. Flag any below your target markup tier.

Typical finding: 15-25% of parts SKUs have either no markup configured or markup-at-cost. The leakage is usually concentrated in newer SKUs (added after the initial pricebook build) and oddball one-offs.

Recovery potential: $8-20K/year. Fast fix: pricebook audit once per quarter. See how to get more out of ServiceTitan for the pricebook fix specifically.

Leak #5: Unbilled change orders

Tech goes to install a heat pump. Discovers the existing electrical doesn't support it. Pulls a permit, runs new wire, adds 4 hours. Closes the job, doesn't adjust the invoice. The customer paid the original quote. The shop ate 4 hours of labor.

Query to run: Pull install jobs from the last 90 days where actual labor hours exceeded estimated hours by >15%. Calculate the dollar amount of unbilled labor. Group by tech and job type.

Typical finding: 25-40% of multi-day installs have actual hours that exceed estimates by >15%. Of those, fewer than half are converted to change orders.

Recovery potential: $20-50K/year for shops with significant install volume.

The aggregate cost

LeakAnnual cost (10-tech shop)
Wrong tech on high-margin jobs$15-30K
Unbilled drive time / overtime$10-25K
Callback attribution$15-30K
Pricebook gaps$8-20K
Unbilled change orders$20-50K
Total annual leak$68-155K

For most mid-market shops, the recovery range is $50-100K/year if you systematically work through the five leaks. None of them require a new platform — they require looking at the data your platform already has.

Why these leaks persist

Three reasons:

  1. Standard reports don't surface them. ServiceTitan, Workiz, FieldEdge — all of them give you completed-job reports, revenue reports, tech productivity reports. None of them group callback patterns or true-margin-per-tech as default views.
  2. The Monday ops meeting catches them late. By the time the pattern shows up in monthly numbers, you've already lost 3-4 weeks of revenue.
  3. Nobody owns the leak detection work. Dispatcher is dispatching, ops manager is firefighting, owner is selling. The systematic monthly audit is everyone's and no one's job.

The monthly audit playbook

Set up a recurring 4-hour block on the first Friday of every month. Run the five queries above. Compare to prior month. Flag any leak metric that's grown by >15%. Tighten the specific lever.

This is a real job — not a side task. Either your ops manager owns it, or you outsource the analytical work. The shops that do this consistently capture the $50-100K. The shops that don't leave it on the table forever.

The AI-monitored alternative

Increasingly, mid-market shops are putting an AI ops layer above their field service software to run these queries automatically — flagging anomalies in real-time instead of waiting for a monthly audit. Catches the leak on day 3 instead of day 28.

See AI layers above field service software for the broader category. The relevant capability here is real-time anomaly detection on margin patterns.

Bottom line

From operator interviews and field reporting, mid-market HVAC shops that run a disciplined monthly margin-leak audit typically recover something in the $40-60K range per year in previously-unidentified margin erosion. The five leaks above account for ~80% of the captured value. Start with whichever leak is easiest to query in your current platform, work through them sequentially, and either build the monthly discipline or add an AI layer that does it automatically.

Free reverse-audit. 24-48 hour turnaround.

Upload your missed-call log or AR aging report. Get back a 15-min video of an AI agent working on your actual data. No sales call required.

Get your free reverse-audit →