You are on page 1of 32

Safety Stock Calculations in Oracle Inventory

An Oracle White Paper


- Prasanna Panchapakesan
Index
1. Introduction………………………………………………………………………………………………………………………….3
2. Safety Stock………………………………………………………………………………………………………..………………..3
3. Setup……………….……………………………………………………………………………………………………………………4
3.1 Item Level Setup……………………………....…...………………………………………………………………………4
3.2 MRP Planned Percentage………………………………………………………………………………………………..5
3.3 Non-MRP Planned…………………………………………………………………………………………………………..5
3.4 Flow Chart………………………………………………………………………………………………………………………6
4. User-Defined Quantity Method (UDQ)………………………………………………………………………………….7
4.1 Setup Required……………………………………………………………………………………………………………….7
4.2 Steps Involved…………………………………………………………………………………………………………………7
4.3 Calculation Logic……………………………………………………………………………………………………………..7
5. User-Defined Percentage Method (UDP)……………………………………………………………………………….8
5.1 Setup Required……………………………………………………………………………………………………………….8
5.2 Steps Involved…………………………………………………………………………………………………………………8
5.3 Calculation Logic……………………………………………………………………………………………………………..8
5.4 Sample Calculations………………………………………………………………………………………………………..9
5.4.1 Example-1 Bucket Type: Day………………………………………………………………………………..9
5.4.2 Example-2 Bucket Type: Week……………………………………….…………………………………..11
5.4.3 Example-3 Bucket Type: Period………………………………………………………………………….13
6. Mean Absolute Deviation Method (MAD)…………………………………………………………………………...16
6.1 Setup Required……………………………………………………………………………………………………………..16
6.2 Steps Involved……………………………………………………………………………………………………………….16
6.3 Calculation Logic……………………………………………………………………………………………………………17
6.4 Sample Calculations……………………………………………………………………………………………………….18
6.4.1 Example-1 Bucket Type: Period………………………………………………………………………….18
6.4.2 Example-2 Bucket Type: Day……………………………………………………………………………….21
6.4.3 Example-3 Bucket Type: Week……………………………………………………………………………26
7. Conclusion……………………………………………………………………………………………………………..…………….29
8. Additional Resources……………………………………………………………………………………………………………29
9. Appendix –A…………………………………………………………………………………………………………………………30
10. Appendix –B …………………………………………………………………………………………………………………………31
11. Appendix-C………………………………………………………………………………………………………………………….31

2
Introduction

Safety stock is a quantity of stock you plan to remain in inventory to protect against fluctuations in
demand or supply. It is also held to account for huge variation in lead times. Safety stock is sometimes
referred to as over planning, forecast, or a market hedge. In the context of master scheduling, safety
stock refers to additional inventory planned as protection against forecast errors or short term changes
in the backlog. Safety stock requirements are generally specified at an item level. By having an adequate
amount of safety stock on hand, a company can meet a sales demand which exceeds the demand they
forecasted without altering their production plan. Too much safety stock can result in high holding costs
of inventory. For any Organization it is very important to have an accurate Safety Stock Levels.

This document explains how Safety Stock will be calculated in the Oracle Inventory Module using Non-
MRP method. It outlines the various methods and steps in the process, of the safety stock calculation
logic.

Safety Stock

Safety Stock is a base level of inventory from which Oracle inventory performs planning. In other words,
the item is planned as if the safety stock quantity for the period is the zero inventory balance of the
item. This ensures that the safety stock quantity remains in inventory to cover any fluctuations in
demand.

In calculating safety stock, account is taken of such factors as service level, expected fluctuations of
demand and likely variations in lead time. An example of demand uncertainty is forecast error. Examples
of supply uncertainties include variations in supplier lead times and irregular operation yields etc. In
businesses such as aerospace and defense manufacturing, or construction, it is normal to segregate
supplies and demands by inventory ownership. Safety stock definition in such environments can be
project specific. Oracle Inventory allows entering the safety stock at Project Level.

These safety Stock Levels will be used in the Oracle Inventory Re-Order Point Planning, Oracle MRP and
Oracle ASCP.

3
SETUP

Item Level Set up

Item can be defined with any of the following two options for Safety Stock under General Planning Tab.

1) MRP Planned %
2) Non MRP Planned

Navigation: Inventory Responsibility > Items > Master Items/Organization Items

Apart from the item setup, we need to ensure below setup (it will vary based on the method) to
calculate the safety stock for an item in Oracle Inventory

 Forecast Set and Forecast has to be defined.


 Statistical Forecast has to be generated based on the demand histories using the Statistical Forecast
rule.
 Item should not be a unit effectivity Control enabled.

4
MRP Planned Percentage

For an item defined with MRP planned percentage, safety stock is dynamically calculated during the
planning process.

For discretely manufactured items, the safety stock quantity is dynamically calculated by multiplying the
safety stock percentage you define by the average of gross requirements for a period of time defined by
the safety stock days.

For repetitively manufactured items, the planning process multiplies the percentage you define by the
average daily demand for a given repetitive planning period. The planning process recalculates the
safety stock quantity for each repetitive period in the planning horizon.

In this Paper, Safety Stock Calculation using MRP Planned Percentage method will not be dealt. It will be
focused only on the other method (Non-MRP Planned).

Non MRP Planned (Inventory Methods)

For an item defined with ‘Non-MRP Planned’, the following methods are available within Oracle
Inventory for calculating safety stock.

Type Description

User-defined quantity Use a fixed safety stock quantity that user define.

User-defined percentage Calculate safety stock based on the user specified Percentage.

Mean absolute deviation (MAD) Calculate safety stock as the mean absolute deviation (MAD).

Safety stock quantities generated in Oracle Inventory according to effectivity dates are included in
planning. Instead of manually changing the user-defined safety stock quantity each time a change is
needed, the user can now set effectivity dates for when a change in quantity takes place.

These safety Stock Levels will be used in the Planning Methods like Oracle Inventory Re-Order Point
Planning, Oracle MRP Planning and Oracle ASCP Planning.

In the Following page, Flow chart has been provided which explains the different methods and the steps
involved in the safety stock calculations in Oracle Inventory. In the Subsequent chapters, each method is
being explained in detail about the Set up Part, Steps involved in the calculation, Calculation logic and
Sample calculations.

5
Flow Chart

Start

Safety Stock Calculations in Oracle Inventory

Three Methods

User Defined Quantity


User Defined Percentage
Mean Absolute Deviation

Which Method?

User Defined Quantity User Defined Percentage Mean absolute Deviation

Navigate to Inventory Responsibility > Forecast Entries has to be Created FORECAST_MAD has to be generated
Planning > safety Stock. either using the Program ‘Generate using a statistical forecast rule by
Forecast’ or by manually entering the running the Program ‘Generate
Then Click new. data. Forecast’.

Enter the Item number, Effective Date Navigation: Inventory Responsibility > Navigation: Inventory Responsibility >
and Safety Stock Quantity. (Note: Planning > Safety Stock Update. Planning > Safety Stock Update.
Project/Task Reference, if required)

Submit the Program ‘Reload Safety Submit the Program ‘Reload Safety
Stock’ by specifying the method as Stock’ by specifying the method as
User-defined Percentage, Forecast Mean Absolute Deviation, Forecast
Name, and Safety Stock Percentage Name, and Service Level Percentage
along with the Starting Date. along with the Starting Date.

Safety Stock Quantities can be reviewed Safety Stock Quantities can be reviewed
using the below navigation. using the below navigation.
Navigation: Inventory Responsibility > Navigation: Inventory Responsibility >
Planning > Safety Stock Planning > Safety Stock

Stop

6
User-Defined Quantity Method
In this method, User can enter the desired Safety stock quantities and the date for which each quantity
is effective. They can also update safety stock quantities that you previously entered or system
calculated.

Setup Required

 Item should be defined with safety


stock option as ‘Non MRP Planned’

 Item should not be a unit effectively


Control enabled.

Steps Involved

Navigate to Inventory Responsibility > Planning > Safety Stocks. Then Click ‘New’

Here, User has to enter the item number, Effective date and Quantity and then save the record. If the
Organization is enabled for Project Reference, Then Project and Task reference can be entered for the
safety stock.

Calculation Logic

In this method, there is no calculation logic involved as user is entering the safety stock quantities in the
form.

7
User-Defined Percentage Method (UDP)
In this Method, Safety Stock will be calculated based on a user-defined percentage of a demand in
specified forecast. Reload Safety Stock concurrent program has to be used to calculate the same.

Setup Required

 Item should be defined with safety stock option as ‘Non MRP Planned’.
 Forecast Set and Forecast has to be defined for the Item with appropriate Bucket Type.

Steps Involved

 Forecast entries have to be


created either by entering
manually or by generating the
forecast.

 Reload Safety Stock Program has


to be run by specifying the
method as User-defined
Percentage, Forecast Name, and Safety Stock Percentage (user defined percentage based on the
business need) along with the Starting Date.

(Navigation: Inventory Responsibility > Planning > Safety Stock Update)

 This Program will generate the Safety Stock using the Forecast and user defined percentage.

Calculation Logic –UDP Method

In this method, Safety Stock will be calculated as below

If the Forecast Bucket Type is Daily (Day),

Safety Stock = (Safety Stock Percentage x Sum of Forecast Demand Quantities of Bucket type Day) / 100

If the Forecast Bucket Type is Weekly,

Safety Stock = (Safety Stock Percentage × Sum of Forecast Demand Quantities of Bucket Type weekly) /
(No of Working days in the Week * 100)

8
Here, No of working days in the week = (Previous Work day corresponding to Next Week start date -
Work day corresponding to Week start date)

If the Forecast Bucket Type is Period,

Safety Stock = (Safety Stock Percentage × Sum of Forecast Demand Quantities of Bucket Type Period) /
(No of Working days in the Period * 100)

Here, No of working days in the Period = (Previous Work day corresponding to Next Period start date -
Work day corresponding to period start date)

Sample Calculations

To demonstrate the calculation logic, Sample calculations have been furnished for different
Bucket Types.

Example-1 (Bucket Type: Day)


In this example, Safety Stock calculation for an item with forecast Bucket type set to Days will be dealt.
Let us assume that user defined percentage for safety stock calculation is 98%. Below Screen shot
explains the forecast details for the item.

9
Reload Safety Stock Program will be submitted as below to calculate the Safety Stock for the item.

Let us apply the Formula to calculate the Safety Stock.

Formula:

Safety Stock = (Safety Stock Percentage x Sum of Forecast Demand Quantities of Bucket type Day) / 100

User Defined Percentage = Safety Stock Percentage = 98%

a) On 19th Aug 2010, Forecast Quantity is 100

Safety Stock = (Safety Stock Percentage/100) × (Forecast Demand Quantity).

= (98/100) x 100 = 98.

b) On 20th Aug 2010, Forecast Quantity is 115

Safety Stock = (Safety Stock Percentage/100) × (Forecast Demand Quantity).

= (98/100) x 115 = 112.7

Same way, it can be calculated for any dates.

10
Following Screen shot shows the Safety Stock Quantity Details, after running the program Reload Safety
Stock (Navigation: Inventory > Planning > Safety stock)

Example-2 (Bucket Type: Weeks)


In this example, Safety Stock calculation for an item with forecast Bucket type set to Weeks will be dealt.
Let us assume that user defined percentage for safety stock calculation is 99%. Below Screen shot
explains the forecast details for the item.

11
Reload Safety Stock Program will be submitted as below to calculate the Safety Stock for the item.

Let us apply the Formula to calculate the Safety Stock.


Formula:
Safety Stock = { (Safety Stock Percentage × Sum of Forecast Demand Quantities of Bucket Type weekly) /
(No of Working days in the Week * 100) }

Note: To calculate ‘Total no of working days in the Week’, Queries provided in the Appendix B can be used.
User Defined Percentage = Safety Stock Percentage = 99%

a) For the week starting on 24th Aug 2010, Forecast Quantity is 500

No of Working Days in the week = 5 days

Safety Stock = (Sum of forecasts quantities of Bucket Type Weekly * User-defined %) /


(No of working days in the week * 100)
= (500*99) / (5*100) = 99
b) For the week starting on 01st Sep 2010, Forecast Quantity is 600

No of Working Days in the week = 4 days

Safety Stock = (Sum of forecasts quantities of Bucket Type Weekly * User-defined %) /


(No of working days in the week * 100)
= (600*99) / (4*100) = 148.5
Same way, it can be calculated for any dates.

12
Following Screen shot shows the Safety Stock Quantity Details, after running the program Reload Safety
Stock (Navigation: Inventory > Planning > Safety stock)

Example-3 (Bucket Type: Period)


In this example, Safety Stock calculation for an item with forecast Bucket type set to Periods will be
dealt. Let us assume that user defined percentage for safety stock calculation is 110%. Below Screen
shot explains the forecast details for the item.

13
Reload Safety Stock Program will be submitted as below to calculate the Safety Stock for the item.

Let us apply the Formula to calculate the Safety Stock.


Formula:
Safety Stock = { (Safety Stock Percentage × Sum of Forecast Demand Quantities of Bucket Type Period) /
(No of Working days in the Period * 100) }

Note: To calculate ‘Total no of working days in the Period’, Queries provided in the Appendix B can be used.
User Defined Percentage = Safety Stock Percentage = 110%
a) For the period starting on 13th Sep 2010, Forecast Quantity is 1000
No of Working Days in the Period= 20 days
Safety Stock = (Sum of forecasts quantities of Bucket Type Period * User-defined %) /
(No of working days in the Period * 100)
= (1000 x 110) / (20*100) = 55
b) For the period starting on 11th Oct 2010, Forecast Quantity is 1500
No of Working Days in the Period = 20 days
Safety Stock = (Sum of forecasts quantities of Bucket Type Period * User-defined %) /
(No of working days in the Period * 100)
= (1500 x 110) / (20*100) = 82.5
Same way, it can be calculated for any dates.

14
Following Screen shot shows the Safety Stock Quantity Details, after running the program Reload Safety
Stock (Navigation: Inventory > Planning > Safety stock)

15
Mean Absolute Deviation Method (MAD):

In this Method, Safety Stock will be calculated based on Mean Absolute Deviation (MAD) of the demand
quantity. This is based on the user entered Service Level. Service Level percentage is the desired level of
customer service in satisfying the product demand immediately out of available inventory. The higher
this value is, the more safety stock quantity should be carried to provide protection against irregularities
or uncertainties in the demand or the supply of an item.

Example: A 90% service level means that on an average you can fill an order immediately 90% of the
time.

Setup Required

 Item should be defined with safety stock option as ‘Non MRP Planned’.
 Forecast Set and Forecast has to be defined for the Item with appropriate Bucket Type.
 Statistical Forecast rule has to be defined.

 Statistical Forecast has to be generated using ‘Generate Forecast Program’ based on the
Statistical Forecast rule.

Steps Involved

 Forecast MAD has to be generated. To get Forecast MAD Quantity, ‘Generate Forecast Program’
has to be run based on a Statistical Forecast rule. This Program will trigger the programs
‘Summarize demand histories’ and ‘Compile item forecast’. ‘Summarize demand histories’
program will summarize the demand history based on the Transaction History. This will populate
the data into the Table: MTL_DEMAND_HISTORIES. ‘Compile item forecast’ Program will
calculate the Original Forecast Quantity and Forecast MAD Quantity based on the demand
history. (Note: It can also be generated using interface)

 Reload Safety Stock Program has to be run by specifying the method as Mean Average
Deviation, Forecast Name, and Service Level Percentage along with the Starting Date.
(Navigation: Inventory Responsibility > Planning > Safety Stock Update)

16
 This Program will generate the Safety Stock using the Forecast and Service Level percentage.

Calculation Logic –MAD Method

In this Method, Safety Stock will be calculated as below

If the Forecast Bucket Type is Daily (Day),

Safety Stock = Sum of forecasts MAD quantities of Bucket Type Days * Service Factor

If the Forecast Bucket Type is Weekly,

Safety Stock = (Sum of forecasts MAD quantities of Bucket Type Weekly * Service Factor)) /
(No of Working days in the week)

Here, No of working days in the week = (Previous Work day corresponding to Next Week start date -
Work day corresponding to Week start date)

If the Forecast Bucket Type is Period,

Safety Stock = (Sum of forecasts MAD quantities of Bucket Type period * Service Factor) /
(No of Working days in the Period)

Service Factor is calculated as Z x 1.25 . Here, Z is the appropriate value from a table of standard normal
distribution corresponding to the service level.

Safety factor calculation is based on piecewise linear interpolation (Interpolation: y = (y2 - y1)/(x2 - x1) *
(x - x1) + y1). Please refer Appendix-A for the Values of safety factor.

17
Sample Calculations

Example-1 (Bucket Type: Periods)

In this example, Safety Stock calculation for an item with forecast Bucket type set to ‘Period’ using “MAD
method” will be dealt. Let us assume that service level for safety stock calculation is 90%.
After creating a Forecast Set and Forecast with Bucket type as Periods, Statistical Forecast has to be
generated. Also For the item, It is been ensured that it has sufficient Transaction History to generate the
forecast. To Generate the Statistical Forecast, “Generate Forecast” Program has been submitted by
specifying a Statistical forecast rule.

Generate Forecast program trigger the programs ‘summarize Demand History’ and ‘Compile item
Forecast’.

Forecast Quantity and Forecast MAD Quantity has been generated. This is shown in the following screen
shot. (Navigation: Inventory > Planning > Forecast > View Set)

18
Note : In the Application, We cannot view the Forecast_MAD Quantity. Query provided in the
Appendix C can be used to get the same. Following Table shows the query output for this
example.

Period
Fore Cast Forecast Forecast MAD
No
Date Quantity Quantity
1 9-Aug-10 328300 719708.12
2 13-Sep-10 312200 719708.12
3 11-Oct-10 296100 719708.12
4 08-Nov-10 280000 719708.12
5 13-Dec-10 263900 719708.12
6 10-Jan-10 247800 719708.12
7 07-feb-10 231700 719708.12

Following Screen shots will provide the details the working day details for the calendar attached
Organization. (Navigation: Inventory > Setup > Organization > Calendar)

Reload Safety Stock Program will be submitted as below to calculate the Safety Stock for the item.

19
Let us apply the Formula to calculate the Safety Stock.
Formula:
Safety Stock ={ (Sum of forecasts MAD quantities of Bucket Type period * Service Factor) /
(No of Working days in the Period) }

Service Factor = 1.25 * Safety Factor

= 1.25* 1.28  (For Service Level 90%, Safety Factor is 1.28, Reference: Appendix A)

= 1.6

Here, Sum of forecasts MAD quantities of Bucket Type Period = Forecast MAD Quantity * No of days in the
Period
Note : To calculate ‘Total no of Days in the period’ and ‘Total no of working days in the period’, Queries provided in
the Appendix B can be used.
a) Period No-2

Total no of Days in the Period = 28


Total no of Working Days in the Period = 20
Safety Stock = (Sum of forecasts MAD quantities of Bucket Type period * service_factor) /
(No of working days in the Period)

= (28 x 719708.12 x 1.6)/20 = 1612146.19

20
b) Period No-4
Total no of Days in the Period = 35
Total no of Working Days in the Period = 23
Safety Stock = (Sum of forecasts MAD quantities of Bucket Type period * service_factor) /
(No of working days in the Period)

= (35 x 719708.12 x 1.6)/23 = 1752332.814

Same way, It can be calculated for any Week. Following Screen shot shows the Safety Stock Quantity
Details, after running the program Reload Safety Stock (Navigation: Inventory > Planning > Safety stock)

Example-2 (Bucket Type: Day)


In this example, Safety Stock calculation for an item with forecast Bucket type set to ‘Day’ using “MAD
method” will be dealt. Let us assume that service level for safety stock calculation is 95%.
After creating a Forecast Set and Forecast with Bucket type as Periods, Statistical Forecast has to be
generated. Also For the item, It is been ensured that it has sufficient Transaction History to generate the
forecast. To Generate the Statistical Forecast, “Generate Forecast” Program has been submitted by
specifying a Statistical forecast rule.

21
Generate Forecast program trigger the programs ‘summarize Demand History’ and ‘Compile item
Forecast’.

Forecast Quantity and Forecast MAD Quantity has been generated. This is shown in the below screen
shot. (Navigation: Inventory > Planning > Forecast > View Set)

22
23
Note : In the Application, We cannot view the Forecast_MAD Quantity. Query provided in the
Appendix C can be used to get the same. Following Table shows the query output for this
example.
Period Fore Cast
No Date Forecast Quantity Forecast MAD Quantity
1 8-Sep-10 620 5.904
2 9-Sep-10 630 5.904
3 10-Sep-10 640 5.904
4 13-Sep-10 650 5.904
5 14-Sep-10 660 5.904
6 15-Sep-10 670 5.904
7 16-Sep-10 680 5.904
8 17-Sep-10 690 5.904
9 20-Sep-10 700 5.904
10 21-Sep-10 710 5.904
11 22-Sep-10 720 5.904
12 23-Sep-10 730 5.904
13 24-Sep-10 740 5.904
14 27-Sep-10 750 5.904
15 28-Sep-10 760 5.904
16 29-Sep-10 770 5.904
17 30-Sep-10 780 5.904

Reload Safety Stock Program will be submitted as below to calculate the Safety Stock for the item.

24
Let us apply the Formula to calculate the Safety Stock.
Formula:
Safety Stock = { Sum of forecasts MAD quantities of Bucket Type Days * Service Factor}

Service Factor = 1.25 * Safety Factor

= 1.25* 1.62375  (For Service Level 95%, Safety Factor is 1.62375, Reference: Appendix A)

=2.0296875.

a) Period-1

On 8th Sep 2010, Forecast Quantity is 620 and Forecast MAD Quantity is 5.904.

Safety Stock = Sum of forecasts MAD quantities of Bucket Type Days * Service Factor

= 5.904 * 2.0296875

=11.983275

Same way, it can be calculated for any day Following Screen shot shows the Safety Stock Quantity
Details, after running the program Reload Safety Stock (Navigation: Inventory > Planning > Safety stock)

25
Example-3 (Bucket Type: Week)
In this example, Safety Stock calculation for an item with forecast Bucket type set to ‘Weeks’ using
“MAD method” will be dealt. Let us assume that service level for safety stock calculation is 99%.
After creating a Forecast Set and Forecast with Bucket type as Periods, Statistical Forecast has to be
generated. Also For the item, It is been ensured that it has sufficient Transaction History to generate the
forecast. To Generate the Statistical Forecast, “Generate Forecast” Program has been submitted by
specifying a Statistical forecast rule.

Generate Forecast program trigger the programs ‘summarize Demand History’ and ‘Compile item
Forecast’

Forecast Quantity and Forecast MAD Quantity has been generated. This is shown in the below screen
shot. (Navigation: Inventory > Planning > Forecast > View Set)

26
Note : In the Application, We cannot view the Forecast_MAD Quantity. Query provided in the
Appendix C can be used to get the same. Following Table shows the query output for this
example.

Fore Cast Date Forecast Quantity Forecast MAD Quantity


24-May-10 2190 580.9523032
1-Jun-10 1430 580.9523032
7-Jun-10 670 580.9523032

Reload Safety Stock Program will be submitted as below to calculate the Safety Stock for the item.

27
Let us apply the Formula to calculate the Safety Stock.
Formula:
Safety Stock = { (Sum of forecasts MAD quantities of Bucket Type Weekly * Service Factor)) /
(No of Working days in the week)}

Service Factor = 1.25 * Safety Factor

= 1.25* 2.33  (For Service Level 99%, Safety Factor is 2.33, Reference: Appendix A)

= 2.9125

Here, Sum of forecasts MAD quantities of Bucket Type Weekly = Forecast MAD Quantity * No of days in the
Week
Note : To calculate ‘Total no of Days in the period’ and ‘Total no of working days in the period’, Queries provided in
the Appendix B can be used.

a) Period-1
For the week starting on 24th May 2010, Forecast Quantity is 2190 and Forecast MAD Quantity is
580.9523032
Total no of Days in the week =8
Total no of Working Days in the Week = 5
Safety Stock = (Sum of forecasts MAD quantities of Bucket Type Weekly * Service Factor)) /
(No of Working days in the week)
= (580.9523032*8*2.9125)/5

= 2707.237732912

b) Period-2
For the week starting on 01st Jun 2010, Forecast Quantity is 1430 and Forecast MAD Quantity is
580.9523032
Total no of Days in the week =6
Total no of Working Days in the Week = 4
Safety Stock = (Sum of forecasts MAD quantities of Bucket Type Weekly * Service Factor)) /
(No of Working days in the week)
= (580.9523032*6*2.9125)/4

= 2538.03537

28
Same way, It can be calculated for any Week. Following Screen shot shows the Safety Stock Quantity
Details, after running the program Reload Safety Stock (Navigation: Inventory > Planning > Safety stock)

Conclusion
This paper describes different types and calculation logic of Safety Stock in Oracle Inventory Application.
It also handles various Forecast Bucket types and the corresponding Safety Stock Calculation Logic in
Oracle Inventory applications.

This paper should give sufficient information to understand the calculation of the Safety Stock in Oracle
Inventory Application.

Additional Resources
 Oracle Inventory User Guides.
 Oracle Inventory Student Guides.
 Note 1121513.1 -FAQ: Safety Stock Calculation in Oracle Inventory

29
Appendix – A
Safety Factor and Service Factor Details for different Service Level
Service Level Safety Factor Service Factor = 1.25 x Safety Factor
0-59 0 0
60 0.253 0.31625
61 0.2783 0.347875
62 0.3036 0.3795
63 0.3289 0.411125
64 0.3542 0.44275
65 0.3795 0.474375
66 0.4048 0.506
67 0.4301 0.537625
68 0.4554 0.56925
69 0.4807 0.600875
70 0.525 0.65625
71 0.5522 0.69025
72 0.5794 0.72425
73 0.6066 0.75825
74 0.6338 0.79225
75 0.661 0.82625
76 0.6882 0.86025
77 0.7154 0.89425
78 0.7426 0.92825
79 0.7698 0.96225
80 0.84 1.05
81 0.8715 1.089375
82 0.903 1.12875
83 0.9345 1.168125
84 0.966 1.2075
85 0.9975 1.246875
86 1.08 1.35
87 1.12 1.4
88 1.16 1.45
89 1.2 1.5
90 1.28 1.6
91 1.33 1.6625
92 1.38 1.725
93 1.43 1.7875
94 1.555 1.94375
95 1.62375 2.0296875
96 1.6925 2.115625
97 1.88 2.35
98 2.055 2.56875
99 2.33 2.9125
100 4 5
101 41.5 51.875
102 79 98.75
103 116.5 145.625

30
Appendix –B
SQL to Calculate Number of working days

If the Bucket type is Weekly, Then we can use the below SQL to find out the number of working
days. It takes Organization_code, from_date and to_date as input.

select c3.calendar_date Week_Start_date,W1.NEXT_DATE Week_end_date,


(C2.NEXT_SEQ_NUM - C3.NEXT_SEQ_NUM)no_of_working_days,(c2.calendar_date- c3.calendar_date) no_of_days_in_the_week
from BOM_CALENDAR_DATES C2, BOM_CALENDAR_DATES C3, BOM_CAL_WEEK_START_DATES W1, mtl_parameters mp
where mp.organization_code ='&organization_code'
AND C2.CALENDAR_CODE = mp.calendar_code AND C3.CALENDAR_CODE = mp.calendar_code
AND W1.CALENDAR_CODE = mp.calendar_code AND C2.EXCEPTION_SET_ID = mp.calendar_exception_set_id
AND C3.EXCEPTION_SET_ID = mp.calendar_exception_set_id AND W1.EXCEPTION_SET_ID = mp.calendar_exception_set_id
AND C3.CALENDAR_DATE= W1.WEEK_START_DATE AND C2.CALENDAR_DATE = W1.NEXT_DATE
AND W1.WEEK_START_DATE >= to_date('&from_date','dd-mon-rr')
AND W1.WEEK_START_DATE <= to_date('&to_date','dd-mon-rr')
order by c3.calendar_date ;

If the Bucket type is Period, Then we can use the below SQL to find out the number of working days.
It takes Organization_code, from_date and to_date as input.

select c3.calendar_date Period_Start_date,W1.NEXT_DATE Period_end_date,


(C2.NEXT_SEQ_NUM - C3.NEXT_SEQ_NUM)no_of_working_days, (c2.calendar_date- c3.calendar_date) no_of_days_in_the_Period
from BOM_CALENDAR_DATES C2, BOM_CALENDAR_DATES C3,BOM_PERIOD_START_DATES W1,mtl_parameters mp
where mp.organization_code ='&organization_code'
AND C2.CALENDAR_CODE = mp.calendar_code AND C3.CALENDAR_CODE = mp.calendar_code
AND W1.CALENDAR_CODE = mp.calendar_code AND C2.EXCEPTION_SET_ID = mp.calendar_exception_set_id
AND C3.EXCEPTION_SET_ID = mp.calendar_exception_set_id AND W1.EXCEPTION_SET_ID = mp.calendar_exception_set_id
AND C3.CALENDAR_DATE= W1.PERIOD_START_DATE AND C2.CALENDAR_DATE = W1.NEXT_DATE
AND W1.PERIOD_START_DATE >= to_date('&from_date','dd-mon-rr')
AND W1.PERIOD_START_DATE <= to_date('&to_date','dd-mon-rr')
order by c3.calendar_date ;

Appendix –C
SQL to find out the Forcast_MAD Quantity
select forecast_designator , organization_id, inventory_item_id ,forecast_date,
original_forecast_quantity Forecast_Quantity, forecast_mad
from mrp_forecast_dates
where inventory_item_id = &item_id
and organization_id = &organization_id
and forecast_designator = '&forecast_name'
and origination_type = 5;

31
Safety Stock Calculations in Oracle Inventory
Oct 2010
Author: Prasanna Venkatesan Panchapakesan

Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.

Worldwide Inquiries:
Phone: +1.650.506.7000
Fax: +1.650.506.7200
www.oracle.com

Oracle Corporation provides the software


that powers the Internet.

Oracle is a registered trademark of Oracle Corporation. Various


product and service names referenced herein may be trademarks
of Oracle Corporation. All other product and service names
mentioned may be trademarks of their respective owners.

Copyright © 2005 Oracle Corporation


All rights reserved.

32