Skip to main content

How the optimizer assigns jobs

The route optimizer produces a suggested assignment of jobs to technicians. Understanding how it makes decisions helps you review routes confidently and catch anything that needs a manual adjustment before you commit.

The optimizer’s goal

The optimizer finds the assignment that minimizes total driving time across your entire fleet. It looks at all technicians and all jobs together and finds the combination where the least total time is spent driving. This is different from minimizing any one technician’s driving. The optimizer may give one technician a slightly longer drive if doing so lets the rest of the fleet finish earlier overall.

What the optimizer guarantees

ConstraintWhat it means
Shift windowsNo technician is assigned a job that would require them to start before their shift begins or finish after their shift ends
Appointment windowsIf a customer has a confirmed arrival window (e.g. 10 AM – 12 PM), the optimizer will not schedule the job outside that window
Skill and certification matchingJobs requiring a specific skill or certification are only assigned to technicians who hold that qualification
Customer-specific tech rulesIf a customer is set to only receive a specific technician, the optimizer will not assign that job to anyone else
Job count balanceThe optimizer caps the number of jobs per technician at roughly ⌈total jobs / number of technicians⌉ — no single technician takes a disproportionate number of stops

What to review before committing

The optimizer is a strong starting point, but dispatchers should verify the proposed routes before committing, particularly:
  • Any technician whose first stop is far from their start location. The optimizer may route a technician to a distant job if it reduces total fleet cost, even if that means a long opening drive.
  • Significant difference in workload across technicians of similar skills. The job-count ceiling prevents extreme imbalance, but service durations vary — two technicians may have the same number of stops but very different days.
  • Unassigned jobs. Jobs that could not fit within any technician’s shift or skill set appear in an unassigned list. Review these separately and either extend a shift, add a technician, or reschedule the job.
Support and internal note — drive-time distribution: The optimizer does not explicitly balance drive time across technicians. A technician whose geographic start point is nearest to a cluster of jobs may be assigned those jobs even if their total drive time is significantly higher than other technicians on the same day. This is expected behavior in the current version. Dispatchers should use the map view to spot-check. See the internal article Workload distribution — current state and roadmap for full details.

Why a job might be unassigned

A job appears as unassigned when:
  • No technician with the required skill is available within the job’s appointment window
  • Adding the job would push a technician past their shift end time
  • The job’s location cannot be reached in time given the technician’s other commitments that day
Unassigned jobs are not errors — they mean the optimizer could not find a valid placement given the current constraints. The right response is to review the job’s appointment window, required skills, or the number of available technicians.