This article is not a troubleshooting guide or deep-dive into how Safety Stock is calculated in IBP for Inventory. It's purpose is to point out some basic things to check if the results at first don't make sense.
The information here is to help you eliminate any data problems or misunderstanding of inputs to the single-stage or multi-stage inventory optimization operators that could lead to calculated Safety Stock values that aren't intuitive.
TARGETSERVICELEVEL attribute as Key Figure and SERVICELEVELTYPE attribute
First thing to look at is the value loaded into the TARGETSERVICELEVEL attribute as Key Figure in your Demand Stream data (SOURCECUSTGROUP). The value loaded is a percentage and should therefore be between 0 and 1 (it can be equal to 1). If you load anything higher than 1, like 97.5 instead of .975, it will be changed to 1 for the purpose of calculating safety stock.
Secondly, the value of SERVICELEVELTYPE affects how the value stored in TARGETSERVICELEVEL is used. If the SERVICELEVELTYPE is not defined or set to 'F', this is equal to 'Fill Rate'. The Inventory code converts the value of the input TARGETSERVICELEVEL to non-stockout probability and uses it in the safety stock calculation. If the value is 'A', this is equal 'Non-stockout Probability', or otherwise known as 'Available In Full'. The Inventory code treats the value of the input TARGETSERVICELEVEL as the value of non-stockout probability - there is no conversion needed. In both cases, the key figure AVAILABLEINFULL stores the value used in the calculation.
To summarize, if SERVICELEVELTYPE = 'F' or is not defined, the value is converted to available in full. If SERVICELEVELTYPE = 'A', no conversion is made.
The following formula can be used to give you an estimate of safety stock due to Demand Variability (SAFETYSTOCKDEMANDVAR) and any value in SAFETYSTOCKLOTSIZE key figure. Note: this equation only applies to a single-stage supply chain that only contains Demand Variability (i.e. no lead times, etc) and with normal distribution. Note: IBP for Inventory can use gamma or normal distribution. This is an attribute (DISTRIBUTIONTYPE) in the LOCATIONPRODUCT master data.
Z(TARGETSERVICELEVEL*) x SQRT( (PROPAGATEDDEMANDSTDDEVn)^2 + ... + (PROPAGATEDDEMANDSTDDEVn+LT+PBR - 1 )^2 ) = Z(AVAILABLEINFULL output keyfigure) x SQRT( (PROPAGATEDDEMANDSTDDEVn)^2 + ... + (PROPAGATEDDEMANDSTDDEVn+LT+PBR - 1 )^2 )
where n = the current period
and TARGETSERVICELEVEL* = the actual value used depends on value of SERVICELEVELTYPE.
Remember that SERVICELEVELTYPE is stored at LOCATIONPRODUCT, so it doesn't have to be the same value for every location/product.
The Effect of Lot (Batch) Size on Safety Stock
After running the multi-stage Inventory Optimization operator and the calculated Safety Stock is 0, and you've verified that the TARGETSERVICELEVEL in the Demand Stream data is populated correctly, consider if minimum and/or incremental lot sizes are > 0 for that product/location. As lot sizes increase, the need for safety stock decreases. This is because the excess inventory provided by the lot size can be used to cover safety stock. For example, if you have demand at a node of 500 units and the production minimum lot size into that node is 15,000, there is no need for safety stock to be calculated separately because the excess inventory of 14,500 units will cover any need for safety stock.
A new key figure was introduced in IBP 1611 called Zero Lot Size Additional Safety Stock (SAFETYSTOCKLOTSIZE). It represents the increase in safety stock that would result if the lot size was reduced to 0 from its current value. If lot size is currently 0, then this key figure would have a value of 0. If your planning area does not have this key figure, you can create it based on the key figure in the SAP3 Sample Planning Area.
The lot size key figures are listed below along with their ID and base planning level.
|Key Figure Name||Key Figure ID||Base Planning Level|
|Production Minimum Lot Size||PMINLOTSIZE||WKPRODLOCSRC|
|Production Incremental Lot Size||PINCLOTSIZE||WKPRODLOCSRC|
|Transportation Minimum Lot Size||TMINLOTSIZE||WKPRODLOCLOCFR|
|Transportation Incremental Lot Size||TINCLOTSIZE||WKPRODLOCLOCFR|
In summary, check for the presence of Production or Transportation Minimum Lot Size into the node where the calculated value of Recommended Safety Stock is 0.
If SAFETYSTOCKLOTSIZE is > 0 but the minimum and incremental lot sizes are 0 for the product/location, a lot size could have been pushed down to this location. Key figures CALCPMINLOTSIZE, CALCPINCLOTSIZE, CALCTMINLOTSIZE and CALCTINCLOTSIZE are key figures that show the "calculated" or "flow-through" lot size at the location. These key figures (and others around lead time) were introduced back in 1811 as noted on this Help portal page: https://help.sap.com/viewer/62772a60ce5543e3b46fbd787866b6dc/latest/en-US/fb015795cf084ec6bf6655ca6e74aa15.html
If you do not have any of the flow-through key figures we strongly recommend that you add them because they can show you when the lot size or lead time is calculated to be higher than what you would think. You can refer to the SAP3 or SAPIBP1 sample models for their configuration.
Keywords: IBP-INV, INV, IO, incorrect safety stock, batch, lot
The following are some links to related information in the SAP Help portal.
Inventory Optimization Planning Operators (including inputs and outputs)
Related SAP Notes/KBAs