Automate scheduling with Optimization - DEPRECATED
ImportantThis is the legacy version of optimization. For the latest version, see Manage and use route optimization.
The optimize scheduling engine attempts to find the best scheduling solution (based on the optimize settings) for the job(s) selected within the current scheduling view.
The travel time calculations of the scheduling engine are based on results obtained from the underlying web mapping service.
- Usage limits: auto-scheduling is a time-expensive operation, and our current API is aimed at giving a real-time response to the problem. Because of this, we limit the number of items to 200 per request on the swimlane.
What this means is the number of selected jobs, scheduled jobs on swimlane, resources, and activities cannot exceed 200.
- Multi-resource scheduling (more than one resource allocated to a single job)–For two or more resources to be assigned to a job, the job must have a fixed time.
- Location agnostic unavailabilities–the location of each unavailability is assumed to be the resource’s home location.
How to use Optimized Scheduling
NoteThere are admin settings that affect how Optimize calculates the optimal time for a job. Refer to Configure Optimization & Suggest and Overview of Optimization (Mastermind).
ImportantAll available resource(s) must have a valid home address. The scheduling engine takes into account the distance of the resource from the job. If the resource has no home address, they will be ignored.
1. Set a Scheduling Window
The scheduling window is the period over which the scheduling engine rules are run. It is defined by swimlane control settings in the scheduling console (the combination of days and working hours displayed).
Optimization will consider the available time blocks that the scheduler can see on the swimlanes.
If Working hours is active, it will only consider those periods displayed (see Define resource working hours for more information).
How to set the view range in the scheduling console.
2. Select Job(s) to Optimize
- Select the job(s) that you would like to schedule/optimize.
- Click the optimize icon (the lightning bolt) in the main toolbar to open optimize settings.
- Choose to optimize allocations based on travel times, a balanced workload, or the minimum number of resources.
- Choose the required optimize settings from the drop-down list.
The basic optimization workflow. Selecting jobs, opening the optimize controls, and then customizing the settings.
A list of optimization settings with their descriptions.
This option produces a schedule with the shortest travel time across all resources.
If travel time is being considered, the amount of time it will take all resources to complete all scheduled jobs is the highest priority. The scheduling engine will attempt to produce a schedule that results in the shortest total travel time across all selected jobs.
This option produces a schedule that tries to distribute the amount of work (in terms of the duration of jobs and driving) per resource—within the current swimlane view. It organizes the jobs based on which schedule will result in the fastest completion of all selected jobs.
Note: A resource that is further away from available jobs and has little work may be ignored in favour of closer resources who can get the work done faster, even if that means the closer resources have more work than other resources.
This option produces a schedule by allocating all selected jobs to the least amount of resources possible.
Where a balanced workload is based on fairness, “Min Resources” is the opposite, i.e., it will try to allocate everything to one resource who is available in the swimlanes (based on travel, skills, etc.)
Can the time of jobs that are already on the schedule be changed?
When this option is selected, the scheduling engine will not move the time of an existing job, even if doing so would improve the schedule, e.g., by allowing another job to be allocated to that resource, or by making the start time earlier.
When this option is not selected, the scheduling engine will move the time of an existing job on the schedule if it will allow other jobs to be scheduled to the resource.
Note: Locked jobs and a job that has passed the “Dispatched” status will not be moved.
|Ignore travel entirely||
While calculating if a job can be allocated to a resource, should the predicted travel time be ignored?
By default, the scheduling engine will take into account the predicted travel time between jobs (when calculating if a job can be allocated to a resource).
When “Ignore travel entirely” is selected, the scheduling engine will ignore travel times and schedule jobs based on the start and end times.
|Ignore travel on first job||
When calculating if a job can be allocated to a resource, should the predicted travel time for the first job be taken into account?
Some industries may have restrictions on the earliest start time for the first job of a working day. This time may include the time required for the resource to travel to the first job from their work or place of residence. By default, the scheduling engine will take these restrictions into account when deciding if a job will be allocated to a resource.
When “Ignore travel on first job” is selected, the scheduling engine will ignore the travel time and may assign a job to the resource that will require them to start traveling before their normal restrictions apply.
|Ignore travel on last job||
While calculating if a job can be allocated to a resource, should the predicted travel time from the last job be taken into account?
Some industries have restrictions on the maximum number of hours per day a resource may work. This time may include the time required for the resource to travel from the last job of the day to their work or place of residence. By default, the scheduling engine will take these restrictions into account when deciding if a job will be allocated to a resource.
When “Ignore travel on last job” is selected, the scheduling engine will ignore the travel time and may assign a job to the resource that will extend their workday beyond the normal restrictions.
|Respect Job Times||
If a selected job has a defined start time and duration i.e., job status = “Pending Allocation,” the scheduling engine will attempt to find an available resource for the time that matches the start time and duration, instead of scheduling it at the first available time. This helps when a scheduler has entered a start time that is expected by either the resource and/or the customer.
|Respect Job Times over time constraints||
When a start time is not set on the job, the system respects any time slots or SLA’s set on the job when trying to find an available resource. If an available resource cannot be found, and the scheduler decides that they wish to schedule the job anyhow, by entering a specific start time, the scheduling engine will then ignore the time constraints and attempt to find an available resource that matches the start time and duration.
This setting should be disabled at the org level if the company prefers to not schedule a job if a time constraint cannot be met.
Note: This option is only available when “Respect Job Times” is enabled.
|Maximum Travel Time (minutes)||
Sets the maximum amount of time a resource should spend traveling between jobs (in minutes).
Note: This constraint is ignored if “Ignore travel times for the first job of the day” is enabled.
Set a snap unit for job start times to respect (in minutes).
The default setting is set in the Configure Optimization & Suggest.
While optimizing the schedule, this option adds the chosen amount of time (padding) between jobs. If the chosen amount of time cannot be accommodated, the affected job(s) will not be scheduled.
The default setting is set in the Configure Optimization & Suggest.
Intelligent Scheduling (Optimize Rules).
Click the Run button to run the optimization process for the selected jobs.
At least one job must be selected from the job list to activate the Run button.
Items selected from the “Optimize Settings” drop-down menu will override the selected optimization type, i.e., travel time, balanced workload, or minimum resources.
Review Optimized Results
Once the optimization run is complete, “Optimizer Results” are displayed. The results display a list of the jobs that can be successfully added to the schedule and those that cannot:
- Under the Scheduled tab find scheduled and rescheduled jobs.
- Under the Unscheduled tab find unscheduled jobs and reasons for their failure are displayed–if none “Everything was scheduled successfully, nothing to see here” is displayed.
- Close the modal by clicking on the small x button at the top-right corner.
To view the scheduling results in the swimlanes, close the optimizer results window. Only the jobs selected in the job list are highlighted in the swimlane. A blue “lightning” icon (on the swimlane job card) represents a job that has been considered for optimization.
NoteAt this point, you can accept the optimization settings (by clicking the save button), or you can rerun the optimization (adjusting the settings), or you can manually adjust the final results before you save them.
Make Manual Adjustments
Optimized results on the swimlane can be updated before saving it. If needed, move the job on the swimlane to the required resource/time by dragging the job card.
Alternatively, you can further adjust the optimize settings and select/unselect jobs and optimize them again.
The save button activates after an optimized run. Click Save to keep the optimization results.
Balanced Workload Explained
Balance workload means we try to distribute the amount of work (in terms of the duration of jobs and driving). If all jobs are the same length and driving distance is roughly similar, this will distribute the number of jobs evenly. But if you have long jobs or long drives, then that is taken into consideration.
So if you have twenty jobs of equal duration, ten resources with availability, no skill tag or time constraints (or anything that would impact job allocation/scheduling), this option will schedule/allocate them so that each resource gets two jobs (assuming there are no outrageous travel variations).
If you have twenty jobs and ten resources but half the jobs are eight hours long, and half are one hour long then this will be taken into account and scheduled accordingly—resources will not receive two jobs each.
Minimum Resources Explained
The “Min Resources” setting is for organizations that want to use the least number of people to complete jobs—even if it takes longer to complete them.
So, instead of two people doing four jobs in one day, you might have one person doing four jobs in two days. The tradeoffs are the jobs might be finished later, and there may be more travel time involved. Here are a few examples:
- An organization prioritizes their work using the minimum number of resources so that unforeseen jobs (requiring urgent attention) can be allocated to those who remain available (i.e., they have a pool of resources and always want to keep some of them available for emergencies).
- An organization pays its resources in day increments. By utilizing the minimum number of resources, they will reduce the number of contracted workers.
- If work is normally done by technicians and now an engineer has to cover, you might want to reduce the number of engineers that are filling in (reducing the number of people impacted by overflow work).
To target specific groups of resources for optimization, schedulers can:
- Use a comma-delimited list in the swimlane resource filter to cut down the list of available resources (this is not repeatable and can’t be saved).
- Add resource skill tags and then use these to identify resource groups via the filter bar (this is repeatable, and the filter can be saved).
- Use the “Resource Category” filter via the filter bar (this is repeatable, and the filter can be saved).
To ignore optimize suggestions, close the process at any time by deselecting the optimize button.
ImportantIf the suggested optimize results are not saved, none of the changes will be applied to your current schedule.
Not Supported Features and Functions
|Resource secondary or temporary regions||Optimization runs are currently region-specific and only pulls in resources with that region as their primary region.|
|Resource requirements without job time defined||Work with resource requirements without job times defined, or multiple job time constraints, will not be included in the optimization run.|
|Job dependencies||Work with job dependencies will be excluded from optimization runs.|
|Asset resources||Asset resources & requirements are not currently factored into the optimization logic used in the web app. The custom query could be leveraged via async optimization.|
|Location inclusions||Location inclusions are not currently factored into optimization.|
Was this page helpful?