5Routing Strategy

Test a Routing Strategy

After you set up a new routing strategy or make changes to an existing routing strategy you can review the effectiveness using three different reports.

The reports are as follows:
  • Routing Comparison Report: This report displays the same statistical data about two separate routing runs so that you can compare the results. See Comparing two Routing Runs for more information.

  • Routing Module Report: This report displays statistics about the routing results so that you can assess the effectiveness of your routing strategy. See Assess Summary Data about Routing Strategies for more information.

Tip:
  • Do not make changes to your routing strategy until you have accumulated at least five days of data. The more data the system has to interpret, the more meaningful the results are.

  • Change one routing setting at a time. If you change more than one setting at a time, you cannot be sure which setting caused the effect you see in the results.

Identify Errors in a Routing Run

You can view routing results in the Routing Runs list under the Execution Summary block in the Routing screen.

You can see the detailed report displaying any errors that the application might have encountered during the routing process.

To identify errors, follow the steps:

  1. In the resource tree, select the bucket used for the routing run.

  2. Navigate to the Routing screen.

  3. Click Execution Summary to display the list of routing runs.

  4. Locate and select the routing run that you want to view.

  5. Click the Report tab.

    The routing results window is displayed, listing where each activity was routed from and which resource it was routed to. Errors are also displayed in this screen.

    The following figure shows the routing results, including errors and comments:
    This figure shows the Report tab on the routing results window displaying errors in a routing run.
  6. Review the Report tab.

    • Initial resource—Specifies the resource from whom the activity was routed.
    • Destination resource—Specifies the resource to whom the activity was routed.
    • Activity—Specifies the activity.
    • Travel estimation method—Shows the method of distance and/or time estimation for travel to each activity in the routing report. These methods are available for travel estimation:
      • Not estimated—Indicates that no travel estimation is done; This is a rare status in this report.

      • Using Defaults—Travel estimation uses company default values (see Default travel average time in minutes in the Configuration, Statistics page).

      • Statistics—Travel estimation uses company travel statistics

      • Airline Distance—Shows the airline distance using Airline distance speed in km/h parameter in the Configuration, Statistics page.

      • Airline Distance and Statistics—Shows the weighted average of value from company travel statistics and airline distance (see Coordinate calculation weight in the Configuration, Statistics page.

      • Manual Adjustment—Travel estimation is manually adjusted via interface

      • Street Level Routing—Time and distance are obtained from the Street Level Routing, provided the External Adjustment is adjusted via API.

      • Same Location—Indicates that no travel is needed as both activities take place in the same location.

    • Error/Comment—Displays any error or comment if available.

Routing Message Codes

The following table provides the message codes:

Error Code Error Explanation
6000 Dynamic routing This is a common error that you can expect to see when using dynamic routing. It means the activity was filtered out because it falls outside the dynamic routing time or activity limitations. If you want to route the activity, change either the dynamic routing time or activity limitations, or turn dynamic routing off.
6001 Both work length and key are undefined This is a data validation error. The application needs to know the estimated activity length. It can be specified either through stats or directly in the case of activities. If this error message displays it means this value is not specified and therefore the activity cannot be routed. You should never see this error message under normal circumstances. To correct this error specify the estimated activity length.
6002 Negative cost is not allowed This is a data validation error. Activity cost is used as a multiplier for all activity related penalties and to implement activity priorities. You should never see this error message under normal circumstances.
6003 No appropriate resources This means that the activity has requirements that cannot be met by any available resources. This message does not necessarily indicate an error. It informs you that the application could not find a matching resource for the activity. Check the following settings to confirm that they are accurate for your mobile workforce:
  • Work Zones

  • Work Skills

  • Points (if you use them)

  • Resources Calendars

6005 Service window start is greater than service window end This is a data validation error. The service window end time falls before the service window start time on the activity.
6007 Unacceptable overdue The activity was not scheduled because it would be late and would start after the lateness settings specified in the filter parameters.

Check the settings in the filter parameters. Go to the Filters section of the routing plan and click Settings to view filter parameters.

6008 Resource overloaded or has not enough resources The activity was left unscheduled because of the Limit work by points parameter. The assignment of this job would have caused a tech to incur more points than his max threshold. You can adjust the resource’s point allotment in Daily View.
6009 Resource workday stop The activity was left unscheduled because it would have caused overtime for the resource. If you want to allow overtime for resources, change the Resource Overtime settings in the routing plan.
6010 Unacceptable travel time The activity was left unscheduled because the travel time would have exceeded the maximum travel time allowed. If you want to allow longer travel, change the Travel time settings in the routing plan.
6011 Linked activity cannot be scheduled Activity was unscheduled due to the master activity in the linked activities (activity link) hierarchy. The activity was unassigned due to link requirements.
6012 Link Cycle Activity was unscheduled for break dependency cycle between linked activities (activity link).
6013 Unable to fit activity link Activity was unscheduled because the application was unable to find route that didn't violate linked activity requirements.
6014 Effective service window start is greater than effective service window end This is a data validation error. After applying all time related constraints, the activity should be ended before it can be started. Usually, this occurs because of an error in the data.
6015 SLA window start is greater than SLA window end This is a data validation error. Activity claims that the SLA window will end before/earlier than the SLA window will start. Usually, this occurs because of an error in the data.
6016 May cause SLA violation Activity was unscheduled because it would cause a SLA violation by another following activity. It is normal to obtain this unscheduling reason when using SLA windows.
6017 Other Reserved for cases where there are no other specific or precise unscheduling reasons. There is a very low chance to see this error code.
6018 Other Activity was not routed as it produces suboptimal routes either by itself or by its consequences.
6019 Unacceptable SLA overdue Corresponds to the Unacceptable SLA Overdue protection.
6020 Provider preferences Activities cannot be assigned without Provider Preferences violation.

Insufficient Capacity: There is no available employees to handle the activity among required/allowed employees.

6021 May cause unacceptable overdue on another activity Assignment will cause unacceptable overdue on another activity

Insufficient Capacity: The activity assignment pushes another, more important or non-movable, activity into unacceptable overdue.

6022 May cause unacceptable overtime on another activity Assignment will cause unacceptable overtime on another activity

Insufficient Capacity: The activity assignment pushes another, more important or non-movable, activity into unacceptable overtime.

6024 Unable to reach activity Street level routing engine cannot make a route from the giving activity to any of the activities in the route. This occurs due to an error in the data. Check the activity address and the coordinates.
6025 Unacceptable travel distance The activity was left unscheduled because the travel distance would have exceeded the maximum travel distance allowed. If you want to allow longer travel, change the Travel distance settings in the routing plan.
6063 Link constraint violation Linked activities: Assignment will cause link constraint violation
6067 No required Work Zones No technicians with required Work Zones available

Insufficient Capacity: there is not enough resources in the required work zone to handle the activity.

6068 No required Work Skills No technicians with required Work Skills available

Insufficient Capacity: there is not enough resources with the required work skills set to handle the activity.

6069 No required inventory Technician does not have the required inventory

Insufficient Capacity: there is not enough resources with the required inventory available to handle the activity.

6070 Resource preferences Assignment will cause Resource Preferences violation. See error code 6003 to understand and resolve this error.
6071 Not enough points Technician does not have enough points to perform this activity
6072 Calendar No providers with working calendar

Compare Two Routing Runs

You can compare two runs on the same day to see which run was more optimal. This information can help you determine the routing strategy or routing settings that are best for your organization.

This report is most helpful when you use it to compare runs that use the same set of resources and activities. This minimizes the likelihood that influences other than the routing plan are affecting the results.

Note: Run this report in the Training instance where the set of activities and resources changes only once every 24 hours. Compare runs that have limited differences so that you can easily identify the setting having the desired effect.

To compare two routing runs:

  1. In the Resource Tree, select the bucket for which you want to see routing results.

  2. Navigate to the Routing screen.

  3. Select the day that the routing runs occurred.

  4. Click Execution Summary.

    The Routing screen displays a list of routing runs under the Execution Summary block.
  5. Find and click the rows for the routing runs that you want to compare.

  6. Click the Comparison tab.

  7. Select the run you want to compare from the Compare with drop-down list.

    The Routing Comparison Report displays.
  8. Review the results in the Routing Comparison Report.

    For example, the Average mileage field shows the average mileage per route for travel-enabled activities (in Average Mileage or Average Kilometer based on the units chosen) for each routing run.

    The following figure shows the comparison of two routing runs:


    This figure shows the routing comparison report for two routing runs

    Results with a green check mark are the most optimal. Results with a red X are the least optimal. Apart from differentiating the results in colors, you can also review them as text.

Assess Summary Data About Routing Strategies

The Routing Report provides statistics about the results of your routing runs. It is difficult to assess the success of your routing strategy when looking at individual runs or routes. This report consolidates the information from several runs and demonstrates the combined results so that you can measure productivity and drive time.

You can generate report data over almost any time frame and include both historical data and future data.

Among other pieces of data, this report presents travel time, work time, and number of activities. This report displays route statistics for each resource in the bucket and a summary of the statistics for the entire bucket. The report helps you:

  • Determine the quality of routes.

  • Understand past routing performance and the acceptability of future routes in an objective manner.

  • Measure performance of the routing engine over time.

The Routing Report presents a summary of the following information about each resource’s route:

  • Minutes of travel

  • Work

  • Activity fit %

  • Overtime

  • Idle time

The report presents either the data for pending activities or the data for completed activities, depending on the time of day that you run it. The report includes the following sections:
  • End of the day, or days later: Completed activities

  • Beginning of the day: Pending activities

  • Mid-day: Part pending activities, part completed activities

To view the Routing report:

  1. Select Routing Report from the navigation menu.

    The Routing report is displayed.
  2. Click View and select the date range for the report.

  3. Optionally, change the value in the Rows field to change the number of visible report rows.

  4. Click Apply.

  5. Review the Routing Report:

    • Aggregator: Displays the name of the organization to which the resource is assigned.

    • Resource: Displays the resource’s name as it appears on the Resource Tree.

    • Date: Indicates the date of route in Month/Day/Year format.

    • Jobs: Displays the number of jobs on the resource’s route for that day.

    • Travel, minutes: Displays the resource’s travel time for the day. Travel time represents total travel time to and from known locations. If an activity (such as lunch) is not a known location, the application will not represent that time in travel time. Similarly, time spent on activities (meetings or lunch), is not represented in the Routing Report.

    • Work, minutes: Displays the resource’s time spent working on activities for the day.

    • Job Fit %: Displays the percentage of appropriate fit of resource based on his / her skills compared to the skills required by the activities.

    • Overtime, minutes: Displays the number of minutes estimated to exceed the resource’s shift for that day. Overtime is defined as any work performed outside the resource’s shift for that day. The application does not take into account the hours worked earlier in the week or the length of shift scheduled for that day. The application just looks for work that is performed outside the shift represented in that day’s working calendar.

    • Idle time, minutes: Specifies the number of minutes on the route not allocated to activities or travel time.

At the bottom of the report, see the total for the page displayed and total for the report in aggregate.

Image shows the Routing Report with summary data.

Roll Back a Routing Run

You can return your activities and resources to the state they were in before you ran a routing plan. You can roll back a single day or a segmentable activities routing plan. Rolling back a routing plan returns the routed activities to the bucket and removes routes from the resources’ calendars. You might want to roll back a routing run during testing or when a configuration mistake causes routing results that are not optimal.

The following conditions must be met for a rollback to be successful:
  • The activities must still be in Pending status.

  • The activities must still be assigned to the resources that the application assigned them to. Any activities that do not meet these conditions will remain in place on the resources’ routes after the rollback. You can move them back to the bucket manually.

To enable a routing run rollback:

  1. In the Resource Tree, select the bucket used for the routing run.

  2. Navigate to the Routing screen.

  3. Click Execution Summary to display the list of routing runs.

  4. Click the row for the run that you want to roll back.

  5. Click the Rollback button in the routing results window.

All activities and resources are returned to their previous states before a routing run.