Optimization results

Understand how to interpret and analyze optimization results in Skedulo.

Overview

The Results page provides a summary of an optimization run. It includes a Gantt chart preview of the schedule, a map and travel data overview of routes, and list views of scheduled and unscheduled work. Results reflect only the Jobs that were submitted for that run, so counts and job lists show your requested work rather than all Jobs scheduled within the time window.

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

Finding 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 Ready to 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 the default tab of the Optimization results page, and appears as follows:

schedule preview tab

Jobs and Activities in the preview are color-coded so schedulers can quickly interpret the result of the run:

  • Optimized work: Jobs that were part of the run and were rescheduled and/or reallocated are shown in green.
  • Unchanged work: Jobs that were part of the run but were not moved are shown in gray.
  • Out of scope work: Jobs that were not part of the run are shown in gray.
  • Activities: Activities in the preview window are color-coded alongside Jobs, giving a complete picture of what the optimizer saw.
  • Legend with volume counts: A legend below the preview shows the count for each of the three categories, so you can quickly gauge the scale of the run.

Hover over a Job card to see its details. Beneath the address, a row with a lightning bolt icon explains the Job’s category:

  • Out of scope Jobs read Not part of optimization run.
  • Unchanged Jobs read Part of optimization run but not changed.
  • Optimized Jobs show the original date, time, and/or resource they were changed from.

The Job tooltip also shows:

  • The Job’s time constraints alongside the scheduled time, for example, Must start by Thurs 11 Jun 26 at 1:00pm and end anytime. Jobs with multiple time constraints show one row per constraint.
  • The Job ID as a link that opens the Job details page in a new tab.

Jobs the optimizer cannot move display a padlock icon. Hover over the padlock to see whether the Job was locked manually by a user or locked by the system, for example, by a custom extension.

Travel in the schedule preview

The schedule preview shows travel wicks in the same style as the swimlane, so you can see how much of a resource’s day is spent traveling and whether the last Job leaves enough time to get home:

  • Arriving travel: A thin line appears before every Job or Activity whose arriving travel time is nonzero.
  • Travel home: A wick appears after the last Job or Activity in each availability block whose departing travel time is nonzero.

Hover over a card to see a Travel to row and, for the last Job or Activity in a block, a Travel home row. Wicks scale and clip in the 1, 3, and 7 day views in the same way as Job cards.

Resource list

Each resource row has a chevron that expands the row into a full-width strip showing the resource’s tags and home address as chips. The strip still displays cleanly when a resource has no tags or home address on file.

Use the allocation filter to narrow the resource list:

  • All resources (the default) shows every resource in the run.
  • With allocations shows resources with at least one in-scope optimized Job assigned in this run.
  • Without allocations shows resources with no in-scope optimized Jobs assigned in this run.

Each option shows the number of resources it contains. If no resources match the selected filter, the list shows No resources match this filter.

Schedulers can apply or reject the results from the Schedule preview tab. Apply and Reject are only available for runs set to Preview first; runs set to Auto-apply are applied to the schedule automatically.

  • 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

The Routes 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.

the routes tab on the Optimization results page

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. Each node is numbered with its visit order for that resource’s day (1, 2, 3, and so on).

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

Use the search box to find a resource. The list filters as you type, and the map moves to the matching resource.

The table to the right of the map displays a summary of the selected day in terms of the number of visits, 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

Scheduled work

Jobs that were scheduled in the optimization run are listed with their job number and type, start times, and allocated resources. The count shown (for example, “80 of 80 jobs scheduled”) reflects only the Jobs you submitted for that run.

Unscheduled work

Jobs that could not be scheduled, or were removed during the optimization run, are listed along with the reason for their status.

There are several possible reasons why a job may remain unscheduled or be descheduled. See Unscheduled reasons below for a complete list of possible causes.

When the recipe’s job removal setting is Keep job times, deallocate resources, the Unscheduled work tab also shows a Time column with each job’s retained date and time. It is formatted the same way as the Time column on the Scheduled work tab. For all other job removal settings, the Time column is hidden.

Unscheduled reasons

Jobs that remain unscheduled after the optimization run are listed on the Unscheduled work tab of the Optimization results page, along with the reason for their status.

Reasons are specific to the constraint that prevented each job from being scheduled, including constraints introduced by extensions. The previous generic “ran out of availability” fallback reason is no longer used.

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 missing skills or a missing resource tag. Resource reasons take into account:

  • The resource’s maximum working hours.
  • The resource’s actual availability blocks, including travel time and any padding and snapping set in the recipe.
  • Availability attributes and preferences configured on the resource.
  • Whether the job requires all of its resources to be allocated together.

When several reasons apply to the same job, they are shown in a consistent priority order: constraint-related reasons first, followed by disallowed resource reasons, such as account, location, and resource restrictions.

Resource reason templates follow this pattern:

  • Single resource: <Resource.Name> <reason>
  • Multiple resources: X resources <reason> — with a tooltip listing the affected resource names
Reason Reason template
Job must start before the scheduling window Job must start before the scheduling window
Job must start after the scheduling window Job must start after the scheduling window
All of the job’s time constraints are outside the scheduling window All Job Time Constraints on the job are outside the scheduling window
Job is locked Job was in a locked state
Resource has no availability left that can fit the job, taking into account travel time, padding, snapping, and the job duration <Resource.Name> was feasible for the job but did not have any availability left to be allocated to it
Resource has no availability in the job’s time constraint window <Resource.Name> did not have availability for the window(s) of time the job can be scheduled in
Resource has no feasible time window for the job <Resource.Name> had no feasible time window for this job due to one or more constraints
Resource would exceed their maximum working hours for one or more periods within the scheduling window <Resource.Name> would exceed maximum hours for one or more periods within the scheduling window
Resource would violate custom constraints for one or more periods within the scheduling window <Resource.Name> would break custom constraints for one or more periods within the scheduling window
Job requires all of its resources to be allocated together, and at least one of its allocations can’t be filled. The reason is shown against the resources that were feasible for the job. <Resource.Name> was feasible for this job however the job could not be fully allocated
Resource is missing critical skills to do the job <Resource.Name> was missing the following required skill tag: <Tag.Name>
Resource does not match a required record filter or custom attribute

<Resource.Name> does not match the following required record filter: <Filter.Name>

<Resource.Name> was missing the following required custom attribute: <Attribute.Name>

Resource is excluded from the account, or not on the account’s inclusion list

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

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

Resource is excluded from the location, or not on the location’s inclusion list

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

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

Resource is excluded from the job, or not on the job’s inclusion list

<Resource.Name> was restricted from being allocated to this job

<Resource.Name> was not allowed to be allocated to this job

Resource was not schedulable in the run and is shown only because of their existing scheduled work <Resource.Name> was not included as a schedulable resource in the optimization run, and is only shown to accurately show the pre-existing scheduled work

Excluded work

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

In most cases the Excluded tab will not appear, as the majority of excluded jobs are out of scope of the run. When it does appear, it indicates jobs that were requested but could not be matched to the regions specified in the optimization run.

Excluded reasons

Reason Reason template
Job is outside of the regions requested in the optimization run The job was from a different region than the region(s) being optimized.