MAG OptiAI
SchedAI Use Case

HVAC Field Service Scheduling with SchedAI

How a service team turned a pressured HVAC dispatch baseline into a stronger recovery plan with targeted capacity, open routes, What-if Analysis, and AI Compare.

01

Executive Summary

SchedAI turned a pressured baseline into a stronger recovery plan.

A regional HVAC and facilities service team needed to dispatch a week of commercial visits across the Greater Toronto area. The plan included 10 technicians, 45 visits, 28 customer sites, 2 depots, skill requirements, appointment windows, travel times, priorities, mandatory work, duty limits, overtime policy, and return-to-depot routing.

SchedAI Service generated a feasible baseline, but the result was not perfect. The baseline served 41 of 45 visits, left 4 visits unserved, created 5 minutes of tardiness, and required 23 minutes of overtime.

AI Explain identified the Wednesday refrigeration-and-controls surge as the main pressure point. The team then tested a combined recovery scenario: add a Wednesday relief technician with refrigeration and controls skills, and change the branch to open routes. The branch improved coverage to 43 of 45 visits, reduced unserved visits from 4 to 2, removed tardiness, removed overtime, and sharply reduced travel burden.

Coverage

91.1% to 95.6%

Unserved visits

4 to 2

Overtime

23 min to 0

Core capabilities exercised

  • Multi-file service bundle with technicians, locations, visits, travel times, and travel distances.
  • Technician skills, depot start/end locations, shift windows, duty limits, overtime limits, and fairness eligibility.
  • Visit time windows, service durations, priority, mandatory flags, required skills, and route feasibility.
  • Complete location-to-location travel-time and distance matrices for route-aware planning.
  • Service policy controls for route-end policy, unserved visits, tardiness, overtime, runtime, and solver engine.
  • Timeline, route map, assignments, route stops, KPI review, and exportable operational outputs.
  • AI Explain, What-if Analysis, and AI Compare for interpreting pressure and testing recovery branches.
Industry
Commercial HVAC and facilities service
Scheduling environment
Multi-day field-service dispatch
Planning scale
10 technicians, 45 visits, 28 customer sites, 2 depots
Travel matrix
30 locations with complete time and distance matrices
Baseline solver path
Auto selected ALNS for the service-routing case
Baseline pressure
41 of 45 visits served, 4 unserved, 5 minutes tardiness, 23 minutes overtime
Decision tested
Add Wednesday relief capacity and switch the branch to open routes
02

Field-Service Context

A real HVAC dispatch problem with skills, travel, and appointment windows.

The service team supports commercial HVAC and facilities calls across a dense metro area. A weekly dispatch plan may include diagnostics, refrigeration work, controls work, boiler service, inspections, and general HVAC visits across multiple customer sites.

The operation is not a simple appointment calendar. Each visit has a location, appointment window, service duration, priority, required skills, and service-timing rules. Each technician starts from a depot, works within a dated shift window, has a skill profile, and must absorb real travel between sites.

SchedAI was used to evaluate whether the team could cover a realistic weekly workload before dispatching the plan. The goal was to make the service decision visible: which visits can be covered, which visits remain exposed, how much travel the plan creates, and whether a combined operational change is worth adopting.

03

Scheduling Challenge

The plan had to recover service coverage without hiding route burden.

The planning team needed a route plan that could protect high-priority service commitments without hiding skill bottlenecks or route burden.

Manual dispatch can look reasonable when every technician has work on a calendar, but still miss specialized visits, create excessive return travel, push a technician into overtime, or leave a tightly timed refrigeration/control visit dependent on too little qualified capacity.

The important question was not only whether a feasible baseline existed. The team needed to know which recovery lever would actually improve the plan before dispatch: adding targeted capacity, changing route policy, or both together.

Constraints considered

  • Visits required specific skills or skill combinations.
  • Technicians started from assigned depots.
  • Appointment windows constrained feasible service timing.
  • Travel time affected which visit sequences were practical.
  • Mandatory high-priority visits had to remain covered.
  • The Wednesday refrigeration-and-controls surge created the core bottleneck.
  • The team needed evidence before adding capacity or changing route policy.
04

Method: Input Setup

The team loaded the full service routing bundle.

The team first uploaded the full service scheduling bundle. The v2.2 scenario included technicians, service locations, visits, travel times, and travel distances.

The uploaded data represented a backend-validated routing problem: 10 technicians, 45 visits, 28 customer locations, 2 depots, and a complete 30-location travel matrix.

Before optimization, the workspace validated the bundle so depot references, customer locations, visit IDs, technician references, and matrix rows could be reviewed as one connected service scenario.

Input setup included

  • Technician roster and skills
  • Depot start and end assignments
  • Weekly shift windows
  • Customer locations with coordinates
  • Visit windows and service durations
  • Required skills and priorities
  • Travel-time and distance matrices
Service scheduling scenario setup
The scenario setup captured the service bundle and routing scope before configuration.
Parsed service scheduling input preview
The parsed preview confirmed visits, locations, technicians, and travel matrices before the run.
Service scenario readiness summary
Scenario readiness confirmed 10 technicians, 30 locations, 45 visits, and complete travel data.
05

Method: Configuration

The service policy kept baseline pressure visible.

After setup, the team configured the service policy and solver settings. The captured baseline used Auto solver selection with a 120-second branch policy visible in the workspace.

The baseline kept return-to-depot policy enabled, with unserved visits, tardiness, and overtime allowed so the solver could produce a truthful feasible plan while keeping service pressure visible.

That configuration mattered because the team did not want a perfect-looking result that hid gaps. They wanted a measurable baseline that showed what was covered, what was missed, and where a targeted branch might improve the plan.

  • Auto solver selection for the service-routing instance.
  • Return-to-depot route-end policy in the baseline.
  • Unserved visits, tardiness, and overtime controls visible before launch.
  • AI-assisted configuration available for service-policy guidance.
Service scheduling configuration
The configuration step kept solver, runtime, return-to-depot policy, unserved visits, tardiness, and overtime visible before launch.
06

Method: Run Optimization

SchedAI translated service inputs into a constrained dispatch model.

SchedAI translated the service bundle and configuration into a constrained routing and assignment problem.

The run checked whether all visits could be assigned to qualified technicians while respecting time windows, shift windows, travel times, service durations, depot policy, duty limits, and selected operational relaxations.

This step turned the uploaded CSV bundle into a reviewable dispatch result rather than a static plan. The team could inspect KPIs, timeline, route map, assignments, route stops, and AI-supported explanations before making any real dispatch decision.

Optimization model considered

  • Technician skill eligibility
  • Depot-to-customer travel time
  • Customer-to-customer travel time
  • Appointment windows
  • Service durations
  • Mandatory and priority visits
  • Duty, overtime, and route-end policy
Service scheduling run readiness screen
The run step showed the configured service scenario, readiness state, and policy settings.
07

Baseline Evidence

SchedAI produced a feasible plan with visible service gaps.

Baseline KPIValue
Coverage91.1%
Served visits41 / 45
Unserved visits4
Mandatory unserved0
Tardy visits1
Tardiness5 min
Overtime23 min
Fairness gap525 min

The baseline was feasible, but clearly pressured. SchedAI served 41 of 45 visits, reached 91.1% coverage, and left 4 visits unserved: VISIT-903, VISIT-904, VISIT-905, and VISIT-906.

The result also showed 5 minutes of tardiness and 23 minutes of overtime. Mandatory visits stayed covered, but the Wednesday refrigeration-and-controls cluster exposed a real service gap.

Those numbers made the case useful. The baseline was not a perfect 100% plan. It gave the team a realistic starting point for asking whether a targeted operational change could improve coverage, remove lateness and overtime, and reduce route burden.

Baseline service scheduling KPI summary
Baseline KPIs showed 91.1% coverage, 4 unserved visits, 5 minutes of tardiness, and 23 minutes of overtime.
Baseline service scheduling timeline and route map
The timeline and route map exposed how the baseline work was distributed across technician routes.
Baseline service scheduling assignments
Assignment details tied the KPI gaps back to specific visits, technicians, timing, travel, and service routes.
08

AI Explain

AI Explain identified the Wednesday refrigeration-and-controls bottleneck.

After reviewing the baseline, the team used AI Explain to interpret the service gaps and route pressure.

The explanation connected the remaining unserved visits to the Wednesday refrigeration-and-controls surge. The issue was not a general lack of work or a random calendar gap; it was a concentrated skill-and-window bottleneck around a set of specialized visits.

That turned the next step into a practical recovery question. The team needed to know whether adding one cross-trained Wednesday technician and removing return-to-depot travel from the branch would improve the plan enough to justify the operational change.

Service scheduling AI Explain output
AI Explain connected the baseline service gaps to the specialized Wednesday surge and suggested targeted recovery levers.
09

What-if Analysis

The team tested one combined recovery branch.

What the branch changed

  • Added TECH-RELIEF-WED for 2026-07-08 only.
  • Gave the relief technician HVAC, controls, refrigeration, and diagnostics skills.
  • Based the relief technician at DEPOT-SOUTH with a 08:00-18:30 shift.
  • Changed route-end policy from return-to-depot to open route.
  • Compared coverage, unserved visits, tardiness, overtime, travel, distance, and workload balance.

The team used What-if Analysis to test one combined recovery branch before changing the dispatch plan.

The branch added TECH-RELIEF-WED, a Wednesday-only technician based at DEPOT-SOUTH with HVAC, controls, refrigeration, and diagnostics skills. It also changed the route-end policy to open route, so technicians did not need to return to depot after the final visit in the branch.

This was a realistic service decision. Adding capacity alone could improve coverage but leave route burden high. Open routes alone could reduce travel but leave the skill bottleneck unresolved. The combined branch tested both changes together and then reran the optimizer.

Combined service recovery What-if prompt
The What-if prompt asked SchedAI to add targeted Wednesday relief capacity and switch the branch to open routes.
Combined service recovery proposal review
The proposal review showed both changes before the branch ran: TECH-RELIEF-WED added and route-end policy updated to open route.

Combined branch result

The combined branch improved the plan in the areas the team cared about most. Served visits increased from 41 to 43, coverage improved from 91.1% to 95.6%, and unserved visits dropped from 4 to 2.

The branch also removed the two clearest operational pain points: tardiness fell from 5 minutes to 0, and overtime fell from 23 minutes to 0.

Because the branch used open routes, it also reduced route burden. Travel fell from roughly 3,708 minutes to roughly 2,173 minutes, distance fell from roughly 1,201.9 km to roughly 689.8 km, and the fairness gap improved from 525 minutes to 436 minutes.

MetricBaselineCombined branch
Coverage91.1%95.6%
Served visits41 / 4543 / 45
Unserved visits42
Tardy visits10
Tardiness5 min0 min
Overtime23 min0 min
Travel timeabout 3,708 minabout 2,173 min
Distanceabout 1,201.9 kmabout 689.8 km
Fairness gap525 min436 min
Combined service recovery KPI summary
The combined branch improved coverage to 95.6%, reduced unserved visits to 2, and removed tardiness and overtime.
Combined service recovery timeline and route map
The updated timeline showed how relief capacity and open routes changed the Wednesday service plan.
Combined service recovery assignments
Assignment details made the changed branch auditable at the visit, technician, and route-stop level.
10

AI Compare

AI Compare confirmed the combined branch was stronger.

After the combined branch ran, the team used AI Compare to evaluate it against the original baseline.

The comparison showed the setup differences clearly: the combined branch added TECH-RELIEF-WED and changed route-end policy from return-to-depot to open route.

Service AI Compare overview for baseline versus combined recovery
AI Compare evaluated the baseline against the combined recovery branch using saved scenario results.

The KPI delta table confirmed that the branch was not only different, but better against the selected service objectives. Coverage improved, unserved visits dropped, tardiness disappeared, overtime disappeared, and travel burden fell sharply.

The assignment and workload comparison made the result concrete. The branch did not hide the decision inside a summary. It showed which service routes moved, how technician load changed, and how the added capacity helped absorb the Wednesday bottleneck.

The AI Summary translated that evidence into a dispatch recommendation while preserving the caveat: two visits still remained unserved, so the branch was a strong recovery plan, not a complete service guarantee.

Coverage

Baseline: 91.1%

Combined: 95.6%

Unserved visits

Baseline: 4

Combined: 2

Overtime

Baseline: 23 min

Combined: 0 min

Service AI Compare KPI delta table
The KPI delta table showed the service improvements created by the combined branch.
Service AI Compare assignment and workload changes
Assignment and workload changes showed how the branch changed technician load and route structure.
MetricBaselineCombined branchResult
Coverage91.1%95.6%Improved
Served visits4143+2 visits
Unserved visits42-2 visits
Tardy visits10Removed
Tardiness5 min0 minRemoved
Overtime23 min0 minRemoved
Travel timeabout 3,708 minabout 2,173 minReduced
Distanceabout 1,201.9 kmabout 689.8 kmReduced
Fairness gap525 min436 minImproved
Service AI Compare AI Summary
AI Summary translated the deterministic comparison into a dispatch recommendation and remaining caveats.
11

Operational Decision

The team selected the combined recovery branch for review.

The team selected the combined recovery branch as the stronger dispatch plan to review.

The decision was evidence-based. The branch improved service coverage, cut unserved visits in half, removed tardiness, removed overtime, reduced travel and distance, and improved workload balance.

The team still had two unserved visits to investigate, so the branch was not treated as a magic fix. It was treated as a better operational plan with a narrower remaining gap.

For the service team, that is the practical value of SchedAI Service Scheduling: it can expose a pressured baseline, explain the bottleneck, test a realistic recovery branch, and compare the result before dispatch decisions become commitments.

Final takeaway

The baseline was feasible, but it still left visible service gaps. The combined branch showed a better path: add the right Wednesday skill capacity and remove return-to-depot travel from the branch.

SchedAI did not only produce a route plan. It helped the team understand the baseline, test a realistic recovery option, and choose a stronger dispatch plan with evidence.

Model a medium-size HVAC field-service schedule with technicians, skills, depots, visits, time windows, priorities, and travel.

Generate a feasible baseline that keeps unserved visits, tardiness, and overtime visible.

Use AI Explain to identify the Wednesday refrigeration-and-controls bottleneck.

Use What-if Analysis to test a combined staffing and route-policy recovery branch.

Use AI Compare to verify KPI movement, assignment changes, and route burden reduction.

Choose the stronger branch while preserving visibility into the remaining unserved work.