Scheduling Automation
One of the most inefficient jobs dispatchers face is creating the daily task schedule for their technicians. Going through the task list one by one and identifying the right technician with the necessary skills and availability, while also keeping things in mind like travel time to the next task, is extremely slow and arduous.
Zinier takes this responsibility off of Dispatchers' shoulders and allows them to schedule tasks in just a few clicks by optimizing based on predefined rules. Scheduling Automation at Zinier leverages several different automation methods depending on the use case:
Technician Recommendations: When manually assigning a single task, dispatchers can leverage Zinier’s Technician Recommendation engine to view a list of recommended techs for that specific task.
ZScheduler: When scheduling in bulk (matching more than 1 task to more than 1 technician), or utilizing scheduling-related recommendations, Zinier’s “ZScheduler” engine is used.
Both auto-scheduling methods are described in detail below.
Manual Scheduling with Technician Recommendation
When manually assigning tasks, you can choose to leverage Zinier’s Technician Recommendation engine to view a list of recommended techs. Technician Recommendations enable dispatchers to quickly assign individual tasks to the right technicians.
Dispatchers can utilize Technician Recommendation from the Schedule & Assign side panel which is accessible in several different places:
Technician Recommendation from the List View
Go to the Task Scheduling > List View > Open Tasks module
Hover over the task you wish to schedule, and click on the “Schedule & Assign” icon to bring up the Scheduling side panel
Click the “View Technicians” button
Technician Recommendation from the Calendar View
Go to the Task Scheduling > Dispatch Console > Calendar View module
Click on the task you wish to schedule (it must be schedule-able tasks – i.e. one with status = Open or Scheduled etc.) to bring up the “Actions” menu
Click on “Schedule & Assign” to bring up the Scheduling side panel
Click the “View Technicians” button
Technician Recommendation from the Map View
Go to the Task Scheduling > Dispatch Console > Map View module
Hover over the task you wish to schedule, and click on the “Schedule & Assign” icon to bring up the Scheduling side panel
Click the “View Technicians” button
How Technician Recommendations Work
The Technician Recommendation engine works by first filtering out technicians that do not match the “Base Filters” associated with the task as defined below. This includes technicians that are unavailable, do not have the right skills, are not in the correct region/workgroup, or are not within a pre-defined proximity to the task location (the Customer Site associated with the task).
Next, the recommendation engine utilizes one of 3 pre-built Scheduling Optimization Methods that prioritize recommended technicians on the condition that's most important to the dispatcher such as utilization rate, travel time, or experience. The Scheduling Optimization Methods and base filter settings can be modified from the Settings / Scheduling Settings.
“Base” Recommendation Filters
Availability
Technicians must be available during the scheduled time of the task. "Available" is defined by:
Within the technician's normal shift or during planned overtime
No other tasks are assigned to the technician
Not on planned leave
Not a public holiday
Techs that are not available are not shown in recommendation lists.
Required Skills
Techs must have the required skills and skill levels associated with the task type. Techs without the required skills are not shown in recommendation lists. Admins can turn off this filter in Settings. If no skills are present for the Task, this filter is ignored and all technicians are eligible.
Work Group
If Work Groups are configured, a Technician must belong to the correct Work Groups in relation to the task. This means that the Customer, Work Order Type, Task Type, and Region of the site of the Task being performed should belong to one of the Work Groups that the Tech is assigned to.
For example, if Work Groups are configured by Region, the Technician must be added to a Work Group that includes the Region associated with the Customer Site where the task is being performed.
Region (via Contractor)
If a tech is associated with a Contractor, then the regions associated with the Contractor must include the region associated with the Customer Site where the task is being performed, otherwise, the technician is filtered out of the recommendations.
Proximity
The tech must be within a predefined proximity.
Technicians outside of the default proximity are filtered out.
No tasks are assigned to a technician for the date of the task at hand: Proximity is determined by comparing the home base location of the tech to the location of the Customer Site.
Tasks have already been assigned for the date of the task: Proximity is calculated from the previous task's location to the one which is being scheduled.
The task is set to commence within the next 90 minutes: Proximity will take into account the last known location of the tech.
Default Proximity is set in Settings > Work Order Settings > Scheduler Settings
Scheduling Optimization Methods
When leveraging the Tech Recommendation engine, users can choose between the 3 pre-built Scheduling Optimization Methods that further constrain the list of recommended technicians which can be.
To change the default optimization algorithm, go to Settings > Work Order Settings > Scheduler Settings module.
Experience Score
This score reflects a combination of experience at the customer site, experience performing similar tasks, first-time-fix-rate, and skills.
To view a sample of how the Experience Score is calculated, see the Experience Score Sample Calculation section below
Utilization Rate
A weekly metric used to keep the task load evenly balanced in your workforce. Technicians with lower utilization rates are prioritized to keep the distribution even.
Predicted Travel Time
Estimated travel time between tasks or from the technician’s base location. This figure is an estimate and can change depending on schedule adjustments, but gives you an idea of who may be in the area at the scheduled time of this task.
Please note that Scheduling Optimization methods will only assign/recommend a technician to tasks that have a pre-scheduled start date & time.
Auto Scheduling Tasks with the ZScheduler
Dispatchers can also utilize the ZScheduler to automate the process of scheduling and dispatching multiple tasks. The Auto Scheduler uses a different recommendation logic (described below) than the Technician Recommendation engine. Dispatchers can Auto Schedule tasks from several different modules:
Auto Scheduling Tasks from the List View
Go to the Task Scheduling > List View > Open Tasks module
Click the “Auto Schedule” button on the top right-hand corner of the data grid to bring up the sidepanel
Select the which tasks to Auto Schedule using the filter
Auto Scheduling Tasks from the Calendar View
Go to the Task Scheduling > Dispatch Console > Calendar View module
Click the “Auto Schedule” button on the top right-hand corner of the console to bring up the sidepanel
Select the which tasks to Auto Schedule using the filter
Step 1: Filtering and Selecting Tasks to Auto Schedule
After clicking the “Auto Schedule” button and entering the auto-scheduler sidepanel, dispatchers must first select which tasks to Auto Schedule based on the following set of filters:
Auto Scheduling Method (“I want to”): First select the auto-scheduling method you’d like to use from the following options:
Schedule and Assign Tasks: Considers tasks that do not have a scheduled start date & time (considers Deadline of the work order). This method finds the best-suited technician and time of the day when the task should be performed, to maintain an optimized schedule.
Assign Pre-Scheduled Tasks to Technicians: Considers tasks that have a scheduled start date & time. This method finds the best technician that can perform a task at the time the task was already scheduled, to maintain an optimized schedule.
Filter Tasks by Time Frame: Select a time range between which to schedule/assign tasks. The scheduler currently supports scheduling tasks for up to the next 10 days.
Filter Tasks by Region: Filter tasks by one or more regions. Regions are associated with the customer site to which the task is assigned. To see tasks for all regions, the users can also select All Regions.
Filter Tasks by Task Type: Filter by one or more task types. To see tasks for all task types, select All Task Types.
Filter Tasks by Status: Users can filter for tasks that are Open or Open & Scheduled.
Once you have selected your desired filters, click the “Preview Tasks” button to show the list of tasks that will be picked up by the auto-scheduler
Step 2: Previewing Selected Tasks to Auto Schedule
After clicking the “Preview Tasks” button, you will see a list of the filtered tasks as outlined above. You then have the option of selecting which tasks from that list to auto-schedule.
After selecting the tasks from the list, click the “Continue” button to run the auto-scheduler.
Depending on how many tasks are selected, the auto-scheduler can take several minutes to run. The status of tasks that are being auto-scheduled will temporarily change to “Auto Scheduling” and the task will not be available for manual scheduling until after the auto-scheduler has finished.
How the ZScheduler Works
Zinier’s ZScheduler - used to auto-schedule multiple tasks and technicians at the same time – is optimized to reduce travel time and maximize the number of tasks scheduled per day. The parameters used by the ZScheduler for this optimization are as follows:
Task Parameters
Location: The coordinates or location of the task. The ZScheduler looks for technicians that are in the vicinity of the task to optimize for faster travel.
Duration: The estimated duration of the task in minutes. This is required for the ZScheduler to calculate the availability of technicians to take the task.
Appointment Windows (if available): The appointment window selected by the customer when booking the task. This information allows the ZScheduler to find technicians who are available during the window to take up the task.
SLA Deadline (if available): The SLA Deadline for the task. This guides the ZScheduler to optimize task scheduling to minimize SLA breaches.
Service Window at the Task Location / Customer Site (if available): The Service Windows determines the availability of the Site (i.e. can a task be worked on during the task’s scheduled time) and allows the ZScheduler to find technicians who are available during the same window of availability.
Technician Parameters
Start Location: The coordinates or location of the technician’s base location. This tells the ZScheduler the location where the technician starts their day from.
Availability / Working Hours: The availability of the technician tells the ZScheduler whether or not a task falls within the technician’s working hours, thus making the technician a candidate for task assignment.
Lunch/Breaks (optional): The lunch/break hour guidelines allow the ZScheduler to plan the schedule of the technicians to allow for a break.
Unavailable Hours: The unavailability of the technician tells the ZScheduler whether or not a task falls outside the technician’s working hours, thus eliminating the technician as a candidate for task assignment. Unavailable hours can take several different forms:
Leave
Existing tasks
Any other unavailability eg. being assigned to a crew
Other Parameters
Apart from the above parameters, the ZScheduler also takes into account the following additional parameters:
Constraints: Constraints that may affect the scheduling of tasks such as skills, work groups, permissions, etc.
Maximum Proximity Between Task and Technician Location: This is the maximum possible distance that the technician may need to travel from their location to perform the task.
Percentage of Working Time per Technician to be Used (per Day): This informs the ZScheduler of the maximum percentage of the technicians' working hours that can be utilized to schedule tasks. This allows for some time to be left over to assign break-fix/emergency tasks.
Maximum Overtime Buffer Allowed Per Day (mins): This informs the ZScheduler of the maximum duration by which the technicians' working hours can be extended to accommodate a task with an appointment window or an SLA Deadline.
View Auto Scheduling Feedback and Logs
After the auto-scheduler runs, a log is created which allows users to view the results and get feedback as to why tasks went unscheduled. This is useful when you want to identify the results for audit purposes or if you’d like to see a list of tasks that the auto-scheduler was not able to schedule during the run, and the reasons behind the tasks going unscheduled.
Auto Scheduling Flow
NEW (23.9)
By default, whenever an auto-scheduler run is finished, a notification is triggered linked to the auto-scheduler log associated with the run. To access the logs via notification, follow the steps below:
Once the auto-scheduler finishes, a notification is triggered linking to the results.
Click on the notification to open the side-panel with the results.
Click the “Unscheduled” tab to show all unscheduled tasks
Click View Details to show the reasons why the task failed to schedule
To access the scheduling logs outside of the notification workflow, go to the Task Scheduling > Logs module and click on the record associated with the scheduler event you want to analyze.
Scheduler Event Types
Auto Scheduler events are classified according to the following types:
On-Demand - Schedule and Assign Tasks
Auto Scheduler runs triggered manually by a specific user where the Auto Scheduling Method (“I want to”) = “Schedule and Assign Tasks”
On-Demand - Assign Tasks
Auto Scheduler runs triggered manually by a specific user where the Auto Scheduling Method (“I want to”) = “Assign Pre-Scheduled Tasks to Technicians”
Recommendation Based
Auto Scheduler runs triggered automatically from the system by a Recommendation.
Understanding the Scheduler Event Logs
The Scheduler Events sidepanel provides more detailed information about each auto-scheduler event as outlined below.
Initiator
The user who triggered the event. If the event was triggered manually using the “Auto Scheduler” button, it will list the user’s name. If the event was triggered automatically by the system via a Recommendation, it will say “Automation.”
Total Tasks to Schedule
The total number of tasks sent to the auto-scheduler
Tasks Successfully Scheduled
The total number of tasks the auto-scheduler was able to successfully schedule
Tasks Failed To Schedule
The total number of tasks the auto-scheduler failed to schedule
Started On / Completed On
The date and time the scheduler event was started and completed
Unscheduled Task Feedback
NEW (23.9)
Users can also access the reason why a task went unscheduled. To do so:
Navigate to the Task Scheduling > Logs > Scheduler Logs module.
Hover over the task log you want to analyzing and click the View icon.
Click the “Unscheduled” tab to show all unscheduled tasks.
Click View Details to show the reasons why the task failed to schedule.
Out-of-the-box Recommendations for Dispatchers
Zinier’s Recommendation Center comes with a suite of pre-defined recommendations that leverage the ZScheduler and are tailored to the needs of Dispatchers.
For more information on how to use the Recommendation Center, visit the Recommendation Center page.
Long-Running Tasks
The recommendation is sent for each task that isn’t submitted 30 minutes after its scheduled end time (default). Accept the recommendation to extend the estimated task duration by one hour (default) and reschedule/reassign impacted tasks on that technician’s calendar.
Missed Scheduled Start Time
Tasks that have passed their scheduled start time by one hour (default) without starting are automatically rescheduled and reassigned within their SLA. A passive recommendation is sent to dispatchers to let them know about this change.
Critical Priority Tasks
A recommendation that alerts dispatchers when urgent tasks are created and automatically reshuffles the schedule to make room for these tasks. It works as follows:
If a task is created for a Work Order with a Critical priority, an Active recommendation is triggered.
On accepting the recommendation, the Critical priority task is assigned to the best technician available at the time of the task.
If no technician is available at the time of the task, then a Low or Medium priority task is bumped out from the Schedule of one of the technicians to make room for the Critical Priority task.
The bumped-out task is then rescheduled/reassigned based on its SLA Deadline.
SLA in Jeopardy
A set of recommendations that alert dispatchers whenever a task is at risk of breaching its SLA. It works as follows:
An active recommendation is sent to schedule and dispatch any task which has an SLA deadline within 24 hrs with a task status = Open, Reopened, or Discontinued
An active recommendation is sent to dispatch any task which has an SLA deadline within 12 hrs with a task status = Scheduled
A passive recommendation is sent to check on any task which has an SLA deadline within 1 hr with a task status = In Transit or In Progress (and statuses beyond)
Scheduling Settings for Tech Recommendations
The following settings allow you to configure different aspects of scheduling automation in the Task Scheduling module. These settings are used by the Tech Recommendation engine.
Use Skills (Yes / No)
When turned on, Techs must have the required skills and skill levels associated with the task type. Techs without the required skills are not shown in recommendation lists.
Define the Minimum Proximity
Define a minimum distance between a technician's current location or base location and the task location (the location of the Customer Site associated with the task). Technicians outside of this range will be filtered out when running the Tech Recommendation.
Select a Primary Optimization Method
When leveraging the Tech Recommendation engine and Auto Scheduler users can choose between the 3 pre-built Scheduling Optimization Methods that further constrain the list of recommended technicians. These optimization algorithms are listed in more detail below.
Experience Score
This score reflects a combination of experience at the customer site, experience performing similar tasks, first-time fix rate, and skills.
To view a sample of how the Experience Score is calculated, see the Experience Score Sample Calculation section below.
Utilization Rate
A weekly metric used to keep the task load evenly balanced in your workforce. Technicians with lower utilization rates are prioritized to keep the distribution even.
Predicted Travel Time
Estimated travel time between tasks or from the technician’s base location. This figure is an estimate and can change depending on schedule adjustments, but gives you an idea of who may be in the area at the scheduled time of this task.
Overtime
If turned off: the auto-scheduler will not assign a task to a technician if the task’s expected duration falls outside the technician’s shift hours. For example, if a task has a scheduled start time of 4:30 pm and a duration of 1 hour, it would be expected to finish at 5:30 pm. Let’s say the technician’s shift ends at 5 pm. In this case, the auto-scheduled would NOT assign the task to that technician as the end time falls outside the shift hours.
If turned on: the auto-scheduler has the permission to extend a matching technician’s shift using overtime. In the example above, as long as the “Maximum Overtime Buffer Allowed (In Minutes)” is 30 minutes or more, the technician WOULD be eligible for the assigned task.
Maximum Overtime Buffer Allowed (In Minutes)
Sets the maximum amount of overtime that can be utilized when extending a technician’s shift to account for a task scheduled beyond the technician's working hours.
Experience Score Sample Calculation
View the sample calculation below to see how the experience score is calculated using sample data.
Task and Site Values
Task ID | TSK000123 |
Customer Site Name | Foxhall |
Task Type | Corrective Maintenance |
Experience Score Factors
The values in the Customer Site History, Task Type History, and First Time Fix Rate are the number of tasks completed by the technicians.
The maximum score of each category is considered for the computation for respective categories. For example, in the case of Customer Site History, Chris Hemsworth has completed the most number of tasks at the Customer Site (5 tasks were completed at Foxhall). Thus the scores will be calculated out of a maximum score of 5.
Customer Site History Calculation
The number of tasks the technician has previously completed at the Customer Site (Foxhall) associated with the task / the highest number of tasks completed by a single technician at that site (the maximum score). In this case, the maximum score is 5 (Chris Hemsworth).
Technician | Customer Site History (# of tasks) | Computation | Score (% percentile) |
---|---|---|---|
Chris Hemsworth | 5 | 5/5*100 = 100 | 100 |
Robert Downey Jr | 2 | 2/5*100 = 40 | 40 |
Scarlett Johansson | 0 | 0/5*100 = 0 | 0 |
Task Type History Calculation
The number of tasks the technician has previously completed of the associated Task Type (Corrective Maintenance) / the highest number of Task Types completed by a single technician (the maximum score). In this case, the maximum score is 3 (Robert Downey Jr).
Technician | Task Type History (# of tasks) | Computation | Score (% percentile) |
---|---|---|---|
Chris Hemsworth | 2 | 2/3*100 = 66.67 | 66.67 |
Robert Downey Jr | 3 | 3/3*100 = 100 | 100 |
Scarlett Johansson | 1 | 1/3*100 = 33.33 | 33.33 |
First-time-fix-rate Calculation
The number of tasks the technician has previously completed correctly the first time (first-time fix rate) / the highest number of tasks completed correctly the first time by a single technician (the maximum score). In this case, the maximum score is 2 (Scarlett Johansson). A task would count towards First time fix rate if the task was submitted and approved correctly the first time during the Task Approval process.
Technician | First time fix rate (# of tasks) | Computation | Score (% percentile) |
---|---|---|---|
Chris Hemsworth | 1 | 1/2*100 = 50 | 50 |
Robert Downey Jr | 1 | 1/2*100 = 50 | 50 |
Scarlett Johansson | 2 | 2/2*100 = 100 | 100 |
Final Experience Scores
The average of all three experience scores (%) / the highest average of all three experience scores by a single technician (the maximum score). In this case, the maximum score is 72.26 (Chris Hemsworth).
Technician | Average | Computation | Final Experience Score (%) |
Chris Hemsworth | (100+66.67+50)/3 = 72.26 | 72.26 / 72.26*100 = 100 | 100 |
Robert Downey Jr | (40+100+50)/3 = 63.33 | 63.33 / 72.26*100 = 87.65 | 87.65 |
Scarlett Johansson | (0+33.33+100)/3 = 44.44 | 44.44 / 72.26*100 = 61.50 | 61.5 |