# US 10,872,305 B2 · Depot dispatch protocol for aggregating on-demand deliveries

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,872,305 B2
- Document ID: US10872305B2
- Status: Granted
- Kind: B2
- Application number: 15/798,219
- Filed: 2017-10-30
- Published: 2019-05-02
- Granted: 2020-12-22
- Earliest claimed: 2017-10-30
- Assignees: DoorDash, Inc.
- Applicants: DoorDash, Inc.
- Inventors: Jeff Ning Han; Dan Michael Babcock; Thomas Scott Stephens; Cody Duane Aughney
- Web page: https://patentgrep.com/patent/US10872305B2

## CPC

- G06Q 10/08355: {Routing methods}
- G06Q 10/0832: Special goods or special handling procedures, e.g. handling of hazardous or fragile goods
- G06Q 10/0833: Tracking
- G06Q 30/0633: {Managing shopping lists, e.g. compiling or processing purchase lists (shipping orders G06Q10/083; order filling G06Q10/087)}
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

Provided are various mechanisms and processes for optimizing real-time, on-demand deliveries of perishable goods. In one aspect, a method is provided for aggregating on-demand deliveries using a depot dispatch protocol. The method comprises dispatching runners to pick up on-demand orders for drop off at a depot where the orders are aggregated and batched based on optimized delivery routes and destination proximities. Batches of orders are then assigned to couriers who may arrive at the depot to receive the batched orders without having to navigate through areas of high congestion. Such delivery routing system may be implemented alongside a delivery tracking system for generating estimated time of arrival predictive updates for real-time delivery of perishable goods.

## Claims

### Claim 1

A method comprising:
receiving, at a server system, an order message for a first order from a customer device corresponding to a first customer for real-time delivery of perishable goods from a first restaurant;
receiving confirmations for a plurality of first events for the first order from at least one of a first merchant device corresponding to the first restaurant, a runner device corresponding to a runner, and a courier device corresponding to a courier, wherein the plurality of first events for the first order include: receipt of the first order, completion of the first order, receipt of the first order at an aggregation depot, and receipt of the first order by the first customer;
receiving a first timestamp corresponding to an initial event of the plurality of first events;
dynamically generating, via a neural network, estimated time of arrivals (ETAs) for one or more of the plurality of first events, including a first ETA corresponding to the completion of the first order, wherein the neural network is implemented by a processor and comprises a plurality of computational layers including weighted parameters,
wherein in a training mode, the processor is configured to:
pass a dataset into the neural network, the dataset including a series of successive events with corresponding known time durations between events, and
train the neural network to dynamically output ETA predictive updates, wherein training the neural network includes: inputting different combinations of events and time durations, and comparing actual time of arrivals (ATAs) with generated ETA predictions to allow for the neural network to automatically and iteratively adjust weighted parameters in the neural network,
wherein in an inference mode, the processor is configured to:
pass the initial event of the plurality of first events into the neural network, the initial event including the first timestamp,
automatically generate the first ETA based on the weighted parameters,
pass a subsequent event of the plurality of first events into the neural network, the subsequent event including an updated timestamp, and
automatically adjust the first ETA to form an updated ETA for the completion of the first order;
transmitting a first order notification to the runner device, wherein the first order notification includes: the first ETA and a storage location in an automated locker system of the aggregation depot, wherein the storage location is configured to store a batch of one or more orders grouped based on delivery proximity to the first customer, the batch of one or more orders including the first order;
transmitting a delivery notification to the courier device, wherein the delivery notification includes the storage location in the automated locker system and a customer location corresponding to the first customer; and
authenticating the courier by the automated locker system to provide the courier access to the storage location.

### Claim 2 (depends on 1)

The method of claim 1, further comprising
receiving, at the server system, an order message for a second order for real-time delivery of perishable goods from a second restaurant,
receiving confirmations for a plurality of second events for the second order from at least one of a second merchant device corresponding to the second restaurant, the runner device, and the courier device, wherein the plurality of second events for the second order include: receipt of the second order, completion of the second order, and receipt of the second order at the aggregation depot;
receiving a second timestamp corresponding to an initial event of the plurality of second events;
inputting the second timestamp into the neural network to dynamically generate ETAs for one or more of the plurality of second events, including a second ETA corresponding to the completion of the second order;
grouping the first order and the second order into a first group of orders based upon the first ETA and the second ETA; and
transmitting a second order notification to the runner device, wherein the second order notification includes: the second ETA and the storage location in the automated locker system.

### Claim 3 (depends on 2)

The method of claim 2, wherein the first order and the second order are grouped into the first group of orders based upon a proximity of the first restaurant to the second restaurant.

### Claim 4 (depends on 2)

The method of claim 2, wherein the first order and the second order are grouped into the first group of orders are based upon a generated route assigned to the runner.

### Claim 5 (depends on 2)

The method of claim 2, wherein the first order and the second order are grouped into the batch of one or more orders for pickup at the aggregation depot in the storage location in the automated locker system.

### Claim 6 (depends on 1)

The method of claim 1, further comprising updating the first order notification to include the updated ETA.

### Claim 7 (depends on 1)

The method of claim 1, wherein the weighted parameters include data on dishes in the first order.

### Claim 8 (depends on 1)

The method of claim 1, wherein the weighted parameters include time, date, and weather.

### Claim 9 (depends on 1)

The method of claim 1, wherein the weighted parameters include a sub-total of the order and a number of orders at the first restaurant.

### Claim 10

A server system comprising:
one or more processors, memory, and one or more programs stored in the memory, the one or more programs comprising instructions for:
receiving, at the server system, an order message for a first order from a customer device corresponding to a first customer for real-time delivery of perishable goods from a first restaurant;
receiving confirmations for a plurality of first events for the first order from at least one of a first merchant device corresponding to the first restaurant, a runner device corresponding to a runner, and a courier device corresponding to a courier, wherein the plurality of first events for the first order include: receipt of the first order, completion of the first order, receipt of the first order at an aggregation depot, and receipt of the first order by the first customer;
receiving a first timestamp corresponding to an initial event of the plurality of first events;
dynamically generating, via a neural network, estimated time of arrivals (ETAs) for one or more of the plurality of first events, including a first ETA corresponding to the completion of the first order, wherein the neural network is implemented by the one or more processors and comprises a plurality of computational layers including weighted parameters,
wherein in a training mode, the one or more processors are configured to:
pass a dataset into the neural network, the dataset including a series of successive events with corresponding known time durations between events, and
train the neural network to dynamically output ETA predictive updates, wherein training the neural network includes: inputting different combinations of events and time durations, and comparing actual time of arrivals (ATAs) with generated ETA predictions to allow for the neural network to automatically and iteratively adjust weighted parameters in the neural network,
wherein in an inference mode, the one or more processors are configured to:
pass the initial event of the plurality of first events into the neural network, the initial event including the first timestamp,
automatically generate the first ETA based on the weighted parameters,
pass a subsequent event of the plurality of first events into the neural network, the subsequent event including an updated timestamp, and
automatically adjust the first ETA to form an updated ETA for the completion of the first order;
transmitting a first order notification to the runner device, wherein the first order notification includes: the first ETA and a storage location in an automated locker system of the aggregation depot, wherein the storage location is configured to store a batch of one or more orders grouped based on delivery proximity to the first customer, the batch of one or more orders including the first order;
transmitting a delivery notification to the courier device, wherein the delivery notification includes the storage location in the automated locker system and a customer location corresponding to the first customer; and
authenticating the courier by the automated locker system to provide the courier access to the storage location.

### Claim 11 (depends on 10)

The server system of claim 10, wherein the one or more programs further comprise instructions for:
receiving, at the server system, an order message for a second order for real-time delivery of perishable goods from a second restaurant,
receiving confirmations for a plurality of second events for the second order from at least one of a second merchant device corresponding to the second restaurant, the runner device, and the courier device, wherein the plurality of second events for the second order include: receipt of the second order, completion of the second order, and receipt of the second order at the aggregation depot;
receiving a second timestamp corresponding to an initial event of the plurality of second events;
inputting the second timestamp into the neural network to dynamically generate ETAs for one or more of the plurality of second events, including a second ETA corresponding to the completion of the second order;
grouping the first order and the second order into a first group of orders based upon the first ETA and the second ETA; and
transmitting a second order notification to the runner device, wherein the second order notification includes: the second ETA and the storage location in the automated locker system.

### Claim 12 (depends on 11)

The server system of claim 11, wherein the first order and the second order are grouped into the first group of orders based upon a proximity of the first restaurant to the second restaurant.

### Claim 13 (depends on 11)

The server system of claim 11, wherein the first order and the second order are grouped into the first group of orders are based upon a generated route assigned to the runner.

### Claim 14 (depends on 11)

The server system of claim 11, wherein the first order and the second order are grouped into the batch of one or more orders for pickup at the aggregation depot in the storage location in the automated locker system.

### Claim 15 (depends on 10)

The server system of claim 10, further comprising updating the first order notification to include the updated ETA.

### Claim 16 (depends on 10)

The server system of claim 10, wherein the weighted parameters include time, date, and weather.

### Claim 17 (depends on 10)

The server system of claim 10, wherein the weighted parameters include a sub-total of the order and a number of orders at the first restaurant.

### Claim 18 (depends on 10)

The server system of claim 10, wherein the weighted parameters include data on dishes in the first order.

### Claim 19

A programmable device configured for aggregating on-demand deliveries, wherein the programmable device is configured for:
receiving, at a server system, an order message for a first order from a customer device corresponding to a first customer for real-time delivery of perishable goods from a first restaurant;
receiving confirmations for a plurality of first events for the first order from at least one of a first merchant device corresponding to the first restaurant, a runner device corresponding to a runner, and a courier device corresponding to a courier, wherein the plurality of first events for the first order include: receipt of the first order, completion of the first order, receipt of the first order at an aggregation depot, and receipt of the first order by the first customer;
receiving a first timestamp corresponding to an initial event of the plurality of first events;
dynamically generating, via a neural network, estimated time of arrivals (ETAs) for one or more of the plurality of first events, including a first ETA corresponding to the completion of the first order, wherein the neural network is implemented by a processor and comprises a plurality of computational layers including weighted parameters,
wherein in a training mode, the processor is configured to:
pass a dataset into the neural network, the dataset including a series of successive events with corresponding known time durations between events, and
train the neural network to dynamically output ETA predictive updates, wherein training the neural network includes: inputting different combinations of events and time durations, and comparing actual time of arrivals (ATAs) with generated ETA predictions to allow for the neural network to automatically and iteratively adjust weighted parameters in the neural network,
wherein in an inference mode, the processor is configured to:
pass the initial event of the plurality of first events into the neural network, the initial event including the first timestamp,
automatically generate the first ETA based on the weighted parameters,
pass a subsequent event of the plurality of first events into the neural network, the subsequent event including an updated timestamp, and
automatically adjust the first ETA to form an updated ETA for the completion of the first order;
transmitting a first order notification to the runner device, wherein the first order notification includes: the first ETA and a storage location in an automated locker system of the aggregation depot, wherein the storage location is configured to store a batch of one or more orders grouped based on delivery proximity to the first customer, the batch of one or more orders including the first order;
transmitting a delivery notification to the courier device, wherein the delivery notification includes the storage location in the automated locker system and a customer location corresponding to the first customer; and
authenticating the courier by the automated locker system to provide the courier access to the storage location.

### Claim 20 (depends on 1)

The method of claim 1, wherein the initial event of the plurality of first events corresponds to the receipt of the first order.
