Skip to main content

Dispatch Algorithm

The dispatch algorithm picks the best shuttle for each waiting ticket by weighing how urgent the ticket is against how well each shuttle fits the job. This page explains the factors it considers and what you can tune.

How the Best Match Is Chosen

Every cycle, the system looks at each waiting ticket alongside each available shuttle and decides which pairing makes the most sense. The best pairing is dispatched first, then the system re-checks the remaining tickets and shuttles and repeats — so assignments always reflect the latest situation in the yard.

To decide, it weighs five factors — three about how urgent the ticket is, two about how well the shuttle fits the job:

FactorWhat it considersDefault weight
SequenceWhere the ticket sits in the dispatcher's manually-ordered work queue20%
Due dateHow soon the ticket is due — overdue tickets count as most urgent25%
Label priorityHow important the ticket's labels are (Critical → Low)15%
ProximityHow close the shuttle is to the ticket's pickup location25%
WorkloadHow busy the shuttle already is compared to its capacity15%

The weights set how much each factor matters. A higher weight means that factor has more pull on the final decision — so a 25% proximity weight means distance influences the choice more than a 15% workload weight does. You control these weights in Admin Settings to match how your yard runs.

Assigning Several Tickets at Once

When a shuttle picks up more than one ticket in a cycle, the system measures proximity from where the shuttle will end up after each job, not from where it started. So once a ticket is assigned, the next ticket is matched based on where that work leaves the shuttle — which keeps multi-ticket runs clustered close together and cuts down on backtracking across the yard.

Seeing the Priority Score

In the Dispatch Queue panel of the Dispatch screen, hover any ticket row to see its current priority score on a 0–100 scale (higher = dispatched sooner):

Priority score: 87/100

This score reflects the ticket-side factors (sequence, due date, and label priority) under your current settings, so 100 means "as urgent as this ticket can be." The queue is always sorted with the most urgent ticket on top, so the first row is the next ticket up for dispatch.

Preemption

If every eligible shuttle is already full, the system can still make room for a much more urgent ticket through preemption. When a new ticket is significantly more urgent than the least-urgent ticket a shuttle is currently holding, that less-urgent ticket is bumped back into the queue and the urgent one takes its place.

Safeguards keep this from causing churn:

  • Only tickets that haven't been started yet can be bumped — work already in progress is never interrupted
  • A ticket can only be bumped once per cycle
  • A bumped ticket goes straight back into the queue and is reconsidered on the next cycle

Dispatch Queue Behavior

  • Tickets are processed in urgency order (most urgent first)
  • If no eligible shuttle is found, the ticket stays in the queue and the attempt counter increments
  • After 10 failed attempts (configurable), the ticket is marked unassignable and removed from the queue. It requires manual assignment by a Dispatch user.
  • Queue items automatically expire after 7 days

Configurable Settings

These settings can be adjusted in Admin Settings:

SettingDefaultDescription
Max Retry Attempts10Dispatch cycles before a ticket is marked unassignable
Max Concurrent Tickets per Shuttle5Hard capacity cap per shuttle
Sequence Weight %20How much the dispatcher's manual ordering matters
Due Date Weight %25How much approaching due dates push tickets up
Label Priority Weight %15How much label priority (Critical/High/Normal/Low) matters
Proximity Weight %25How much distance to the ticket origin matters
Workload Weight %15How much current ticket count matters

The five weight percentages must sum to 100.

Tuning for Your Yard
  • Small yard, clustered locations: Lower proximity weight (shuttles are always close) and raise workload weight to balance assignments across the fleet
  • Large yard, spread-out locations: Raise proximity weight so the closest shuttle gets the job
  • Time-sensitive operations: Raise due-date and label-priority weights so urgent work jumps the queue faster
  • Dispatcher-driven ordering: Raise sequence weight if your dispatchers actively curate the work queue order