Overview
eMite BI platform supports KPI creation/maintenance through its KPI dashboard. Anyone has been given access to KPI dashboard can create/edit/delete/publish KPI(s) and/or use KPI(s) inside other KPI(s). Also within each KPI creation/maintenance, we are able to add as much as we want, with the ability to apply business logic filters on top of existing data sources. The data sources are eMite's RTBI data structures - and not the customer's data sources.
Access KPI Dashboard
There are two options to access KPI Admin dashboard page:
1. Web Admin Dashboard Page
Go to eMite Web admin page.
From Edit Page menu, select Add Content.
Click Add Row button.
On the Select Datablock page, select KPI Admin then follow the Add button. You should now see the new KPI Admin page added. The page can be resized by dragging the resize tool on the right corner of the page.
2. Standard Method
The eMite web dashboard refreshes all the pages automatically (including the one you have already opened within KPI Admin page), or you may need to navigate through other pages. When this happens, you may face an RTBI data source structure's reloading experience, or you may even lose your page if you did not save it. Some users want to create/change/publish KPI(s) reports and quickly test the result. These users are likely to experience the reloading issue more than others, as they need regular page navigation. In this case, you should use the direct KPI Admin URL in another browser or a separate page on the current browser.
To find the KPI Admin Dashboard URL, go through the first option, then find the URL in header. Or use your dashboard URL and replace “dashboard” with “KPI”.
e.g. from https://domain-name/emite/instance-name/dashboard/ to https://domain-name/emite/instance-name/KPI/
Contact your eMite administrator or eMite consultants if the page failed to open, probably the settings in back-end have not been configured correctly.
Components/Sections of the KPI Admin Dashboard
There are three main components on the KPI Admin dashboard page. These allow you to add, edit, delete, and/or publish KPIs in eMite platform.
Cube & KPI Selection
Templates & Settings
Reports
Any creation, deletion, and edit will be auto-saved - so be careful when making changes within KPI Admin dashboard. The auto-save does not perform the auto-publish (where you can see changes in report designers). The KPI will only be published when the UpdateKPI button is selected (see below on how to Publish).
Cube & KPI Selection
Click the expand button to collapse or expand the options.
Cubes | The Cube is a report representation of your single or multiple data sources. In eMite, this sometimes called a Fact Query. The Cube can be selected from the system dropdown menu. |
KPI Groups | The KPI Group is a group that contains one or many KPIs.
The system will not allow you to delete the group if there are KPIs in the KPI group. You must delete each individual KPI within the group before the group can be deleted. |
KPIs |
|
Templates & Settings
Click the expand button to collapse or expand the options.
Template
Predefined templates can be used for predefined calculations. This is the standard mode of KPI calculation where we use predefined KPI templates to create KPIs.
Templates allow you to select the type of formula/calculation for the KPI. It contains one or two sets (maximum of two, Set A or Set B or both) to represent the KPI logic. Each set carries one or more logic, and each logic works as a filter on top of data source. Each logic (filter) contains two parts - the Measure, and the Dimension member(s).
For example, Callback Handled: | |
---|---|
The [Measures].[Handled Count] means that we are trying to count the handled calls where "Handled Count" is the measure. The [InitiationMethod].[InitiationMethod].[CALLBACK] means that we are looking for Callback (Initiation method dimension member) calls. The combination of the measure and dimension filter means that we are trying to count the number of Callback Handled. |
eMite currently supports 7 types of calculation templates and an Advanced Option. Each type of calculation requires its own requirements (one or two Sets).
KPI Template | Description | Example |
---|---|---|
SUM(A) = X | This is the sum aggregation of records for a set (Set A) of logic. | "Number of PI Incidents", which shows the sum of incident records by P1 priority. |
A) / SUM(B) * 100 = X% | This type is used to create percentage KPIs.
The percentage is a value from between 0 to 100. However, eMite % KPI calculates the % depending on Set A and Set B. | % of Answered Calls, which shows a percentage of number of calls were answered versus the total calls offered to the queue. |
SUM(A) + SUM(B) = X | The result of this type of KPIs would be the sum of results from Set A and Set B. Each Set can have one or many logics (filter). If in case, you are looking for Set A + Set B + Set C, you need to first build your first KPI (for example call it MyFirstKPI) as Set A + Set B, then publish it, then reload the KPI Amin (to make sure the new KPI, MyFirstKPI, has come through to the list of measures). Then you can build second KPI as Set A + Set B, where Set A (or Set B) can use the new KPI, MyFirstKPI, as your measure. | Total Handle Time4 = Talk Time + Hold Time + After Call Work Time In this case, we create 2 KPIs.
|
SUM(A) - SUM(B) = X | Similar to SUM(A) + SUM(B), but here the final result is the Set A - Set B |
|
SUM(A) * SUM(B) = X | Similar to SUM(A) + SUM(B), but here the final result is the Set A multiply Set B |
|
SUM(A) / SUM(B) | Similar to SUM(A) + SUM(B), but here the final result is the Set A divided by Set B | |
SUM(A) = X (include 0) | This is same as SUM(A) = X, but has one more feature - and that is, if the result is empty (null value), it gets converted to zero. |
|
Advanced | This is an advanced mode of KPI calculation where none of the above templates covered your calculation type. Here, you can put your own MDX query (the query language of Analytic structures - for more clarification, refer to: https://msdn.microsoft.com/en-us/library/ms144785.aspx) and system will try to parse, run, and return a numeric value of that.
|
Visible
When set to “false” and after publishing your changes, nobody will see that KPI in reporting side - so it is like a hidden KPI. If a KPI does not need to be used by users/reports through dashboard, it can be used to build a second level of KPIs.
As an example, imagine you want to calculate the employees' low performance cost (where this KPI can be seen and used from dashboard), but that might use two separate KPIs -
one is a fixed value KPI (like $1 per unit of low performance), and you approximately prefer to hide it of reporting side,
and the second one which is the actual low performance value KPI, calculates the performance.
Format String
This feature is to wrap the KPI value to a specific format. eMite supports following formats. This feature helps to show the values in proper format in all places like status block, cube report.
"#,##0.00 %;-#,##0.00 %"
"#,##0.00;-#,##0.00"
"$#,##0.00;-$#,##0.00"
"0"
"Currency"
"d/MM/yyyy"
"dddd, d MMMM yyyy"
"Long Date"
"Percent"
"Short Date"
HH:mm:ss
e.g. % Answered KPI
Status KPI
When creating a KPI, you can define the expected Thresholds Boundaries for that KPI, and what color (Status) the KPI will represent in the dashboard.
There are scenarios where the current KPI value (call it KPI A) is not useful for color (status) calculation. Instead, we need another KPI (call it KPI B) to calculate the value which will be used for threshold boundaries. In this case, KPI A does not need to carry any threshold boundaries (you can delete or leave the default boundaries), instead, KPI B must have the boundaries and KPI A must point to B from Status KPI field.
e.g. A status block to show the Number of Answered Call, and show the color of the number based of the % of Calls Answered.
1. In this case, we need to create 2 KPIs separately.
Answered Calls | % Answered Set up the threshold boundaries based on your requirement. In this example;
|
2. Select % Answered as the Status KPI in the Answered Calls KPI
3. If you select the Answered Calls KPI in a Status Block and the “Status” as font color, the color of the value will be shown based on the % Answered KPI.
In this example the value is in green, therefore >=90% of the calls answered.
Status color can be set to the font color, background color, header color, etc. in the status block.
Trend KPI
Trend KPI is used to find how the KPI is performing during time - Is it getting better? worse? or even not changing?
The "Trend Value" will dictate the direction of the Trend.
Any value bigger than 0 dictates an UP ▲,
below than 0 for DOWN ▼,
and equal to 0 for no change ▄.
The "Trend Value" comes from dividing current value of KPI and its previous value if no second KPI has been selected in TrendKPI. Otherwise, the value of the second KPI will represent the current KPI's Trend Value. But the color of the Trend still comes from a threshold boundary of second KPI (listed in TrendKPI) or there wouldn't be any color!
The UP and DOWN can carry just two colors: Green and Red, representing GOOD or BAD.
To see the KPI's direction, you can use a eMite's Score Board datablock and check the KPI's Trend.
As discussed at the start of the article, a KPI has many angles and Trend is one of them. Even knowing a KPI value and its status, but there are reasons to find how the KPI is performing during time - is that getting better, worse or even not changing? Knowing the team performance is good, but it is also useful to know when the performance is dramatically moving down. To see the KPI's direction, you can use a eMite's Score Board and check the KPI's Trend.
Target KPI
Target KPI is a value which helps you understand how close your KPI are from what you are expecting as your desire value. How much you are expecting to sell in current financial year is a Target for your selling KPI. Same as Trend KPI, you can see that value in Score Board datablock and if no KPI has been linked to TargetKPI of a KPI, the Target would come from the first value of threshold boundaries.
Description
Just put your own description about the KPI and explain the logic. Anyone who looks at your KPI can/will understand the reason and logic of your KPI with Description.
Threshold Boundaries
The threshold boundaries are what you are expecting your KPI to look like.
E.g. % of Answered Calls - the percentage of calls answered in comparison to the number of calls received by the call center.
The threshold boundaries help you to configure the color-code for each boundary limits. In this example:
90 or greater than 90% of the calls answered = Green
80 or greater than 80% of the calls answered = Orange
Below 80% of calls answered = Red
Although, the three statuses, Green/Warning/Alarm are very popular, in eMite, there is no limitation on how many expression lines/colors you want to have. You are welcomed to have nothing or even 10 lines. You can pass your own desire expression values and colors as well, all would be automatically and with no delay reflected into UI components.
Setting Up Threshold Boundaries Based on Another Dimension
E.g. Setting up threshold boundaries for % Answered KPI based on Queue Name.
In this example there are 3 queues:
Queue Name | Threshold Boundaries |
---|---|
Basic Queue | >=90% of calls answered = Green >=80% - <90% of calls answered = Orange <80% = of calls answered = Red |
Sales | >=80% of calls answered = Green >=70% - <80% of calls answered = Orange <70% = of calls answered = Red |
Support | >=70% of calls answered = Green >=60% - <70% of calls answered = Orange <60% = of calls answered = Red |
In this case, you need to:
Select a member of a dimension (BasicQueue from QueueName).
Click Add button of Threshold Boundaries.
Enter your own expression later as shown in the screenshot below.
Continue the same steps to setup threshold boundaries for each queue.
Reports
Logic (Filters)
Filters allow you to include additional filters over the measures. A KPI can have multiple filters. E.g.
KPI - Outbound Calls Handled Today
Measure – Handled Count
Filter – Initiation Method = Outbound and DisconnectedTimeStamp is Today
Date Dimension
When you choose a date dimension, you need to choose one level of Date, as Date dimensions have many levels like Date, Week, Month, Month-Year.
Date Dimension, Special Cases
eMite uses a lot of built-in functions to empower the query functionality.
List of special date function commands and examples:
Keyword Function for Date Dimensions | Example |
---|---|
@Today | [InitiationTimestamp].[Date]=@Today |
@Now | [InitiationTimestamp].[Hour] =@Now |
@Yesterday | [InitiationTimestamp].[Date]=@Yesterday |
@ThisMonthAndYear | [InitiationTimestamp].[MonthAndYear] = @ThisMonthAndYear |
@LastMonthAndYear | [InitiationTimestamp].[Date].[MonthAndYear] = @LastMonthAndYear |
@LastYear | [InitiationTimestamp].[Year] >= @LastYear |
@ThisYear | [InitiationTimestamp].[Year] < @ThisYear |
@ThisWeek | [InitiationTimestamp].[Date] >= @ThisWeek |
@OneWeek | [InitiationTimestamp].[Date] >= @OneWeek |
@LastWeek | [InitiationTimestamp].[Date] > @LastWeek |
@LastHours | [InitiationTimestamp].[Hour] >= @Last72Hours |
@LastDays | [InitiationTimestamp].[Date] >= @Last2Days |
@TodayAndLastDays | [InitiationTimestamp].[Date] <= @TodayAndLast3Days |
@NextMonthAndYear | [InitiationTimestamp].[MonthAndYear] <= @NextMonthAndYear |
@NextYear | [InitiationTimestamp].[Year] <= @NextYear |
@NextWeek | [InitiationTimestamp].[Date] < @NextWeek |
@NextHours | [InitiationTimestamp].[Hour] > @Next48Hours |
@NextDays | [InitiationTimestamp].[Date]<= @Next4Days |
@TodayAndNextDays | [InitiationTimestamp].[Date]<= @TodayAndNext5Days |
@ThisDayLastYear | [InitiationTimestamp].[Date]=@ThisDayLastYear |
@ThisMonthLastYear | [InitiationTimestamp].[MonthAndYear] = @ThisMonthLastYear |
@ThisDayOfWeek | [InitiationTimestamp].[Day Of Week] = @ThisDayOfWeek |
Text Search
Text Search functions can be used on String fields.
Keyword Function | Example | Description |
---|---|---|
@TextSearch | [description].[description].[@TextSearch(Password Reset)] | In this example any of the text after the @TextSearch Keyword and the brackets will be searched in the respective column. |
[description].[description].[@TextSearch(Email Service Issue)] | Text search will work with any number of words. In the above example columns containing the 3 words will be returned. |
Nested KPIs
Nested KPIs allows to create more sophisticated calculations.
Example: Contact handle time = Interaction Duration + Hold Duration + After Call Work Duration
Select the Cube emite_awsContactTraceRecords.
Under KPI Groups, enter the KPI name “Agent interaction and hold time”.
Click Add button. / Under Templates & Settings, select the template “SUM{A}+SUM{B}=X”.
Select “AgentInteractionDuration Sum” for Set A, and “CustomerHoldDuration Sum” for Set B.
Click Update KPI to publish the KPI.
Refresh the KPI admin page to reload the new measure “Agent interaction and hold time”.
Select the Cube emite_awsContactTraceRecords.
Under KPIs, enter the KPI name “Contact Handle Time”.
Click Add button. / Under Templates & Settings, select the template SUM{A}+SUM{B}=X.
Select ‘‘Agent interaction and hold time” (KPI which was created in the previous step) for Set A, and “AgentAfterContactWorkDuration Sum” for Set B.
Click Update KPI to publish the KPI.
Publish
Once you created/edited/deleted your KPIs, you need to publish them to RTBI engine.
Remember, any change in KPI Admin is auto-save EXCEPT publishing to RTBI.
To do that, simply click UpdateKPI button from section one. The publish method will analyze all KPIs and their logic, and will notify you if there is an error and ask you to fix them before publishing anything.
Multiple Source and Connections
This feature helps you create KPIs across different Index/Fact Queries.
When "Enable Multiple Source" is checked, Multi Source and Connections dropdown will show if one user domain is mapped to multiple index groups.
Example 1: Show Incident Count and Problem Count on the same graph
Incident Count is a measure from the index emite_incident
Problem Count is a measure from the index emite_problem
To create a cube report, we need both the measures on the same cube as you can only choose on cube from the dropdown when create a cube report.
Therefore, we create the “Problem Count” measure inside incident cube.
12. Select the Cube emite_incident.
13. Under KPIs, enter the KPI name “Problem Count”.
14. Click Add button. / Under Templates & Settings, select the template SUM{A}=X.
14. Tick the Enable Multiple Source checkbox.
15. Select the Cube emite_problem.
16. Select the measure name.
17. Click Add to add Set A.
18. Click Update KPI to publish the KPI.
“Problem Count” now can be selected under emite_incident cube.
Example 2.: Aggregate both Incident and Problem Count for Today
Select the Cube emite_incident.
Under KPI Groups, enter the KPI name “Incident And Problem Count”.
Click Add button. / Under Templates & Settings, select the template SUM{A}+SUM{B}=X
Select “emite_incident Count’ measure and ‘sys_created_on’ date as a filter.
Click Add button for Set A. / Edit the filter and update date function “@Today” as shown on the screenshot below.
Tick the Enable Multiple Source checkbox.
Select the Cube emite_problem.
Select “emite_problem Count” measure and “sys_created_on” date as a filter.
Click ‘Add button for Set B. / Edit the filter and update date function “@Today” as shown on the screenshot below.
Click Update KPI to publish the KPI.
“Incident and Problem Count” now can be selected under emite_incident cube.
Incident Count = 54
Problem Count = 25
Incident And Problem Count = 54+ 25 = 79