How does Dispatcher calculate the Estimated Time of Arrival (ETA)?
Yojee’s Estimated Time of Arrival (ETA) is calculated based on the following factors:
- Epoch time: the current time or the driver’s start time (depending whichever is later)
- Start location: the start location of the driver (based on standard start location or current location depending)
- Vehicle type: the vehicle type of the driver containing the speed and the load capacity of the vehicle.
- Service time: the amount of time the driver needs at a customer to deliver the goods (standard is 300 seconds or 5 minutes)
- Travelling time: the amount of time needed between tasks
- Commit time: the timeslot set for a task
- Operating hours: the opening hours of the customer
The calculation is done in several steps.
ETA of the first taskFirst, Yojee calculates the ETA of the first task. This is done using the GeoServer (the server that shares, processes and edits geographical data). The GeoServer uses 3 parameters to calculate these ETA's:
- Epoch time
- Start location
- Vehicle type
The epoch time can be the current time or the driver’s start time. This depends if the current time is after or before the start time of the driver and if this start time has been set in the system.
For example, it is 8.00 AM when you optimise an order. The start time of the driver is 9.00 AM. In this case, the system ignores the current time and instead uses the driver’s start time to calculate the ETA, because the driver only starts in an hour. If you optimise another order at 1.00 PM, the current time will be used, because the driver has already started his shift.
Which start location Yojee uses depends on the epoch time.
The server returns the ETA of the first task based on the current time or start-time of the driver, the start location and the vehicle type.
ETA Subsequent Tasks
The ETA for the first task is used as the base to calculate the ETAs of the subsequent tasks. Yojee computes these ETAs by taking the previous task’s ETA and adding the service time of the previous task, as well as the travelling time between the two tasks to it.
Hence the general formula for calculating ETA is:
Previous Task's ETA + Previous Task's Service Time + Travelling Time
For example, if you deliver furniture and your driver needs 2 hrs to install the furniture and the next customer is half an hour away, then the system will add 2hr and the travelling time of half an hour to the next ETA.
Yojee will use “same location service time” if multiple items need to be delivered at the same location. In that case, the system will not add extra travelling time for each item, since all items will be delivered at the same location.
Yojee generates ETAs for all of the subsequent tasks based on the previous task's ETA, the previous task's service time and travelling time.
Commit Time & Operating Hours
This ETA is then updated with the task’s commit time of the previous task, as well as the customers opening hours, depending on which time is later.
For example, the driver delivers the previous tasks at 8.45 AM but the customer only opens at 9.00 AM, in that case, 9.00 AM will be used to calculate the subsequent task’s ETA.
Yojee calculates for the subsequent tasks based on previous task's ETA, previous task's service time, travelling time, commit time and the opening hours. Finally, Yojee repeats steps 3 to 6 to calculate the ETA of the next tasks in the sequence.