Calculate Key Performance Indicators
Learn the definitions and calculations of key metrics shown in Analytics for Consumer Goods dashboards.
Required Editions
| Available in Enterprise, Performance, and Unlimited editions where Consumer Goods Cloud is enabled. |
This table lists the key metrics, their calculations, and dashboards where they appear.
| Metric | Description | Calculation | Available in Dashboards |
|---|---|---|---|
| Revenue | Total revenue generated from products, product categories, stores, territories, sales rep, or accounts. | Sum of all 'TotalPrice' field values in the OrderItem object. |
|
| Quantity | Total sales volume for products, product categories, stores, territories, sales rep, or accounts. | Sum of all 'Quantity' field values in the OrderItem object. |
|
| Avg Quantity | Average quantity of a store, all stores, or similar stores. | Average of all 'Quantity' field values in the OrderItem object. For similar stores, the average quantity of a specific store group is calculated based on the 'RetailLocationGroupId' field in the RetailStore object. |
Store Embedded |
| Avg Revenue | Average revenue generated from a store, all stores, or similar stores. | Average of all 'TotalPrice' field values in the OrderItem object. For similar stores, the average revenue of a specific store group is calculated based on the 'RetailLocationGroupId' field in the RetailStore object. |
|
| Avg Facing Compliance | Average facing compliance of the store. | Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'Facing' in the RetailVisitKpi object. |
|
| Avg Promotion Compliance | Average promotion compliance of the store. | Filters applied: 'Include_In_Compliance' is 'True' and 'PromotionId' exists in the RetailVisitKpi object. |
|
| Avg Store Compliance | Overall compliance of the store. | Filter applied: 'Include_In_Compliance' is 'True' in the RetailVisitKpi object. |
|
| Avg Share-of-Shelf Compliance | Average share-of-shelf compliance of the store. | Filters applied: 'Include_In_Compliance' is 'True', 'Type' is 'ShareOfShelf', and 'PromotionId' doesn’t exist in the RetailVisitKpi object. |
|
| Avg Inventory Compliance | Average inventory compliance of the store. | Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'Inventory' in the RetailVisitKpi object. |
|
| Avg Out-of-Stock Compliance | Average out-of-stock compliance of the store. | Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'OutOfStock' in the RetailVisitKpi object. |
|
| Avg Price Compliance | Average Price Compliance of the Store. | Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'Price' in the RetailVisitKpi object. |
|
| Change in Avg Store Compliance | Percentage change in store compliance compared to a previous period. | (Average Store Compliance for the period selected in the Duration filter) - (Average Store Compliance for the period selected in the Compare To filter) / (Average Store Compliance for the period selected in the Compare To filter) 'Include_In_Compliance' is 'True' in the RetailVisitKpi object. |
|
| Change in Avg Share-of-Shelf Compliance | Percentage change in share-of-shelf compliance compared to a previous period. | (Average Share-of-Shelf Compliance for the period selected in the Duration filter) - (Average Share-of-Shelf Compliance for the period selected in the Compare To filter) / (Average Share-of-Shelf Compliance for the period selected in the Compare To filter) Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'ShareOfShelf' in the RetailVisitKpi object. |
|
| Change in Avg Facing Compliance | Percentage change in facing compliance compared to a previous period. | (Average Facing Compliance for the period selected in the Duration filter) - (Average Facing Compliance for the period selected in the Compare To filter) / (Average Facing Compliance for the period selected in the Compare To filter) Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'Facing' in the RetailVisitKpi object. |
|
| Change in Avg Promotion Compliance | Percentage change in promotion compliance compared to a previous period. | (Average Promotion Compliance for the period selected in the Duration filter) - (Average Promotion Compliance for the period selected in the Compare To filter) / (Average Promotion Compliance for the period selected in the Compare To filter) Filters applied: 'Include_In_Compliance' is 'True' and 'PromotionId' exists in the RetailVisitKpi object. |
|
| Change in Avg Inventory Compliance | Percentage change in inventory compliance compared to a previous period. | (Average Inventory Compliance for the period selected in the Duration filter) - (Average Inventory Compliance for the period selected in the Compare To filter) / (Average Inventory Compliance for the period selected in the Compare To filter) Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'Inventory' in the RetailVisitKpi object. |
|
| Change in Out-of-Stock Occurrences | Percentage change in out-of-stock occurrences compared to a previous period. | (Count of out-of-stock occurrences during the period selected in the Duration filter) - (Count of out-of-stock occurrences during the period selected in the Compare To filter) / (Count of out-of-stock occurrences during the period selected in the Compare To filter) Out-of-stock occurrences are the count of the RetailVisitKpi object records. Filters applied: 'ActualBooleanValue' is 'True' and 'Type' is 'OutOfStock' in the RetailVisitKpi object. |
Store Performance |
| Change in Out-of-Stock Compliance | Percentage change in out-of-stock compliance compared to a previous period. | (Average out-of-stock compliance for the period selected in the Duration filter) - (Average out-of-stock compliance for the period selected in the Compare To filter) / (Average out-of-stock compliance for the period selected in the Compare To filter) Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'OutOfStock' in the RetailVisitKpi object. |
|
| Change in Avg Price Compliance | Percentage change in price compliance compared to a previous period. | (Average price compliance for the period selected in the Duration filter) - (Average price compliance for the period selected in the Compare To filter) / (Average price compliance for the period selected in the Compare To filter) |
|
| Change in Out-of-Stock Compliance (Last Visit) | Percentage change in out-of-stock compliance compared to the prior visit. Prior visit is the visit before the last visit. |
(Average out-of-stock compliance during last visit) - (Average out-of-stock compliance during prior visit) / (Average out-of-stock compliance during prior visit) Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'OutOfStock' in the RetailVisitKpi object. |
|
| Change in Avg Inventory Compliance (Last Visit) | Percentage change in inventory compliance compared to the prior visit. | (Average inventory compliance during last visit) - (Average inventory compliance during prior visit) / (Average inventory compliance during prior visit) Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'Inventory' in the RetailVisitKpi object. |
|
| Change in Avg Promotion Compliance (Last Visit) | Percentage change in promotion compliance compared to the prior visit. | (Average promotion compliance during last visit) - (Average promotion compliance during prior visit) / (Average promotion compliance during prior visit) Filters applied: 'Include_In_Compliance' is 'True' and Type' is 'Facing' in the RetailVisitKpi object. |
|
| Change in Avg Facing Compliance (Last Visit) | Percentage change in facing compliance compared to the prior visit. | (Average facing compliance during last visit) - (Average facing compliance during prior visit) / (Average facing compliance during prior visit) Filters applied: 'Include_In_Compliance' is 'True' and Type' is 'Facing' in the RetailVisitKpi object. |
|
| Change in Avg Share-of-Shelf Compliance (Last Visit) | Percentage change in share-of-shelf compliance compared to the prior visit. | (Average share-of-shelf compliance during last visit) - (Average share-of-shelf compliance during prior visit) / (Average share-of-shelf compliance during prior visit) Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'ShareOfShelf' in the RetailVisitKpi object. |
|
| Change in Avg Store Compliance (Last Visit) | Percentage change in store compliance compared to the prior visit. | (Average store compliance during last visit) - (Average store compliance during prior visit) / (Average store compliance during prior visit) 'Include_In_Compliance' is 'True' in the RetailVisitKpi object. |
|
| Change in Price Compliance (Last Visit) | Percentage change in price compliance compared to the prior visit. | (Average price compliance during last visit) - (Average price compliance during prior visit) / (Average price compliance during prior visit) 'Include_In_Compliance' is 'True' and ‘Type’ is ‘Price’ in the RetailVisitKpi object. |
|
| Stores Without Orders | Store names and days since the last order was placed. If there are no orders in the last 3 months, then it’s the number of days since the store creation. | Days between 'ActivatedDate' and today. If there are no orders in last 3 months: Days between 'CreatedDate' and today. Filter applied: The value of the field 'ActivatedDate' is in the last 3 months. 'ActivatedDate' is a field in the Order object. 'CreatedDate' is a field in the RetailStore object. 'OrderId' is a field in the OrderItem object. |
|
| Out-of-Stock Occurrences | Number of out-of-stock occurrences in the selected period. | Count of records in the RetailVisitKpi object Filters applied: 'ActualBooleanValue' is 'True' and 'Type' is 'OutOfStock' in the RetailVisitKpi object. |
|
| Net Promoter Score | Net promoter score of the store. | Percentage of promoters - Percentage of detractors Percentage of promoters: (Records with 'ResponseValueBucket' field value as 'Promoters') / (Total records in the SurveyQuestionResponse object) Percentage of detractors: (Records with 'ResponseValueBucket' field value as 'Detractors') / (Total records in the SurveyQuestionResponse object) The value of the 'ResponseValueBucket' field is derived from the 'NumberValue' field in the SurveyQuestionResponse object. The 'NumberValue' field holds the NPS score. If the NPS score is in the range 8–10, 'ResponseValueBucket' is 'Promoter'. If the NPS score is in the range 0–6, 'ResponseValueBucket' is 'Detractor'. |
|
| Total Cases | Total number of cases for the store. | Count of total cases in the 'Id' field of the Case object. |
|
| Change in Total Cases | Percentage change in total number of cases compared to previous period. | (Count of total cases for the period selected in the Duration filter - Count of total cases for the period selected in the Compare To filter) / Count of total cases for the period selected in the Compare To filter | |
| Open Cases | Total number of open cases for the store. | Count of values in the 'Id' field of the Case object. Filter applied: 'IsClosed' is 'false' in the Case object. |
|
| Change in Net Promoter Score | Percentage change in Net Promoter Score compared to a previous period. | (Percentage of Net Promoter Score during the period selected in the Duration filter - Percentage of Net Promoter Score during the period selected in the Compare To filter) / Percentage of Net Promoter Score during the period selected in the Compare To filter | |
| High Priority Visits Not Completed | Number of high-priority visits not completed. | Count of values in the 'Visits' field. Filters applied: 'Status' is 'Abandoned' or 'Planned' and 'VisitPriority' is 'High'. 'Status', 'Visits', and 'VisitPriority' are fields in the Visit object. |
Store Performance |
| Change in High Priority Visits Not Completed | Percentage change in the number of high-priority visits not completed compared to a previous period. | (Count of visits during the period selected in the Duration filter) - (Count of visits during the period selected in the Compare To filter) / (Count of visits during the period selected in the Compare To filter) Filters applied: 'Status' is 'Abandoned' or 'Planned' and 'VisitPriority' is 'High'. 'Status', 'Visits', and 'VisitPriority' are fields in the Visit object. |
|
| Visit Frequency | Frequency of store visits. | Number of visits / Unique number of dates in the 'ActualVisitStartTime' field in the Visit object Filters applied: 'Status' is 'Abandoned' or 'Completed'. 'Status' and 'Visits' are fields in the Visit object. |
|
| Avg Order Value | Average value of orders placed during the selected period. | Sum of values in the 'TotalPrice' field / Count of distinct values in 'OrderId' field 'TotalPrice' and 'OrderId' are fields in the OrderItem object. |
Product Performance |
| Store Coverage | Number of stores in which products, categories, brands, or assortments are available. | Count of distinct Ids in the 'RetailStoreId' field / Count of all values in the 'Id' field 'RetailStoreId' is a field in the AssessmentTaskOrder object. 'Id' is a field in the RetailStore object. |
|
| Change in Avg Order Value | Percentage change in the average order value compared to the previous period. | (Sum of average order value during the period selected in the Duration filter - Sum of average order value during the period selected in the Compare To filter) / Sum of average order value during the period selected in the Compare To filter | |
| Change in Store Coverage | Percentage change in store coverage compared to a previous period. | (Store coverage during the period selected in the Duration filter - Store coverage during the period selected in the Compare To filter) / Store coverage during the period selected in the Compare To filter | |
| Orders for Newly Launched Products | Total number of orders placed for products launched in the last 180 days. | Count of distinct orders. Filters applied: 'CreatedDate' and 'ActivatedDate' are within the last 180 days. 'CreatedDate' is a field in the Product object. 'ActivatedDate' is a field in the Order object. |
|
| Days Until First Order | Number of days before the first order was placed. | Number of days between 'CreatedDate' and 'ActivatedDate'. Filters applied: 'CreatedDate' and 'ActivatedDate' are within the last 180 days. 'CreatedDate' is a field in the Product object. 'ActivatedDate' is a field in the Order object. |
|
| Days After first order | Number of days after the first order was placed. | Number of days between 'ActivatedDate' and today. Filter applied: 'ActivatedDate' is within the last 180 days. 'ActivatedDate' is a field in the Order object. |
|
| Completed Visits | Total visits completed by a sales rep. | Count of distinct Visit object records. Filter applied: 'Status' is 'Completed' in the Visit object. |
|
| Productive Visits | Total productive visits for a sales rep. | Count of distinct values in the 'Id' field of the Visit object where an order was placed. Filter applied: 'Status' is 'Completed' in the Visit object. |
|
| Visits | Total store visits for the selected period. | Count of visits. Filter applied: 'Status' is 'Completed' or 'Abandoned' in the Visit object. |
|
| Avg Visits Per Day | Average number of store visits each day. | Total visits / Number of days when a visit happened Filter applied: 'Status' is 'Completed' or 'Abandoned' in the Visit object. |
Sales Rep Performance |
| Avg Revenue Per Visit | Average revenue for each store visit. | Sum of values in the 'TotalPrice' field / Count of store visits Filter applied: 'Status' is 'Completed' or 'Abandoned' in the Visit object. 'TotalPrice' is a field in OrderItem object. |
|
| Route Compliance | Number of planned visits completed. | Count of completed Visits / Count of store visits where 'Status' is 'Completed' or 'Abandoned' in the Visit object. | |
| Visits Completed Percent | Percentage of visits completed by sales reps. | Count of completed visits / Count of total visits where 'Status' is 'Completed' or 'Abandoned' in the Visit object | |
| Tasks Completed Percent | Percentage of tasks completed. | Sum of 'Completed_Task_Count' / Count of records in RetailVisitKpi object where AssessmentTaskID exists | |
| Visits Completed Percent | Percentage of visits completed for the store. | Count of values in the 'Id' field of the Visit object where 'Status' is 'Completed' / Count of all 'Id' values in the Visit object | Store Insights |
| Percent of Productive Visits | Percentage of productive store visits for a sales rep. | Productive Visits / Total Visits Filter applied: 'Status' is 'Completed' or 'Abandoned' in the Visit object. A visit is considered as productive if at least one order is placed during the visit. |
|
| Total Visits | Total number of store visits for a sales rep. | Count of distinct values in the 'Id' field of Visit object. Filter applied: 'Status' is 'Completed' or 'Abandoned' in the Visit object. |
|
| Visits | Total store visits for the selected period. | Count of distinct values in the 'Id' field of the Visit object. Filter applied: 'Status' is 'Completed' or 'Abandoned' in the Visit object. |
|
| Avg Number of Tasks per Visit | Average number of tasks for each store visit. | Count of records in the RetailVisitKpi object where AssessmentTaskId exists / Count of distinct values in the 'Id' field of the Visit Object Filter applied: 'Status' is 'Completed' or 'Abandoned' in the Visit object. |
|
| Avg Visit Duration | Average duration of a store visit. | 'ActualVisitEndTime' - 'ActualVisitStartTime' Filter applied: 'Status' is 'Completed' or 'Abandoned' in the Visit object. 'ActualVisitEndTime', 'ActualVisitStartTime', and 'Status' are fields in the Visit object. |
|
| Days Since Last Visit | Number of days since the last store visit. | Days between the last visit date(ActualVisitStartTime) and today. 'ActualVisitStartTime' is a field in the Visit object. |
|
| Promotions (Live/Total) | Live and total promotions during the selected period. | Count of promotions running today and promotions in the period selected in the Duration filter. | Territory Performance |
| Accounts | Total number of accounts in the territory. | Count of distinct values in the 'Id' field of the Account object. | |
| Stores | Total number of stores in the territory. | Count of distinct values in the 'Id' field of the RetailStore object. |
|
| Products Sold | Number of products sold during the selected period. | Count of distinct values in the 'Product2Id' field associated with an 'OrderId'. 'Product2Id' and 'OrderId' are fields in the OrderItem object. |
|
| Avg Team Revenue | Average revenue of the sales team. | Sum of all values in the 'TotalPrice' field for a specific 'ParentRoleId'. 'TotalPrice' is a field in the OrderItem object. 'ParentRoleId' is a field in the UserRole object. |
|
| Change in Revenue | Percentage change in revenue for the selected period. | (Sum of Revenue during the period selected in the Duration filter - Sum of Revenue during the period selected in the Compare To filter) / Sum of Revenue during the period selected in the Compare To filter |
|
| Change in Quantity | Percentage change in quantity for the selected period. | (Sum of Quantity during the period selected in the Duration filter - Sum of Quantity during the period selected in the Compare To filter) / Sum of Quantity during the period selected in the Compare To filter | |
| Change in Products Sold | Percentage change in products sold compared to the previous period. | (Products sold during the period selected in the Duration filter - Products sold during the period selected in the Compare To filter) / Products sold during the period selected in the Compare To filter |
|
| Avg Products Sold Across Stores | Average number of products sold across all stores. | Average of distinct count of values in the 'Product2Id' field associated with an 'OrderId' 'Product2Id' and 'OrderId' are fields in the OrderItem object. |
|
| Avg Products Sold in Similar Stores | Average number of products sold in similar stores. | Average of distinct count of values in the 'Product2Id' field associated with an 'OrderId' for a store group. For similar stores, the average products sold for a specific store group are calculated based on the 'RetailLocationGroupId' field. 'Product2Id' and 'OrderId' are fields in the OrderItem object. 'RetailLocationGroupId' is a field in the RetailStore object. |
|
| Avg Weekly Revenue | Average weekly revenue of the territory. | Sum of values in the 'TotalPrice' field / Count of weeks selected in the Duration filter 'TotalPrice' is a field in the OrderItem object. |
|
| Change in Avg Weekly Revenue | Percentage in average weekly revenue when compared to previous period. | Avg Weekly Revenue for the period selected in the Duration filter - Avg Weekly Revenue for the period selected in the Compare To filter / Avg Weekly Revenue for the period selected in the Compare To filter | |
| Last Visit Duration | Duration of the last store visit. | 'ActualVisitEndTime' - 'ActualVisitStartTime' Filters applied: 'Status' is 'Completed' and 'Id' is the last visits Id. 'ActualVisitEndTime', 'ActualVisitStartTime', 'Status', and 'Id' are fields in the Visit object. |
|
| Last Visit Start Date | Start date of the last store visit. | Value of the 'ActualVisitStartTime' field. Filters applied: 'Status' is 'Completed' and 'Id' is the last visits Id. 'ActualVisitStartTime', 'Status', and 'Id' are fields in the Visit object. |
|
| Prior Visit Duration | Duration of the prior store visit. Prior visit is the visit before the last visit. |
'ActualVisitEndTime' - 'ActualVisitStartTime' Filters applied: 'Status' is 'Completed' and 'Id' is the prior visits Id. 'ActualVisitEndTime', 'ActualVisitStartTime', 'Status', and 'Id' are fields in the Visit object. |
|
| Prior Visit Start Date | Start date of the prior visit. Prior visit is the visit before the last visit. |
Value of the 'ActualVisitStartTime' field. Filters applied: 'Status' is 'Completed' and 'Id' is the prior visits Id. 'ActualVisitStartTime', 'Status', and 'Id' are fields in the Visit object. |
|
| Change in Products Sold | Percentage change in the number of products compared to the prior visit. | (Unique products sold during the last store visit - Unique products sold during the prior visit) / Unique products sold during the prior visit | |
| Change in Tasks Completed Percent | Percentage change in the tasks completed compared to the prior visit. | (Percentage of tasks completed during the last visit - Percentage of tasks completed during the prior visit) / Percentage of tasks completed during the prior visit | |
| Change in Total Tasks | Percentage change in total tasks compared to the prior visit. | (Count of total tasks during last visit - Count of total tasks during prior visit) / Count of total tasks during prior visit | |
| Total Tasks | Total tasks for the last store visit. | Count of records in RetailVisitKpi object where AssessmentTaskID exists. 'Id' is a field in the Visit object. 'AssessmentTaskID' is a field in the AssessmentTask object. |
|
| Tasks Completed | Total tasks completed during the last store visit. | Sum of 'Completed_Task_Count'. Filter applied: 'Id' is the last visit’s Id and 'Status' is 'Completed' in the Visit object. |
|
| Required Tasks | Total required tasks for the last store visit. | Count of records in RetailVisitKpi object where AssessmentTaskID exists. Filter applied: 'IsRequired' is 'true' and 'Id' is the last visit’s Id. |
|
| Change in Required Tasks | Percentage change in total required tasks compared to the prior visit. Prior visit is the visit before the last visit. |
(Count of required tasks during last visit - Count of required tasks during prior visit) / Count of required tasks during prior visit Filter applied: 'IsRequired' is 'true'. |
|
| Required Tasks Completed | Total required tasks completed during the last store visit. | Sum of 'Completed_Task_Count'. Filter applied: 'IsRequired' is 'true' and 'Id' is the last visit’s Id. |
|
| Change in Required Tasks Completed | Percentage change in total required tasks completed compared to the prior visit. Prior visit is the visit before the last visit. |
(Sum of required tasks completed during the last visit - Sum of required tasks completed tasks during the prior visit) / Sum of required tasks completed tasks during the prior visit Filter applied: 'IsRequired' is 'true' and 'Status' is 'Completed' in the Visit object. |
|
| Avg Share of Shelf (Actual) | Actual share of shelf of the store. | Average of Actual Share of Shelf Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'ShareOfShelf' in the RetailVisitKpi object. |
Store Insights |
| Avg Share of Shelf (Target) | Target share of shelf of the store. | Average of Target Share of Shelf Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'ShareOfShelf' in the RetailVisitKpi object. |
|
| Avg Share of Shelf Percentage (Actual) | Actual share of shelf as a percentage of the target. | Avg Share of Shelf (Actual) / Avg Share of Shelf (Target) * 100 Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'ShareOfShelf' in the RetailVisitKpi object. |
|
| Avg Facing (Actual) | Actual facing of the store. | Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'Facing' in the RetailVisitKpi object. |
|
| Avg Facing (Target) | Target facing of the store. | Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'Facing' in the RetailVisitKpi object. |
|
| Actual Facing Percentage | Actual facing as a percentage of the target. | Avg Facing (Actual) / Avg Facing (Target) * 100 Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'Facing' in the RetailVisitKpi object. |
|
| Avg Price (Actual) | Actual Price for the store. | Filters applied: 'Include_In_Compliance' is 'True' and, 'Type' is 'Price' in the RetailVisitKpi object. |
|
| Avg Price (Target) | Target Price for the store. | Filters applied: 'Include_In_Compliance' is 'True' and, 'Type' is 'Price' in the RetailVisitKpi object. |
|
| Actual Price Percentage | Actual Price as a percentage of the target. | Avg Facing (Actual) / Avg Facing (Target) * 100 Filters applied: 'Include_In_Compliance' is 'True' and, 'Type' is 'Price' in the RetailVisitKpi object. |
|
| Avg Promotion (Actual) | Actual promotion of the store. | Filters applied: 'Include_In_Compliance' is 'True' and 'PromotionId' exists in the RetailVisitKpi object. |
|
| Avg Promotion (Target) | Target promotion of the store. | Filters applied: 'Include_In_Compliance' is 'True' and 'PromotionId' exists in the RetailVisitKpi object. |
|
| Actual Promotion Percentage | Actual promotion as a percentage of the target. | Avg Promotion (Actual) / Avg Promotion (Target) * 100 Filters applied: 'Include_In_Compliance' is 'True' and 'PromotionId' exists in the RetailVisitKpi object. |
|
| Avg Inventory (Actual) | Actual inventory of the store. | Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'Inventory' in the RetailVisitKpi object. |
|
| Avg Inventory (Target) | Target inventory of the store. | Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'Inventory' in the RetailVisitKpi object. |
|
| Actual Inventory Percentage | Actual inventory as a percentage of the target. | Avg Inventory (Actual) / Avg Inventory (Target) * 100 Filters applied: 'Include_In_Compliance' is 'True' and 'Type' is 'Inventory' in the RetailVisitKpi object. |
|
| Out-of-Stock Occurrences (Actual) | Actual out-of-stock occurrences of the store. | Average of all values in the field 'ActualBooleanValue'. Filters applied: 'ActualBooleanValue' is 'True' and 'Type' is 'OutOfStock' in the RetailVisitKpi object. |
|
| Out-of-Stock Occurrences (Target) | Target out-of-stock occurrences of the store. | Average of all values in the 'TargetBooleanValue' field Filters applied: 'TargetBooleanValue' is 'True' and 'Type' is 'OutOfStock' in the RetailVisitKpi object. |
|
| Actual Out-of-Stock Occurrences Percentage | Actual out-of-stock occurrences as a percentage of the target. | Out-of-Stock Occurrences (Actual) / Out-of-Stock Occurrences (Target) * 100 Filters applied: 'ActualBooleanValue' is 'True' and 'Type' is 'OutOfStock' in the RetailVisitKpi object. |
| Metric | Calculation |
|---|---|
| Average Compliance Percentage | When the 'DataType' is 'Number', then compliance is calculated as follows: 100 - (ActualIntegerValue - TargetIntegerValue) / (TargetIntegerValue * 100). When the 'DataType' is 'Decimal', then compliance is calculated as follows: 100 - (ActualDecimalValue - TargetDecimalValue) / (TargetDecimalValue * 100). When the 'DataType' is 'Boolean', then compliance is calculated as follows: 100 - ((ActualBooleanValue - TargetBooleanValue) * 100). When ‘Type’ is ‘Price’, ‘DataType’ is either 'Number', or ‘Decimal’, and the actual value is equal to the target value, then the compliance percentage is 100, otherwise it's 0. 'DataType' is a field in the AssessmentIndicatorDefinition object. 'ActualIntegerValue', 'ActualDecimalValue', 'ActualBooleanValue', 'TargetIntegerValue', 'TargetDecimalValue', and 'TargetBooleanValue' are fields in the RetailVisitKpi object. |
| Completed Task Count | 'Completed_Task_Count' is '1' when a value exists in any of these fields:
If none of these fields have a value, then 'Completed_Task_Count' is '0'. |
| Average of Actual Value | When 'DataType' is 'Number' or 'Decimal': Average of all values in the fields 'ActualIntegerValue' or 'ActualDecimalValue'. When 'DataType' is 'Boolean': Average of all values in the 'ActualBooleanValue' field. 'DataType' is a field in the AssessmentIndicatorDefinition object. 'ActualIntegerValue', 'ActualDecimalValue', 'ActualBooleanValue', and 'Type' are fields in RetailVisitKpi object. |
| Average of Target Value | When 'DataType' is 'Number' or 'Decimal': Average of all values in the fields 'TargetIntegerValue' or 'TargetDecimalValue'. When 'DataType' is 'Boolean': Average of all values in the 'TargetBooleanValue' field. 'DataType' is a field in the AssessmentIndicatorDefinition object. 'TargetIntegerValue' 'TargetDecimalValue' 'TargetBooleanValue', and 'Type' are fields in RetailVisitKpi object. |
'Include_In_Compliance' is 'True' when:
'DataType' is 'Number', a value exists in the 'ActualIntegerValue' field, and 'Type' is 'ShareOfShelf', 'Inventory', ‘Price’ or 'Facing'.
'DataType' is 'Decimal', a value exists in the 'ActualDecimalValue' field, and 'Type' is 'ShareOfShelf', 'Inventory', ‘Price’ or 'Facing'.
'DataType' is 'Boolean', a value exists in the 'ActualBooleanValue' field, and either 'Type' is 'OutOfStock' or a value exists in the 'PromotionId' field.
In all other cases, 'Include_In_Compliance' is 'False'.

