Report on Average Update Frequency of Incidents by Assigned User

danielkizan
Tera Contributor

Hello and thanks for reading. 

One of our Staff KPIs is that, on average, Incidents should be updated at minimum every 3 business days. As such, I would like to present a report detailing the Average Update Frequency of Incidents, grouped by Assigned User.

 

Let's say 'Average Update Frequency' = "Business Time (Days/Hours/Minutes) between each update to an Incident, averaged per Incident", which we then average across all Incidents assigned to a given user.

 

For example what I want, regardless of the exact visualization type, is to be able to detail:

 

Average Update Frequency of all Incidents Assigned to User 1 = 2 Day 11 Hours 5 Minutes

Average Update Frequency of all Incidents Assigned to User 2 = 8 Days 6 Hours 27 Minutes

 

etc, so that we can say this User is or is not hitting their KPI of 3 Days AVG Update Frequency.

 

I have considered using a Response SLA that breaches in 3 business days and completes/resets every time the ticket is updated, but this is impractical because it would lead to a potentially huge number of SLAs per ticket. I could tally all Breaches vs Mets of this particular SLA for a user, which would tell me whether they're hitting the KPI, but not what their actual Average Frequency is. It seems quite cumbersome. It would also count system or customer updates, which would influence the overall SLA Breached vs Met outcome. The upside of this method is that I could pause for On Hold etc. 

 

I have access to Metrics and Performance Analytics so am happy to leverage those but would need guidance on how to configure specifically for this purpose.

 

I would appreciate any ideas or guidance. Thanks for reading!

3 REPLIES 3

Abhay Kumar1
Giga Sage

@I will suggest you :

1. create metric definition to track time between updates

2. Then use PA indicator with schedule data collection

3. Then average update frequency by user report on dashboard

Hope this will help you.

 

Thanks very much @Abhay Kumar1 
Could I trouble you for some more information on how to complete Step 1? I do not have much familiarity with creating Metric Definitions. 

@danielkizan Go to Metrics > Definitions and create a new Metric Definition.

Table: incident

Field: sys_updated_by

Trigger Condition: When sys_updated_by changes.

Calculation Type: Scripted Metric

 

You can use script as per your requirement and I am sharing demo script :

var businessTime = 0;

    if (previous) {

        // Calculate business duration between updates

        businessTime = new GlideDuration();

        businessTime.setNumericValue(

            new GlideDateTime(current.sys_updated_on).getNumericValue() -

            new GlideDateTime(previous.sys_updated_on).getNumericValue()

        );

        // Convert to business time using the appropriate schedule

        var businessDuration = new GlideSchedule('8a4a4a0a0a0a0a00a0a00000a0000000'); // Use your schedule sys_id

        businessTime = businessDuration.duration(businessTime);

    }

    return businessTime.getDisplayValue();