When an order changes driver Before every assignment attempt, the dispatcher checks whether an order already assigned to one driver should instead go to a different one — but only on driver priority, never on how urgent or important the order itself is. When a reassignment is allowed Situation Result Order has no driver yet Assign freely Previously assigned driver is no longer available Assign freely Same driver being considered again No change needed New driver has better priority Reassign Current driver has equal or better priority Keep as-is Priority is defined in Driver classification and priority. Common scenarios Current driver Candidate driver Outcome External driver Internal driver Reassigned — better type Idle, at store Idle, at store No change — both equally good Idle, away from store Idle, at store Reassigned — better location Waiting, at store Idle, away from store No change — current is still better External, away from store External, away from store No change — no real improvement Passing the priority check is not a delivery guarantee Passing it only means the dispatcher will attempt the assignment. It still has to verify the new driver can actually deliver on time: Driver situation Delivery time checked? Idle, at store No — always the fastest possible option Idle, away from store Yes Waiting (already has orders) Yes — must be able to deliver everything On The Way Yes — the full route is recalculated If the delivery-time check fails, the assignment is reverted and the order stays available for the next driver in line. It isn't lost. Rules that never change Orders already out for delivery — the driver has left the store — are never reassigned. Manually assigned orders, assigned by an employee rather than the dispatcher, are completely locked from automatic reassignment. Internal drivers can take an order away from an external driver. The reverse is never allowed.