Call Volume Analytics Using Vertex AI

AngelTrack's Vertex AI route planner can perform analytics on your past call volume, to help you plan contracts and staffing.

If you activate the Vertex AI route planner feature, you can also use it to perform analytics on your historical data.

If you haven't used Vertex before, please start with the Vertex AI Guide.

A Warning About Non-Linearity and Local Minima

When solving a call schedule, Vertex analyzes a set of possibilities -- all the ways that a set of vehicles might fulfill a set of calls, and all the routes which those vehicles might take from one call to the next. For large schedules (40+ calls per day) this search space quickly becomes intractable, with quadrillions of possibilities, and so Vertex makes a tradeoff: Search depth versus search time.

If Vertex had infinite time, then it could check every possible route and every alternate route. It could always find the optimal choice.

Unfortunately, Vertex must find a solution while the user is sitting at their computer waiting, and so it cannot check every possibility. It therefore does not always find as good a solution as God could find... but then again neither do human dispatchers.

This can cause a puzzling non-linearity in its results. If you are experimenting with historical data, you might find that adding one call to solution can cause the total cost to drop rather than increase. This happens because the addition of a pickup point can make it possible for Vertex to see a whole nother of better choices, which it previously did not have time to check.

Analysis of Crew Staffing / Shift Coverage

Apart from Vertex, AngelTrack already offers you a pair of Shift Utilization Reports that indicate how busy your shifts were on past dates, including percent of time idle, percent of time enroute, percent of time on-scene, et cetera. It also offers several Time On Task [TOT] reports. All of these are available from the Dispatch Home page.

What Vertex can do, which those reports cannot, is a day-by-day re-solve of each day's actual calls, using the day's actual shifts, to examine the trade-off between staffing and late pickups. By reviewing past dates, you might discover certain days when you are consistently over-staffed, in which Vertex might find a way to take one shift out of service.

It may or may not outperform your current dispatchers. While Vertex has the advantage of brute-force power, human dispatchers have the ability to rearrange the schedule on the fly, calling facilities and pushing trips forward or backward in time so as to make the schedule fit. For this reason, a clever dispatcher at the top of their game can beat any routing AI for workloads up to perhaps 60 calls per day.

So, until your daily call volume crosses about 50 calls, do not expect Vertex to beat your best dispatcher, especially when running against historical data where your dispatchers had more freedom to reshuffle than Vertex does.

Comparison of Historical Versus AI Solution

After completing a solve, Vertex will display the solution in the usual way. It will also present a radiobutton so that you can choose which data to display: "Solution" or "Historical". The historical option will display your actual call schedule as run that day, for comparison to Vertex's solution.

You can switch back and forth to compare.

Vertex's solution might allocate more late pickups to reduce mileage or eliminate a unit, or vice versa, according to the costing parameters you've configured plus the last-minute options you selected for the solve.

When comparing Vertex's solution to your historical data, you will notice Vertex's trip bars are wider. It will seem like your trips historically take less time to run than Vertex expects... but this is just an illusion. Vertex assigns idle units to head out early, and the trip bars reflect this, whereas the trip bars in your historical data reflect actual arrival times.

☑ Use Actual Arrival Times

This option is available when analyzing historical trip data. It is used to address a specific situation in any historical analysis...

Suppose you had a dialysis pickup scheduled for 16:00. But suppose the dialysis center called, and said the patient was having trouble clotting, so please don't pick them up until 16:40. Your dispatchers agreed, and the crew showed up promptly at 16:40. Everyone was happy.

When Vertex reviews the data afterward, the call appears to be a late pickup. The crew should've arrived at 16:00. AngelTrack's on-time reports will wrongly flag this as 40 minutes late. When Vertex re-solves the day, it will try to put them on-scene right at 16:00... which then throws everything else off.

This problem is avoided when dispatchers keep meticulous records of these exceptional pickup times (AngelTrack has this capability), but sometimes everyone is too busy and so the one-off change in arrival time doesn't get recorded.

To work around this problem during a Vertex historical solve, you can select the ☑ Use Actual Arrival Times tickybox. Vertex will then try to match all of the day's actual pickup times, ignoring all scheduled pickup times, just to see if a better strategy is possible.

When reviewing the solution, the display of the "Historical" plot will say that no calls were late, because all actual arrival times are declared to be correct. You can then review Vertex's solution to see what it might've done differently.