Nimbus KPI Calculations

Nimbus gathers KPI (Key Performance Indicators) based on service sessions and user sessions. Their calculation is explained on this page.

Daily service reporting metrics (KPI) gathered in the Nimbus portal

 

ūü§Ē Why gather service and user KPI?¬†

  • Service KPI are interesting for call center managers¬†to determine which services are (in)efficient.
  • User KPI are interesting for supervisors and service owners¬†to determine how well their team performs.

ūü§Ē The difference between service and user sessions on a technical level is explained on page¬†Nimbus Reporting Model.

KPI Calculations 

This chapter describes DAX* measures available in the Nimbus Power BI model, as used in our Power BI Template.

*Also see: https://docs.microsoft.com/en-us/dax/

HOW TO READ

Some of the KPI measures described below contain name parts put in brackets. They are added help to locate all measures which sum up to a full set (total) or are build using similar filtering criteria.

For example:

  • (OG) = Outcome Group, or (Outcome) for short
  • There are 4 measures. Each of them are calculated as subset of¬†TotalSessions¬†ended with a certain outcome group.¬†¬†¬†¬†¬†

    Here is an example with the "Handled by User" Outcome group:
CODE
                                                                                ő£HandledByUser(OG) =
                                                                                CALCULATE (
                                                                                [ő£TotalSessions],
                                                                                FILTER (
                                                                                VALUES ( ServiceSessionOutcomeGroups[OutcomeGroup] ),
                                                                                ServiceSessionOutcomeGroups[OutcomeGroup] = "Handled By User"
                                                                                )
                                                                                )
ūüí°You can find other measures of this outcome group by using the "Fields" filter:

 

 

Service Session KPI

 Service KPI are used by call center managers to view and analyze general service performance, help to adjust service settings and traits.

Typical Service KPI questions answered are:

  • How many tasks accepted by my Service?
  • How many tasks were Handled?
  • How many tasks were hang-up in queue?
  • What is quality of service? Do I keep SLA?
  • How many tasks are handled by first accepted agent?
  • Average time customers spend in queue?
  • Average time needed to handle customer call?
  • Compare Services between each other.
  • Compare Service performance between multiple time periods.
  • What are possible issues diminishing service performance?
KPI Description DAX Chart Color code
%AcceptanceSLA Percentage of calls handled by users in SLA against all calls handled by users DIVIDE([ ő£ HandledByUserSLA],[ ő£ HandledByUser]) * 100

vivid blue

#0755CB

%Handled Rate Percentage of handled calls to total calls DIVIDE([ ő£ HandledSessions],[ ő£ TotalSessions])*100

dark ming

#33565B

%HangupSLA Percentage of calls customer hang up in SLA against all hang up calls DIVIDE([ ő£ HangupInQueueSLA],[ ő£ HangupInQueue]) * 100

honey flower

#4F5186

%Reachability Percentage of calls handled by users towards all queued calls DIVIDE([ ő£ HandledByUser],[ ő£ QueuedSessions])*100

jungle green

#33946C

√ėIvrTimeS Average¬†Ivr¬†time in seconds INT(CALCULATE(AVERAGE(ServiceSessions[TotalIvrTime]),¬†ServiceSessions[TotalIvrTime]>0))

ash grey

#B3B5B8

√ėQueueTimeS Average Queue time in seconds INT(CALCULATE(AVERAGE(ServiceSessions[TotalQueueTime]),¬†ServiceSessions[TotalQueueTime]>0))

dark old brick

#824344

√ėTotalConnectedTimeS Average connected time per session INT(CALCULATE(AVERAGE(ServiceSessions[TotalConnectedTime]),¬†ServiceSessions[TotalConnectedTime]>0))

dark jungle green

#2C7158

√ėHoldTimeS Average hold time INT(CALCULATE(AVERAGE(ServiceSessions[HoldTime]), ServiceSessions[HoldTime]>0))

fawn orange dark

#AD782F

ő£ HandledByUser Summary of calls handled by users

CALCULATE ( [ ő£ TotalSessions],

FILTER ( VALUES (ServiceSessionOutcomeGroups[OutcomeGroup]), ServiceSessionOutcomeGroups[OutcomeGroup] = "Handled By User" ) )

mountain meadow 

#2ABA68

ő£ HandledByUserSLA Summary of calls handled by users in SLA

CALCULATE (

[ ő£ HandledByUser],

FILTER ( VALUES ( ServiceSessions[IsUnderSla] ), ServiceSessions[IsUnderSla] = TRUE() ) )

dark mountain meadow 

#258C55

ő£ HangupInQueue Summary of queued calls customer hang up

CALCULATE (

[ ő£ QueuedSessions],

FILTER (

VALUES ( ServiceSessionOutcomeGroups[OutcomeGroup]),

 ServiceSessionOutcomeGroups[OutcomeGroup] = "Hangup By Customer"

)

)

bittersweet red

#C5314B

ő£ HangupInQueueSLA Summary of queued calls customer hang up in SLA

CALCULATE (

[ ő£ HangupInQueue],

FILTER ( VALUES ( ServiceSessions[IsUnderSla] ), ServiceSessions[IsUnderSla] = TRUE() )

)

dark bittersweet red

#922C40

ő£IvrTime Summary of¬†Ivr¬†time SUM(ServiceSessions[TotalIvrTime])

ash grey

#B3B5B8

ő£ NotHandledSessions Summary on not handled sessions (ServiceSessionOutcome.MeansHandled¬†= 1)

CALCULATE (

[ő£TotalSessions],

FILTER (

VALUES ( ServiceSessionOutcomes[MeansHandled] ),

ServiceSessionOutcomes[MeansHandled] = FALSE()

)

)

light old brick

#CB8E8D

ő£ QueuedSessions Summary of queued sessions (QueueTime¬†>0)

CALCULATE (

[ő£TotalSessions],

FILTER (

VALUES ( ServiceSessions[TotalQueueTime] ),

ServiceSessions[TotalQueueTime] > 0

)

)

honey flower

#4F5186

ő£QueueTime Summary¬†Of¬†Queue time SUM(ServiceSessions[TotalQueueTime])

dark old brick

#824344

ő£HoldTimeS Summary of hold time SUM(ServiceSessions[HoldTime])

fawn orange dark

#AD782F

ő£TotalConnectedTime Summary of connected time SUM(ServiceSessions[TotalConnectedTime])

dark jungle green

#2C7158

ő£TotalSessions Total count of calls (ServiceSession[ID])

dark gunmetal

#1C2129

ő£HandledBySystem(OG) Summary of sessions "Handled By System" outcome group CALCULATE (¬†¬†¬†
[ő£TotalSessions] ,¬†¬†¬†
FILTER (   
VALUES ( ServiceSessionOutcomes [OutcomeGroup] ),   
ServiceSessionOutcomes [OutcomeGroup] = "Handled By System"   
)   
)

light mountain meadow 

#74D29D

ő£HangupByCustomer(OG Summary of sessions "Hangup By Customer " outcome group CALCULATE (¬†¬†¬†
[ő£TotalSessions],¬†¬†¬†
FILTER (   
VALUES ( ServiceSessionOutcomes[OutcomeGroup]),   
ServiceSessionOutcomes[OutcomeGroup] = "Hangup By Customer"   
)   
)

old brick

#AF5250

ő£NotHandled(OG) Summary of sessions "Not Handled"¬†outcome group CALCULATE (¬†¬†¬†
[ő£TotalSessions] ,¬†¬†¬†
FILTER (   
VALUES ( ServiceSessionOutcomes [OutcomeGroup] ),   
ServiceSessionOutcomes [OutcomeGroup] = "Not Handled"   
)   
)

light old brick

#CB8E8D

ő£CustomerHangupBeforeAccept(Outcome) Summary of sessions "Customer Hangup Before Accept" outcome CALCULATE (¬†¬†¬†
[ő£TotalSessions] ,¬†¬†¬†
FILTER (   
VALUES ( ServiceSessionOutcomes [Outcome] ),   
ServiceSessionOutcomes [Outcome] = "Customer Hangup Before Accept"   
)   
)

fawn orange

#EC9E32

ő£CustomerHangupInIvr(Outcome) Summary of sessions "Customer Hangup In Ivr" outcome CALCULATE (¬†¬†¬†
[ő£TotalSessions] ,¬†¬†¬†
FILTER (   
VALUES ( ServiceSessionOutcomes [Outcome] ),   
ServiceSessionOutcomes [Outcome] = "Customer Hangup In Ivr"   
)   
)

pale copper

#D8673F

ő£CustomerHangupInQueue(Outcome) Summary of sessions "Customer Hangup In Queue", "Customer Hangup In Ivr After Queue" outcome CALCULATE (¬†¬†¬†
[ő£TotalSessions] ,¬†¬†¬†
FILTER (   
VALUES ( ServiceSessionOutcomes [Outcome] ),   
ServiceSessionOutcomes [Outcome] IN { "Customer Hangup In Queue" , "Customer Hangup In Ivr After Queue" }   
)   
)

bittersweet red

#C5314B

ő£FirstCallResolution(Outcome)

Summary of sessions

"User Accepted" outcome

CALCULATE (   
[ő£TotalSessions] ,¬†¬†¬†
FILTER (   
VALUES ( ServiceSessionOutcomes [Outcome] ),   
ServiceSessionOutcomes [Outcome] = "User Accepted"   
)   
)
Not in use
ő£Voicemail(Outcome) Summary of sessions "Workflow Conversation Recorded" outcome CALCULATE (¬†¬†¬†
[ő£TotalSessions] ,¬†¬†¬†
FILTER (   
VALUES ( ServiceSessionOutcomes [Outcome] ),   
ServiceSessionOutcomes [Outcome] = "Workflow Conversation Recorded"   
)   
)
Not in use
ő£WorkflowExternalTransfer(Outcome) Summary of sessions "Workflow External Transfer Successful" outcome CALCULATE (¬†¬†¬†
[ő£TotalSessions] ,¬†¬†¬†
FILTER (   
VALUES ( ServiceSessionOutcomes [Outcome] ),   
ServiceSessionOutcomes [Outcome] = "Workflow External Transfer Successful"   
)   
)

ming

#3D6D71

ő£WorkflowInternalTransfer(Outcome)

Summary of sessions

"Workflow Internal Transfer Successful"

outcome

CALCULATE (   
[ő£TotalSessions],¬†¬†¬†
FILTER (   
VALUES ( ServiceSessionOutcomes[Outcome] ),   
ServiceSessionOutcomes[Outcome] = "Workflow Internal Transfer Successful"   
)   
)
Not in use
ő£TotalDialOutTime Summary of Dialout time for outgoing sessions SUM ( ServiceSessions [DialOutTime] ) Not in use
ő£DestinationAccepted Summary of outgoing sessions with "Destination Accepted" outcome¬† CALCULATE (¬†¬†¬†
[ő£TotalSessions],¬†¬†¬†
FILTER (   
VALUES (ServiceSessionOutcomes[Outcome]),   
ServiceSessionOutcomes[Outcome] = "Destination Accepted"   
)   
)
Not in use
%DestinationAccpeted Percentage of outbound calls accepted at destination DIVIDE ([ő£DestinationAccepted],[ő£TotalSessions]) * 100 Not in use
ő£DestinationDeclined Summary of outgoing sessions with "Destination Declined" outcome¬† CALCULATE (¬†¬†¬†
[ő£TotalSessions] ,¬†¬†¬†
FILTER (   
VALUES ( ServiceSessionOutcomes [Outcome] ),   
ServiceSessionOutcomes [Outcome] = "Destination Declined"   
)   
)
Not in use
ő£UserAborted Summary of outgoing sessions with "User Aborted" outcome¬† CALCULATE (¬†¬†¬†
[ő£TotalSessions] ,¬†¬†¬†
FILTER (   
VALUES ( ServiceSessionOutcomes [Outcome] ),   
ServiceSessionOutcomes [Outcome] = "User Aborted"   
)   
)
Not in use
ő£DestinationNotReached Summary of outgoing sessions with "Destination Not Reached" outcome¬† CALCULATE (¬†¬†¬†
[ő£TotalSessions],¬†¬†¬†
FILTER (   
VALUES (ServiceSessionOutcomes[Outcome]),   
ServiceSessionOutcomes[Outcome] = "Destination Not Reached"   
)   
)
Not in use
ő£TotalOutboundSessions Summary of outgoing sessions CALCULATE (¬†¬†¬†
[ő£TotalSessions] ,¬†¬†¬†
FILTER (   
VALUES ( TaskDirections [Name] ),   
TaskDirections [Name] = "Outbound"   
)   
)
Not in use
ő£TotalInboundSessions Summary of incoming sessions CALCULATE (¬†¬†¬†
[ő£TotalSessions],¬†¬†¬†
FILTER (   
VALUES (TaskDirections[Name]),   
TaskDirections[Name] = "Inbound"   
)   
)
Not in use
ő£TotalExternalSessions Summary of External sessions CALCULATE (¬†¬†¬†
[ő£TotalSessions],¬†¬†¬†
FILTER (   
VALUES (TaskDirections[Name]),   
TaskDirections[Name] = "External"   
)   
)
Not in use
TotalTime Summary time for service session ServiceSessions [TotalConnectedTime] + ServiceSessions [TotalIvrTime] + ServiceSessions [TotalQueueTime] + ServiceSessions [HoldTime]   
+ ServiceSessions [AcwTime] + ServiceSessions [DialoutTime]
 

User Session KPI

 User KPI are used by call center supervisors to view and analyze User performance.

Typical questions answered are:

  • How many tasks were user-handled?
  • How many tasks were not handled (missed or decline)?
  • What is our acceptance rate (compared to total calls)?
  • What is our transfer rate (to other services or specialist)?
  • What are our usual times for user distribution? ‚Üí Time for Ring/Connected/ACW/Consultation.
KPI Description DAX Chart Color code
%Acceptance Rate Ratio of accepted user sessions, to the total number of user sessions for this Nimbus user, for the selected period DIVIDE([ ő£ AcceptedUserSessions],[ ő£ TotalUserSessions])*100

vivid blue

#0755CB

%Consulted Rate Ratio of user sessions with consultations,‚ÄĮto the total number of user sessions, for this Nimbus user, for the selected period DIVIDE([ő£ConsultedUserSessions],[ő£AcceptedUserSessions])*100 Not in use
%Transfer Rate Ratio of user sessions ended by transfer,‚ÄĮto the total number of user sessions for this Nimbus user, for the selected period DIVIDE([ő£TransferredUserSessions],[ő£AcceptedUserSessions])*100

ming

#3D6D71

√ėConnectedTimeS Average connected time INT(CALCULATE(AVERAGE(UserSessions[ConnectedTime]),¬†UserSessions[ConnectedTime]>0))

dark jungle green

#2C7158

√ėRingTimeS Average ring time INT(CALCULATE(AVERAGE(UserSessions[RingTime]),¬†UserSessions[RingTime]>0))

pale copper dark

#9F5238

√ėConferencedTimeS Average conference time INT(CALCULATE(AVERAGE(UserSessions[ConferencedTime]), UserSessions[ConferencedTime]>0))

dim gray

#686B70

√ėConsultationTimeS Average consultation time INT(CALCULATE(AVERAGE(UserSessions[ConsultationTime]), UserSessions[ConsultationTime]>0))

soft blue

#274EA0

√ėAcwTimeS Average after call work time INT(CALCULATE(AVERAGE(UserSessions[AcwTime]), UserSessions[AcwTime]>0))

jungle green

#33946C

ő£ AcceptedUserSessions Summary¬†of¬†accepted¬†user¬†sessions.¬†UserSessionOutcomes[UserOutcome] = "Accepted"

CALCULATE (

[ ő£ TotalUserSessions],

FILTER (VALUES ( UserSessionOutcomes[UserOutcome]),UserSessionOutcomes[UserOutcome] = "Accepted"))

Not in use
ő£TransferredUserSessions Summary count of user sessions ended by transfer CALCULATE (¬†
[ő£TotalUserSessions],¬†
FILTER ( 
VALUES ( UserSessionOutcomes[ActionGroup]), 
UserSessionOutcomes[ActionGroup] = "Transferred"))
Not in use
ő£ConsultedUserSessions Summary count of user sessions with consultations ¬†CALCULATE (¬†
[ő£TotalUserSessions],¬†
FILTER ( 
VALUES ( UserSessions[ConsultationCount]), 
UserSessions[ConsultationCount]>0))
Not in use
ő£TotalUserSessions Total number of all user sessions COUNT(UserSessions[Id]) Not in use
ő£ UserSessions30d Total number of all calls grouped by handled (isHandled¬†= 1) and not handled (isHandled¬†= 0) from the caller to the service line for the last 30 days

VAR CurrentDate = TODAY()

RETURN

CALCULATE(

[ ő£ TotalUserSessions],

DATESBETWEEN(UserSessionDates[Date], CurrentDate - 30, CurrentDate - 1)

) + 0

Not in use
ő£ UserSessions30d Number of user sessions in last 30 days

VAR CurrentDate = TODAY()

RETURN

CALCULATE(

[ ő£ TotalUserSessions],

DATESBETWEEN(UserSessionDates[Date], CurrentDate - 30, CurrentDate - 1)

) + 0

 

Transfer Session KPI

Transfer KPI are used by call center supervisors to view and analyze transferred sessions performance.

KPI Description DAX Chart Color code
TotalTransfers Count of transfers COUNT(TransferSessions[Id]) Not in use
ő£DurationSeconds(TR) Duration of transfer in seconds SUM(TransferSessions[DurationSeconds]) Not in use
ő£DurationTime(TR)_HHMMSS Formated duration in seconds as HH:MM:SS IF (NOT ISBLANK ([ő£DurationSeconds(TR)]), //show blank instead of empty string
IF(INT([ő£DurationSeconds(TR)])>=86400, FORMAT (QUOTIENT(INT([ő£DurationSeconds(TR)]),86400), "00" ) & "d ") //[DAYS]
& FORMAT(QUOTIENT(MOD(INT([ő£DurationSeconds(TR)]), 86400),3600), "00" ) & ":" //HOURS
¬†& FORMAT(QUOTIENT(MOD(INT([ő£DurationSeconds(TR)]), 3600),60), "00") & ":" //MINUTES
& FORMAT(MOD(INT([ő£DurationSeconds(TR)]), 60), "00") //SECONDS
)
Not in use

Table of Contents