You are on page 1of 30

SAFETY STOCK PLANNING (ASCP)

Creation Date: 20/11/2012


Last Updated: 5/28/2014
1. What is Safety Stock

Safety stock is a quantity of stock you plan to remain in inventory to protect against fluctuations
in demands (e.g. forecast error) and supply (e.g. variable supplier lead times or irregular
operation yields). Safety stock is sometimes referred to as over planning, a market hedge, buffer
stock, or reserve stock.

Safety stock is an inventory level that needs to be maintained. Safety Stock can either be a
constant value or vary over time. Regular demand such as forecasts and sales orders consume
inventory when these demands are satisfied. When inventory is used to meet safety stock, this
inventory is not consumed. It remains in the system and is seen as a Projected Available Balance
in any time-phased view of supply and demand (such as the ASCP horizontal plan). In fact, an
ideal plan would be one in which projected available balance is equal to the safety stock level in
each planning time bucket.

This document will cover the basic aspects of safety stock modeling, and try to address the most
common issues faced by customers. Basic database queries are presented that will help
users/consultants debug safety stock issues. This document will not detail the safety stock
calculations, but instead focus on key concepts. For the detailed calculation of safety stocks,
please refer to ASCP user guide.
2. Specifying Safety Stock Levels
There are three ways in which safety stock can be specified as input to an ASCP plan.

 Non MRP Planned


 MRP Planned
 Using Inventory Optimization

2.1 Non MRP Planned

Navigate to the item attributes in source instance (Inventory > Items > Master Items or
Inventory > Items > Organization Items > tab General Planning > region Safety Stock >
field Method. Set the method to Non-MRP Planned
Navigate to the form “Enter Item Safety Stocks” (Inventory > Planning > Safety Stocks).
Enter Item, Quantity and Effective Date.

Non MRP Planned safety stocks are those that are explicitly input by the user. The user can enter
values at the Item/Org level that will be treated as safety stock levels by ASCP. The levels can be
varied over time by specifying an effective date.
The safety stock values are collected from the source instance. If there is no safety stock defined
in Inventory, then safety stock is zero.
2.2 MRP Planned

Navigate to the item attributes (Inventory > Items > Master Items or Inventory > Items >
Organization Items) > tab General Planning > region Safety Stock
Set field Method to MRP Planned %
Specify Bucket Days as the number of days to be used for aggregating demand
Specify Percent as the percentage of aggregated demand to be used for safety stock.
If either Bucket Days or Percent are zero, the planning engine calculates the safety stock as zero.

The planning engine calculates safety stock level for all working days in the planning horizon
during the planning process. The formula for discrete safety stock is

(Sum of gross requirements for Bucket Days working days * Percent) / (100 * Bucket Days).

The Organization Manufacturing Calendar determines the working days.


Example:

An item has these attributes:

• Safety stock method: MRP Planned %


• Bucket Days: 5
• Percent: 200%

Days D6 & D7 are non-workdays.

This table shows the demands for days D1 through D9 and the safety stock level for days D1 and
D2. The planning engine does calculate safety stock levels for the other work days.

D1 D2 D3 D4 D5 D6 D7 D8 D9
Demands
(dependent
and
independent) 10 20 30 40 35 35 35

54
[(10+20+3
0+40+35)*
200]/(100
SS on Day1 *5)
64
[(20+30+4
0+35+35)
*
200]/(100
SS on Day2 * 5)

For each day, the planning engine multiplies the safety stock percentage you define by the sum
of gross requirements for the safety stock days.

IMPORTANT

 It is important to note that the gross requirement includes both dependent and
independent demands. The dates considered for the independent demands when making
the safety stock calculation are the demand due dates. The dates considered for the
dependent demands while making the calculation are the demand due dates as calculated
by Unconstrained Planning engine (netting/pegging phase). In constrained and optimized
plans, the dependent demands can be pushed out or pulled in by scheduling engine.
However, when demands are pushed out or pulled in, the planning engine does not re-
calculate safety stocks based on constrained dates.

 The planning engine calculates safety stock level for all for working days in the planning
horizon during the planning process. The level is a target to be satisfied by the end of the
day. You can control it with profile option “MSO: Default Timestamp Safety Stocks”.

 When weekly buckets are used for example, the demands are prorated over the working
days in the week, since all demands are bucketed to the last day of the week. For
example, if there are 500 units of demand on the last day of the week, say Friday, and
there are 5 working days then the safety stock calculation will use a daily demand of 100
units

 If either Safety Stock Bucket Days or Safety Stock Percent are null, then the default in
both cases is 0 and safety stock is 0

Example:

An item has these item attributes:

• Safety stock method: MRP Planned %


• Bucket Days: 5
• Percent: 200%

Plan run date – 11-Jan


Daily buckets – 11-Jan till 18-Jan
Weekly bucket start date – 21-Jan onwards

Working 11-Jan 14- 15-Jan 16- 17- 18- 21- 22- 23- 24- 25-
Dates Jan Jan Jan Jan Jan Jan Jan Jan Jan
Demand
Quantity
10 20 10 20 20 10 15 10
(Collect
ed data)
Demand
Quantity
10 20 10 20 55
(Plan
data)
SS Qty 16 20 17 17 22 26 22
[(10+20+10) [10+0+0+20
* 200] / (100 +11] *
*5) 200]/(100*5
)

From the above example, we can see that


a. Even though there are no demands on 16-Jan and 17-Jan, safety stock demands are
calculated.
b. From 15-Jan onwards, the safety stock is calculated considering the average demand
on weekly bucket [55/5=11], where 55 is the aggregate demand on the last day of the
week and number of working days in the week are 5.

Safety stock demands can be viewed in ASCP Horizontal plan.

2.3 Using Inventory Optimization

Oracle Inventory Optimization can be used to calculate safety stocks. The IO calculation will
incorporate allowances for variability in demand and lead times. Please refer to Oracle Inventory
Optimization Implementation and User's Guide for more details.

The safety stock levels from IO can be fed as an input to an ASCP plan by specifying the IO plan
name as a demand schedule to the ASCP plan. The safety stock is communicated to ASCP as a
quantity per Item/Org/Inventory Optimization Plan Time bucket.

Inventory Optimization plan only calculates safety stock for those items whose safety stock
method is marked as “MRP Planned %”. For items not planned by the IO plan, ASCP will apply
its calculation logic based on Bucket Days and Percent values to calculate the safety stock level
for the items whose safety stock method is MRP Planned %. If the safety stock method is Non-
MRP Planned % then ASCP will use the values specified under Oracle Inventory.
3. Difference between Transient and Non-transient
safety stock

Safety stock can be made up of different types of safety stock levels:

 Non-transient safety stock levels are levels that you hold from their point of origination to
the end of the planning horizon. Non-Transient safety stock does not diminish with time.

 Transient safety stocks are safety stock requirements that only exist for a finite period of
time within the planning horizon. They are safety stock levels with ending effectivity
dates. These are temporary rises in safety stock levels that are matched by equivalent falls
in safety stock level at a later point of time within the planning horizon.

To explain the difference between these two types of safety stocks, consider the following
example. We will split the safety stock levels into the non-transient and transient portions.

D1 D2 D3 D4 D5 D6 D7 D8 D9 D1 D1 D1 D1 D1 D1
0 1 2 3 4 5
Safety 20 20 20 20 20 20 35 35 35 30 30 30 25 25 25
Stock
Level

10 units – Transient
5 units - Transient

5 units – Non Transient

20 units – Non Transient

The green boxes representing the Non Transient safety stocks are required to be held from their
point of origination till the end of the planning horizon.
The blue boxes representing transient safety stocks are required to be held between 2 points in
time that both lie within the planning horizon.
This distinction is important while pegging supplies to demands (discussed in later section)
because of the following reasons:
Any supply quantity that pegs to non transient safety stock CANNOT be used at a future date to
peg to real demands
Any Supply quantity that pegs to transient safety stock CAN be used at a future date (when the
corresponding dip in safety stock occurs) to meet real demands.
For example if a supply has 10 units pegging towards transient safety stock between D7 and D9,
this quantity that pegs to transient safety stock can be used on D10 to meet other demands, since
that transient safety stock requirement disappears on Day 10.
On the other hand a supply that has 5 units pegging towards non transient safety stock on D7
cannot have this quantity pegging towards anything else since the requirement stemming from
the non transient safety stock remains till the end of the planning horizon.
Non-transient and transient safety stock levels can arise from both Non-MRP Planned and MRP
Planned safety stock methods. For example, in case of Non-MRP Planned safety stock method, if
a user defines single entry for an item/organization with no end date (or on/after planning
horizon), it will result in non-transient safety stock in planning horizon whereas if there multiple
entries with different effectivity dates for an item/organization, the planning engine may consider
the safety stock level as transient. However, if the levels are always increasing, the planning
engine considers the safety stock levels as non-transient. If there is no safety stock level for an
item, the planning engine considers the safety stock level as zero.
4. Planning Phases for Safety Stock
The planning engine plans to meet safety stock levels through a process of sequential phases:

 Safety stock smoothing: Smooths out fluctuations in safety stock. This phase is
optional and can be controlled via profile options.

 Inventory netting: Creates planned orders and recommendations to meet safety stock
levels

 Pegging: Associates supplies and demands

 Scheduling: Detailed schedules supplies

This document will explain the above phases keeping the focus on safety stock planning. Safety
stock smoothing is explained in ASCP user guide with lot of details so it is not covered in this
section.

4.1 Inventory Netting

In this step, ASCP generates supplies (planned orders) to meet demands. The analysis is by item
and progresses planning time bucket by bucket. If there is a supply shortfall, new planned orders
will be generated to make up for the shortfall. The netting process checks for a shortage using
this formula:

Projected available balance from last period + Supplies in this period


- Independent and dependent demand in this period - Safety stock level in this period.
To overcome the supply shortage, ASCP can either pull in supplies from a firm or non-firm
existing order (depends on profile MSO: Net All Firm Supplies Before Creating Planned Order)
or create a new planned order in the time bucket. New planned order quantities are governed by
any order modifiers specified for the Item/Org.
During the netting phase, ASCP does not consider any constraints on resources or materials. It
does use defined lead times (fixed and variable) to offset the component demands when supplies
are created. Resource and material constraints are considered during the scheduling phase.
4.2 Pegging Planning Phase for Safety Stock

Pegging process is explained in detail in the ASCP user guide, hence this document will not
explain the pegging logic, but focus on how the presence of safety stocks influences the pegging
logic. The following are the various stages in the pegging logic as they pertain to safety stock:

 Peg to non-transient safety stock levels.


 Pegging logic for demands and supplies
 Peg to transient safety stock levels

Note, that in the pegging phase all demand dates are “unconstrained” and calculated without
applying any resource or material constraints. It is only after the pegging has been completed,
does the system schedule the supplies to respect the resource and material constraints.

4.2.1 Peg to non-transient safety stock levels

This phase of pegging is controlled through the following profile option, “MSC: Include Safety
Stocks in Priority based Pegging”. If the profile value is No, the planning engine will first peg to
all demands other than safety stock, and then it will pull in future non-firm planned orders to
satisfy non-transient safety stock demands. If the profile option MSC: Include Safety Stocks in
Priority based Pegging” is set to Yes, the non-transient safety stocks are lumped together with
other demands and become part of the “Priority Based Pegging Logic”. The recommended
setting for this profile option is ‘Yes’ to avoid cases like excess PAB, or overloads etc.

For example, if running an EDD plan, having planned orders peg to safety stock requirements on
the first day of the plan may cause overloads. These overloads may not have occurred had these
planned orders been pegged to demands later in the planning horizon and instead the on hand
would be pegged to safety stock on the first day of the plan.
4.2.2 Pegging logic for demands and supplies

The planning engine performs priority pegging logic using demands and supplies within each
supply and demand window. It does not consider transient safety stocks. It does consider non-
transient safety stocks if it has not pegged them in the previous optional phase. Non-transient
safety stocks are considered as a normal demand with the lowest priority in the demand window.
The planning engine will allocate a supply (quantity > 0) to satisfy the non-transient safety stock
level. The supply pegged to non-transient safety stock cannot be further allocated to any future
demand.

If profile option “MSC: Include Safety Stocks in Priority based Pegging” is set to No, the
planning engine will first do the pegging for real demands without considering the safety stocks.
In the next step, safety stock pegging is performed, which will pull in the future non-firm
planned orders provided all the existing supplies like on-hand, purchase order etc are already
allocated to real demands in the first step. If the profile option is ‘Yes’, the non-transient safety
stocks are considered as a normal demand with the lowest priority in the demand window and
priority pegging logic is performed by planning engine.

4.2.3 Peg to transient safety stock levels

In this phase supplies are pegged to transient safety stocks. The following are the important
points to note about this
 Supplies will peg to transient safety stocks with a pegged quantity of zero. The reason for
this is that these are supplies that eventually are going to be consumed by real demands.
Since their contribution to the maintenance of the safety stock quantity is temporary in
nature, the pegged quantity is set to zero.
 In order to define what supply to peg to the transient safety stock, ASCP will look
forward in time from the date of the transient safety stock requirement by number of days
defined in profile “MSC: Supply Window Size” and pick the lowest priority supply in
that window to peg to the transient safety stock
 The effect of pegging a supply to a transient safety stock is that the quantity of the supply
can be assumed to satisfy the transient safety stock from the date on which it pegs to the
transient safety stock to the minimum of
a) date on which the pegged quantity of the supply gets consumed by real demands
b) date on which the transient safety stock requirement disappears
An example follows to illustrate the pegging to the transient safety stocks. These examples will
explain various scenarios that can arise as part of pegging supplies to transient safety stocks. In
these examples, the rectangular boxes represent the duration and magnitude of the transient
safety stock requirement i.e. the left edge of the rectangle is the date on which the transient
safety stock requirement comes into existence and the right edge of the rectangle is the date on
which the transient safety stock requirement ceases to exist. The height of the rectangle
represents the magnitude of the transient safety stock requirement that is also included as text
inside the rectangle. The portion of the rectangle shaded using diagonal lines represents the
portion of the transient safety stock requirement that is satisfied by pegging the supply to the
transient safety stock requirement.

Example 1:
Demand on Day 10, Qty = 10

Supply on Day 10, Qty = 10 (pegs to demand)

10 units - Transient

D1 D10 D12

In this example, there is a transient safety stock from Day1 till Day12 of quantity 10. There is
another real demand on Day 10 of quantity 10. There is a supply created of quantity 10 on Day1
to satisfy the transient safety stock. This supply will satisfy the transient safety stock from Day1
till Day10. Since demand on Day10 will consume the supply, it cannot contribute towards
meeting the transient safety stock from Day10 to Day12. Another supply created on Day10 (in
netting phase) will satisfy the transient safety stock level from Day10 to Day12.

Supply1 Pegs to Transient


Safety Stock and meets the Demand on Day 10, Qty = 10
level from D1 to D10

Supply1 on Day 10, Qty = 10 (pegs to demand)

A future Supply (supply2) to satisfy


10 units
10-units
Transient
the transient safety stock level from
D10 till D12

D1 D10 D12
Example 2:

If the supply pegs to multiple demands, then it may be used to satisfy different portions of the
transient safety stock profiles at different times as illustrated in this example

Demand on Day 10, Qty = 4


Demand on Day 12, Qty = 4

Demand on Day 14, Qty = 2

Supply on Day 10, Qty = 10 (pegs to 3 demands)

10 units - Transient

D1 D10 D12 D14 D16

In this example, there is a transient safety stock from Day1 till Day16. There are multiple real
demands on different days of different quantities. Since the quantity of demand on Day10 is
lesser than the supply pegged to transient safety stock, some portion of the supply can still satisfy
the transient safety stock level. In this case, supply of quantity 10 will peg quantity 4 to real
demand on Day10 and remaining quantity 6 will be used to satisfy the transient safety stock from
Day10 till Day12. A new supply will be used to satisfy the remaining portion of transient safety
stock i.e. 4.

Demand on Day 10, Qty = 4


Demand on Day 12, Qty = 4

Demand on Day 14, Qty = 2

Supply on Day 10, Qty = 10 (pegs to multiple


demands)

10 units - Transient
6
2
D1 D10 D12 D14 D16
4.3 Scheduling Planning Phase for Safety Stock

In constrained plan, once ASCP has pegged supplies to demands and safety stocks, ASCP will
schedule these supplies. When ASCP schedules supplies to meet demands, it will use the safety
stock pegging information to schedule the supplies.
Please note that in a constrained plan, the dependent demands may be pulled in or pushed out to
different dates due to constraints but scheduling does not change the safety stock pegging. In
other words safety stock dates are not changed even though demands dates are changed by
scheduling.
Let’s take a conceptual example.

D1 D2 D3 D4 D5

Dependent Demands
(unconstrained
phase) 10 10 10 15 12
Safety Stock 10 10 10 10

Supply Cretaed on D1 20

There are dependent demands on different dates after netting and pegging phase. A safety stock
quantity calculated on Day1 is 10 based on standard calculation as described above. Based on
above scenario planning engine will create a supply of quantity 20 to satisfy both dependent
demand and safety stock demand on Day1. Now in scheduling phase, following is the demand
picture due to constraints. Dependent demands are pushed out to later date but safety stock
demands are not pushed.

D1 D2 D3 D4 D5 D6 D7

Dependent Demands
(constrained phase) 10 10 10 15 12
Safety Stock 10 10

Supply Cretaed on D1 20
5. Interpreting Safety Stock Pegging in Plan results

In this section we will analyze how the ASCP plan has pegged supplies to transient and non-
transient safety stocks.
In ASCP planner’s workbench, safety stock demands can be seen only from pegging view.
Safety stock demands do not appear in “Order View” of the Supply/Demand window. To
analyze the pegging details select the supply in supply/demand window.

In case of non-transient safety stocks the pegged quantity (allocated quantity) will always be
positive. A sql query can also be used to look for safety stock pegging. For example:
select demand_quantity, supply_quantity, allocated_quantity, demand_id, supply_type,
msi.item_name from msc_full_pegging mfp, msc_system_items msi
where mfp.plan_id=1282 and mfp.transaction_id=16562265 and mfp.plan_id=msi.plan_id and
mfp.inventory_item_id=msi.inventory_item_id and mfp.organization_id=msi.organization_id;

demand_quantity supply_quantity Allocated_quantity demand_id supply_type item_name

3 300 3 -2 18 SS-FLANGE2
50 300 50 155149597 18 SS-FLANGE2
3 300 3 -2 18 SS-FLANGE2
50 300 50 155149596 18 SS-FLANGE2
300 194 -1 18 SS-FLANGE2

In the above query you see the pegging results for On-hand supply for item SS-FLANGE2.
DEMAND_ID = -2 shows that a supply is pegged to safety stock. The allocated_quantity in
safety stock pegging is non-zero; it shows that supply is pegged to non-transient safety stocks.

In case of transient safety stocks the pegged quantity (allocated quantity) will be zero.

select demand_quantity, supply_quantity, allocated_quantity, demand_id, supply_type,


msi.item_name from msc_full_pegging mfp, msc_system_items msi where mfp.plan_id=1283
and mfp.transaction_id=16562265 and mfp.plan_id=msi.plan_id and
mfp.inventory_item_id=msi.inventory_item_id and mfp.organization_id=msi.organization_id;

demand_quantity supply_quantity Allocated_quantity demand_id supply_type item_name

500 300 244 -2 18 SS-FLANGE2


500 300 3 -2 18 SS-FLANGE2
800 300 3 366760494 18 SS-FLANGE2
3 300 0 -2 18 SS-FLANGE2
50 300 50 155149597 18 SS-FLANGE2
3 300 0 -2 18 SS-FLANGE2
649 300 0 -2 18 SS-FLANGE2
649 300 0 -2 18 SS-FLANGE2

In the query results we can see that On-hand supply is pegged to transient safety stock
(allocated_quantity=0) as well as other demands.
6. Issues in Safety Stock Modeling, Debugging and
possible solutions

There are a few known issues in safety stock modeling. It is important for users to understand
them for their implementation. In this section, interpretation of the results is discussed along with
any issues that may arise. Possible solutions to minimize the impact of any issues will also be
addressed.

6.1 High Projected Available Balance (PAB)

The most common issue with safety stocks is High PAB. In ideal case, the projected available
balance should be equal to the safety stock level during the duration of the planning horizon. As
discussed in above sections, when ASCP makes pegging decisions it uses the unconstrained
demand dates. It is possible that when constraints are applied and supplies are moved in and out
to achieve balance, it may appear excessive safety stock is being held in certain periods. Again
this is due to the sequence of netting and pegging all in the unconstrained mode.
Let’s try to debug a case where high PAB is caused by pegging a supply to safety stock demand
in an ECC constrained plan. We will look through various phases of planning while analyzing
this case. In this section, we have used sql queries as an alternative mechanism to debug the
safety stock related issues. With the help of these scripts, we will look through unconstrained and
constrained phases of planning in a constrained plan. In ASCP supply/demand workbench the
dates shown in pegging tree are constrained dates.
In this real life example, the supply (purchase order UG101242(8)(1)) is much earlier than its
demand causing high PAB.

The following sql will provide the demands that are pegged to above purchase order after the
plan has completed and all the constraints are applied.

select distinct dmd.using_assembly_demand_date demand_date, dmd.origination_type,


sup.transaction_id, sup.order_number, sup.new_schedule_date supply_date,
sup.new_order_quantity supply_qty, sup.order_type from msc_demands dmd, msc_supplies sup,
msc_full_pegging mfp where dmd.plan_id=3022 and dmd.plan_id=sup.plan_id and mfp.plan_id
= sup.plan_id and sup.transaction_id = mfp.transaction_id and dmd.demand_id =
mfp.demand_id and dmd.plan_id = mfp.plan_id and sup.order_number='UG101242(8)(1)';
Table 6.1

demand_date origination_type transaction_id order_number supply_date supply_qty order_type

20-Sep-12 1 23928356 UG101242(8)(1) 17-Jul-12 24000 1


17-Sep-12 1 23928356 UG101242(8)(1) 17-Jul-12 24000 1
11-Sep-12 1 23928356 UG101242(8)(1) 17-Jul-12 24000 1

The issue can be seen in above table. The purchase order (order_type=1) which is due on 17-Jul
is creating high PAB due to its pegging to three dependent demands on 20-Sep, 17-Sep and 11-
Sep respectively. The origination_type=1 denotes dependent demand.
The users will see the same supply/demand picture as the above sql query output, when they drill
down the pegging tree for end demand in ASCP supply/demand workbench. The various dates in
above queries output and in pegging tree of ASCP supply/demand workbench are constrained
dates after the plan has completed.
Now let’s look at the pegging picture of above purchase order ( UG101242(8)(1) ) while
unconstrained planning phase. The transaction_id is the unique identifier for a supply. For
purchase order UG101242(8)(1), the transaction_id is 23928356.
select distinct demand_id, demand_date, supply_date, supply_type from msc_full_pegging where
plan_id=3022 and transaction_id=23928356 order by demand_date;

Table 6.2

demand_id demand_datesupply_date supply_type

-2 13-Jul-12 13-Jul-12 1
-2 9-Aug-12 13-Jul-12 1
79130983 21-Aug-12 13-Jul-12 1
79130992 24-Aug-12 13-Jul-12 1
79131001 11-Sep-12 13-Jul-12 1

The unconstrained pegging picture of the purchase order shows that it has pegged to safety stock
demands (demand_id=-2) on 13-Jul-12 and 9-Aug-12 along with other real demands as shown in
Table 6.1 on 21-Aug-12, 24-Aug-12 and 11-Sep-12 respectively. The dependent demands are
moved to later dates by scheduling engine due to constraints such as lead time. As explained in
previous sections, scheduling engine doesn’t change the safety stock pegging. Since purchase
order is pegged to safety stock demand on 13-Jul-12, it will not move closer to other dependent
demands causing high PAB.
Please note that above sql queries are for illustrative purpose and to help implementers look
through various phases of planning. These queries can be enhanced by implementers based on
their requirements.
In the above section we have analyzed a detailed case study on PAB due to safety stocks. Now
we will discuss some measures through which PAB can be minimized. It is the responsibility of
implementers to test these measures in their data set as setting these measures depends on the
model and its underlying data.

 Optimize Order modifiers:


If the items in a plan have order modifiers that represent large multipliers (e.g.
Fixed days supply = 30 days), then there are chances of high PAB due to the large size of
planned orders. It is not always possible to reduce the order modifier size as it depends
on business requirements, but the planner should remain aware of the potential for large
planning effects.

For example, if a component of an assembly has fixed days supply of 30 days. The
supply created on this component item would be of next 30 days demand quantity in
unconstrained phase. This supply is pegged to safety stock as well as demands on this
component. If component demand gets delayed due to constraints, there are chances of
high PAB.

 Use profile option “MSC: Split Planned Order to perform safety stock
pegging”
The planning engine can split planned orders to peg to different transient
safety stock levels. This profile Option has following values

 No  Do not split Planned Orders. This is the default value.


 Yes  Planned Order will always be split
 Yes But Do Not Violate Order Modifiers  Planned Order will be split
only for those items that do not have Order Modifiers specified. If an item
has an order modifier specified, ASCP will not attempt to split the planned
orders for these items

Take an earlier example where scheduling engine has moved out a dependent demand on
Day3. This has caused a PAB on Day1.
D1 D2 D3 D4 D5 D6 D7

Dependent Demands
(constrained phase) 10 10 10 15 12
Safety Stock 10 10

Supply Cretaed on D1 20

If supply created on Day1 is a planned order and profile MSC: Split Planned
Order to perform safety stock pegging is set to “Yes”, then the engine will split the
planned order into quantities 10 and 10 as follows.

D1 D2 D3 D4 D5 D6 D7

Dependent Demands
(constrained phase) 10 10 10 15 12
Safety Stock 10 10

Supply Cretaed on D1 10 10

The purpose of providing this profile option is to prevent excessive early builds
and use of resource capacity for safety stocks at the expense of meeting other demands.
For example, if ASCP did not split the order of quantity 20, then the entire order would
have to be scheduled on D1 to meet the safety stock on D1. On the other hand, if ASCP
splits the order, then only an order of 10 needs to be scheduled on D1 to meet the safety
stock requirement. This will ensure that only the minimum amount of inventory is built
ahead of time and only the minimum amount of capacity is used up to meet the safety
stock requirement.
 Set profile option “MSC: Include Safety Stock in Priority Based
Pegging” to Yes
Setting the profile “MSC: Include Safety Stock in Priority Based Pegging” to “Yes”
helps to limit high PAB. If this profile is set to No, planning engine will pull in future
planned orders to satisfy the safety stock demand creating excess PAB. If the profile
option is set to Yes, safety stocks demands are considered as a normal demand with least
priority in the demand window and priority pegging logic is performed by planning
engine. In this case, future planned orders are not pulled in to satisfy the safety stock
demand. This profile gives best results along with profiles MSO: Demand Window
Size=1 and MSO: Supply Window Size=1.

 Use profile option “MSC: Split Planned Orders for Scheduling


Flexibility”
The profile “MSC: Split Planned Orders for Scheduling Flexibility” is used to split a
planned order into multiple planned orders based on daily capacity. This profile option
applies to “Constrained Plans with decision rules” and “Optimized Plans”. Splitting the
planned orders provides more flexibility to the scheduling engine because it pegs smaller
quantities to demands, including safety stocks. This profile does not work for items
which have order modifiers.
6.2 PAB is below Safety Stock Level

There can be cases where projected available balance is below safety stock level. In this case
there are not sufficient supplies to satisfy the safety stock demands. This can happen primarily
for three reasons

 Item Lead Time

If an item has a lead time associated with it, then “safety stock demands” would be
calculated from day1 of the demand, but no supplies would be available due to the lead
time. There would be a negative PAB throughout the lead time. There is a hidden profile
MSC_IGNORE_SS_IN_LEAD_TIME (internal name, customer has to define this
profile explicitly) that does not allow the planning engine to calculate the safety stock
within the lead time. Safety stock will be zero within the lead time. The lead time
includes pre-processing time, processing time and post-processing lead time.

For example, if an item in an ECC constrained plan has a total lead time of 10 days. The
demands for this item are from Day1 onwards. In this case, the safety stock demands will
be calculated from Day1 onwards but the actual supply can be created on or after day10.
In this case PAB will be below safety stock for first 10 days assuming no existing
supplies.

 Profile “MSO: Supply Reschedule Window Size for Safety Stock Pegging” is not set
correctly
This profile option provides an estimate for the number of days by which a supply,
and its associated demand (dependent demand), shifts due to constraints. ASCP will
assume that at the time of constrained scheduling, any dependent demand will get pushed
out by the number of days specified in this profile option. This will change the pegging for
transient safety stocks. For example if this profile option is set to 2 days, then a supply that
gets fully consumed by a real dependent demand on Day 10 (Day 10 is the unconstrained
demand date) can be used to meet transient safety stock levels up to Day12 (Day10 + 2).

Let’s take an example.


Assume

1. Plan Horizon: day 1 to day 100; daily buckets;


2. Transient Safety stock: Qty 100 from day 1 to day 99; Qty 0 on day100;
3. On-hand: Qty 100.
4. Demand: Qty 100 on day 20.
5. No time fence.

In inventory netting phase, a planned order of quantity 100 will be created on day21 to
satisfy safety stock demand.
In pegging phase, the on-hand would initially be pegged to safety stock and then real
demand on day20.
Now see the affect of this profile in safety stock pegging:
If “MSO: Supply Reschedule Window Size for Safety Stock Pegging” is 10: On-Hand is
pegged to safety stock to meet safety stock demand from day 1 till day (20+10). Planned
order created in netting phase on day21 is pegged to safety stock to meet safety stock
demand from day 31 to day 99. Planned order will be scheduled out by scheduling engine
to day 31 if possible. In this case the PAB will be lower than safety stock during day 21 to
day 30.

If “MSO: Supply Reschedule Window Size for Safety Stock Pegging” is NULL: On-Hand
is pegged to safety stock to meet safety stock from day 1 to day20. Planned order created
in netting phase on day21 is pegged to safety stock to meet safety stock demand from day
21 to day 99. In this case planned order will NOT be scheduled out by scheduling engine
and PAB and safety stock level will be in sync.
Alternatively this profile is also used to keep the PAB level low (in case of high PAB) if
planner knows that dependent demand will be pushed by scheduling engine. In above
case, if the real demand is a dependent demand and moved by scheduling engine due to
constraints on day30 and the above profile option value is NULL, there would be a
positive PAB from day21 till day30. Hence this profile option should be modeled
considering the business requirements.

 Item has a PTF (planning time fence): If an item has a PTF then PAB would be below
safety stock till time fence assuming no existing supplies.
6.3 Existing Supplies pegged to Safety Stock demands and real
Demands met Late

This issue mostly happens in cases when a planner manually enters safety stock quantities in the
source instance (user defined safety stock). These types of safety stocks are mostly non-transient
in nature. For non-transient safety stocks, the planning engine has to allocate a positive supply to
it and the pegged supply cannot be allocated to other real demands.

For example:
1. Plan Horizon: day 1 to day 100; daily buckets;
2. Safety stock: Qty 100 from day 1 till day 100;
3. On-hand: Qty 100.
4. Sales Orders: Qty 20 on day 2, Qty 30 on day3, Qty 50 on day4

In this case assuming priority pegging and MSO: Demand Window Size=1 and MSO: Supply
Window Size=1, the on-hand will be completely allocated to safety stock demand and planned
orders would be created for sales orders. If there are constraints in the supply chain these sales
orders can be met late. To overcome this issue, one possible solution could be to use the hidden
profile MSC_MAKE_SS_TRANSIENT to make the safety stock as transient. Planner has to
define this profile option manually.
If this profile is set to “Yes”, it would make the non-transient safety stock as transient by
reducing the safety stock level to zero on last day of planning horizon. After making the above
safety stock as transient by using this profile the scenario would be

1. Plan Horizon: day 1 to day 100; daily buckets;


2. Transient Safety stock: Qty 100 from day 1 till day 99; Qty 0 on day100;
3. On-hand: Qty 100.
4. Sales Orders: Qty 20 on day 2, Qty 30 on day3, Qty 50 on day4

The On-hand will get fully pegged to safety stock demand on day1 but on day2, qty 20 of on-
hand would be pegged to sales order and the planned order of quantity 20 will be used to satisfy
the remaining safety stock demand. Similarly sales orders on day3 and day4 will also be pegged
to on-hand and future supplies will be used for safety stock demand.

day1 day2 day3 day4 day5

Sales orders 20 30 50

safety stock demand 100 100 100 100 100 100

On-Hand 100

Planned Order 20 30 50
6.4 Excess Supplies created by the planning engine

During the netting phase, the planning engine creates planned orders for safety stocks as
well as for real demands. In case of transient safety stocks, if there is a safety stock
increase followed by a decrease within the planning horizon, the supply is always
generated to match the increased quantity. It means in some cases we can end up with
excess supplies created with-in the plan.

Using the previous example

day1 day2 day3 day4 day5 day99 day100

Sales orders 20 30 50

safety stock demand 100 100 100 100 100 100 0

On-Hand 100

Planned Order 20 30 50

PAB 100 100 100 100 100 100 100

In this case the planned orders used to satisfy the safety stock demand would completely
pegged to excess at the end of planning horizon.
Summary
In this paper we discussed about

o Safety stock planning in ASCP


o Different types of safety stocks
o Flexibility in specifying safety stock as an input to planning engine
o Various phases of planning such as Netting, Pegging and Scheduling and how
safety stock is planned in each of these phases
o Known issues in safety stock modeling, debugging and possible solutions for it
o Usage of various profiles and its impact in safety stock planning
Please note that the usage of these profiles while safety stock modeling should be
according to business requirements.

You might also like