Vertex AI Dispatch and Route Planner

Vertex is an AI route planner that can assign your whole day's call schedule at once, finding the lowest-cost solution given your available shifts.

AngelRoutes.2.medium

Configuration

Follow these steps to configure Vertex:

  1. Login to AngelTrack with Dispatcher or Administrator privileges.
  2. Go to the Settings page and select the Service Levels Configuration item.
  3. Scroll down and click the link to the Service Costs Configuration.
  4. AngelTrack will display the costing chart, which controls the AI's decisions when planning the lowest-cost route. By adjusting these costs, you can prioritize mileage or time, and you can adjust its willingness to use higher-level units to cover lower-level calls. At first, try using the defaults, but now you know where to look to adjust its decisions.
  5. Ensure you have a license for Vertex, by visiting the Authorization page and clicking on the "Feature selection" item to review the Feature Buffet. (You can take a Test Drive before you have a license.)

Capabilities and Limitations

Vertex supports all of the following:

  • Shift capabilities and shift capability overrides;
  • Scheduled shifts aka dispatch preassignments;
  • Round-trip calls where the two legs are run by different shifts;
  • Wait-and-return calls (assumed to be 1 hour spent at destination);
  • Double- and triple-loading of wheelchair vans and car services;
  • Catch-and-release calls i.e. no transport;
  • Use of higher-level units (BLS, ALS) to run lower-level calls (WC, car);
  • Labs calls and telemedicine calls; 
  • Fire service levels;
  • Shifts held in reserve aka surge units;
  • Keeping shifts past their planned end time to help with an overloaded schedule;
  • Standby events (assumed to be 3 hours long);
  • Well-person checks (assumed to be 1 hour long);
  • The cost of idle time and of slack mileage;
  • Back-logs of waiting calls up to six hours old; and
  • User-configurable variable costing for each service level.

Vertex does NOT support any of the following:

  • Trips that run across midnight, i.e. Vertex solves one full calendar day at a time;
  • Aircraft and watercraft;
  • Mass-casualty events, evacuations, and disasters;
  • Very long trips to or from a state not in your region (see the Regions section below);
  • Shift qualification check overrides, i.e. a dispatcher can override a shift's capabilities during scheduling, but apart from that, Vertex cannot assign calls to unqualified shifts;
  • Shifts and scheduled shifts whose duration is less than one hour;
  • Shifts with 15 minutes or less remaining on their scheduled time period*;
  • Multiple responders to one call;
  • "Last in / First out" convenience for double- and triple-loaded wheelchair vans;
  • Lift assists needed by additional responders;
  • Special patient requirement flags like "Requires ECG", "Requires ventilator", "Requires isolation", and so forth, such requirements must be encapsulated within the service level requested; 
  • Will-call trips;
  • Delegation to affiliates (see discussion below); 
  • Preassignment to future recurrences** of a recurring dispatch; and
  • Patient affinities for specific crews, where one particular crew always takes care of a certain patient on certain days of the week... Vertex does not honor such preferences, instead it will always plan a route that minimizes quantifiable costs.

*The 15-minute limitation means that you cannot use Vertex if you keep your shift records open for weeks at a time. Vertex requires your shift records to have tidy start- and end-times so that it knows how much time each crew has on-duty.

**On the topic of recurring dispatches, please see the discussion below regarding Tomorrow Solves.

Vertex is a CPU-intensive AI, and it is shared between all AngelTrack customers, so you may request no more than twenty solves per hour from Vertex.

Also note, Vertex can only work with shifts that are already booked -- either active or scheduled. This means, if you want to use Vertex first thing in the morning to assign the entire day's calls, all shifts planned for the day must already be booked as active or scheduled. This will require you to use the Crew Scheduler, but don't worry, it's an extension of the Shifts system and so will be easy to learn.

"Garbage In, Garbage Out"

Vertex depends on accurate records for shifts, vehicles, and dispatches.

For shifts, their records must have accurate start times, end times, and capabilities. A crew's capabilities can be overridden in its shift record, but not on a call-by-call basis, as your dispatchers might be accustomed to doing.

For vehicles, their records must have accurate service capabilities and patient capacity:

  • Ambulances should be marked "Patient capacity = 1" unless they really do carry two stretchers at all times. Your ambulances might have set of auxiliary stretcher anchor points on their walls, to carry a second stretcher in a mass-casualty / disaster situation, but do not mark them as "Patient capacity = 2" or else Vertex will try to assign two simultaneous stretcher transports.
  • Wheelchair vans should be marked "Patient capacity = 1" unless they have two sets of anchor points and two sets of straps on board. If they have three sets, then you can mark them as "Patient capacity = 3" and Vertex will take advantage of that, however it will not try to arrange the convenience of "last in / first out".
  • Fire vehicles should be marked "Patient capacity = 0" and be designated capable of "First responder" but not wheelchair transport, gurney van transport, or BLS+ transport.

For dispatches, each record must have either of the following:

  • A specific pickup time that occurs during the selected date*; or
  • An accurate activation time.

These are used to plan arrival times, and so the efficiency of the plan depends on the accuracy of those fields. If you do not use the activation time field to store the "time to roll", then you must ensure that all calls have an accurate pickup time.

*Note that a certain common dispatcher error can cause Vertex to ignore a trip. If, for example, a dispatcher books a call to activate at 14:30 for a pickup at 14:00, AngelTrack will interpret the 14:00 pickup time as occurring the next day, i.e. after midnight. Vertex will therefore ignore the call, leaving it for a dispatcher to assign manually or to fix and then re-solve.

Regions / Transports Across State Lines

Vertex divides the United States into regions:

AngelRoutesRegionMap.600x400

You can see that some very large US states are regions unto themselves -- Texas, Florida, California, New York, and Michigan. Other states are smaller and thus form a region with their neighboring states.

Vertex can solve all trips -- both transports and non-transports alike -- that occur within a region. It cannot solve a trip that crosses into a different region.

Therefore, depending on where you live, it may be able to solve interstate transports, or it may exclude them (leaving them to your dispatcher to assign manually).

This limitation exists for performance reasons. By loading the Vertex routing engine with just one region at a time, it can solve your dispatch board in 1/20th of the time as would be needed by a planetary solver -- which means you can get a solution in five or ten or twenty seconds, instead of waiting ten minutes for it. Since nearly all AngelTrack agencies perform nearly all of their work intrastate, we think this is a good tradeoff... but if it drives you nuts, please contact AngelTrack Support and we'll see what can be done for your particular situation.

Puerto Rico

Puerto Rico is supported. Incidentally it is included in the Alaska + Hawaii region, however Vertex cannot solve for any ferry trips into or out of Puerto Rico, Alaska, or Hawaii.

Australia and Mexico

Our beloved customers in Australia and Mexico each reside in a single nationwide region, and so Vertex supports interstate / interprovince transports anywhere within their country.

Add-On License Required / Free Test Drive

Vertex is not included in your base AngelTrack license; rather it is an add-on which costs extra. To learn more, refer to the Feature Buffet Guide.

Without a license, you can still take Vertex on a test drive.

On a test drive, you can use Vertex to play today's or tomorrow's schedule, but not save the solution. You can also use Vertex to re-plan a past date, to see how its solution compares to what your dispatchers actually did, using your historical dispatch data already stored in AngelTrack.

For a test drive, follow these steps:

  1. Login to AngelTrack with Dispatcher or Administrator privileges.
  2. Navigate to any page in the dispatch areas.
  3. Find and click the lightning-bolt icon in the dispatch sidebar.
  4. The Vertex page will appear, and if you don't yet have an Vertex license, it will say, "Welcome to free test drive mode." 
  5. Select a day to solve. You can solve for 'today' if your shift/schedule records already exist, likewise for 'tomorrow' if tomorrow's shifts are already on the schedule. Or you can select the "One week ago" option to analyze all trips and shifts for the date exactly seven days prior, using your historical data.
  6. Before performing the solve, you can make adjustments to the solver's last-minute options. To learn what each option does, scroll down to the Last-Minute Options section further down in this help article.
  7. Click "Go" to perform the solve, and wait for the solution to return.

When the solution returns, you have two different ways of looking at it...

Reviewing a Solution / Before Commit

After a solution returns, Vertex will present you with two different ways of looking at it:

On the "Map" view, you can move the time-slider at the bottom to animate all vehicle movements throughout the day, and you can also select any particular shift from the list at left to zoom in on its activities.

On the "Tabular" view, you can see the solution rendered in the familiar style of the Today Bar, showing each shift's assignments throughout the day as colored blocks.

The solver will leave unassigned any calls that it can't fit into the available shifts. Ineligible trips (see the Capabilities and Limitations section above) do not appear in the solution and so must be assigned manually.

The solver will try to use as few crews as possible, so it might leave some shifts with zero calls to run. You will also see it frequently assign wheelchair calls to BLS+ units, if that is cheaper than sending a wheelchair van. You can adjust these behaviors by returning to the Service Costs Configuration page.

After reviewing a solution generated for 'Today', for 'Tomorrow', or for a future date, you have the option to commit it. See below for further discussion.

Committing a Solution / Saving the Route Plan

If your generated solution is for 'Today', for 'Tomorrow', or for a future date, then you have the option to commit it, saving the entire plan to your dispatch board.

This might entail a complete rearrangement of existing call assignments, if you've already got your day planned out. However, Vertex will not touch any call where the assigned crew has already gone enroute, and so committing your solution will not cause any confusion among your crews, except where they might've already looked over their day's assignments.

To commit the solution, open the Route Statistics Tab that appears in the lower-right corner of the Vertex page, and click the Commit button. It will save each trip's new assignment, which will then appear on your dispatch board.

There are two common errors that might occur when committing a solution, if you spent some time reviewing it before you commit such that it might've become stale:

  • A scheduled shift chosen for a call might've already activated and so is no longer available for preassignment; or
  • An active shift chosen for a call might've already ended, or been re-composed (and therefore possibly got different capabilities), and so is longer available for assignment.

In either case, only part of your solution will have been saved. You will be prompted to re-solve for the day and try again.

Last-Minute Options

As noted above, the Service Costs Configuration page allows you to permanently change the priorities that Vertex uses when solving your call schedule.

You also have some last-minute options for each solution you run; here is what they mean:

Flag late after: Adjust this number of minutes to determine when the Map view and Tabular view will highlight a pickup or dropoff that is going to be late. The Map view will indicate late arrivals by bouncing the map pins, while the Tabular view will indicate late arrivals by slowly blinking the trip blocks. The Tabular view will blink a trip block quickly, rather than slowly, if either its pickup or dropoff is going to be late by twice the number of minutes you set.

Recovery pad: Adjust this number of minutes to give a bit of extra time to each crew after the normal time allotted for dropoffs. On the Service Costs Configuration page you can set the normal dropoff delays for each service level, but the recovery pad lets you experiment with giving a bit of extra time to every call. You might try to squeeze in as many extra recovery minutes as possible while still covering all your calls in a satisfactory way.

Rush hour pad: Adjust this number of minutes to give extra time for any call whose pickup occurs between 07:00 and 09:59, or between 16:00 and 18:59. Use this option when Vertex's live traffic data does not include good coverage of your service area, causing it to allocate more calls to your crews than they can complete during rush hour.

Cost weighting: Adjust these cost sliders to prioritize on-time pickups and/or dropoffs against the normal cost schedule, if you are under pressure to be on-time and are therefore willing to spend some extra time, mileage, and/or crews to accomplish it.

Mid-Day Solves

You can ask Vertex to re-solve today's remaining call schedule in the middle of the day, if you like.

When it does so, Vertex will ignore trips for which all of the following are true:

  • The trip has activated;
  • The trip is assigned to an active shift (not to a scheduled shift); and
  • The assigned shift has already marked themselves 'enroute'.

It will also ignore trips for which any of the following are true:

  • The trip has become will-call; or
  • The trip is already delegated to an affiliate, even if that affiliate has not yet gone enroute.

During the re-solve, Vertex will try to fit the remaining call schedule into the remaining shifts, in the usual manner. It might rearrange the entire call schedule that it arranged earlier, if it sees a way to save money. If it can't fit everything together, it will leave some calls unassigned.

Tomorrow Solves / Tomorrow Coverage Checks

You can solve and commit your call schedule for tomorrow, at any point in time today, rather than waiting until tomorrow morning to do it.

However, this task should be done at the very end of the day, as late as possible, for these reasons:

  • It allows last-minute calls and cancellations to get onto the schedule before solving; and
  • It allows any daily-recurring trips activating today to finish and then recur onto tomorrow's schedule, which is necessary because Vertex cannot assign a crew to a future recurrence of a dispatch. (Thankfully, daily-recurring calls are rare in our industry, so this limitation probably will not bother you.)

Of course you can always re-solve whenever you like.

For example, late this evening you could solve tomorrow's schedule, to satisfy yourself that you'll have adequate coverage, and perhaps call up additional units; you don't need to commit the solution yet, not unless tomorrow's shifts are all on the schedule and you want their crews to be able to review tomorrow's plan in advance. Then, first thing tomorrow morning, re-solve and commit, to pick up any calls or cancellations that came in during the night.

Delegation to Affiliates

As noted above, Vertex never decides to delegate trips to an affiliate.

If Vertex cannot fit your whole call schedule into the available shifts, it will leave some calls unassigned. A dispatcher must review these leftovers and either fit them into the call schedule, or reschedule them, or call up additional crews, or delegate the calls to an affiliate.

When performing a mid-day solve, Vertex will ignore any call already delegated to an affiliate. Such calls will remain delegated, or you can manually reassign them if Vertex is able to free up a time window in the call schedule.

Costing Adjustments

The Service Costs Configuration page -- available from the Service Levels Configuration item on the Settings page -- allows you control of Vertex's behavior.

Each service level has a set of costs associated with it. For example, a wheelchair van has a very different cost per hour and per mile than does a BLS unit. It also has shorter pickup and dropoff delays.

Here are the functions of the columns in the costing chart:

  • Fixed Cost Per Visit: This column is normally set to $1, for all providers whose crews work standard shifts and thus have no marginal cost to respond to a call during their shift. Set this column to more than $1 if you use part-time or quasi-volunteer responders whom you pay for each call they answer.
  • Cost Per Mile Driven: This is the marginal cost for every mile the vehicle drives, reflecting the cost of fuel, maintenance, repairs, and any per-mile insurance. AngelTrack's various fleet cost reports can help you adjust this column.
  • Cost Per Hour Waiting: This is the hourly cost of crewing the vehicle while it's sitting at the station ready to respond, and also the cost of waiting at the destination during a wait-and-return call.
  • Cost Per Hour Servicing: This is the hourly cost of crewing the vehicle while on-scene or at destination. Normally this is the same as the Cost Per Hour Waiting, but you can increase it to reflect the approximate marginal cost of liability, exposures, and accidents during patient contact.
  • Cost Per Hour Transporting: This is the hourly cost of crewing the vehicle while transporting a patient. Normally this is the same as the Cost Per Hour Waiting, but you can increase it to reflect the approximate marginal cost of the risk of traffic accidents.
  • Average Pickup Delay Minutes: This is the typical number of minutes spent on-scene for a call of the specified service level. The values in this column were pre-set for you using statistical data drawn from all AngelTrack customers, so you may need to adjust it if your caseload is different from the national average.
  • Average Dropoff Delay Minutes: Same as above, but for the number of minutes spent dropping off at destination.

Surge Units / Excluding Shifts Held in Reserve

You already have a lot of ways to put your thumb on the scales, regarding Vertex's choice of units. For example, you can adjust the costing so that Vertex tries to avoid using your higher-level units wherever possible.,

To entirely exempt certain shifts from Vertex, so that they are kept available as surge units, then set the shifts' "Primary role" datafield to "Surge / Reserve responder".

You can do the same thing with scheduled shifts.

When using Vertex to analyze historical data, you have the option to include your surge units, since they would've been used as needed on that date.

Work-Ins / Quick Schedule Checks

With a customer still on the phone, Vertex can show you how a new trip will affect the day's call schedule.

It can do this for any future date when you've got your shifts already scheduled, or for the current day where you've still got active or scheduled shifts. In other words, this feature requires you to have at least one shift already active or booked on the proposed date.

To perform this check, fill out the trip form first with the pickup and dropoff address (if any), service level, and dates and times, then click the Vertex icon that appears on a side-tab at the bottom-right corner of the Dispatch Create page. 

Vertex will tentatively add the new trip to your call schedule and then resolve the whole day, to show you the impact of the new trip. It cannot speculatively add more shifts, so if your schedule becomes overloaded, you will see more and more trips being late, and you may even see Vertex propose to keep a few shifts on duty for an extra hour or so.

You can also ask Vertex to solve your call schedule 'before' and 'after' adding the new trip, so that you can compare them and see what the new trip's impact will be. In the solution viewer you'll be able to switch back and forth to see the difference. (This feature requires Vertex to solve your call schedule twice, and so it counts twice against your hourly limit.)

If you are working a tentative trip into the current day, then Vertex will give you what is known as a "mid-day solve", which has some extra rules that are described in the section above. During a mid-day solve, all calls where the unit is already enroute will be left untouched; Vertex will solve only those trips which do not yet have a unit enroute, which it is free to reassign to a different unit as necessary.

To learn more about Vertex's work-in prediction feature, please visit the Vertex Work-In Solver Guide.

Running Analytics Against Historical Data

Vertex can re-solve past dates, comparing its solutions to the actual performance of your dispatch office.

To learn more, please visit the Vertex Analytics Guide.

Mapping Data

Vertex uses street-mapping data from the OpenStreetMap project.

The Vertex AI downloads fresh data from OpenStreetMap every night.

Throttle / Hourly Solve Limit

Vertex is an AI running in a dedicated cluster where it is shared by all AngelTrack customers. Solves are CPU-intensive and so each customer has an hourly limit on the number of solutions that can be requested. When you reach your limit, Vertex will issue a warning and ask you to wait a while before submitting more requests.

Once Vertex matures and its population of users stabilizes, we will adjust its hardware resources and the hourly solve limit in order to provide the greatest value to the greatest number of users.

Frequently Asked Questions

All frequently-asked questions are listed in the Vertex FAQ.