How are ETA times calculated?

How does Dispatcher calculate the Estimated Time of Arrival (ETA)? 

Yojee calculates the Estimated Time of Arrival (ETA) based on various factors to provide accurate arrival time estimates.

  • Epoch time: either the driver sequence start time (if available) or the driver's current time, 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 task

First, 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

Epoch Time

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. 

Start location

Which start location Yojee uses depends on the epoch time.

Vehicle Type

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

Service Time

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 2 hrs 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. 

Travelling Time

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 customer's 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 then uses the ETA of the previous task, the service time of the previous task, the travelling time, the commit time, and the customer's opening hours to calculate the ETA for the subsequent tasks. This process is repeated for each task in the sequence, ensuring accurate arrival time estimates for all deliveries.