Rules-based safety stock
As a fulfillment manager, you can configure the rules-based safety stock values. With safety stock rules, you can maintain the extra stock and mitigate the risk of shortfall of items that are caused by uncertainties in supply and demand. The safety stock rule helps you to select the best approach for determining safety stock. You can set the safety stock rule to maintain buffer inventory and safeguard stock within your supply chain.
In general, these rules are set at higher levels. For example, if [category = x]
and [node type = y], then [SS value = z].
- For more information on how to create, edit, delete, or duplicate a safety stock rule in Order Hub UI, see Safety stock rules.
- For more information on how to configure rules-based safety stock in Order Hub UI, see Configuring safety stock rules.
Benefits rules-based safety stock
- Minimizes data-entry effort and eliminates per item configuration to ensure low maintenance.
- Time-based application.
- Real time evaluation to address dynamic conditions.
- Fixed value and percentage safety stock.
- Business driven safety stock, which eases management effort.
- Separation of network and node level safety stock to reduce excessive withholding.
- Intuitive design that can be configured without a manual.
- Replaces item-based safety stock.
Prerequisites for configuring rules-based safety stock
- Ensure that you are on V2 or availability by date APIs in the Inventory service.
- Contact IBM Support to upgrade to rules-based safety stock.
- Configure fulfillment network with IBM Sterling Intelligent Promising configuration. For more information, see Managing Promising rules.
- Configure the item in IBM Sterling Intelligent Promising catalog.
Network and node level safety stock
- Network level
- Delivery method
- Distribution group
- Catalog category
- Item ID or SKU
- Item attribute
- Node level
- Delivery method
- Node
- Node type
- Catalog category
- Item ID or SKU
- Item attribute
- Network and node level safety stock are calculated separately.
- Rules that are applied at node level do not propagate to network level.
- Example 1,
if SS=1 for N1 and N2, and given DG1=[N1,N2], then DG’s SS=0. - Example 2,
if SS=2 at DG1, given DG1=[N1,N2], then SS = 0 for N1, N2.
Default safety stock APIs
A default safety stock can be set at the network or node level if no rules are applied. Node
default supports a FIXED value and network default supports both
FIXED and PERCENTAGE[Min/Max] value.
- The default rule at node level
{"action": {"safetystock": {"fixed": 2}}} - The default rule at network level (percentage)
{ "action": { "safetystock": { "inventoryPercentage": { "value": 5, "rounding": "down", "fixedMinimum": 2, "fixedMaximum": 50 }}}}
Factors for change in the safety stock
- Upon activating or deactivating a rule.
- Upon adding or removing condition types.
- Upon changing action associated with the rule, which defines safety stock value.
- Upon addition or removal of a node to a distribution group.
- Upon updating the effective dates.
Safety stock and total availability
By default, the Availability API reports the total availability for a node or
distribution group with safety stock withheld considered.
For example, when total
available quantity is 15 and total safety stock that is withheld is 5, the total availability
becomes 15-5 = 10.
If you want to ignore safety stock when the absolute inventory is
calculated and consider safety stock as available, you can use the
considerSafetyStock parameter in the Availability API.
For more information, see V2 availability API.
Safety stock can be defined as either a fixed value or as a percentage of availability. This percentage value is supported only for network rules. If fixed safety stock value is used, then it is first applied on the availability buckets with lowest time range (on hand) and if any more safety stock value is remaining, it is applied on the availability buckets with higher time ranges (future).
For example, if on hand availability before safety stock = 5, future availability before safety stock = 11, and safety stock = 6, then the total availability with safety stock applied will be 10 (Availability by date: on hand=0, future=10). If percentage safety stock is used, then it is applied on all the availability buckets, hence in effect again it gets applied on total availability before safety stock. The percentage safety stock has the ability to allow rounding up or down as requested. In addition, you can also define a minimum and maximum boundary for the safety stock value when using a percentage value.
- For more information about configuring a default value, refer to the Order Hub UI Safety stock rule details.
- For more information about safety stock rule prioritization and tie breaker, refer to Safety stock rule: Priority list.
Safety stock for bundle and item variations
You need to define the safety stock rules for bundle components and variation items that maintains the inventory for availability computations. The bundle and item with variations for parent item does not support the safety stock directly and instead, their safety stock is the aggregated value of their components.
Converting item-based safety stock to rules-based safety stock
While item-based safety stock might be simple to configure, a rules-based safety stock is optimal and more powerful. If multiple items or item-node combinations need to apply the same safety stock value, you can configure them in a single rule. This helps consolidate multiple item-level safety stock settings into a single rule. Such consolidation also leads to performance improvement when querying for a list of item-nodes such that a single rule becomes applicable rather than a potentially large set of matching rules.
SKU1024
and SKU1025 items instead of two separate transactions.- Example 1: An example of converting item-based safety stock to rules-based safety stock
-
- Item-based safety stock
-
[ { "itemId": "SKU1024", "shipNode": "Matrix-Store-001", "deliveryMethod": "SHP", "safetyStockQuantity": 5 }, { "itemId": "SKU1025", "shipNode": "Matrix-Store-001", "deliveryMethod": "SHP", "safetyStockQuantity": 5 } ] - Rule-based safety stock
-
{ "name": "SSfor5atMatrixStore001", "expr": { "and": [ {"node": {"eq": "Matrix-Store-001"}}, {"item.itemId": {"in": ["SKU1024", "SKU1025"]}}, {"deliveryMethod": {"eq": "SHP"}} ] }, "action": { "safetystock": {"fixed": 5} } }
- Example 2
- You can also apply rules at a higher level or business level to avoid the need to configure
numerous rules. For example, if both
SKU1024andSKU1025belongs to Dress category, then you can use the category configuration instead.`{ "name": "ss_rule_categoryPath", "desc": "safetystock for items belonging to same category", "expr": { "and": [ { "item.categoryPath": { "eq": "/CategoryDomain-1/Dress" } } ] }, "action": { "safetystock": { "fixed": 5 } } }`
Safety stock for item attributes
The item attributes improves safety stock accuracy and the item attribute condition enables a
safety stock to be applied when an item meets a criteria. You can set item attribute as a condition
in the rule-based safety stock definition. Item attribute is the characteristic of an item that can
be an application-provided attribute or a custom defined attribute.
For more
information about item attributes, see Item attributes.
- Example 3
- A fulfillment manager in a fashion store wants to ensure at least two quantities of the
fashion-forward items are made available on shelf all days for walk-in customers. By configuring a
safety stock rule with item assigned attribute of
fashion-forward=y
and safety stock value of two for PICK or SHIP, the store can guarantee that there are two protected quantities. You can use both item attribute and item-assigned attribute as conditions.
For more information about assigning attributes to an item, see Attribute. - Example 4
- A seller is planning for a flash sale event on all items with assigned item attribute of
flash-sale=y
for which the seller can create a safety stock rule with theflash-sale=y
item attribute. All items with this specific custom attribute would have an overridden safety stock rule of0
. Otherwise, it would fall back to a node-level rule safety stock of2
.
Node location aggregation
You can create a network safety stock rule that is based on the aggregation of a corresponding node level safety stock rule. You can use the node location aggregate so that the network considers the node level safety stock aggregate that belongs to the target network. For example, if there are 10 nodes with a safety stock level of 1 (SS1) each, the network safety stock (SS) value is 10.
You can enable the node location aggregate by using an API. For more information, see Enabling the node location aggregate for network safety stock. Familiarize yourself with the scenario that is available. For more information, see Scenario: Node location aggregate in network availability safety stock.
Node type override location aggregation
When node safety stock aggregation is enabled, there are occasion when the fulfillment manager needs to redirect fulfillment request to other node type during a demand surge in the system. The effort to mitgate potential high fulfillment cost at the store level. With node type aggregation override, the user can assign a fixed or percent overriding safety stock value against the node type. For instance, setting 100% against store type would redirect traffic to other node types.
Node type override relies on node safety stock aggregation enablement.
- When multiple network rules are applicable, the system considers the best match. The network rule that has distribution group attribute set as a condition takes precedence over other attributes.
- Percentage and fixed value for node type location aggregation in network safety stock is supported.
Node type override is only applicable when node location aggregate is enabled. To enable the node location aggregate, see Enabling the node location aggregate for network safety stock.
Familiarize yourself with the scenario that is available. For more information, see Scenario: Node type location aggregate in network availability safety stock.