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
- 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.
- Click Start A New Report, choose the Facilities (use Groups first to narrow the list) and the date range, then click Ok.
- Wait for the processing panel to finish. The new job appears at the top of the grid.
- Check the Errors column. Click Edit on the job row (or right-click it and choose Edit) to open the results.
- 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.
| Group | Setting | Type | Purpose |
|---|---|---|---|
| General | Fixed Time Visit Tag | Text | Tag 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 Overrides | Overlapping Visits | Yes/No | Lets a visit update go through even if it overlaps another visit. |
| Update Visit Overrides | Service Instructions | Yes/No | Bypasses the AlayaCare service-instructions validation. |
| Update Visit Overrides | Reason Code | Yes/No | Bypasses the AlayaCare reason-code validation. |
| Update Visit Overrides | Locked Visit | Yes/No | Allows a locked visit to be updated. |
| Update Visit Overrides | Blocked Employee | Yes/No | Allows the update when the assigned employee is blocked. |
| Update Visit Overrides | Unavailable Employee | Yes/No | Allows the update when the assigned employee is unavailable. |
| Update Visit Overrides | Blocked Facility | Yes/No | Allows the update when the facility is blocked. |
| Update Visit Overrides | Authorization | Yes/No | Bypasses AlayaCare authorization checks. |
| Optimization Options | Grouping Waypoints By | Dropdown | How visits are combined into stops: Group on Client, Address and Time, or Group on Client and Address. |
| Optimization Options | Re-Check Visits After Optimization | Yes/No | After 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:
| Attribute | What It Controls |
|---|---|
| View | Open the page, start reports, and open results |
| Settings View | Open View Settings to see the page configuration |
| Settings Edit | Open 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.
| Column | Description |
|---|---|
| ID | Job number. |
| Source View | The screen that created the job. |
| Group Waypoints By | The stop grouping used for the job. |
| From | First service day. |
| To | Last service day. |
| Added | When the job was started, in your time zone. |
| Added By | User who started the job. |
| Processing Start | When processing began. |
| Processing End | When processing finished. |
| Duration | Elapsed processing time. |
| Errors | Number of problems found. Blank when there were none. |
| Manage Records | Edit icon that opens the results. |
Actions
| Button | Description |
|---|---|
| Start A New Report | Opens the Start A New Report dialog. |
| View Settings | Opens the page settings in read-only mode (when settings view is permitted). |
| Edit Settings | Opens 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.
| Field | Purpose |
|---|---|
| Groups | Optional. Limits the Facilities list to routes in the chosen groups. The list refreshes when you leave this field. |
| Facilities | Meal 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.
| Column | Description |
|---|---|
| Name | Meal route. |
| Date | Service day. |
| Result | Pass when the route was optimized, Fail when it could not be, or 12AM for visits still scheduled at 12:00 AM after optimization. |
| Visits | Number of visits included. |
| Travel KM | Estimated driving distance of the optimized route. |
| Travel Time | Estimated driving time, in minutes. |
| Error Count | Number of problems found. |
| Errors | Problem messages. |
| Manage Records | Two 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:
| Column | Description |
|---|---|
| Group | Stop number the visit belongs to. |
| Group Start At | Start time (hours and minutes) of the stop before optimization. |
| Group Address | Address of the stop. |
| Group Client ID | AlayaCare client ID. |
| Group Client Name | Client last name, first name. |
| Visit ID | AlayaCare visit number. |
| Original Start At | Visit start before optimization. |
| Original End At | Visit end before optimization. |
| Optimized Start At | New visit start. |
| Optimized End At | New visit end. |
| Comments | For 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:
| Table | Description |
|---|---|
| Facilities | Meal routes offered in the report. Each route needs a starting location, start time, and depot visit time (and optionally an ending location). |
| Groups | Meal route groups used to narrow the route list. |
| Service Codes | Whether a service code is excluded from route optimization, and whether the stop time comes from the visit or from the service code. |
| Tags | The fixed-time visit tag. |
Processing Overviews
This section describes what happens after you confirm a processing action.
Start A New Report
- Requires at least one facility and a date range; otherwise a warning is shown and the dialog stays open.
- Creates a job recording the grouping option and date range, and shows a processing panel.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- When all routes are done, saves the job's end time and duration.