View Routing Run Results Analysis

Starting Update 22C, Routing allows you to collect routing run statistics over different days and different buckets for further analysis to identify more effective ways to route data and apply preventive measures if needed.

This feature offers these new functionalities:

  • routingRunEvent has some new fields added to it, and two fields - routingRollbackRunId and type are obsolete as of now
  • Option to export daily routing run results into OAC and Daily Extract
  • Calculations of Not Routed Activities, Average Working Time, Average Overtime, Average Travel Time, Average Downtime and Average Mileage that are shown in Routing Summary and Report Screens fixed for correctness to cover corner cases
  • Messages for non-successful routing runs (skipped, failed or terminated) slightly corrected for clarity

Before analyzing routing runs, make sure that you have an existing OAC or Daily Extract integration or add a new one.

Follow these steps:

  1. Navigate to Configuration, Applications.
  2. In the Applications page, add the new integration by adding an application.
    This image displays the Add application dialog box:

    Image shows Add application dialog box

  3. Once this is done, open the integration application. In the Add Configuration dialog box, add the Routing Run Results field set to it.
    This image displays the Add configuration dialog box:

    Image shows Add configuration dialog box

  4. Choose the fields needed from the list.
    This image displays the Add field dialog box:

    Image shows Add field dialog box

Results:

This table lists the fields you can add:

Event Field name for REST API Recommended Field Label for OAC Type of the field Definition of the field
routingRunId ROUTING_RUN_ID int The unique ID of the specific routing run
routingPlan ROUTING_PLAN_NAME string The name of the routing plan that was run. Is not unique.
routingPlanId ROUTING_PLAN_ID int The unique ID of the routing plan that was run.
routingProfile ROUTING_PROFILE_NAME string The name of the routing profile that the routing plan belongs to. Is not unique.
routingProfileId ROUTING_PROFILE_ID int The unique ID of the routing profile that the routing plan belongs to.
startType TYPE_OF_ROUTING_START string Type of routing start:
  • When routing is started automatically on schedule, the value is 'automatic'.
  • When routing is started manually by user, the value is 'manual'.
resourceId RESOURCE_INTERNAL_ID int The internal ID of the routing bucket.
targetDate ROUTING_TARGET_DATE string The date for which the activities are routed. The format is 'YYYY-MM-DD'.
numberOfDays NUMBER_OF_DAYS ROUTED int For a single day routing, the value is 1. For multi-day routing, the value is the number of days routed, starting from 'targetDate' and going into the future.
result ROUTING_RESULT string
  • When the routing is executed successfully, and some activities are moved as a result, the value is succeeded.
  • When the routing execution is stopped by the user, the value is stopped.
  • When the routing execution fails, the value is failed.
message FAILURE_MESSAGE string The field contains the error description when 'result' is 'failed' or 'skipped'. List of possible errors and solutions are available under Troubleshoot Routing in the Using Routing guide.
routingRunDuration ROUTING_RUN_DURATION int The duration (in seconds) of the routing run.
activitiesMatched ACTIVITIES_MATCHED_FILTERS int The number of activities and per-existing activity segments matching the routing plan filters.
activitiesInRoutesBeforeRouting ACTIVITIES_IN_ROUTES_BEFORE int The number of activities and per-existing activity segments that were in routes of resources before the routing run.
activitiesRouted ROUTED_ACTIVITIES int The number of activities scheduled and assigned by the routing run.
activitiesNotRouted NOT_ROUTED_ACTIVITIES int The number of activities matching the routing plan filters but not routed.
resourcesMatched RESOURCES_MATCHED_FILTERS int The number of resources matching the routing plan filters.
resourcesUsed RESOURCES_WITH_CHANGES int The number of resources with assigned or removed activities by the routing run.
averageWorkingTime AVERAGE_WORKING_TIME int The average working time of the resources (in minutes).
averageOvertime AVERAGE_OVERTIME int The average overtime time of the resources (in minutes).
averageTravelTime AVERAGE_TRAVEL_TIME int The average travel time of the resources (in minutes).
averageDowntime AVERAGE_IDLE_TIME int The average downtime time of the resources (in minutes).
extendedStatus EXTENDED_STATUS string

The field includes:

  • routing
  • routing_rollback

If type is 'routing', then next position in the field shows routingAlgorithmType. This field may take values: bulk, urgent, and immediate.

If type is 'bulk' or 'routing' then next position in the field shows shows result if it differs from possible values of the field result. When there are no activities found, the value is 'skipped'

The next position in the field is set to notAccepted and points at the case when it is 'bulk' 'routing', 'result' is 'succeeded' but was not applied

Allowed combinations:

  • routing-rollback
  • routing-bulk
  • routing-urgent
  • routing-immediate
  • routing-bulk-skipped
  • routing-bulk-notAccepted
  • routing-immediate-skipped
  • routing-broadcast
averageMileage AVERAGE_MILEAGE int The average travel mileage of the resources (in miles or km).
reoptimizedActivities REOPTIMIZED_ACTIVITIES int The number of activities re-optimized by the routing run.
createdActivities CREATED_ACTIVITIES int The number of activities were created automatically for the routing run.
removedActivities REMOVED_ACTIVITIES int The number of removed activities (which may be warehouse visits or activity segments)
startTime ROUTING_RUN_START_TIME string The time when the routing run started in UTC time zone. The time format is YYYY-MM-DD HH:MM:SS.
assurancePercentage ASSURANCE_OF_ROUTING_RESULT double The assurance of routing result, from 0 to 100. The lesser assurance is, the less confident is the result, which, in most cases, may be connected to sub-optimal results. Typically, for good results one may expect assurance 85 or more.
consumedTime CONSUMED_TIME int Actual time (in seconds) that was consumed by SLR and routing engine during the routing run.
routingPlanTimeLimit TIME_LIMIT int Time limit for the routing plan (in seconds).
routingPlanOptimizationGoal OPTIMIZATION_GOAL string

If there is an optimization goal at the routing run, the field shows the goal. May be one of the following:

  • balanced
  • minimize_travel
  • maximize_jobs
  • maximize_jobs_density
  • reduce_overdue"
routingPlanTimeLimitSlrPercentage PERCENTS_OF_TIME_LIMIT_FOR_SLR int Part of total time limit which is time limit for SLR service
notAssignedDueToValidationIssuesCount NOT_ASSIGNED_VALIDATION int Configuration / Data validation errors
notAssignedDueToChangesWhileRoutingWasRunningCount NOT_ASSIGNED_ROUTING_RUNNING int The assignment is impossible due to changes that happened while routing was running
notAssignedDueToActivityConfigurationCount NOT_ASSIGNED_ACTIVITY_CONFIG int Not-assignment reason: configuration of an activity
notAssignedDueToResourcesConfigurationCount NOT_ASSIGNED_RESOURCES_CONFIG int Not-assignment reason: configuration of resources
notAssignedNeedsManualAssignmentCount NOT_ASSIGNED_ASSIGN_MANUAL int Not-assignment reason: the constraint violation. Try to assign the activity manually
notAssignedOtherIssuesCount NOT_ASSIGNED_OTHER int Other Not-Assignment Reasons
partiallyAssignedSegmentableActivitiesCount PARTIALLY_ASSIGNED int Partially assigned segmentable activities
notAssignedDueToDynamicModeRestrictionsCount NOT_ASSIGNED_DYNAMIC_MODE int Activities were not assigned in accordance with routing plan dynamic mode settings
notAssignedDueToCostSettingsCount NOT_ASSIGNED_COSTS_SETTINGS int Not-assignment reason: routing plan and/or resource type cost settings may be suboptimal
notAssignedDueToTravelRestrictionsCount NOT_ASSIGNED_TRAVEL_SETTINGS int Not-assignment reason: activity locations and routing plan travel settings prohibits assignment
notAssignedDueToOptimizationCriteriaCount NOT_ASSIGNED_THRESHOLDS int Activities were not assigned in accordance to optimization criteria chosen
resourceBlockedDueToRoutingScheduleCount BLOCKED_RESOURCES int Resource are blocked by another run as of sub-optimal routing plan schedule
notAssignedNeedsOvertimeOverdueRulesRelaxationCount NOT_ASSIGNED_OVERTIME_OVERDUE int Not-assignment reason: the overtime/overdue constraint violation. Try to assign manually with relaxed constrains or just relax business rules on overdue/overtime for the routing plan
subcategory SUBCATEGORY string Reserved for future needs
resourceExternalId RESOURCE_EXTERNAL_ID string The external ID of the routing bucket.
routingRollbackRunId RUN_ID_ROLLED_BACK int obsolete
type TYPE_OF_THE_RUN string obsolete