All Articles Operations

Pickup Order Sequencing: The Basics Every Store Operations Lead Should Know

Diego Fernandes
Abstract visualization of ordered sequencing from a list of pickup items with priority indicators

When store operations leads ask us how PickNGo works, the shortest answer is: it decides which order to hand off to which courier, and in what order. That description sounds simple. The mechanic behind it is less so, and understanding it matters if you want to configure the system correctly for your store's specific constraints.

This post covers the sequencing fundamentals: what inputs go in, what the algorithm is actually optimizing for, and where the tradeoffs live. It's aimed at operations leads who are evaluating dispatch software or who've recently deployed it and want to understand the logic driving the queue they're looking at.

What Sequencing Is Solving For

Before getting into mechanics, it's worth being precise about the objective. A naive first answer is "minimize average wait time." That's close but not quite right. Minimizing average wait time can sacrifice some orders severely to improve others mildly, producing an overall average that looks good while a small percentage of customers wait for a very long time. That's not the right outcome.

The better objective is to minimize the probability that any order exceeds its SLA deadline while also minimizing average queue time. These two objectives create tension with each other in practice. An order approaching its SLA deadline needs to jump the queue, which bumps lower-urgency orders back and increases their wait time. The sequencing algorithm is constantly resolving this tension.

A secondary objective is to maximize courier retention: ensuring that couriers who arrive ready to take an order leave with one. A courier who arrives at a pickup counter and waits 8 minutes before getting an order is an inefficiency. A courier who arrives and leaves without any order is a complete waste. The sequencing layer should assign orders to couriers as quickly as their bag-ready status allows, without premature assignment to orders that aren't ready yet.

The Inputs That Drive Sequencing

Four categories of data feed the sequencing model.

Order state: specifically, whether each order in the queue has reached "bag ready" status. An order that isn't ready cannot be assigned to a courier, regardless of its SLA urgency. The quality of this input depends entirely on picking staff updating the system accurately when they finish a bag. If pickers are confirming ready status before the bag is actually complete (a common shortcut under pressure), premature assignments result.

Time urgency: how close each order is to its SLA deadline. An order placed at 11:45 with a 30-minute SLA has a deadline of 12:15. At 12:10, it has 5 minutes remaining and should receive maximum priority. The algorithm continuously recalculates time-to-deadline for each order as the queue progresses.

Courier availability and zone match: which couriers are currently available, where they are physically, and which delivery zone they're assigned to. Assigning a Zone A courier to a Zone B order because the Zone A queue is momentarily empty wastes future Zone A capacity if a Zone A order arrives 3 minutes later. Zone-matching logic is a key part of what separates a sequencing model from simple FIFO dispatch.

Pickup type: curbside orders have a different urgency floor than in-store counter pickup orders. A customer in a car has a narrower tolerance for wait time than a customer standing in a designated pickup area. Curbside orders with equivalent SLA deadlines should receive a priority boost relative to counter orders because the cost of a long wait is higher.

The Cost Function

These four inputs are combined into a priority score for each order-courier pairing. The score is a weighted sum: time urgency weighted highest, pickup type adjustment, zone match bonus, courier quality adjustment. Each order-courier pairing is scored separately, and the highest-scoring valid pairing (where "valid" means the order is bag-ready and the courier is available and assigned to the correct zone) is dispatched.

Priority Score Inputs: Example Calculation

Input Weight Score Contribution
Time urgency (5 min to SLA) 0.45 92 41.4
Pickup type (curbside) 0.20 85 17.0
Zone match (courier Zone A, order Zone A) 0.25 100 25.0
Courier quality rating (4.7/5.0) 0.10 94 9.4
Total priority score 1.00 92.8

What FIFO Gets Wrong

Most manual dispatch defaults to something close to first-in-first-out (FIFO): the order that arrived first gets dispatched first. FIFO has an intuitive fairness appeal, and in very low-volume situations where all orders have similar SLA deadlines and pickup types, it works fine.

FIFO breaks down as soon as order diversity increases. A 90-minute standard delivery order placed at 12:00 should not jump ahead of a 30-minute same-hour curbside order placed at 12:20. Under FIFO, it does. A curbside order at 12:40 with 4 minutes remaining on its SLA should jump ahead of a counter pickup order placed 10 minutes earlier with 22 minutes remaining. Under FIFO, it doesn't.

The goal of sequencing is not fairness in the "first to ask gets first service" sense. The goal is minimizing SLA violations and courier waste across the whole queue. That requires overriding arrival order in exactly the cases where arrival order produces the wrong outcome.

What Sequencing Doesn't Fix

A sequencing layer optimizes the order of dispatch, not the throughput rate. If your store is receiving 25 orders per hour and your picking team can process 15 per hour, no sequencing logic will close that gap. The queue will grow, SLA violations will accumulate, and the best the sequencing layer can do is triage: prioritize the orders that are closest to their deadlines while the throughput bottleneck persists.

Sequencing also assumes that the bag-ready status updates it receives are accurate. The output quality of the algorithm is bounded by the input quality. A picking team that updates status 5 minutes after a bag is actually ready gives the sequencing layer a systematically stale view of the queue, which leads to premature courier arrivals and avoidable wait times regardless of how sophisticated the algorithm is.

Getting these basics right is the prerequisite for everything else we write about on this blog. The routing algorithms, the peak-hour management, the POS integration: all of them are building on top of a functional sequencing layer that's receiving accurate inputs from your picking and counter operations.