Safety Stock Calculation in SAP
Let me try and explain to you through a mix of functional procedures and how
SAP calculates the Safety Stock:
A D V E R T I S E M E N T
In normal materials management there are basically 2 basic inventory
management systems, the P system and the Q system.
P system is a system wherein replenishment is done keeping the quantity
constant. The period becomes the variant. In other words you fix the quantity
you want the stock to dip, to trigger a requirement. As soon as the stock level
is reached you replenish the stock. During a lean period the time taken to reach
the level will be longer and during an active period the time taken to reach
that stock could drop.This normally relates with your consumption based
Q system is a system wherein replenishment is done keeping the period
constant. The quantity becomes the variant. In other words you will check for
the level of stock at fixed time intervals (daily, weekly, monthly etc.) compare
it with the requirements on that day and trigger the procurement process for
replenishment.This normally relates with your MRP.
Now there are 4 more factors that could affect the idealistic procurement
1. Ordering Lead-time.
2. Manufacuring Lead-time
3. Transporting Lead-time
4. Stock conversion Lead-time (or Quality Inspection lead time)
A delay in any or all of the above can have effect on the entire
replenishment process and the stock. A buffer stock must be designed to take
into account the above coverage. Again the determination of your safety stock
depends on the accuracy of your forecast. Higher your accuracy, lower your
safety stock. This relationship between forecast accuracy and service level
is denoted by factor R. This also takes into account that the customer demand
cannot be always satisfied 100% of the time.
Hence what we have is:
R = Relationship between forecast accuracy and service level (Service Factor)
W = Delivery time (in days) / Forecast Period (in days)
MAD = Mean absolute deviation (parameter for forecast accuracy)
Now If replenishment lead time is greater than the forecast period by factor
Safety Stock = R x Sq.rt. W x MAD
Safety Stock = R x W x MAD
Now in SAP If the material is produced in-house, the delivery time is:
opening period + in-house production time + goods receipt processing time. It is
expressed in workdays. The forecast period is taken from the material master
record and is also expressed in workdays.
If the material is procured externally, the delivery time is: Processing time
for purchasing + planned delivery time + goods receipt processing time. It is
expressed in calendar days. The forecast period is taken from the material
master record and is also expressed in calendar days.
As a result of this you will have observed now that the safety stock must
cover both the unplanned material excess consumption, as well as the additional
requirements caused by delayed deliveries.
In SAP you can specify a minimum safety stock. If the result of the safety
stock calulation by the system is lower than this limit, the safety stock is
automatically set to this value. You enter the minimum safety stock in the
material master record (MRP 2 screen).
In IMG -> Materials Management -> consumption Based Planning -> Master Data
-> Check MRP Types (transaction code OMDQ) you use the indicator Calculate
Safety Stock so that system calculates the safety stock automatically.
The safety stock can be calculated automatically for materials planned with
one of the consumption-based planning procedures if:
1. The service level has been maintained in the material master record.
2. Historical data exists
3. The forecast has been carried out for the material.
Dynamic Safety Stock:
If the option Define Range of coverage profiles is chosen in IMG (Tr.Code
OM1A) you can determine a safety stock level that takes into account:
2. Range of coverage
The limiting factors to the above are:
1. Maximum and minimum range of coverage ( defined period , that is month,
week or PPC planning calendar)
2. Determination of various periods for the validity of the range of coverage.
The system uses the formula:
Dynamic safety stock = average daily requirements (ADR) x Range of coverage
ADR = Requirements in the specific period / number of days in the total
period length (defined period x standard days)
Please note here that if you carry out the planning run even in the middle of
the month the system will include even the requirements planned at the beginning
of the month.
Please also note that you can determine the range of coverage for a maximum
of 3 periods.
1. Range of Coverage in the First Period
2. Range of Coverage in the second period
3. Range of coverage on the rest of the horizon
However you have the option of maintaining different coverage for each of
Based on your customization the system determines the number of days used for
calculating your average daily requirement
Minimum Stock Level (mSL) = ADR x minimum range of coverage
Target Stock Level (Dynamic Safety Stock this is DSL) = ADR x Target range of
Maximum Stock Level (MSL) = ADR x maximum range of coverage.
Having confirmed the above, I will now try and explain through an example how
the system calculates the Dynamic safety stock:
Presume that the system has determined the ADR as 25 Kgs for a material.
You have set the following in customizing:
Minimum Range of coverage = 2 days
Target Range of coverage = 6 days
Maximum Range of coverage = 10 days
Now the System determines the following;
mSL = 2*25 = 50 KGs
DSL = 6*25 = 150 KGs
MSL = 10*25 = 250 KGs
This is what happens for various levels of stock
Stock = 45 Kgs
System Activity = DSL - stock
Procurement Proposal = 105 Kgs
Stock = 60 Kgs
System Activity = DSL - stock
Procurement Proposal = 90 Kgs
Stock = 155 Kgs
System Activity = none
Procurement Proposal = none
Stock = 255 Kgs
System Activity = System checks whether the procurement proposal is firmed
and if yes it displays an exception message.
Also note that in the case of Time Phased materials planning The range of
coverage is calculated differently.