ACI Documentation

MOW Route Optimization

Executive Summary

MOW Route Optimization re-sequences the delivery stops on meals-on-wheels routes so each route is driven in the fastest order, and then writes the new visit times back to AlayaCare. A coordinator starts a report by choosing meal routes and a date range. The system optimizes each route one service day at a time, starting from the route's starting location and start time, and updates the start and end times of the route's visits in AlayaCare to follow the optimized order. Each run is saved as a job so the results, travel distance and time, problems found, and the original and new visit times can be reviewed afterwards. The list also shows optimization jobs created by other screens, such as MOW Reporting, which has an option to optimize routes when a report is started.

Key Features

  • Optimize one or more meal routes across a date range, one day at a time
  • Update visit start and end times in AlayaCare to match the optimized sequence
  • Keep visits that are flagged as fixed-time unchanged
  • Group visits for the same client and address into one stop, with or without regard to their start time
  • Review each route and day: result, number of visits, travel distance and time, and any errors
  • Review each visit's original and optimized times and comments
  • Flag visits that are still scheduled at 12:00 AM after optimization
  • Choose which AlayaCare scheduling checks are overridden when visit times are updated

Typical Workflow

  1. Make sure each meal route is set up to use a starting location, with a geocoded starting address, a start time, and a depot visit time.
  2. Click Start A New Report, choose the Facilities (use Groups first to narrow the list) and the date range, then click Ok.
  3. Wait for the processing panel to finish. The new job appears at the top of the grid.
  4. Check the Errors column. Click Edit on the job row (or right-click it and choose Edit) to open the results.
  5. Review each route and day. Open Detail Visits to compare original and optimized times.

Configurable Settings

Open View Settings or Edit Settings from this screen (when permitted) to change these options.

GroupSettingTypePurpose
GeneralFixed Time Visit TagTextTag that marks a visit as fixed-time. Visits carrying this tag are left unchanged and are sent to the optimizer with their appointment time locked.
Update Visit OverridesOverlapping VisitsYes/NoLets a visit update go through even if it overlaps another visit.
Update Visit OverridesService InstructionsYes/NoBypasses the AlayaCare service-instructions validation.
Update Visit OverridesReason CodeYes/NoBypasses the AlayaCare reason-code validation.
Update Visit OverridesLocked VisitYes/NoAllows a locked visit to be updated.
Update Visit OverridesBlocked EmployeeYes/NoAllows the update when the assigned employee is blocked.
Update Visit OverridesUnavailable EmployeeYes/NoAllows the update when the assigned employee is unavailable.
Update Visit OverridesBlocked FacilityYes/NoAllows the update when the facility is blocked.
Update Visit OverridesAuthorizationYes/NoBypasses AlayaCare authorization checks.
Optimization OptionsGrouping Waypoints ByDropdownHow visits are combined into stops: Group on Client, Address and Time, or Group on Client and Address.
Optimization OptionsRe-Check Visits After OptimizationYes/NoAfter a day is optimized, reads the visits again and flags any still scheduled at 12:00 AM.

A delay between visit updates can also be set, but it is maintained outside this dialog.

Available Permissions

The following permissions are available to be assigned to AlayaCare Roles:

AttributeWhat It Controls
ViewOpen the page, start reports, and open results
Settings ViewOpen View Settings to see the page configuration
Settings EditOpen Edit Settings and change the page configuration

Main Grid

The grid lists the route optimization jobs, newest first (14 rows per page). The ID column stays in place when scrolling sideways.

ColumnDescription
IDJob number.
Source ViewThe screen that created the job.
Group Waypoints ByThe stop grouping used for the job.
FromFirst service day.
ToLast service day.
AddedWhen the job was started, in your time zone.
Added ByUser who started the job.
Processing StartWhen processing began.
Processing EndWhen processing finished.
DurationElapsed processing time.
ErrorsNumber of problems found. Blank when there were none.
Manage RecordsEdit icon that opens the results.

Actions

ButtonDescription
Start A New ReportOpens the Start A New Report dialog.
View SettingsOpens the page settings in read-only mode (when settings view is permitted).
Edit SettingsOpens the page settings for editing (when settings edit is permitted).
Edit (row icon, or right-click a row)Opens the Detail dialog for the job.

Dialog Components

Start A New Report

Opens from Start A New Report. Click Ok to run the optimization.

FieldPurpose
GroupsOptional. Limits the Facilities list to routes in the chosen groups. The list refreshes when you leave this field.
FacilitiesMeal routes to optimize. At least one is required.
Choose a Date Range (each day will be processed individually)First and last service day. Both dates are required.

Detail

Opens from Edit. Shows the job ID and a grid of the routes and days that were optimized (12 rows per page). Click Close when finished.

ColumnDescription
NameMeal route.
DateService day.
ResultPass when the route was optimized, Fail when it could not be, or 12AM for visits still scheduled at 12:00 AM after optimization.
VisitsNumber of visits included.
Travel KMEstimated driving distance of the optimized route.
Travel TimeEstimated driving time, in minutes.
Error CountNumber of problems found.
ErrorsProblem messages.
Manage RecordsTwo icons. The first (edit) opens the row's full Result and Result Messages; the second opens Detail Visits.

Result

Shows the Result and the full Result Messages for the route and day. Click Ok to close.

Detail Visits

Lists the visits behind a route and day (10 rows per page). Click Ok to close. Times are shown in the route's time zone.

For Pass and Fail rows:

ColumnDescription
GroupStop number the visit belongs to.
Group Start AtStart time (hours and minutes) of the stop before optimization.
Group AddressAddress of the stop.
Group Client IDAlayaCare client ID.
Group Client NameClient last name, first name.
Visit IDAlayaCare visit number.
Original Start AtVisit start before optimization.
Original End AtVisit end before optimization.
Optimized Start AtNew visit start.
Optimized End AtNew visit end.
CommentsFor example "Fixed Time Visit. No Change", or the reason AlayaCare rejected an update.

For 12AM rows the columns are Start At, End At, Address, Client ID, Client Name, Visit ID, and Comments.

Dependencies

The following tables must be configured for lookups on this view to work:

TableDescription
FacilitiesMeal routes offered in the report. Each route needs a starting location, start time, and depot visit time (and optionally an ending location).
GroupsMeal route groups used to narrow the route list.
Service CodesWhether a service code is excluded from route optimization, and whether the stop time comes from the visit or from the service code.
TagsThe fixed-time visit tag.

Processing Overviews

This section describes what happens after you confirm a processing action.

Start A New Report

  1. Requires at least one facility and a date range; otherwise a warning is shown and the dialog stays open.
  2. Creates a job recording the grouping option and date range, and shows a processing panel.
  3. Confirms each selected meal route is ready. Processing stops before anything is optimized if a route cannot be found, does not have Use Starting Location turned on, has no geocoded starting address, has no start time, or has no depot visit time.
  4. Takes each route in turn and each service day in the date range, using the route's time zone, and loads the route's visits for that day from AlayaCare.
  5. Loads the visit, client, and service for each visit, skipping cancelled visits, visits on hold, and visits with no client. The stop address is the service's own location when it has one, otherwise the client's home address.
  6. Groups visits into stops according to Grouping Waypoints By. With Group on Client, Address and Time, the same client at the same address and start time is one stop. With Group on Client and Address, the same client and address is one stop whatever the start time. The visits in a group are lined up to the first visit's start time and the longest visit length, and only one waypoint is sent for the group.
  7. Leaves out visits whose service code is excluded from route optimization or cannot be found. If nothing is left, no result is recorded for that route and day.
  8. If any client in the day is not geocoded, the day is not optimized: those clients are listed in Errors, the Result is Fail, and no visit times are changed. One missing location blocks the whole route and day.
  9. Otherwise submits the stops to the mapping service, starting at the route's starting location, ending at its ending location when one is used (the starting location when it is also the end), and departing at the route's start time plus its depot visit time. The fastest driving order is requested with traffic ignored. Each stop is given its service time, taken from the service code or the visit, with five minutes used when no time is available. Fixed-time visits are sent with their appointment time locked.
  10. If the mapping service returns a sequence, the Result is Pass and the travel distance and time are saved. If it returns errors or cannot honour a constraint, they are written to Errors and the Result stays Fail.
  11. Updates each optimized visit in AlayaCare: the estimated arrival becomes the new start and the estimated departure the new end (hours and minutes only), and five minutes is added to the end when the two are the same. Visits that share a stop get the same times. The overrides ticked in the page settings are applied, together with the reason-code override, and the configured delay is observed between updates.
  12. Fixed-time visits, and visits that received no optimized order, are not changed in AlayaCare and are recorded with a comment. If AlayaCare rejects an update, the reason is saved in the visit's Comments; the day's Result can still be Pass.
  13. When Re-Check Visits After Optimization is on, reads the route's visits for the day again and records a separate 12AM result listing any still scheduled at 12:00 AM, with a warning.
  14. When all routes are done, saves the job's end time and duration.