How to calculate average incident/request assignment time in ServiceNow
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-09-2025 04:35 AM
Hi everyone,
I'm looking to create a report in ServiceNow to calculate the average time it takes for an incident or a request to be assigned to a technician, in other words, the time between when it is opened and when it is first assigned.
Does anyone know an easy way to achieve this?
Any tips, best practices, or example reports would be greatly appreciated!
Thank you in advance for your help!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-09-2025 04:56 AM
couple of ways
1) you can use custom date/time field and populate that when INC is assigned for 1st time, then report on that field
BR: Before Update
(function executeRule(current, previous) {
if (gs.nil(previous.assigned_to) && current.assigned_to) {
var firstAssignedToTime = new GlideDateTime();
current.u_first_assigned_to_time = firstAssignedToTime;
}
})(current, previous);
OR
2) you can create custom metric for this, check this link and enhance for your requirement
Incident Metric - Calculate time between first assigned to until resolution.
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-17-2025 06:11 AM
Thank you for marking my response as helpful.
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-09-2025 05:04 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-09-2025 05:31 AM
Hi @KenzaH,
you can create a before update business rule like below
(function executeRule(current, previous /*null when async*/ ) {
if (gs.nil(previous.assigned_to) && current.assigned_to) {
var date_assigned_to = new GlideDateTime(gs.nowDateTime());
current.u_assigned_to_changes_on = date_assigned_to;
}
})(current, previous);
and for custom metric you can check - Incident Metric.
If my response was helpful, please mark it as the correct answer and close the thread. This will help others who come across the same issue.
Thanks!
Gaurav Rathaur