Skip to main content

Celonis Product Documentation

Validating KPIs for the object-centric Inventory Management Planning Parameter Optimization app

In the Inventory Management Planning Parameter Optimization app’s Knowledge Model, check that all the KPIs (key performance indicators) contain the correct business logic for your organization.

The Knowledge Model for the Inventory Management Planning Parameter Optimization app is named “Knowledge Model”. Work with this Knowledge Model to validate and change KPIs. “Knowledge Model” points to the base Knowledge Model stored in the Celonis Marketplace, which you can’t update directly. Changes that you make to the PQL formulas, KPI names, or formatting in “Knowledge Model” override the base Knowledge Model.

Each KPI in a Knowledge Model contains a PQL (Process Query Language) formula. Some KPIs are reused inside other KPIs as nested formulas. When you adjust the business logic in a single formula, and save it, the change is simultaneously reflected in all the KPIs that reuse the formula.

You work with Knowledge Models in Studio, and any changes you make are applied when you publish a new version of the app. You’ll need Analyst permissions on Studio and the Knowledge Model to modify any of the KPIs and their calculations. If you need training, check out the training track Build Knowledge Models and Views in the Celonis Academy.

Here’s how to work with the KPIs in “Knowledge Model”:

  1. In the Celonis navigation menu, select Studio.

  2. Find the Inventory Management Planning Parameter Optimization app in your Studio space navigation.

  3. Expand the package’s structure using the arrow.

  4. Select “Knowledge Model”.

  5. Select the KPIs section of the Knowledge Model.

  6. You can sort and search the KPIs using their name or ID. The prefix to the ID shows what type of component they are. At the end of these instructions, we’ve noted the most important KPIs to check.

  7. To see and edit the full PQL formula and other settings for a KPI, click its row to open an editor. The editor automatically validates any changes that you make in the PQL formula.

  8. If you want a fuller-featured PQL editor that lets you select from the tables and columns in your data, click on the pen icon next to the PQL formula.

  9. If you need to disable a KPI or formula, click the three vertical dots at the top of the editor, and select Disable Scope, then click Disable to confirm. When you do this, the object can't be accessed or used anywhere in the package, including by other apps that depend on it.

  10. If you update the business logic for a KPI or the variables it uses, update the documentation for business users to reflect your changes. You can find the built-in documentation for the app in your Studio space navigation. It's in the folder Documentation.

  11. When you’ve made changes to the KPIs, use the Publish Package button at the top of the screen in your Studio space to publish a new version of the app.

immdi_oc_km_kpis.png

For the Inventory Management Planning Parameter Optimization app, all the KPIs are managed in the Knowledge Model. These are the key KPIs to validate:

Table 24. Key KPIs to validate for the Inventory Management Planning Parameter Optimization app

KPI ID

Formula description

IM_Dimension_MaterialMasterPlant_CALC__ActualReplenishmentLeadTime

Computes recommended replenishment lead time from purchase orders, production orders, or both (depending on procurement type).

IM_Dimension_MaterialMasterPlant_UNIONALLPULLBACK__DailyConsumptionVariance

Computes variance of daily consumption within the timeframe specified by Parameter_ConsideredMonths and Parameter_FutureMonths.

IM_Dimension_MaterialMasterPlant_CALC__RecommendedSafetyStockActualLeadTime

Computes a recommendation for safety stock based on King’s formula. This formula is used if there are past replenishments for a material.

IM_Dimension_MaterialMasterPlant_CALC__RecommendedSafetyStockPlannedLeadTime

Computes a recommendation for safety stock based on King’s formula. This formula is used if there are no past replenishments for a material. It assumes a standard deviation of one day for the planned replenishment lead time.

IM_Dimension_MaterialMasterPlant_CALC__RecommendedSafetyStock

Handles which safety stock formula is used for a recommendation and which materials should not get a recommendation (for example, due to their planning strategy).

IM_Dimension_MaterialMasterPlant_CALC__RecommendedReorderPoint

Handles which reorder point is used for a recommendation (value based on formula, median consumption, or 1) and which materials should not get a recommendation (for example, due to their MRP type).



Knowledge Model changes for Machine Learning for purchase lead times

Out of the box, the Inventory Management Planning Parameter Optimization app makes recommendations for purchase lead times using the average lead time or the median lead time. To use recommendations made by Machine Learning, you’ll need to join our Early Adopter program and carry out additional implementation work. If you would like to use this add-on, talk to your Celonis point of contact or create a Support ticket.

The KPI definitions for Lead Times computed via Machine Learning are kept in a separate Knowledge Model called “Knowledge Model with LTR”. To implement Machine Learning recommendations, you need to apply them to your app by copying these KPIs from “Knowledge Model with LTR” to the default “Knowledge Model”. This will overwrite the default KPIs while ensuring that every other KPI and view are still working as intended.

Once you’ve set this up, and selected Machine Learning as the calculation mode for lead times in the Inventory Management Planning Parameter Optimization app’s Lead Times view, the results from the Machine Learning algorithm are stored as custom attributes in the MaterialMasterPlant object.

Stock requirements list with UNION_ALL

The Inventory Management Planning Parameter Optimization app re-uses the inventory projection logic that’s also found in the Inventory Management Control Center app as a foundation to compute safety stock levels and reorder points.

The stock requirements list used for the calculations is built using the following object types, which do not need to have a common JOIN path in the data model:

  • PlannedOrder

  • PurchaseRequisitionItem

  • PurchaseOrderItemScheduleLine

  • ProductionOrderItem

  • IncomingMaterialDocumentItem

  • MaterialMasterPlant

  • OutgoingMaterialDocumentItem

  • ReservationItem

  • SalesOrderScheduleLine

  • IndependentRequirement

The calculations for the safety stock level and reorder point only require the consumption-related set of object types from this list (that is, OutgoingMaterialDocumentItem, ReservationItem, SalesOrderScheduleLine, IndependentRequirement). However, to allow more seamless integration of any recommendation into the Inventory Projection as used in the Control Center, the Planning Parameter Optimization app still requires the full set of object types.

The values needed to calculate safety stock levels and reorder points are stored in different tables in the data model created from the Inventory Management perspective. They are combined in the app’s Knowledge Model using the PQL operator UNION_ALL. A Knowledge Model KPI, variable, or filter that’s using UNION_ALL has “_UnionAll_” in its Knowledge Model ID.

Any value computed in the UNION_ALL space can be retrieved using the operator “UNION_ALL_PULLBACK”. For the out-of-the-box KPIs, this pullback is executed in such a way that that any result can be retrieved through the MaterialMasterPlant object.

It is possible to connect up to 16 tables using the UNION_ALL operator. If you are customizing the app’s business logic, you can add new objects, change the order of objects, or remove included objects. It’s important to know that for UNION_ALL queries that will be used in the same component, the object tables must be the same tables and listed in the same order. This is so that they have the same common table (see Join functionality). If you use different tables or list them in a different order, a different common table will be returned. You’ll see errors in the front-end if KPIs using UNION_ALL are displayed in the same component (such as a table), but have different common tables.

For example, the following KPIs will cause an error if they are displayed in the same component, since there is no common table due to the different ordering and the different number of tables involved:

immdi_oc_unionall_no.png

A common table in UNION_ALL requires that both the number and the ordering of the tables involved are the same, as in these two KPIs:

immdi_oc_unionall_yes.png

It’s possible that one of the object tables you need to include in the UNION_ALL operator is not required for the KPI you are working with - for example, if you want to compute purchase value, a sales table is irrelevant. In this situation, you can give an empty reference for the sales table to the UNION_ALL operator by including BIND(“o_celonis_SalesOrderScheduleLine”, NULL).

It’s also possible that your KPI needs fields or values that are not part of the tables included in the UNION_ALL operator, but can be referenced via joined tables in the data model. In this situation, you can use the pull up function or the BIND operator just as you can with KPIs that do not use UNION_ALL.

Customizing the Safety Stock Logic

The formula to compute Safety Stock, which you can find in Business logic of the Inventory Management Planning Parameter Optimization app, is compiled from a dedicated set of input KPIs. Each of these input KPIs corresponds to an element in the formula:

  • Zcrit: The Z-value, which is derived from the standard normal distribution using the QNORM operator.

    • If you want to change how the Z-value is computed, customize the KPI “IM_Dimension_MaterialMasterPlant_QNORM__ZValue”.

    • If you want to customize the service level consumed by the normal distribution, customize the KPI “IM_Dimension_MaterialMasterPlant_CALC__DesiredServiceLevel” instead.

  • LT: The lead time for purchase orders and production orders.

    • For purchase orders, customize the KPI “IM_Dimension_MaterialMasterPlant_CALC__ActualPurchaseLeadTime””.

    • For production orders, customize the KPI “IM_Dimension_MaterialMasterPlant_CALC__ActualProductionLeadTime”.

  • 𝛔LT: The standard deviation for purchase orders and production orders.

    • Customize the KPI “IM_Dimension_MaterialMasterPlant_STDEV__ReplenishmentLeadTime”.

  • LTp: The planned replenishment lead time. This is used as the lead time if a material has no past purchase orders or production orders.

    • For purchase orders, customize the KPI “IM_Dimension_MaterialMasterPlant_CALC__PlannedPurchaseLeadTime”.

    • For production orders, reference the object attribute "o_celonis_MaterialMasterPlant"."PlannedProductionLeadTime".

    • In case the planned values are being used a standard deviation of 1 day is assumed.

  • C: The average daily consumption, which is obtained from the Stock Requirements List.

    • Customize the KPI “IM_Dimension_StockRequirementsList_CALC__ConsumptionQuantity” to change which records are considered as consumption.

    • The KPI “IM_Dimension_MaterialMasterPlant_UNIONALLPULLBACK__DailyConsumption” computes a daily average of these records and maps the results to the MaterialMasterPlant object. Customize this KPI if you want to make changes such as handling outliers.

  • 𝛔C: The variance of daily consumption, which is obtained from the Stock Requirements List.

    • Customize the KPI “IM_Dimension_StockRequirementsList_VARIANCE__DailyMaterialMasterPlantConsumptionVariance” to change how the overall variance is being computed. The PQL for this KPI uses WITH/REGISTER statements to compute formula inputs actual and average daily consumption as well as date records without having to create additional KPIs.

    • The KPI “IM_Dimension_MaterialMasterPlant_UNIONALLPULLBACK__DailyConsumptionVariance” maps the results to the MaterialMasterPlant object.

If your company is using a different calculation method for safety stock, consider customizing the KPI “IM_Dimension_MaterialMasterPlant_CALC__RecommendedSafetyStock” directly and skip adjusting the KPIs above.