> For the complete documentation index, see [llms.txt](https://docs.fulfillmenttools.com/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fulfillmenttools.com/documentation/by-pillar/advanced-order-routing/complex-routing-with-combinatorics/calculations-within-routing/delivery-time-calculation.md).

# Delivery time calculation

{% hint style="info" %}
If you would like to use these functionalities, [contact our Support team](https://ocfulfillment.atlassian.net/servicedesk/customer/portal/1) for more information and activation support.
{% endhint %}

The delivery time calculation determines, for each sourcing option, the estimated date on which the recipient (either the end customer or an ordering facility) will receive the requested goods.

The calculation takes the following factors into account:

* **Earliest possible picking start:** Considers [stock availability](/documentation/by-pillar/global-inventory-hub/stock/stock-availability.md), fulfillment times, and capacity constraints
* [**Average fulfillment buffer**](/documentation/by-pillar/store-operations/picking/pick-job-target-time.md#picking-fulfillment-buffer)**:** Represents the average time required to pick an order in a specific facility
* [**Facility connection cutoff times**](/documentation/by-pillar/advanced-order-routing/complex-routing-with-combinatorics/network-model/facility-connection.md)**:** Indicates when goods are typically handed over to the carrier
* [**Facility connection transit time**](/documentation/by-pillar/advanced-order-routing/complex-routing-with-combinatorics/network-model/facility-connection.md)**:** Specifies how long a particular transfer usually takes

## **Example use cases**

### **Example 1: Simple use case**

In this simple example, the facility Store New York delivers directly to the consumer via DHL without any intermediate stops or internal supply steps.

<figure><img src="/files/CU1nmOuFSVHVq59Fae3j" alt=""><figcaption></figcaption></figure>

The calculation of the `estimatedDeliveryDate` in this case would proceed as follows:

* Time point of request: Monday, 25/08/2025: 09:00
* `earliestPickingStart`: Monday, 25/08/2025: 10:00
  * `fulfillmentTimes` of Store New York: Monday-Friday: 10:00-18:00
  * No capacity limitations are set
* `fulfillmentprocessbuffer` of Store New York: 120 minutes
* `CutoffTimes` for facilityConnection Store New York to consumer: Monday-Friday: 16:00
* `TransitTimes` for facilityConnection Store New York to consumer:
  * no `packagingUnitsbyContext` defined
  * `fallbackTransitTime`: 1-2 days
  * transitTime `calculationStrategy`: earliest
* no `nonDeliveryDay` within transitTime

\= **`estimatedDeliveryDate`: Tuesday, 26/08/2025**

### **Example 2: Complex use case**

In this more complex use case, the consumer will receive two partial deliveries. Additionally, an external supplier ships the goods first to the Los Angeles store, where they are consolidated with items already in stock. After consolidation, the goods are forwarded to the consumer via DHL.

<figure><img src="/files/TKpbUVGdomAahWGove9T" alt=""><figcaption></figcaption></figure>

The calculation of the `estimatedDeliveryDate` in this case would proceed as follows:

* Time point of request: Monday, 25/08/2025: 09:00

#### **Parcel 1: Store New York to consumer via DHL**

* `earliestPickingStart`: **Monday, 25/08/2025: 10:00**
  * `fulfillmentTimes` of Store New York: **Monday-Friday: 10:00-18:00**
  * No capacity limitations are set
* `fulfillmentprocessbuffer` of Store New York: **120 minutes**
* `CutoffTimes` for facilityConnection Store New York to consumer: **Monday-Friday: 16:00**
* Calculated `targetTime` is **Monday, 25/08/2025: 16:00** (at this point in time DHL picks up the goods in New York)
* `TransitTimes` for facilityConnection Store New York to consumer:
  * No `packagingUnitsbyContext` defined
  * `fallbackTransitTime`: **1-2 days**
  * transitTime `calculationStrategy`: **earliest**
* No `nonDeliveryDay` within transitTime

**= estimated arrival date of requested item 1 at consumer: Tuesday, 26/08/2025**

#### **Parcel 2: Supplier 1 to Store Los Angeles via UPS**

* As facilities of type "SUPPLIER" are externally operated, there is no information about fulfillment times, fulfillment process buffer, or capacities
* `CutoffTimes` for facilityConnection Supplier 1 to Store Los Angeles: **Monday-Saturday: 14:00**
* Calculated `targetTime` is **Monday, 25/08/2025: 14:00** (at this point in time UPS picks up the goods at Supplier 1)
* `TransitTimes` for facilityConnection Supplier 1 to Store Los Angeles:
  * `packagingUnitsbyContext`s are defined and the ordered items 2 and 3 are fitting in packagingUnit **M**
  * `transitTime` for packagingUnit M: is **3 -3 days**
  * transitTime `calculationStrategy`: **earliest**
* no `nonDeliveryDay` within transitTime

**= estimated arrival date of requested item 2 and 3 at Store Los Angeles: Thursday, 28/08/2025**

#### **Parcel 3: Store Los Angeles to Consumer via DHL**

* Store Los Angeles already has item 4 in stock
* Since items 2 and 3 are scheduled to arrive in Los Angeles on **28/08/2025** and the exact arrival time can't be predicted, it's assumed that processing of the goods will only begin **one day later**, which in this case means on **29/08/2025**
* `earliestPickingStart`: **Friday, 29/08/2025: 08:00**
  * `fulfillmentTimes` of Store Los Angeles: **Monday-Friday: 08:00- 17:00**
  * No capacity limitations are set
* `fulfillmentprocessbuffer` of Store Los Angeles: **180 minutes**
* `CutoffTimes` for facilityConnection Store Los Angeles --> Consumer: **Monday-Friday: 17:00**
* Calculated `targetTime` is **Friday, 29/08/2025: 17:00** (at this point in time DHL picks up the goods in Los Angeles)
* `TransitTimes` for facilityConnection Store Los Angeles --> Consumer:
  * no `packagingUnitsbyContext` defined
  * `fallbackTransitTime`: **2-3 days**
  * transitTime `calculationStrategy`: **earliest**
* Sunday is a `nonDeliveryDay`

**= estimated arrival date of requested items 2, 3, and 4 to the consumer: Monday, 01/09/2025**

#### Total

In total, the consumer will receive two partial deliveries with this sourcing option:

* Parcel 1 containing item 1 will arrive 26/08/2025
* Parcel 3 containing items 2, 3, and 4 will arrive 01/09/2025

For the delivery time rating, the date considered is always the point at which the customer has received all partial deliveries. In this case, 01/09/2025.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.fulfillmenttools.com/documentation/by-pillar/advanced-order-routing/complex-routing-with-combinatorics/calculations-within-routing/delivery-time-calculation.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
