Skip to main content

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

  1. General settings: Confirm the reporting currency and exchange rate type that should be used for all reporting amounts in the app.

  2. 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.

  3. 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 from UNION_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 the QUANTITY_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)

    1. O_CELONIS_MATERIALMASTERPLANT.SumConsumptionFutureQuantity + Safety Stock

    2. O_CELONIS_MATERIALMASTERPLANT.TargetStockQty from the sum of O_CELONIS_MATERIALMASTERPLANT.SumReplenishmentFutureQuantity and O_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):

    1. O_CELONIS_MATERIALMASTERPLANT.ExcessSupplyQty

    2. 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:

    1. Replenishment Lead Time (O_CELONIS_MATERIALMASTERPLANT.ActualReplenishmentLeadTime), which is by default computed from actual average or median based on process mining data.

    2. 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 the IM_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" and O_CELONIS_MATERIALMASTERPLANT.SumConsumptionFutureQuantity from O_CELONIS_MATERIALMASTERPLANT.SumReplenishmentFutureQuantity and O_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)

    1. O_CELONIS_MATERIALMASTERPLANT.UncoveredDemandFutureQuantity

    2. 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 the IM_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.