Promise Date Calculator Specification


The GrowthPath promise date calculator supports Cin7 Core and Cin7 Omni


The Promise Data calculator provides reliable shipment dates for complex supply chains with high value items and long delivery times, such as Furniture. It avoids the starvation problem, where an older order waiting for a small number of missing products is never shipped because newer orders cannibalise existing stock, so that when the missing products arrive, the order is out of stock on other products. 

So it can be used to see which orders should be picked today, without starving older orders.

It provides a link between POs and orders.

It helps reduce cancellations by quickly providing realistic delivery dates with minutes of an order being placed.

For Cin7 Core, it understands BOMs and therefore works with auto-assembly or kit items.

A calculation update typically takes one to two minutes, and it is usually scheduled to run hourly.

How does it work?

Step 1: Calculate a set of future stock positions

For each SKU, take the current stock on hand

then process all POs per SKU and create a stock receipt on the PO header expected arrival date. 

If a PO has no expected arrival date, either the PO is ignored or a default arrival date is used (configurable behaviour). This establishes a model of future stock in an efficient data structure.


Step 2. Calculated promise dates

Take the sales orders in a specific order. By default, the order is oldest order first. 

For each SKU on the next order to be examined, find the latest date when the stock required can be satisfied.

Consume the stock while doing this. 

If the order can be filled in full, the latest date of all the SKUs is the promise date.

If the order can not be filled in full, there is no promise date. But the stock “allocated” to the order is not released. This is to prevent starvation of old orders by new orders competing for some of the same SKUs


BOMs are handled in Cin7 Core. They are exploded at multiple levels if necessary, translating customer demand into components, in which case components are allocated in the same way as SKUs. This behaviour is optional. It makes particularly sense for auto-assembly/kit BOMs.


At the conclusion, report back the source satisfying the demand of each SKU per order.


The promise date calculation looks only at stock on hand, POs and orders. Allocations by the system are ignored.

High performance is achieved by using the GrowthPath Application Server and its cache layer.


Accessing the results

Depending on client requirements, the Promise Dates can be

  • written into Cin7 Core or Omni to a field on the order header
  • written into a custom field on the ecommerce site (Shopify, WooCommerce)
  • Provided via an API
  • downloaded via CSV
  • written into a Zoho Analytics table or Postgresql table if using the GrowthPath Analytics Connector 

Returned Data

The Promise Date calculator returns detailed analysis. It shows how each SKU is sourced: either from SOH, or from one or more Purchase Orders, which are named. 

It can be used to see a link between POs and orders, and to see which SKUs don’t have any known source.

Alternative Method

A rapid estimate of promise dates can be found by starting not with stock on hand but with available stock. This can be good enough to provide live estimates of promise date for example on-line customers.  This is supported by an API for Cin7 Core


This is an integration hosted on the GrowthPath Application Server.