Engineering

Predicting Delivery Times: The Science of an Accurate ETA

The estimated time of arrival is the smallest promise a quick-commerce app makes and the easiest one to break. When a customer taps “order” expecting groceries in minutes, that number on the screen becomes a contract. Delivery time prediction is the practice of forecasting, at the moment of checkout, how long the full journey from a tap to a doorbell will actually take — and doing it honestly enough that the promise holds.

It sounds like a simple countdown. It is, in fact, one of the harder forecasting problems in operations, because the ETA has to predict a chain of events that haven’t happened yet, in a city that refuses to behave predictably.

Key takeaways

  • An accurate ETA is not one prediction but several stitched together: order acceptance, in-store picking, rider assignment, travel, and handoff — each with its own uncertainty.
  • The hardest part is not the average case but the tail: the late orders that erode trust far more than early ones build it.
  • Good ETA systems are deliberately, slightly conservative — they under-promise and over-deliver, because a beaten estimate delights and a missed one corrodes.
  • Accuracy compounds with data: the more cycles a dense, repeat-purchase network runs, the sharper its understanding of every store, street, and hour becomes.

Why an honest ETA is harder than it looks

The instinct is to treat the ETA as a distance problem — how far is the store from the home, divided by how fast a rider moves. That model is wrong on day one. The drive is often the most predictable leg of the trip. The unpredictability lives everywhere else.

An ETA has to forecast a sequence, and a delay anywhere in the sequence propagates to the doorstep:

  • Order acceptance — the brief window before the store confirms it can fulfil the basket.
  • In-store picking — a human walking the aisles of a dark store, finding every item, and packing the bag. This scales with basket size and store congestion, not distance.
  • Rider assignment — the wait for an available rider, which depends entirely on how busy the network is at that exact minute.
  • Travel — the ride itself, shaped by traffic, road geometry, and weather, not by the straight-line distance.
  • Handoff — the last hundred metres: finding the building, the floor, the door. In a dense city this can rival the ride in variability.

Predicting the whole chain means predicting the slowest link, and the slowest link changes by the hour. That is what makes the problem genuinely hard.

The signals a good model learns to read

If the ETA cannot rely on distance, what does it rely on? The honest answer is many weak signals combined, none decisive on its own. The art is in the combination. The kinds of inputs a mature model considers include:

  • Time of day and day of week — the same route behaves differently at a weekday lunch rush than at a quiet mid-afternoon.
  • Live store load — how many orders are already queued for picking, and how many pickers are on shift. A store at capacity is the single most common reason a fast network slows down.
  • Basket size and composition — a handful of items is picked in moments; a large, mixed basket spanning ambient, chilled, and frozen zones takes meaningfully longer.
  • Rider supply — how many riders are free, en route, or about to come off another delivery in the relevant area.
  • Traffic and road conditions — observed travel times on the actual streets, not theoretical speeds on a map.
  • Weather — rain and heat slow everything down at once: riders, traffic, and demand spikes that pile pressure on stores.

None of these alone gives an ETA. Together, they let a model estimate each leg of the journey and add them — with an honest accounting of the uncertainty at every step. This is one of many places where AI across the stack turns messy operational reality into a number a customer can trust.

The tension: optimistic versus reliable

Here is the trade-off at the heart of every ETA. You can predict the average outcome, or you can predict an outcome you will reliably beat. They are not the same number, and choosing between them is a product decision disguised as a maths problem.

Why the average is a trap

An ETA tuned to the median looks impressive in a slide deck — small, fast, competitive. But by definition, roughly half of those orders arrive later than promised. And lateness is not symmetric in how it feels. A customer who is told fifteen minutes and waits twenty remembers the five minutes of broken promise. A customer told twenty who receives in fifteen remembers a pleasant surprise. The same five-minute gap produces gratitude or grievance depending entirely on which side of the estimate it falls.

What good looks like

A well-designed ETA is therefore not the most aggressive number — it is the most dependable one. It leans slightly conservative, building in a margin for the tail risks the model knows are possible. The goal is not to minimise the printed number; it is to maximise the share of orders that arrive at or before it. Under-promising and over-delivering is not timidity. It is the deliberate engineering of trust, repeated across every order until “Rabbit said minutes and meant it” becomes something customers simply assume.

Predicting the tail, not just the middle

The orders that damage a brand are rarely the typical ones. They are the outliers — the order that lands the moment a store hits capacity, the route that meets unexpected gridlock, the building with no clear entrance. A naïve model treats these as noise to be averaged away. A serious one treats the tail as the thing to predict.

That shifts the engineering goal. Instead of asking “what is the most likely delivery time,” the better question is “what time can we commit to and beat in the overwhelming majority of cases, including the bad ones.” It means modelling the distribution of outcomes, not a single point — knowing not just the expected duration but how wide and lopsided the spread of possibilities is for this particular order, at this store, at this hour, in this weather.

This is where the the dark-store model quietly helps the prediction. Because dark stores are purpose-built for picking rather than browsing, in-store time is more controllable and more measurable than it would be in a public supermarket — which narrows one of the widest sources of ETA uncertainty before the model even begins.

Why accuracy compounds with data

An ETA model is only as good as its memory of what actually happened. Every completed order is a labelled example: this basket, from this store, at this hour, in this weather, took this long. A network that runs many cycles through the same neighbourhoods accumulates a dense, specific understanding that no amount of cleverness can substitute for.

  • Per-store learning — the model learns that one store picks faster at noon and slower at dusk, and adjusts accordingly.
  • Per-route learning — it learns which streets clog, which shortcuts hold, and which addresses cost extra minutes at handoff.
  • Feedback loops — every prediction is compared against reality, and the gap teaches the next prediction to be sharper.

This is why density and repeat purchase are not just commercial advantages but accuracy advantages. The more a network delivers in a given area, the better it predicts that area — and the better it predicts, the more reliably it delivers. That self-reinforcing loop is a core reason operational excellence deepens over time rather than plateauing.

Frequently asked questions

Why is my ETA sometimes longer than I expect?

A longer estimate usually means the system is being honest about current conditions — a busy store, heavy traffic, rain, or high demand at that moment. A slightly conservative ETA you can rely on is more valuable than an optimistic one that breaks. The aim is for your order to arrive at or before the time shown.

Does a bigger basket make the ETA longer?

It can, modestly. A larger basket takes longer to pick and pack inside the store, especially when it spans different temperature zones. Travel time is unaffected by basket size, so the impact is real but usually small relative to the whole journey.

How does Rabbit’s ETA get more accurate over time?

Every completed delivery becomes data: how long picking, assignment, travel, and handoff actually took under specific conditions. As the network runs more orders through the same neighbourhoods, its models learn the particular rhythms of each store, street, and hour — so predictions sharpen the longer Rabbit operates in an area.

Curious how an honest ETA turns into groceries at your door in minutes? Discover how Rabbit works.

Keep reading

Download app ⚡