Inventory Management Starter Kit Implementation Guide
This guide provides you with the necessary information to implement the Inventory Management Starter Kit (IMSK). The guide is composed of eight sections, which should be completed in numerical order.
Align on the project scope
Before implementing the app, it is important to clearly agree on the data scope. Per default, IMSK does not limit the scope of the data. According to your stakeholder’s needs and requirements, you should prescriptively limit the data scope for efficient validation and easier identification of refinement/customization opportunities. In general, filters should be applied to the MaterialMasterPlant
object. Filter candidates are plants, business units, or material groups.
Define objects to be considered for future demand and supply
Default supply is the sum total of current valuated inventory, planned orders, purchase requisitions, purchase orders, and production orders.
Default default demand is the sum total of material reservations, sales orders, and independent requirements.
Occasionally, customers either want to exclude some of these elements from the calculations and/ or add net-new ones
Add missing objects and relationships
The app leverages an expanded version of the Celonis Inventory Management OCPM perspective. Beyond the scope of the default perspective, the app leverages:
MRP objects (Planned Order, MaterialRequirement, MaterialReservation) for the Inventory Projection.
Publish your environment
If you are integrating these objects into a productive customer setup, make sure to publish to “Develop” and check whether there are any issues before publishing to “Production”.
The app is comprised of four main sections:
Overview
Main persona: Supply Chain Manager
See a quick overview of your inventory process health. This serves as a landing page into the use case analysis themselves.
Path-to-value
Main persona: Supply Chain Manager
Covered in Step 8: Value framing and realization.
Use case analysis
Main persona: CoE Analyst
Under Stock, Excess Stock, and Active Stock Analysis Tab(s)
Unlock value opportunities with key metrics and KPIs.
Analyze performance across timeframes and dimensions.
Deep dive into specific material and plant inefficiencies and performance across many facets of the supply chain.
Trending Analysis Tab
Understand the current and future trending state of inventory.
Identify key material and plant combinations that are trending poorly.
Cross reference with inventory timelines to understand size of impact.
Data validation
Main persona: CoE Analyst
Inventory Metrics Tab
Analyze consumption and replenishment across the company
Validate material and plant specific information, quantities, and classifications
Cross-reference with production, purchasing, and selling activities
Object Validation Tab
Understand the MRP elements included in the trending analysis
Validate quantities and classifications for each order type
The IMSK comes with dedicated settings and data validation views to get you started. The three assets are explained below
General settings: Confirm the reporting currency and exchange rate type that should be used for all reporting amounts in the app.
Data Validation - Snapshot: It is recommended to start with a reduced set of material | plant combinations depending on the stakeholders/business units you work with.
Review the inventory metrics across all materials and plants. Trace the factors that play into the inventory classification on material | plant level for each classification category.Lastly, deep dive into material | plant combinations that could not be classified with the conditions defined. The focus should be on the material | plant combinations with the biggest amount of valuated stock. They offer additional potential to identify value.
Data Validation - Object Validation: It is recommended to start with a reduced set of material | plant combinations depending on the stakeholders/business units you work with.
Review open supply (inventory on hand, planned orders, purchase requisitions, purchase orders, production orders) and open demand (reservations, sales orders, independent requirements). Review the resulting Inventory Projection (keep in mind to filter on one material | plant to yield consistent results in the chart and table). Building on supply and demand orders, validate definitions for excess supply, excess open replenishment, uncovered demand, and uncovered demand for orders.
Use the view Inventory Projection Validation to understand and validate the default scope of the open supply and demand.
Step 4.1: Review which orders are considered 'open\ and within the right time horizon
Only supply and demand orders which are considered “open” are relevant for the Material Allocation app.
Each order object has a dedicated *IsOpen?
Calculated attribute on the record holding the definition of an open order:
Planned Orders:
O_CUSTOM_PLANNEDORDER.IsOpen
Purchase Requisition Item:
O_CELONIS_PURCHASEREQUISITIONITEM.IsOpen
Purchase Order Item:
O_CELONIS_PURCHASEORDERITEM.IsOpen
Production Order Item:
O_CELONIS_PURCHASEORDERITEM.IsOpen
Material Reservation Item:
O_CUSTOM_MATERIALRESERVATIONITEM.IsOpen
Sales Order Item:
O_CELONIS_SALESORDERITEM.IsOpen
Material Requirements:
O_CUSTOM_MATERIALREQUIREMENT.IsOpen
Aside from whether an order is “open”, the scheduled order dates influence whether an order is included or excluded. By default, any order due between the last load date and the next three months past the load date is relevant input. This can be modified through updating the Knowledge Model variable im_consideredfuturemonths
.
Step 4.2: Exclude objects from supply and/or demand
Adapt Inventory Projection
Option A (simplified): The views showing Inventory Projection output are set to exclude orders with NULL quantities. To exclude the quantities of a given object, go to KPI
IM_Dimension_StockRequirementsList_FutureOpenOrderQuantity
in your Knowledge Model and replace the reference to the quantity conversion KPI with BIND(object table name here, NULL).Option B (thorough, recommended for productive implementations): A more thorough approach is to remove all references to a given object from the
StockRequirementsList_UNIONALL_*
KPIs. There have been instances where not all of these KPIs were found using the search function of the Knowledge Model’s visual editor. You can either search for the full KPI IDs or use the YAML editor to circumvent this.
Note
When updating these KPIs, make sure to check any dependent KPIs using the Operator
UNION_ALL_PULLBACK
.This operator retrieves the values from the combined
UNION_ALL()
record to one of its input tables. The table is specified using its position in the order of input tables. For example, the following query will retrieve the values fromUNION_ALL()
to the first input table:UNION_ALL_PULLBACK(KPI(IM_Dimension_StockRequirementsList_AvgDailyMaterialMasterPlantConsumption),
1)If the order of tables is changed e.g. due to removing a certain object, validate all KPIs using this operator to make sure their result still goes to the right input table.To exclude for example
o_celonis_PurchaseRequisitionItem
, all references for "o_celonis_PurchaseRequisitionItem
" must be removed from the following KPIs:IM_Dimension_StockRequirementsList_MaterialMasterPlantID
IM_Dimension_StockRequirementsList_Dates
IM_Dimension_StockRequirementsList_SortingIndicator
This is a helper KPI ensuring inventory (indicator ‘0’) and replenishment orders (indicator ‘1’) are considered before consumption (indicator ‘2’).
IM_Dimension_StockRequirementsList_OrderNumber
IM_Dimension_StockRequirementsList_OrderType
IM_Dimension_StockRequirementsList_SafetyStock
IM_Dimension_StockRequirementsList_ConsumptionQuantity
IM_Dimension_StockRequirementsList_FutureOpenOrderQuantity
Quantity conversion from the order unit to a common stock keeping unit is done using the QUANTITY_CONVERT() operator.
Adapt Open Supply
If the object you need to exclude is considered supply (Valuated Inventory, Planned Order, Purchase Requisition Item, Purchase Order Schedule Line, or Production Order Item), remove the respective value and quantity calculations from these Calculated Attributes:
O_CELONIS_MATERIALMASTERPLANT.SumReplenishmentFutureQuantity
O_CELONIS_MATERIALMASTERPLANT.SumReplenishmentFutureValue
Adapt Open Demand
If the object you need to exclude is considered demand (Material Reservation Item, Sales Order Schedule Line, Material Requirement), remove the respective value and quantity calculations from these KPIs:
O_CELONIS_MATERIALMASTERPLANT.SumConsumptionFutureQuantity
O_CELONIS_MATERIALMASTERPLANT.SumConsumptionFutureValue
Step 4.3: Add new objects to supply and/or demand
To add an object to the supply and demand logic in the Knowledge Model, you need to consider the same elements as outlined in steps 2.1 and 2.2:
Create IsOpen Calculated Attributes
Create one calculated attribute on the given record to hold the business logic on open order status.
Make sure only the time horizon specified in im_consideredfuturemonths is considered
Determine the right date field to be used and any potential modifications such as Goods Receipt Processing Time. The default app supports only a single time horizon across all objects. Using different time horizons for different objects can be added as customization if necessary.
Expand Inventory Projection
Add the new object to all
StockRequirementsList_UNIONALL
KPIs specified in step 2.2.Best Practice: Add any new objects at the bottom of the default definitions.
Note: Make sure to maintain the same order of tables across every
UNION_ALL
definition. Otherwise you will experience Common Table errors in dependent KPIs and Studio Views.Expand open supply and open demand
Expand the supply and demand Calculated attributes depending on which category your new object falls in.
Note: When adding additional quantities, check whether your input must be converted from an order quantity unit (e.g. boxes, pallets, …) to a stock keeping unit (e.g. kilogram, pieces, …). Stock keeping units facilitate tracking of quantities across different order types and locations.
The conversion rates for different material numbers and quantity units are stored in the
QuantityConversion
object. This object is not connected to another object in the perspective and can be referenced using theQUANTITY_CONVERT()
operator.
In the new starter kit, we try to purposefully guide the user to configure certain parts of the app that lead to correct KPIs, attributes, and analysis. The following configuration views are included:
Overall Configuration
Define the future and past inventory timeframe considered for analysis.
Configure the minimum and maximum stock levels.
Understand how the two previous changes results in a specific inventory classification.
Analyze and configure service level calculations.
View all important inventory metrics and attributes at a glance for exploration.
Excess stock
Define the maximum stock level considered to determine the excess amount.
Understand how excess inventory is reported with supply and demand quantities
Under stock
Define the minimum stock level considered to determine the under stock amount
See deviations between safety stock levels and how that would impact under stock amounts
Once the configuration has been completed for each view, make sure to update the top right drop down status.
In the new starter kit, there is a narrowed down list of use cases available: under stock, excess stock, active stock, and trending analysis. This is purposeful in order to simplify the user journey, focus on use cases instead of metrics, and provide all supporting material in one place. The following views and information are available in each view:
Under Stock, Excess Stock, and Active Stock Analysis Tab(s)
Unlock value opportunities with key metrics and KPIs.
Analyze performance across time frames and dimensions.
Deep dive into specific material and plant inefficiencies and performance across many facets of the supply chain.
Trending Analysis Tab
Understand the current and future trending state of inventory.
Identify key material and plant combinations that are trending poorly.
Cross reference with inventory timelines to understand size of impact.
The use case analysis is linked to the overview tabs and will be directly updated with any configuration changes that occur. If changes are still required, there is a direct link to the requisite configuration page. Furthermore, a natural tendency when viewing the use case is to understand how value framing will occur; therefore, a direct button link is provided to the path-to-value pages.
You can skip this step if the default logic works for your customer and/or you changed only the KPIs mentioned in Step 2.
Step 7.1: Redefine excess supply
Not all of the supply identified in the open supply KPIs is necessary to meet demand from actual orders or safety stock. These unnecessary quantities are considered excess.Excess supply may arise from excess inventory on hand, excess replenishment orders, or a combination of both. Excess replenishment can be prevented by cancelling open replenishment orders (i.e. purchase orders), while reallocating material to another plant addresses excess inventory on hand.
Default definition
Out of the box, excess supply (
O_CELONIS_MATERIALMASTERPLANT.ExcessSupplyQty
) is computed by subtracting either (whichever is larger) - (1)O_CELONIS_MATERIALMASTERPLANT.SumConsumptionFutureQuantity
+ Safety StockO_CELONIS_MATERIALMASTERPLANT.TargetStockQty
from the sum ofO_CELONIS_MATERIALMASTERPLANT.SumReplenishmentFutureQuantity
andO_CELONIS_MATERIALMASTERPLANT.BaseTotalValuatedStockQuantityConverted
.
To learn more about the concept of Target Stock, check Core Concepts.
Refer to step 2 for details about open demand.
Based on this definition, excess replenishment (O_CELONIS_MATERIALMASTERPLANT.ExcessOpenReplenishmentQuantity) is defined by taking the smaller value of (1) and (2):
O_CELONIS_MATERIALMASTERPLANT.ExcessSupplyQty
O_CELONIS_MATERIALMASTERPLANT.SumReplenishmentFutureQuantity
Customize Target Stock
Target stock can roughly be defined as the inventory necessary to cover the demand occurring during the replenishment lead time. Target stock considers past completed orders for lead times as well as past consumption movements and future orders for average consumption.
The number of past considered months can be updated by changing the Knowledge Model variable im_consideredmonths. This leaves two levers for customization:
Replenishment Lead Time (
O_CELONIS_MATERIALMASTERPLANT.ActualReplenishmentLeadTime
), which is by default computed from actual average or median based on process mining data.Average Daily Consumption (
IM_Dimension_MaterialMasterPlant_DailyConsumption
) which considers past consumption from OutgoingMaterialDocumentItems in addition to the demand orders listed in step 2.1.
There are two places that can be used to customize Target Stock. You can find this on the Overall Configuration and Configure Excess Stock views. These coordinate with the dropdown named “Define Maximum Stock Level”. There are two default options: Target Stock Level and Max Stock Level (12mo.) and a choice between the two will then update the target stock level used to compute excess replenishment. These are the only two options out of the box; however, more can be added here and in the
IM_Dimension_MaterialMasterPlant_MaximumStockLevelConfig
KPI. In order to add more, you will need to edit the dropdown option and add another free text option. Following, you will add another CASE WHEN option to theIM_Dimension_MaterialMasterPlant_MaximumStockLevelConfig
KPI.Customize Open Demand
Customizing demand is covered in steps 3.1-3.3.
Step 7.2: Redefine uncovered demand
Occasionally it is not possible to satisfy the demand posed by demand orders and safety stock. Any open demand exceeding open supply is considered uncovered demand.
Default definition
Out of the box, uncovered demand is computed by subtracting
"o_celonis_MaterialMasterPlant"."SafetyStockLevel"
andO_CELONIS_MATERIALMASTERPLANT.SumConsumptionFutureQuantity
fromO_CELONIS_MATERIALMASTERPLANT.SumReplenishmentFutureQuantity
andO_CELONIS_MATERIALMASTERPLANT.BaseTotalValuatedStockQuantityConverted
. If the result is negative, there is uncovered demand. If the value is positive, the result is set to zero as supply is sufficient to cover demand.Based on this definition, uncovered demand for orders:
(
O_CELONIS_MATERIALMASTERPLANT.UncoveredOpenDemandOrderQuantity
) is defined by taking the smaller value of (1) and (2)O_CELONIS_MATERIALMASTERPLANT.UncoveredDemandFutureQuantity
O_CELONIS_MATERIALMASTERPLANT.SumConsumptionFutureQuantity.
Customize Safety Stock
The default safety stock used in the app equals the quantity given in the customer’s master data. It does not represent the recommendations made by the Master Data Improvement app.
If this app is already implemented at the customer you are working with, you can incorporate the recommendation by adding the final KPI and referencing it instead of "
o_celonis_MaterialMasterPlant
"."SafetyStockLevel
".There are two places that can be used to customize Safety Stock. You can find this on the Overall Configuration and Configure Under Stock views. These coordinate with the dropdown named “Define Minimum Stock Level”. There are three default options, Safety Stock defined in the ERP system, Safety Stock Recommended by Celonis, and the Lowest Stock Level of the last 12 months and a choice between the two will then update the safety stock level used to compute uncovered demand. These are the only three options out of the box; however, more can be added here and in the
IM_Dimension_MaterialMasterPlant_LowestStockLevelConfig
KPI. In order to add more, you will need to edit the dropdown option and add another free text option. Following, you will add another CASE WHEN option to theIM_Dimension_MaterialMasterPlant_LowestStockLevelConfig
KPI.Customize Open Demand
Customizing demand is covered in steps 3.1-3.3.
Path-to-Value
Assess value opportunities and their respective building blocks for common inefficiencies in the Path-to-Value tabs:
Under Stock:
Uncovered Open Demand
Sales Order Value at Risk
Production Order Value at Risk
Excess Stock:
Safety Stock Reduction
Obsolete Stock Reduction
Legacy Stock Reduction
Excess Stock Reduction
Excess Open Replenishment
Each one of these views comes with an accompanying view to help configure the identification and framing of the requisite inefficiency.