Extended ATP (Available to Promise)

This article describes, in detail, how the process Extended ATP is implemented in the To-Increase Warehouse Management & Distribution solution (WM&D).

Process definition

We define ATP as a planning tool to know when a sales order can be shipped, and then the physical reservation, picking and shipping can be started. Available to promise takes the simple availability calculation, adds time phasing and takes into account future scheduled receipts.

Available to promise may be calculated for each day or broken down into larger time buckets. The ATP starts by taking on-hand inventory and add any scheduled receipts. The ATP calculation will then deduct any allocations scheduled prior to the next scheduled receipt (which may be several periods in the future). Subsequent periods without any scheduled receipts will have the same available to promise as the previous period. Subsequent periods with scheduled receipts will generally start with a fresh calculation, ignoring any remaining available to promise from previous periods.

There are many variations on exactly how available to promise is calculated and it is also important to note that available to promise often works independently of allocation/reservation systems. This can sometimes create conflicts since ATP is expecting that the delivery dates should be followed ascending.

ATP Calculations in standard Microsoft Dynamics AX

Microsoft Dynamics AX calculates the available-to-promise (ATP) quantity based on the “cumulative ATP with look-ahead” method. The main advantage to this method of calculating ATP is that it can handle instances when the sum of issues between receipts is bigger than the latest receipt, that is, when it is necessary to use a quantity from an earlier receipt to meet a requirement. By including all of the issues until the cumulative quantity to receive is bigger than the cumulative quantity to issue, the ATP quantity in an earlier period considers the need to use some of that quantity in a later period.

The ATP quantity is the uncommitted inventory balance in the first period and is normally calculated for each period in which a receipt is scheduled. The program calculates the ATP period in days, and calculates the current date as the first date for the ATP quantity. In the first period, ATP includes onhand inventory less customer orders that are due and overdue.

Microsoft Dynamics AX calculates the ATP using the following formula:

ATP = ATP for the previous period + the receipts for the current period – the issues for the current period – the net issue quantity for each future period until the period when the sum of receipts for all future periods, up to and including the future period, is greater than the sum of issues, up to and including the future period.

When there are no more issues or receipts to consider, the ATP quantity for the following dates is the same as the latest calculated ATP quantity.

If all of the dimensions used for an item are not given when the ATP check is done, they might still be specified on the issue and receipts. In this case, in the ATP calculation, the receipts and issues must be aggregated to the existing dimensions, to reduce the number of receipt and issue lines used in the ATP calculation.

The ATP quantity shown is always > = 0. If the calculation returns a negative ATP quantity (for example, if a larger quantity than the available quantity has been promised earlier), the program automatically sets the quantity to 0.

Requested and confirmed delivery date

When a sales order line is registered, the salesperson must enter the requested delivery date. The sales order line processing will then calculate the best ATP date for this order line. The best ATP date is defined as the customers requested date or the date when the line can be delivered in full.

Based on the delivery rule, the operator can select if the customer wants a single full delivery, or a number of part deliveries. If the delivery rules states a complete order, then the worst-case ATP date can decide the confirmed delivery date on the entire order. The worst-case ATP date will then be copied into the confirmed delivery date fields on the sales order and on the lines. This process should happen when the order is confirmed.

Subsequence ATP calculations

If it is not possible to give a line an ATP date, then the ATP date will be set to “zero”. A “zero” ATP date means that this line needs to be manually processed by order management or by planners. This means that the order management must go though the Master planning/MRP to create a receipt. As soon as a receipt is created, the system can give an ATP date to the issue transaction.

Dimensional and level based ATP

In the ATP calculation, the ATP will be given at the lowest level that is specified of the storage dimension. The storage dimension is Site, Warehouse etc. When entering a sales order line and only site dimension is specified, then the ATP calculation will give the ATP date based on the items that is available on that site.

When a sales/transfer order line is physically reserved, then the ATP should be based on the reservation dimensions.

To accommodate this, the ATP will use the dimensions on the sales- or transfer-line to decide what level the ATP should use. At reservation the warehouse will be specified on the transaction.

To omit a warehouse from ATP calculation, then place the omitting warehouses under another site, like QA, returns, production etc.

ATP overview per sales order

After a sales order has been completely entered, it should be possible to give an ATP overview of the sales order.

The overview will show which lines that can be delivered in relation to the customer requested and confirmed delivery date. A differentiation between full, partly and none is visible. The colors “green“, “yellow” and “red” is used to inform the user of delivery status.

  • Green means that the allocation is physically reserved and ATP is OK.
  • Yellow means that the order line is not completely reserved.
  • Red means that the order line is not allocated or the ATP is not OK.

To support the extended ATP, the ATP will provide some additional functions. ATP quantity is available, but for performance reasons this field is omitted in the sales order screen.

ATP overview all sales orders

The form named ATP overview is available to the order management and show what sales orders, and what customers where manual processing and re-planning is needed.

In this ATP overview it is possible to see if an ATP change is possible. This functions like advancing the delivery prior to the expected ATP date. The processing for a new improved ATP date must be a manual process.

ATP delivery rule actions

These actions will be defined under the delivery rule.

The actions are:

ATP quantity change actions:

No action: No actions will be taken based on the fact that a sales order has lost its ATP date or quantity.

Automatic split sales line: If only some items can be delivered at the ATP date, then the system split the sales line so that all lines get an ATP date. Let’s say the customer ordered 10 units, and all 10 could be delivered at the requested delivery date (1/7).

This is backed up by the following receipt from this purchase order:

There also exists a later purchase order of 5 pcs to be delivered on the 15/7:

If the quantity expected on the first purchase order is reduced from 10 to 5 pcs. Extended ATP will then split the sales line into two deliveries, with different delivery dates:

Delay days before split:

This parameter is used to control, that the delay must be larger than X days before Extended ATP will split a sales order line. If delay days before split are set to 0 then the value from the ATP time fence will be used as criteria for splitting the sales order line.

Loss of ATP date actions selections:

No action : No actions will be taken based on the fact that a sales order has lost its ATP date.

Manual reconfirm: When this option is enabled, the automatic order processing will cancel the current order confirmation, and remove the confirmed delivery date on the affected lines will be removed. The document status on the sales order will be set to “none”, and the order management must manually reconfirm the order.

Automatic reconfirm: When this action is enabled, the current order confirmation will be cancelled, and a new order confirmation will be created, and automatically sent to the customer if this is enabled on the customer.

ATP Inquiry overview for kits and BOM items

The ATP calculation does also support the possibility to perform ATP calculations on kits and BOM items. The property of a kit is that it is a phantom item on the sales order. The real items are the contents of the kit, and can be a multi level structure.

The ATP Inquiry forms overview tab is used for doing delivery simulations for kits without creating a sales order. By entering a kit-item, quantity and requested delivery date, the system will show how much that it is possible to deliver on the requested date, and what the delivery date is for the remaining quantity.

The ATP Inquiry form

To use this form, create a line in the “filter” grid, by specifying an item, site/warehouse, quantity and requested ship date. Extended ATP will then calculate ATP date and on hand on the item. The lower grid is used for additional specifications, more particularly when the item is a kitting item, then the full ATP for the kit will be shown here. It is also possible to set the ATP Inquiry form to update in batch.

ATP Algorithms

In standard Dynamics AX there are already an ATP calculation with an algorithm that loads on-hand per dimension, and then loads all issues per date and all receipts per date. This function builds up a table like this:

In standard AX this evaluation is done transaction by transaction, while in Extended ATP this is changed to use more efficient ATP calculations by grouping issues and receipts per delivery date. In addition, when a transaction is physical reserved, it will always get ATP date equals today. This reduces the number of time an ATP calculation needs to be performed.

To keep track of ATP dates, the ATP is in WM&D a field on the sales order line and on the transfer order line. The ATP field is set at order processing, and when an ATP date is set it remains on the sales order line. The ATP date on the sales order line will not be set before the sales order is confirmed.

ATP Algorithms for kitting

Processing ATP on sales orders with kits will be calculated for the lowest items in the kit, and then the “worst case”-items ATP properties will be the ATP for the kit. This is also called “bubble” up.

The ATP “bubble” process will happen as a sub-process to the order processing.

Other high level aspects

Rules for losing an ATP date is an important aspect. The rule for losing an ATP date is that some conditions has been changed. Changing the following conditions will always result in a recalculation for a sales order line:

  • Sales Unit,
  • Sales Qty,
  • Requested receipt date,
  • Requested ship dated,
  • Confirmed receipt date,
  • Confirmed ship date.

When the expected receipts unexpectedly changes (moves in time or a quantity is changed), then there is a risk that the current ATP calculations are no longer valid. It could in these cases result in change of or even removed ATP dates.

When the system needs to change the ATP dates, it needs to recalculate it in the right sequence. The general rule to lose ATP should happen based on FIFO. There are also times when the system will have originated from a “blanket order” or a “reservation order”. To be able to fulfill this rule ATP is based on sorting the orders in “ATP Sequence”. This is a new field that states the sequence for when a sales order was registered.

On the periodical order processing, the system will then be sorted according to this field.

Periodic ATP calculations

Most ATP calculations in WM&D are automated, and are done when an order is order processed. In the normal order processing it is not possible to improve the ATP date because a full ATP recalculation requires visibility on all issues and receipts. For example, when moving a purchase forward in time, it will release a new ATP calculation on all affected orders.

Here the ATP calculation can be monitored, as the ATP calculation is a background process in the order processing framework. It is also possible to manually start an ATP processing on all items with open sales order lines.


This section covers information related to ATP, and is described as a FAQ.



When I have zero on stock, I see that my sales lines requested delivery date is set to today +X days ?

The ATP calculation works on a time fence. The time fence could be set to X days. If there is not enough on hand, then the ATP will move the delivery date outside the ATP time fence.

How to I enable Extended ATP

In the WM&D parameters you need to enable the ATP marking to enable the extended ATP calculations. Each line must also have delivery date control set to ATP.

Can each item have different ATP time fences?

Yes. On the item master under Default order setting, you can set can enable ATP on selected items, and also set time fence.

Do ATP also work for kits ?

Yes. ATP works on kits, and the ATP is calculated on the bases on the leaf items (Items lowest in the KIT-BOM). ATP is the bobbled up to the top item, that shows the “worst-case” ATP date.

I see a field called ATP sequence on sales orders, inventory transaction and on transfer orders. What is that ?

With extended ATP some orders can be prioritized over others. Let’s say you have a Blanket order, and you release a sales order. Then this released order will have a higher priority than other orders, and will get items before others. The ATP sequence control this, and shows a date + time for when the order or blanket order was created.

I need to understand the ATP better. What is the best source?

ATP is much based on standard AX. Also try to look into the Dynamics AX online manuals.

I see that the ATP field is transferred down as

estimated date on the inventory transaction. Why ?

This happens when the ATP date is delayed in relation to the requested or confirmed delivery date. This will secure a more realistic ATP calculation. When the ATP date on the sales order is moved, then the estimated date on the inventory transaction will also be moved.

One thought on “Extended ATP (Available to Promise)

  1. Hi Kurt,
    Good to see this 10 years old post still seems to be ranking high since there is not much knowledge in the market about ATP. Scenario has changed a lot in 10 years and even in D365 F&O has travelled miles.
    Can you help on following points-

    What is extended ATP in above blog? I understood what is this but does standard D365 supports this somehow? I believe you are talking about ‘To-Increase’ ISV in this blog. I have a requirement from the client where they want to split the sales order lines based on the ATP dates (e.g. an order of 100 qty, 20 qty is available on hand, 30 are coming next month and 50 are coming after 6 months, so is there any way that the system can create 3 lines with different delivery dates). Current ATP behaviour is that it updates the delivery date of the order line to after 6 months date when the whole order qty will be fully available.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.