Vertex AI Dispatch and Route Planner

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



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;
  • Standby events (assumed to be 3 hours long);
  • Well-person checks (assumed to be 1 hour long);
  • 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*, i.e. Vertex will not propose that any crew stays late to run a call, instead such assignments must be done manually;
  • Multiple responders;
  • "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 ten 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 17 regions:


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 any 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.

Australia, Mexico, and Puerto Rico

Our beloved customers in Australia, Mexico, and Puerto Rico 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 blinking the trip blocks.

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.

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

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 coarse control of Vertex's behavior. Here are some suggestions:

If you wish to minimize how frequently Vertex uses higher-level units to cover lower-level calls (e.g. the use of BLS+ units to run wheelchair calls), increase the Cost Per Visit of the higher-level units, and/or decrease the Cost Per Visit of the lower-level units. This will tend to keep your high-level units free for emergency calls, since Vertex will avoid using them owing to their cost.

If you wish to allow Vertex to use higher-level units to cover lower-level calls only when those calls are nearby and quick, increase the Cost Per Mile and Cost Per Hour of the higher-level units, so that Vertex will avoid using them for long calls.

To permanently exclude high-level vehicles from running low-level calls, edit their vehicle records and revoke those lower-level capabilities.

To increase the planned delays during pickup or dropoff for certain service levels, for example if your MICU calls always take a long time to clear at destination, increase the Pickup Delay Minutes and/or Dropoff Delay Minutes for those service levels.