Automate scheduling with Optimization - DEPRECATED

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.

How to use Optimized Scheduling

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.

How to set the view range in the scheduling console.

2. Select Job(s) to Optimize

  1. Select the job(s) that you would like to schedule/optimize.
  2. Click the optimize icon (the lightning bolt) in the main toolbar to open optimize settings.
  3. Choose to optimize allocations based on travel times, a balanced workload, or the minimum number of resources.
  4. 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.

The basic optimization workflow. Selecting jobs, opening the optimize controls, and then customizing the settings.

Optimization settings

A list of optimization settings with their descriptions.

Settings Description
Travel Time

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.

Balanced Workload

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.

Minimum 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.)

Respect schedule

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.

Snap unit

Set a snap unit for job start times to respect (in minutes).

  • When this is set to 0 minutes, job start times are set to the minute that best meets the scheduling objective.

  • When this is set to a value, jobs start times are snapped to the nearest matching minute, after scheduling objectives are met.

The default setting is set in the Configure Optimization & Suggest.

Padding

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).

Run Optimize

Click the Run button to run the optimization process for the selected jobs.

The run button for optimized scheduling.

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.

Three scheduled jobs displayed in the optimizer results window.

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.

Three selected jobs (from the job list), optimized and placed in the swimlane.

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.

Save Results

The save button activates after an optimized run. Click Save to keep the optimization results.

The activated save button after running optimize.

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).

Close Optimize

To ignore optimize suggestions, close the process at any time by deselecting the optimize button.

Not Supported Features and Functions

Scenario Result
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.