IBM Support

Formula used for ATP calculation

Question & Answer


Question

What is the formula used for ATP calculation and how is it done? How is it different from getSupplyDetails?

Answer

Details on ATP:

ATP, as the word suggests, is Available To Promise, that is, it the amount of inventory available for any new incoming demand. The calculation of ATP is governed by a pretty simple formula

ATP= Total Supplies - Total Demand in a given date range. Now let us look into the constraints involved in this formula. We shall look into the Global Inventory Visibility screen which partly governs the calculation.

See attached image.

The main thing involved in the calculation of ATP is judging what supplies and what demands are to be included in the calculation. For this, we might have to take a glance into the Input xml of the getATP API- the API which is involved in the calculation on the product. There is an attribute called DemandType=' ' which assumes a lot of importance in the calculation. By default, this demandType is stamped to be OPEN_ORDER.What this actually means is the availability of an item for any new order which is coming into the system after mapping the pre-existing supplies and demands. (OPEN_ORDER demand type is nothing but new orders)

So now we can go in and understand what the mappings in the Global Inventory Visibility->Inventory COnsideration actually mean. If you see the attached pic (the above-mentioned screen) you find that OPEN_ORDER is mapped to Firm plan, Onhand, PO, PO placed,PO released, PO scheduled supply types. What this means is if a new order comes up these are all the supply buckets the system needs to look into to confirm availability. Similarly, if the demand type in input xml of getATP is 'Demand to look for During Release' then the supplies we need to look into are only ONHAND and Work in Progress as configured in Inventory considerations. So from this, we get the Supply part of the Availability calculation.

Then, we come to the DEMAND part of it. Any business would always try not to lose any Order. Even if a order is in BackOrdered demand type, Business always tries to allocate inventory to that order whenever new supplies arrive at the ware house. So looking into it with a business perspective, we consider all demands in the ATP calculation.

Now, with both the supply and demand pictures calculated, we can finally find out what is the ATP.

Additionally, if we look at ATP it is availability for an item under an enterprise. But, if one would like to find out the availability picture at all Nodes across the warehouses under an enterprise this would work if we pass the particular shipNode in the input xml of getATP. To explain further, the importance of shipNode let us consider the getSupplyDetails API which also calculates the availability, but it gives the availability picture node-wise. Cumulatively the availability at each node shown by getSupplyDetails is not equal to the getATP total availability. This is because of the following reason.

If we consider the OpenOrder or BackOrder demands(some cases), they fall under UnassignedDemands, that is, those on which shipNode is not stamped. These demands do not show up in the getSupplyDetails as this API calculated availability node wise and these orders have no node on them which excludes them from the calculation. So lesser demand, greater availability. So ideally,the cumulative availability of getSupplyDetails might be more than getATP availability output.

Now comes into picture another attribute, ConsiderUnassignedDemands="". If you set this to N, then UnassignedDemands will not be considered. So, when we pass getATP with ConsiderUnassignedDemands="N", the availability picture should match for both the API's. Also,if we pass a node Level getATP and a node level getSupplyDetails the results should be the same as unassigned demands are not involved at node level.

Questions:

  1. In the ATP formula if one wants to consider only the selective demands types. Is it possible to achieve?

    For the commited and promised demands, this question is not valid. But, the question arises for Non-commited demand types like Backorder and OPEN_ORDER form the demand list. If we take
    backorder, by removing all mappings of this demand against all supplies, the availability picture changes, but for OPEN-ORDER it is definitely not advisable to remove all the mappings as it might hit the promising part of the logic.

    Also, Sterling generally recommends any change in this GIV screen should always be accompanied with heavy testing as it affects over-all availability picture.

  2. In findInventory API, how does the IgnorePromised and IgnoreUnPromised flags play a playing ATP calculation?

    Promised demands are OOB Scheduled and reserved demands, whereas UnPromised are the non-committed demands viz. Open Order, BackOrdered and Forecast OOB. So If we set the fore-mentioned flags (any of them) to Y, the appropriate demands do not get included in the demands
    part of the calculation.

    For example:

    When we use IgnorePromised="N" IgnoreUnpromised="Y"=> Both Open order and BackOrder Demand types (Non-committed) are removed from calculation.

    When we use IgnorePromised="Y" IgnoreUnpromised="N"=> The Scheduled demand type (Promised) is removed from the calculation

  3. Are expired items involved in ATP Calculation?

    Expired quantities once they cross their default expiration time configured at the individual item level, it gets deducted from the supply itself. Therefore, it is no longer considered as the Supply, which excludes it from the Availability.

inventory considerations.bmp

[{"Product":{"code":"SS6PEW","label":"IBM Sterling Order Management"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Component":"Not Applicable","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Historical Number

HTG2346

Document Information

Modified date:
16 June 2018

UID

swg21562070