Prepare your Knowledge Model for Insight Explorer
Before setting up Insight Explorer, it is important to prepare your Knowledge Model so that the knowledge you want to analyze is eligible to be used with Insight Explorer. The knowledge entities to pay attention to are: Metrics, Attributes, and Filters.
Some terminology
Metric: A metric is an aggregated number. Common aggregations include
AVG
,SUM
, andCOUNT
. Examples of metrics would be SLO Adherence or On-Time Delivery.Attribute: An attribute describes an individual object and groups metrics as semantically useful categories. It can be boolean, categorical, numerical, or a datetime. Examples of attributes would be Region or Material.
Knowledge requirements for Insight Explorer
All metrics and attributes you provide as input to Insight Explorer are checked against the requirements below. If an input fails to meet any requirement labeled as an error, the input is excluded from the analysis. Not meeting a requirement labeled as a warning does not prevent an input from being included in the analysis, but may result in less optimal insights. To verify if a metric or attribute meets requirements, you can try adding it to the Insight Explorer configuration.
Entity | Requirement | Warning message | Severity | Suggested action | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Metrics | 1. Is a KPI in the Knowledge Model |
KPI or record attribute not found in knowledge model. | Error | The KPI might have been deleted from the Knowledge Model. In this case, the user ID and event will be captured in Admin & Settings > Audit Logs. | |||||||||||
2. PQL is valid |
Invalid PQL expression: {...} | Error | Make sure the PQL is written properly and returns a value. | ||||||||||||
3. Does not use parameters |
Metric expression is parametric. | Error | Create a new KPI that calls the original KPI and sets the parameters to the desired values. | ||||||||||||
4. Has a desired direction (either Up Trend or Down Trend) |
Metric KPI requires a non-neutral desired direction. For this metric 'DECREASE' will be used by default. Please adjust accordingly if 'INCREASE' should be used. | Warning | In the Knowledge Model, set the desired direction of the KPI to either Up Trend or Down Trend. If the desired direction is None, Down Trend will be used by default. | ||||||||||||
5. Has one of the following aggregation types and syntaxes:
|
No compatible aggregation type found for this metric. Supported metrics must be of the form AVG(), SUM() or MEDIAN(). Metric appears to be of aggregation type {aggregation_type}, but is not written with a compatible syntax. Please adjust the query to include it as a metric. | Error | It is often the case that you can rewrite the PQL of the KPI into one of the supported forms. If the KPI is already being used in other assets, first duplicate it to avoid affecting the other assets. For examples, see: | ||||||||||||
6. Does not contain too many |
Metric has more than 80% NULL values. Metric has a high rate (>30%) of NULL values. | Error (>80%) Warning (>30%) | There may be missing data. If the values are left blank intentionally, consider applying a filter to Insight Explorer to exclude the | ||||||||||||
Attributes | 1. Is a KPI or Record Attribute in the Knowledge Model |
KPI or record attribute not found in knowledge model. | Error | The KPI or record attribute might have been deleted from the Knowledge Model. In this case, the user ID and event will be captured in Admin & Settings > Audit Logs. | |||||||||||
2. PQL is valid |
Invalid PQL expression: {...} | Error | Make sure the PQL is written properly and returns values. | ||||||||||||
3. Does not use parameters |
Attribute expression is parametric. | Error | Create a new KPI that calls the original KPI and sets the parameters to the desired values. | ||||||||||||
4. Is not an aggregation |
Attribute is not allowed to contain aggregations. | Error | Create a new record attribute without the aggregation function. | ||||||||||||
5. Has a supported column type
|
Attribute is not of supported type. Currently only categorical and boolean attributes are supported. | Error | If the attribute is numerical, convert it to a categorical one by using For example: CASE WHEN "Invoice"."netValue" BETWEEN 0 AND 100 THEN 'a) 0-100' WHEN "Invoice"."netValue" BETWEEN 100 AND 200 THEN 'b) 100-200' ... END | ||||||||||||
6. Does not contain too many |
Attribute has more than 80% NULL values. Attribute has a high rate (>30%) of NULL values. | Error (>80%) Warning (>30%) | There may be missing data. If the values are left blank intentionally, consider applying a filter to Insight Explorer to exclude the |
Examples
In most cases, you can modify the PQL of a metric or attribute to meet the knowledge requirements while still keeping its value the same. The following are common examples of issues you may encounter during the setup of Insight Explorer and how to resolve them.
Transforming COUNT / COUNT to AVG
Original metric:
COUNT ( CASE WHEN "Invoice"."paymentBehavior" = 'On Time' THEN "Invoice"."Id" ELSE NULL END ) / COUNT ( "Invoice"."Id" )
Modified metric:
AVG ( CASE WHEN "Invoice"."paymentBehavior" = 'On Time' THEN 1 ELSE 0 END )
Transforming SUM / SUM to AVG with CASE WHEN in denominator
Original metric:
SUM ( CASE WHEN "Invoice"."paymentBehavior" = 'On Time' THEN 1 ELSE 0 END ) / SUM ( CASE WHEN "Invoice"."clearingDate" IS NOT NULL THEN 1 ELSE 0 END )
Modified metric:
AVG ( CASE WHEN "Invoice"."clearingDate" IS NOT NULL THEN CASE WHEN "Invoice"."paymentBehavior" = 'On Time' THEN 1 ELSE 0 END END )
Transforming SUM / SUM to weighted average
Original metric:
SUM ( "Invoice"."gainedCashDiscount" ) / SUM ( "Invoice"."possibleCashDiscount" )
Modified metric:
SUM ( ( "Invoice"."gainedCashDiscount" / "Invoice"."possibleCashDiscount" ) * "Invoice"."possibleCashDiscount" ) / SUM ( "Invoice"."possibleCashDiscount" )
Taking the weight outside of CASE WHEN in a weighted average
Original metric:
SUM ( CASE WHEN "Customer"."Segment" = 'Strategic' THEN "Customer"."healthScore" * "Customer"."ARR" END ) / SUM ( CASE WHEN "Customer"."Segment" = 'Strategic' THEN "Customer"."ARR" END )
Modified metric:
SUM ( CASE WHEN "Customer"."Segment" = 'Strategic' THEN "Customer"."ARR" END * "Customer"."healthScore" ) / SUM ( CASE WHEN "Customer"."Segment" = 'Strategic' THEN "Customer"."ARR" END )
Transforming TRIMMED_MEAN to AVG
Original metric:
TRIMMED_MEAN ( "Table"."cycleTime" )
Modified metric:
AVG ( CASE WHEN INDEX_ORDER ( FILTER_TO_NULL ( "Table"."cycleTime" ) , ORDER BY ( "Table"."cycleTime" ASC ) ) > FLOOR ( PU_MAX ( CONSTANT ( ) , INDEX_ORDER ( FILTER_TO_NULL ( "Table"."cycleTime" ) , ORDER BY ( "Table"."cycleTime" ASC ) ) ) * 0.1 ) AND INDEX_ORDER ( FILTER_TO_NULL ( "Table"."cycleTime" ) , ORDER BY ( "Table"."cycleTime" ASC ) ) <= CEIL ( PU_MAX ( CONSTANT ( ) , INDEX_ORDER ( FILTER_TO_NULL ( "Table"."cycleTime" ) , ORDER BY ( "Table"."cycleTime" ASC ) ) ) * 0.9 ) THEN "Table"."cycleTime" ELSE NULL END )
Pulling a metric to the case table
Original metric:
SUM ( CASE WHEN "activityTable"."userType" = 'B' THEN 1 ELSE 0 END )
Modified metric:
SUM ( PU_SUM ( "caseTable" , CASE WHEN "activityTable"."userType" = 'B' THEN 1 ELSE 0 END ) )
Pulling an attribute to the case table
Original attribute:
"caseDetailTable"."caseDetail"
Modified attribute:
PU_STRING_AGG ( "caseTable" , "caseDetails"."Detail" , ', ' , INDEX_ORDER ( "caseDetails"."Detail" , PARTITION BY ( "caseTable"."caseId" , "caseDetails"."Detail" ) ) = 1 ORDER BY "caseDetails"."Detail" ASC )