Optimization results

Understand how to interpret and analyze optimization results in Skedulo.

Overview 

The Results page provides a summary of an optimization run, which helps schedulers to understand the details of the optimization run, such as average work time, travel time, and distance traveled in relation to the overall schedule.

Results pages are available from both the Background tasks button and the Optimization history page. 

Use the optimization results page

Optimization results are shown for each optimization run, including both one-off and scheduled optimization runs.

For one-off optimization, you can click View results in the Background tasks menu to view the results page of any optimization run from the past seven days.

Schedule preview

The Schedule preview tab is available as a beta feature for schedulers to preview an optimization run before committing to it. When enabled, this tab allows schedulers to view a preview of optimization results for a given optimization run, including previous optimization runs in the Background tasks menu or the Optimization history page.

To enable the Schedule preview tab, do the following:

  1. Navigate to Settings > System administration > Beta features.
  2. Select the Displays the Schedule Preview in the optimization results page. Requires Optimization feature. (browser refresh required) checkbox.
  3. Click Save.
  4. Refresh your browser to apply the change.

When enabled, the Schedule preview tab will be the default tab of the Optimization results page, and appears as follows:

schedule preview tab

Schedulers can apply or reject the results from the Schedule preview tab.

  • If the results are rejected, they cannot be applied to the schedule later, but they can still be viewed from the Optimization history page.
  • If the results are accepted, they are applied to the schedule and can be viewed on the swimlanes.

Routes (Beta)

The Routes tab is available as a beta feature for schedulers and shows a day-by-day view of their allocations plotted on a map with the suggested routes they may make as they travel and undertake their allocated work.

To enable the Routes tab, do the following:

  1. Navigate to Settings > System administration > Beta features.
  2. Select the Displays Suggested Routes in the optimization results page checkbox.
  3. Click Save.
  4. Refresh your browser to apply the change.

When enabled, the Routes tab will be available on the Optimization results page, and appears as follows:

the routes tab on the Optimization results page

Use the Routes tab

The default view shows the first day of the schedule window. Move between any date within the schedule window using the date picker.

the date picker on the Routes tab

Each resource scheduled to work for the selected day will appear on the map. Resources are represented by their personal avatars, which are placed on their home address.

Work allocations are represented by small nodes that are placed on the road outside the address given. The node that represents the resource’s first allocation of the day is labeled with a 1.

Hover the cursor over an avatar or node to display more information.

the map on the Routes tab with a resource and their work allocations

The table to the right of the map displays a summary of the selected day in terms of the number of jobs undertaken, the travel time, and the distance traveled along with the total travel and distance for the whole schedule window optimized.

the summary table on the Routes tab

Summary and map view

The results page provides a summary of how successful the optimization run was in achieving the scheduling objectives. This includes averages for the following metrics at both a schedule level and an individual resource level:

  • The average amount of work time allocated.
  • The average amount of time spent traveling to assigned work.
  • The average distance traveled during the schedule.

results page

Details tab

The Details tab provides schedulers with basic information about the jobs that were scheduled, left unscheduled, or excluded from the optimization run.

Scheduled jobs

Jobs that were scheduled in the optimization run are listed with their job number and type, start times, and allocated resources.

results details scheduled

Unscheduled jobs

Jobs that were unscheduled during the run are listed with the reason that the job was unscheduled. 

There are a number of reasons why a job may have been unscheduled. See Unscheduled reasons, below, for the full list of reasons a job may have been unscheduled. 

In the example below, the job was excluded from the optimization scope. We can view the Excluded tab for more information about why the job was excluded. 

results-detailsunscheduled1.png

Excluded jobs

Excluded jobs are those that cannot be considered in the optimization problem. 

This can be for a number of reasons, the most common being that they have an attribute that could constrain them in a way that optimization does not support.

For example, this can include jobs with multiple resource requirements or job dependencies. 

In the following example, the job had resource requirements with job time set.

results details excluded

Unscheduled reasons

Jobs that remain unscheduled after the optimization run are listed in the Unscheduled tab of the Details page. 

Unscheduled reasons fall into two categories – job reasons and resource reasons.

Job reasons are non-resource specific, such as job time constraints.

Resource reasons are resource specific, such as having a missing skills or resource tag. All resource reasons will have a resourceId associated with them.

Job reasons

Reason Reason template
Job is excluded Job was excluded from the optimization scope.
Job Time Constraints are too strict and force the job to be scheduled before the scheduling window Job must start before the schedule window.
Job Time Constraints are too strict and force the job to be scheduled after the scheduling window Job must start after the schedule window.
Schedule window does not overlap sufficiently with any Job Time Constraints (multiple time constraints both in front and behind the scheduling window) Schedule window does not sufficiently overlap with any Job Time Constraints.

Resource reasons

Reason Reason template
Resource has exhausted availability (no time constraint or job time constraint is within their availability window) Resource <Resource.Name> does not have enough availability to be allocated to the job.
Resource has for no availability in job time constraint window Resource <Resource.Name> does not have availability for the window(s) of time the job can be scheduled in.
Resource is missing critical skills to do the job Resource <Resource.Name> is missing the following required skill tags: <Tag.Name>
Resource is blacklisted or not whitelisted from the account (and a whitelist exists)

Resource <Resource.Name> is restricted from working with the account <Account.Name>

Resource <Resource.Name> is not allowed to work with the account <Account.Name>.

Resource is blacklisted or not whitelisted from the location (and a whitelist exists)

Resource <Resource.Name> is restricted from working at the location <Location.Name>

Resource <Resource.Name> is not allowed to work at the location <Location.Name>.

Excluded reasons

Some jobs are excluded from optimization for various reasons, usually due to job attributes or contraints that mean the solver is unable to schedule them.

There are two levels of exclusions: product level and solver level.

Product level exclusions are where there are constraints outside of the optimization that could be broken if the job is included in the optimization problem. For example, if a job has resource requirements without a job time locked in place. 

Solver level exclusions indicate that the optimization problem is highly constrained and that the scope may be difficult to solve, where the inevitable result is that some jobs are unable to be scheduled. For example, there are too many jobs and/or not enough resources to schedule all of the work within the scheduling window. 

Product level exclusions

Exclusion type
Description
Behavior
Job dependencies The job has job dependencies and therefore has constraints that aren’t supported by optimization. If already scheduled, allocations will be locked in place otherwise they will be removed from the pool of schedulable allocations.
Unscheduled with Resource Requirements The job has resource requirements without a job time that’s locked in place (respectAllocationTimes setting is on) Allocations will be removed from the pool of schedulable allocations.
Job has Resource Requirements The job has resource requirements without a job time that’s locked in place (respectAllocationTimes setting is off). If already scheduled, allocations will be locked in place otherwise they will be removed from the pool of schedulable allocations.
Out of region The job was included in the optimization scope via a resource who exists in multiple regions. If already scheduled, allocations will be locked in place otherwise they will be removed from the pool of schedulable allocations.
Job requires synchronized allocations The job has multiple allocation requirements and does not have a start time (respectAllocationTimesOverTime Constraints setting is on). Jobs that in any way require more than one allocation and do not have a start time with the respectAllocationTimesOverTime Constraints setting will be excluded.

Solver level exclusions

Exclusion type Description Behavior
No valid date windows The allocation has a time constraint that does not leave enough time within the scheduling window for the allocation to be scheduled. The allocation is ignored, if already scheduled the logic evaluating differences will leave it scheduled.