Identifying Peak Times for Incident Creation Using EazyBI
Valiantys - Atlassian Platinum Solution Partner
Author: Rodolfo Bortolin
Rodolfo Bortolin, Atlassian Certified Expert, with over a decade of experience shares his expertise on optimizing customer support and enterprise risk mitigation through strategic incident timing analysis.
In the world of customer support, timing is everything. Knowing when incidents are likely to occur allows for better resource allocation, ensuring that customer needs are addressed promptly and efficiently. This report made with EazyBI, provides invaluable insights into the flow of support incidents over time.
At the heart of the analysis lies a heat map, a visual representation that immediately draws the eye to patterns in data through color coding. This heat map details the number of incidents created at each hour of the day across several weeks.
Key Observations
Staffing Implications
This heat map isn’t just a passive report; it’s a tool for action. The data suggests the need for more agents during the identified peak hours to handle the increased load. Conversely, off-peak hours might be an opportunity for reduced staffing or focusing on other tasks such as training or maintenance.
Moving Forward
Armed with this data, you can optimize your support team’s schedule, ensuring that you’re ready to assist customers when they’re most in need. By aligning staffing with incident creation patterns, you aim to enhance customer satisfaction and operational efficiency.
领英推荐
How-To
To create this EazyBI report, you need to add a specific configuration to the advanced settings to track the hour of the day when issues are created. You will need to add a custom field calculation using JavaScript.
[jira.customfield_hour_of_day_created]
name = "Hour of Day Created"
data_type = "integer"
dimension = true
javascript_code = '''
var hours = new Date(Date.parse(issue.fields.created)).getHours();
issue.fields.customfield_hour_of_day_created = hours;'''
This script extracts the hour from the creation date of each issue and stores it in a new custom field (Hour of Day Created). This field is then marked as a dimension, which allows you to analyze the data across different hours of the day.
You have the flexibility to modify the report to analyze incident creation by week, day, or any other time variable and create filters (pages) as needed, allowing for a customized view that aligns with your specific analysis requirements.
Importing the Entire Report Definition
If you want to import the whole report configuration to another EazyBI environment, you can use the provided JSON definition. This definition includes the report settings, calculated members, and a heat map view configuration.
Here is the JSON definition you provided, which can be imported directly into EazyBI:
{
"cube_name":"Issues",
"cube_reports":[
{
"name":"Hour of the Day Created",
"result_view":"table",
"definition":{
"columns":{
"dimensions":[
{
"name":"Measures",
"selected_set":[
"[Measures].[Issues created]"
],
"members":[
]
},
{
"name":"Time",
"selected_set":[
"[Time.Weekly].[Last 12 weeks]"
],
"members":[
{
"depth":0,
"name":"Last 12 weeks",
"full_name":"[Time.Weekly].[Last 12 weeks]",
"annotations":{
"group":"Default",
"predefined":"true"
},
"dimension_hierarchy":"Weekly",
"calculated":true,
"drillable":true,
"dimension":"Time",
"expanded":true,
"drilled_into":false,
"removed":true
}
],
"bookmarked_members":[
]
}
]
},
"rows":{
"dimensions":[
{
"name":"Hour of Day Created",
"selected_set":[
"[Hour of Day Created].[All Hour of Day Createds]"
],
"members":[
{
"depth":0,
"name":"All Hour of Day Createds",
"full_name":"[Hour of Day Created].[All Hour of Day Createds]",
"drillable":true,
"type":"all",
"expanded":true,
"drilled_into":true
},
{
"depth":1,
"name":"(none)",
"full_name":"[Hour of Day Created].[(none)]",
"removed":true,
"parent_full_name":"[Hour of Day Created].[All Hour of Day Createds]"
}
],
"bookmarked_members":[
]
}
]
},
"pages":{
"dimensions":[
{
"name":"Time",
"duplicate":true,
"selected_set":[
"[Time.Weekly].[Last 12 weeks]"
],
"members":[
{
"depth":0,
"name":"Last 12 weeks",
"full_name":"[Time.Weekly].[Last 12 weeks]",
"annotations":{
"group":"Default",
"predefined":"true"
},
"dimension_hierarchy":"Weekly",
"calculated":true,
"drillable":true,
"dimension":"Time"
}
],
"bookmarked_members":[
],
"current_page_members":[
"[Time.Weekly].[Last 12 weeks]"
]
}
]
},
"options":{
"nonempty":true
},
"view":{
"current":"table",
"maximized":false,
"table":{
"cell_formatting":{
"[Measures].[Issues created]":{
"type":"heatmap",
"rules":[
{
"name":"min"
},
{
"name":"mid",
"background_color":"#FFA806"
},
{
"name":"max",
"background_color":"#B31238"
}
]
}
}
}
},
"calculated_members":[
]
}
}
],
"calculated_members":[
{
"dimension":"Time",
"name":"Last 12 weeks",
"format_string":"",
"formula":"Aggregate(\n [Time.Weekly].[Week].DateMembersBetween('12 weeks ago', 'today')\n)",
"dimension_hierarchy":"Weekly"
}
]
}