Time calculation for queries of future availabilities (LPS-calculation)

What is the purpose of this calculation?

When processing checkout option requests or orders that involve querying future availability within our platform, it is necessary to determine the appropriate point in time to request inventory data.

If you want to receive your goods in 14 days, for example, a carrier could theoretically ensure this by storing the goods for several days in a truck or warehouse and then delivering them on a specified delivery date. In this case, the goods can be picked and prepared for shipment immediately, with the goal of handing them over to the carrier as quickly as possible.

However, this service is often not included in standard shipping options and may incur high additional costs. Furthermore, this method is not suitable for all types of products, as extended storage during delivery can lead to spoilage or a loss of quality, such as with perishable foods.

To address this issue and still enable delivery on a desired date, it is crucial to delay handing over the goods to the carrier provider until the last possible moment, taking into account their regular delivery times.

Fulfillmenttools is used to manage this process, and the calculation of the Latest Picking Start (Short: LPS) plays a significant role in ensuring timely delivery.

Currently, this calculation is performed under the following conditions:

The latest picking start is calculated p. facility carrier connection and for potential multiple days where a delivery is yet still possible meaning that one facility could have multiple LPS's. It is then chosen one of those LPS with the most available requested stock.

To calculate the Latest Picking Start (LPS), specific information must be configured in our platform. If any required data is missing, the LPS cannot be calculated. In such cases, the system either assumes zero stock for subsequent processes (e.g., during order routing) or generates an error (e.g., when calling a checkout option endpoint).

The following information is required for LPS calculation:

  1. The desiredDeliveryTime in the order or in the corresponding checkout options call.

  2. The reservationpreference mode "ALAP" (As Late As Possible)

  3. At least one active carrier.

  4. At least one active facility-carrier connection.

  5. A defined delivery time. (with optionally, additional configuration settings.)

How does it work?

Lets have a look at an example: A typical use case in our platform is when a customer places an order which should be delivered at a specific day in the future (in the chart below the request is on the 26th Aug. requesting for a delivery at 23th Sept.).

For calculating an LPS we now check p. carrier what are the delivery times p. carrier and are there any non-delivery-days within this timespan - those days are not counted as delivery days. Afterwards we check for facility fulfillment-times, avg. fulfillment duration and fulfillment capacities and check which cutoff-time could be reached. If such a cutoff time is reachable this point of time we call LPS and is a potential timepoint for checking inventory.

Last updated