Oracle Inventory Optimization has added a new IO constraint set to implement warehouse capacity. These warehouse constraints are considered as hard constraints when combined with budget or capacity constraints. They are considered as soft constraints when combined with service level constraints. These constraints are defined either at the organization level or at the category org. level, depending on the value you specify for the profile option MSR: Warehouse Capacity Granularity.
The organization level Warehouse Capacity Constraint for an organization and each planning time buckets is calculated by taking into consideration the following criteria:
The organization
The item in the organization
The number of projected available units of the item, as calculate by IO, and includes on hand, firm supplies, safety stock, and planned orders
Note: The number on had quantity is used if the plan option Net On Hand is implemented. The onhand quantity is not considered by the plan if Net On Hand is in its NULL default state.
Item volume as specified in the Item Attributes Mass Maintenance window or in the Organization Item window
Capacity for the organization as specified in the Organization Parameters window or uploaded via the TradingPartner.dat file
Average Cycle Stock of the item
The Average Cycle Stock of the item is calculated by taking into account the following:
Order quantity of the item, based on the item's demand adjusted for the item order modifiers.
Order Period of the item as specified in the Item Attributes Mass Maintenance window.
Average Daily Demand for an item during a planning bucket, as determined by summing up the item's demand over Safety Stock Days working days, starting with the planning bucket start date, and then dividing by Safety Stock Days. Safety Stock Days is an item attribute.
Inventory Quantity Increment of the item , as determine by the average demand and the number of days represented by the Inventory Days Increment
Inventory Days Increment of the item, as specified in the Item Attributes Mass Maintenance window. It may represent the number of days that supply of the item remains on hold for quality testing.
The IO Planning engine considers the following item order modifiers when calculating Cycle Stock:
FOQ: Fixed Order Quantity
MIN: Minimum Order Quantity
FLM: Fixed Lot Multiplier
If FOQ is defined for an item, then the system ignores the MIN and FLM order modifiers and sets the Order Quantity to FOQ:
Order Quantity = FOQ
If there is no FOQ, then the system calculates the order quantity based on the item's demand with respect to MIN and FLM:
A NULL value for MIN is considered as zero.
A NULL value for FLM is considered as 1.
Oracle Inventory Optimization considers the warehouse capacities in conjunction with the safety stock generated, based on the supply lead time variability. IO also considers the safety stock needed for demand variability when determining the final inventory location for the safety stock of an item. That is, the safety stock generated based on the supplier variability also adjusted with respect to warehouse capacity constraints.
Example of Accounting for Supply Variability in Warehouse Capacity Constraints
In this example 17 units of safety stock are pushed down from the Regional Warehouse to the Distribution Warehouses. As a result the IO engine recommends an additional 8 units of safety stock to be stored at the Distribution Warehouse DW1 and 12 units at the Distribution Warehouse DW2 for a total of 20 units.
The Central Product Facility (CPF) sends product to the Regional Warehouse and has a lead time of 10, plus or minus 5. The Regional Warehouse has:
Safety Stock at RW due to lead time variability =20, 1 unit pushed down = 19 units.
Safety Stock Postponement for DW1 = 50, 7 units pushed down = 43.
Safety Stock Postponement for DW2 = 50 - 9 units pushed down = 51.
Safety Stock at RW due to demand variability = 40.
The lead time to DW1 = 3
The lead time to DW2 = 4
The result is:
Safety Stock at DW1 = 10, plus 8 units as a result of adjustment for warehouse capacity for a total of 18 units.
Safety Stock at DW2 = 15, plus 12 units as a result of adjustment for warehouse capacity for a total of 27 units.
Available Capacity = 20,000 cubic feet
Required Capacity per Unit of Item = 130 cubic feet
Total Warehouse Capacity Requirement = [(the sum of 43, 51, 40, and 19) multiplied by 130] = 19,890 cubic feet, which is less than 20,000 cubic feet.
The warehouse capacity at the Regional Warehouse is respected and considers all inventories stored at this location, including the supplier variability safety stock.
Seventeen units of safety stock are pushed down to the distribution warehouses. The total safety stock, including the safety stock due to lead time variability, respects the warehouse capacity constraints. The 17 units of safety stock that are pushed down is increased to 20 units for the distribution centers to satisfy the service level requirements.
The objective of warehouse capacity constraints is to minimize the total system inventory cost. To do this, the IO Postponement algorithm in determines the safety stock levels at downstream warehouses as a result of restricted capacity at their upstream warehouse.
Example:
Consider items A and B at 3 inventory locations:
CP: Central Production Facility (Upstream)
DW1: Distribution Warehouse 1 (Downstream)
DW2: Distribution Warehouse 2 (Downstream)
Customer demands are satisfied from distribution warehouses.
The item costs and unit volumes are:
Cost: A = $100/Unit, B = $50/Unit
Volume: A = 50 cu.ft/Unit, A = 100 cu.ft/Unit
Without any warehouse capacity constraints, the optimized inventory levels determined by IO for items A and B at Central Production Facility are:
With a total warehouse capacity of 20,000 cuft for the Central Production Facility (CP), the optimized inventory levels determined by IO for items A and B at each warehouse become:
Based on the warehouse capacity constraints, IO keeps the inventory of higher priced item (A) at the upstream location (CP) to minimize the inventory holding costs.
As shown in the above table, some of inventory of the lower priced item B is pushed down to downstream locations due to the warehouse capacity constraint at the upstream location.
The total inventory of item B is increased from 200 to 220 because IO can no longer use a single pool of inventory at CP warehouse to buffer against the uncertainty.
You can use instruct the system to constrain the IO plan with the total warehouse capacity or the storage capacities of different storage types within the warehouse.
To model the warehouse capacity granularity you can use a new profile option MSR: Warehouse Capacity Granularity. Valid values are:
Organization Level: This allows you to constrain your plan by the total warehouse capacity of each warehouse. This is the default value.
Category Organization Level: This allows you to constrain your plan by the storage capacities of different storage types within each warehouse.
The “Safety Stock Days” is used in calculation of an item Average Daily Demand for each planning bucket, which is subsequently used in calculation of the item Average Cycle Stock.
Average Daily Demand for a Planning Bucket = Sum of item's independent and dependent demands from the start of the planning bucket to the Safety Stock Days working days after the start of the planning bucket, divided by Safety Stock Days.
You specify the Safety Stock Days at the item-org level in the Item Attributes Mass Maintenance window, in the Attribute Name field of the Item attributes available for update field.
Note: The Average Demand (AD) is calculated over the working days based on the Organization Manufacturing Calendar.
You then specify the Simulation Set with the desired values for the Order Modifiers or Safety Stock Days in the Plan Options window. Alternatively, you can define the Safety Stock Bucket Days in the General Planning tab of Oracle Inventory Master Item or Organization Item window.
Note: If you are an E1 user, you can specify this item attribute by populating the following parameter in the Item.dat file and then upload this file by means of the Legacy Collections: SAFETY_STOCK_BUCKET_DAYS: This is the item Safety Stock Days.
Specifying item order modifiers is very similar to specifying Safety Stock Day. Specify the item order modifiers at the item-org level in the Item attribute available for update field of the Item Attributes Mass Maintenance window, under Attribute Name. You then specify the Simulation Set with the desired values for the Order Modifiers or Safety Stock Days in the Plan Options window.
Alternatively, you can define the item order modifiers in the General Planning tab of Oracle Inventory Master Item or Organization Item window.
The IO Planning engine considers the following item order modifiers for calculating the Average Cycle Stock:
FOQ: Fixed Order Quantity
MIN: Minimum Order Quantity
FLM: Fixed Lot Multiplier
If FOQ is defined for an item, then the system ignores the MIN and FLM order modifiers and sets the Order Quantity to FOQ then Order Quantity = FOQ.
If there is no FOQ, then the system calculates the order quantity based on the item's demand with respect to MIN and FLM, then Order Quantity = Smallest Multiple of FLM is larger than or equal to the Maximum (MIN, Demand).
A NULL value for MIN is considered as zero.
A NULL value for FLM is considered as 1.
Note: E1 users can define Fixed Order Quantity and Order Multiplier in E1 source and then upload these attributes to planning server via E1-VCP Integration. Alternatively, E1 users can specify these item order modifiers by populating the following parameters in the Item.dat file and then upload this file via Legacy Collections FIXED_ORDER_QUANTITY ( the item Fixed Order Quantity) and FIXED_LOT_MULTIPLIER (the item Fixed Lot Multiplier).
The Order Period is the interval between orders. It is used in the calculation of the Average Cycle Stock as in the section Warehouse Capacity Constraints. The purpose of the Order Period is to allow the specification of an alternate order quantity that may be larger than the item's FOQ, MIN or FLM attributes. This allows the consideration of both production mechanics (e.g., must process 500 pounds = 1 container at a time) (by means of the item's order modifier attributes) and manufacturing operations constraints (e.g., must produce at least 3 week's worth of a product at a time) (by means of the Order Period) in determining an effective order quantity to be used for cycle stock calculation purposes.
You define the Order Period (OP) item attribute at the item-org level in the Item Attributes Mass Maintenance window in the same way as you defined Safety Stock Days and Order Modifiers.
Note: The attribute value for the Order Period is specified in working days based on the Organization Manufacturing Calendar.
The Inventory Days Increment is an item attribute, which can represent the number of days that supply of an item remains on hold for quality testing.
You define the Inventory Days Increment (IDI) attribute at the item-org level in the Item Attributes Mass Maintenance window in the same way as you defined Safety Stock Days and Order Modifier
Note: The attribute value for the Inventory Days Increment is specified in working days based on the Organization Manufacturing Calendar.
You define the total volume capacity available in a warehouse in the Inventory Parameters tab of the Organization Parameters window
The value of this field represents the warehouse capacity for the organization as specified in the Organization Parameters window or as uploaded by means of the Trading Partner.dat file.
The planning engine constrains the plan with the warehouse capacities at the org level when the profile option MSR: Warehouse Capacity Granularity is set to “Organization Level”.
Note: There are no source fields in E1 for warehouse capacity volume and volume unit of measure. E1 users can specify warehouse capacity volume and its unit of measure by populating the following parameters in the TradingPartner.dat file and then upload this file by means of Legacy Collections MAXIMUM VOLUME (the warehouse capacity volume) and . VOLUME_UOM (the capacity volume unit of measure).
To set up your system to define storage capacity at the category level, follow the steps below:
Define a category set and then define your storage types as categories in this category set. For example:
Category set: ABC
Category Set: Storage Type
Define your storage types as categories in this category set:
Category: Frozen
Category: Refrigerated
Category: Dry
Category: Other
Define capacities for your storage types, using the category set and categories defined in steps 1 and 2.
You can define the capacities for different storage types in a warehouse in the Storage Capacity window under the Setup menu for the Inventory Planner responsibility.
In the Storage Capacity window, you specify capacities for the categories in the category set defined in Step 1 above
You specify capacities for storage types in multiple warehouses (organizations) in the Storage Capacity window.
Note: You can only define one category set at a time for specifying storage capacity. This means that when you select a category set in the Storage Capacity window and define capacities, selecting another category set will replace the one previously defined.
For example, if you select category set ABC in the Storage Capacity window and define the storage capacity and then alter decide to specify storage capacity in category set DEF, the new definition of capacity in category set DEF replaces the previous definition of capacity in category set ABC. Therefore, there is a maximum of one record associated to the Storage Capacity window.
Note: If you try to save a new definition of capacity in a different category set, the systems alerts you with a pop-up window, which says “This action replaces storage capacities defined in category set <ABC> do you want to continue? You can respond by clicking the Yes or No button.
The planning engine constrains the plan with the warehouse capacities at the category org level when the profile option MSR: Warehouse Capacity Granularity is set to Category Organization Level.
Note: E1 users can utilize a user-configurable category code to define a Category Set for storage types. Each category code that comes over by means of E1-VCP integration becomes a Category Set, and the values that are held in that category code field for various items become the Categories. Subsequently these attributes can be uploaded to planning server via E1-VCP Integration. Alternatively E1 users can specify category sets and categories in the CategorySet.dat and Category.dat files and then upload these files via Legacy Collections.
You specify the item volume and its unit of measure at the item-org level in the Item Attributes Mass Maintenance window. You then specify the Simulation Set with the desired values for the item volume in the Plan Options window.
Alternatively you can define the item volume in the Physical Attributes tab of Oracle Inventory Master Item or Organization Item window.
Note: E1 users can define item volume and item volume unit of measure in E1 source and then upload these attributes to planning server via E1-VCP Integration. Alternatively you can specify item volume and its unit of measure by populating the following parameters in the Item.dat file and then upload this file via Legacy Collections: UNIT_VOLUME (the item volume and VOLUME_UOM (the item volume unit of measure).
You enforce warehouse capacity constraints by selecting the plan option Enforce Warehouse Capacity Constraints. The following table summarizes the IO engine behavior when the plan option Enforce Warehouse Capacity Constraints is checked. Note that Enforce Budget Constraints, Enforce Capacity Constraints and Enforce Service Level Constraints are all selected, as shown in italics.
Plan Level Constraints Status | Engine Behavior |
Enforce Service Level Constraints | Warehouse capacity and budget are hard constraints |
Enforce Budget Constraints | Warehouse capacity and budget are hard constraints |
Enforce Capacity Constraints | Warehouse capacity and budget are hard constraints |
Enforce Service Level Constraints | Warehouse, material, and resource capacities are hard constraints |
Enforce Budget Constraints | Warehouse, material, and resource capacities are hard constraints |
Enforce Capacity Constraints | Warehouse, material, and resource capacities are hard constraints |
Enforce Service Level Constraints | Service levels are hard constraints. Warehouse capacities are soft constraints |
Enforce Budget Constraints | Service levels are hard constraints. Warehouse capacities are soft constraints |
Enforce Capacity Constraints | Service levels are hard constraints. Warehouse capacities are soft constraints |
The warehouse capacity or the warehouse storage type capacities could be exceeded above the available capacity when the Warehouse Capacity Constraints are considered as soft constraints by the planning engine. This can happen when the plan option Enforce Service Level Constraints is checked:
Plan Level Constraints Status | Engine Behavior |
Enforce Service Level Constraints | Service levels are hard constraints. Warehouse capacities are soft constraints. |
Enforce Budget Constraints | Service levels are hard constraints. Warehouse capacities are soft constraints. |
Enforce Budget Constraints | Service levels are hard constraints. Warehouse capacities are soft constraints. |
The generated exception is called Warehouse Capacity Exceeded.
When the plan is constrained by the warehouse capacity at the org level, this exception is generated by organization and planning bucket. When the plan is constrained by the warehouse storage type capacity at the category org level, this exception is generated by organization, category, and planning bucket.
The Exception Details window displays the following fields:
Exception: Warehouse capacity exceeded
Organization
Category: This field is blank if the plan is constrained by the warehouse capacity at the organization level.
Start Constraint Date
End Constraint Date
Available Warehouse Capacity
Load Ratio: This is the ratio of Required Warehouse Capacity over Available Warehouse Capacity.
Note: The exception is part of the Material and resource capacity exception group.
The Archive Plan Summary concurrent program is enhanced by adding the following facts and dimensions and pushing them to the APCC repository:
Required Warehouse Capacity
Available Warehouse Capacity
Average Cycle Stock
Dimensions
Organization
Category
To set up IO warehouse constraints, follow the steps below:
Set up the profile option MSR: Warehouse Capacity Granularity
Organization level
Category Organization Level
Specify the “Safety Stock Days” at item-org level in the “Item Attributes Mass Maintenance” window (Alternatively you can define this attribute in Oracle Inventory Organization Item window, General Planning tab). This item attribute is used as the time horizon for calculating the Average Demand.
Specify item order modifiers at item-org level in the “Item Attributes Mass Maintenance” window (Alternatively you can define item order modifiers in Oracle Inventory Organization Item window, General Planning tab).
Specify the “Order Period” at item-org level in the Item Attributes Mass Maintenance window.
Specify the “Inventory Days Increment” at item-org level in the Item Attributes Mass Maintenance window.
Define the “Warehouse Volume Capacity” in Oracle Inventory (Organization Parameters window, Inventory Parameters tab). This is used if the “Organization Level: is selected in Step 1.
Define the storage capacities at the org category level in the “Storage Capacity” window under the Setup menu for the Inventory Planner responsibility. The category level capacities are used if the “Category Organization Level: is selected in Step 1.
Define the item's “Unit Volume” and item's “Volume Unit of Measure” at item-org level in the “Item Attributes Mass Maintenance” window (Alternatively you can define these attributes in Oracle Inventory Organization Item window, Physical Attributes tab).
Enforce Warehouse Capacity Constraints in the Constraints tab of the Inventory Optimization Plan Options window.