Back to Blog

Engineering

How Courier Assignment Decisions Work

Marcus Okafor 9 min read
Abstract branching decision tree with glowing teal paths splitting around dark nodes

Courier choice depends on distance, active load, zone knowledge, and time left, not just proximity. Here is how the dispatch logic weighs them.

Why "Nearest Courier" Falls Short

The basic rule sends each new order to the courier nearest the pickup point. It is easy to understand and build. But once a fleet has more than four or five active couriers, it performs poorly in nearly every real-world scenario.

Proximity is only one part of a multi-dimensional decision. A courier 0.4 miles from pickup with six stops already queued may finish later than one 1.2 miles away with only two stops left. Nearest-courier logic overlooks queue depth, creating a plan that looks efficient for the first ten minutes before afternoon delays cascade through the overloaded courier's backlog.

The Variables That Matter

A sound assignment model assesses each eligible courier across several dimensions at once. Variable weights change with delivery window type, fleet size, and zone characteristics, but the underlying variables remain consistent.

  • Current route queue depth: how many stops remain and what is the total estimated completion time for the existing queue
  • Position relative to pickup: travel time to the pickup point from the courier's current position, not straight-line distance
  • Zone familiarity: whether the courier has historical data in the delivery zone that affects their actual stop completion time versus the map estimate
  • Remaining shift time: whether the courier's shift can absorb the new order's expected completion time without overtime
  • Route contiguity: whether inserting the new stop into the courier's existing sequence creates a natural cluster or requires a detour that adds total fleet mileage

The Decision Tree at Work

When an order arrives, the engine checks eligible couriers in sequence. First comes capacity: anyone at or above the set load limit is removed. Next comes time: anyone whose existing queue plus the new order's estimated completion would run past shift end is removed. The remaining candidates are scored by position, familiarity, and contiguity.

Scoring returns a ranked list rather than one fixed answer. Usually, the highest-ranked candidate gets the order immediately. If two candidates fall within a narrow score margin, the system may wait briefly to see whether another assignment resolves and improves the options. In a tuned system, that hold is typically under 30 seconds.

Reassignment as a Core Decision

Assignment does not end when an order enters the system. As shift conditions change, the best courier can change too. Someone who fit an order 20 minutes ago may fall behind after a slow stop. Someone excluded at intake for a deep queue may complete several stops and regain capacity.

Systems that reassess assignments when real-time state changes occur outperform systems that assign only at intake. The reassignment calculation is equivalent to a new assignment, but it also disrupts the courier's route mental model and requires communicating the change.

That communication burden is real but manageable when the courier app presents the change clearly. The greater risk is excessive reassignment, which causes confusion and resistance. A tuned system changes assignments only when expected improvement in fleet ETP clears a set threshold, not merely when a slightly better paper option appears.

Where Human Judgment Belongs

Automated assignment handles the volume and speed manual dispatch cannot. Still, a dispatcher should override certain decisions: a courier reports a personal situation requiring an earlier shift end, a pickup has an unusual access restriction the courier flagged verbally, or a merchant prefers a specific courier because of a prior relationship.

The practical pattern is simple: the system proposes and optimizes, the dispatcher can override with a note, and the system revises its working plan around that note. Automation that handles human judgment poorly becomes something dispatchers work around instead of with.

Worked Example: Five Couriers, One New Order

Consider five active couriers and a new order at a commercial address in a moderately dense corridor. The pickup is ready in 15 minutes, and the delivery window closes in 90 minutes.

Courier A is 0.3 miles from pickup but has 7 stops left and an estimated 2 hours and 10 minutes to completion. Adding the order exceeds the delivery window. The time-gate excludes them.

Courier B is 1.4 miles from pickup, has 3 stops left, and needs 50 minutes to finish. The order fits, but serving it would create a major backtrack after the current stop cluster. Their route contiguity score is low.

Courier C is 0.8 miles from pickup, has 4 stops left, and needs 65 minutes to finish. The pickup fits naturally before the next two stops in the same corridor. Route contiguity is high. Courier C has served this zone 14 times in the past 3 weeks, giving a strong zone familiarity score.

Couriers D and E are at the far ends of their routes, with shift end approaching. The shift-time gate excludes both.

Courier C receives the order, not for being closest, but for combining proximity, available capacity, route contiguity, and zone familiarity most effectively. The assignment takes under a second, without dispatcher involvement.

What Good Assignment Logic Cannot Do

Automated courier assignment cannot replace welfare decisions. A driver may need a break after a difficult stop, have a physical condition affecting performance, or face a mechanical issue with their car. These operational conditions affect assignment viability and require human awareness that no algorithm observes.

It also cannot replace sound route planning earlier in the day. Assignment logic acts on the state it receives. If the morning's routes were overloaded or unevenly distributed across zones, the system spends the rest of the shift compensating for that poor starting position. Reactive improvements have a ceiling set by the quality of the initial distribution. The engine works best from a reasonable plan, not while correcting an unrealistic one.

The practical result is that automated assignment handles the volume and speed of ongoing dispatch decisions manual work cannot sustain. It sits on top of reasonable initial planning rather than replacing it.

Assignment logic that weighs every variable

Bevylle checks queue depth, zone familiarity, and route contiguity on every dispatch. No dispatcher math required.

Start Free Trial