A delivery route can look perfect when it leaves the depot. The driver has an optimized sequence of stops, estimated arrival times, assigned delivery windows, and a planned return time. Yet by the middle of the route, the schedule may already be inaccurate.

A customer takes longer than expected to unload. A warehouse delays vehicle entry. One delivery fails because nobody is available to receive the shipment. The driver spends another twenty minutes finding an alternative unloading point. Suddenly, the estimated arrival time for the next customer is no longer reliable.

This is last-mile ETA drift: the difference between the arrival time predicted by a logistics system and the arrival time that is becoming realistic as the delivery progresses.

For logistics platforms, the challenge is not simply recalculating the route whenever a vehicle moves. A reliable ETA engine must understand dwell time, failed delivery attempts, stop dependencies, traffic conditions, and the remaining work on the driver's route.

Why Last-Mile ETAs Become Inaccurate

Traditional route planning typically starts with a set of known inputs:

  • Vehicle starting location
  • Destination coordinates
  • Planned stop sequence
  • Estimated travel time
  • Customer delivery windows
  • Vehicle capacity and route constraints

These inputs establish an initial schedule. However, they do not always represent what happens at each stop.

Consider a vehicle with eight scheduled deliveries. The first four stops are completed, but the second customer takes 35 minutes instead of the expected 15. The fifth stop has a restricted receiving window, and the sixth customer is unavailable.

The original ETA calculations may still use the planned service duration for each stop. As a result, the customer-facing arrival estimates gradually become disconnected from actual operating conditions.

Several factors contribute to this problem.

1. Dwell Time Is Different at Every Stop

Dwell time is the period a vehicle spends at a location after arriving. It may include:

  • Security checks and gate entry
  • Dock assignment
  • Unloading and loading
  • Document verification
  • Customer handover
  • Signature collection
  • Waiting for receiving staff

A route planner may use a standard service duration, but actual dwell time varies by location, customer, shipment type, and time of day.

A distribution center may consistently take longer during its morning receiving window. A retail location may have a short unloading process but a long security check.

If the ETA engine treats every stop as having the same service duration, it will repeatedly underestimate downstream arrival times.

2. Failed Stops Create Additional Work

A failed delivery changes more than the status of one stop.

The driver may need to:

  • Record the failure reason
  • Contact the dispatcher
  • Attempt customer communication
  • Find a secure location for the shipment
  • Return the delivery to the depot
  • Reschedule the stop
  • Complete another delivery attempt

A failed stop can also affect vehicle capacity, route priority, and customer commitments.

The ETA engine should therefore treat a failed delivery as an operational event that changes the remaining route, not merely as a status update.

3. Traffic Conditions Change During Execution

Traffic estimates generated before departure may become outdated. Road closures, congestion, weather, and local restrictions can change the time required to reach a destination.

A route engine should distinguish between planned travel time and updated travel time. It should also avoid assuming that every delay can be recovered by changing the route sequence.

4. GPS Data May Arrive Late

A mobile device can lose connectivity, and telematics data may be delayed. If the backend receives location updates after the actual observation time, it may calculate an ETA using an outdated vehicle position.

A reliable system should retain both the location observation timestamp and the server receipt timestamp. This allows the ETA engine to recognize stale data instead of presenting an old location as current.

Build ETA Recalculation Around Actual Route Events

A useful ETA architecture combines planned route information with events generated during execution.

The key events may include:

  • Vehicle departed from the depot
  • Vehicle arrived at a stop
  • Service started
  • Service completed
  • Delivery failed
  • Driver reported an exception
  • Vehicle departed from the stop
  • Route was reassigned or reordered

Each event should be associated with a vehicle, trip, stop, timestamp, and source.

The backend can then maintain the actual status of the route and recalculate the remaining schedule whenever a meaningful event changes the expected workload.

Separate Travel Time From Service Time

One of the most important design decisions is to calculate travel time and dwell time separately.

A simplified model is:

ETA(n) = T(current) + sum of [Travel(i) + Service(i)] for every stop i from the current stop up to stop n-1

Where:

  • T(current) is the current time or latest reliable calculation point.
  • Travel(i) is the estimated travel time to the next stop.
  • Service(i) is the expected dwell or service duration at that stop.

The model becomes more useful when actual dwell time replaces the planned duration for completed stops and updated estimates are applied to the remaining stops.

For example, if a vehicle arrives at a warehouse at 10:00 a.m. and leaves at 10:42 a.m., the system should use the actual 42-minute dwell time when calculating the next delivery's ETA.

It should not continue using the original 15-minute assumption.

Use Historical Dwell Time Carefully

Historical dwell-time data can improve estimates, but it needs context.

A simple average across all stops may hide important differences. A large warehouse, a residential delivery, and a retail receiving dock do not have comparable service patterns.

A better model can segment historical data by:

  • Customer or delivery location
  • Stop type
  • Shipment category
  • Vehicle type
  • Time of day
  • Day of week
  • Delivery service requirements

The system should also account for unusual observations. One exceptionally long unloading event should not automatically become the expected dwell time for every future visit.

Median dwell time, percentile-based estimates, or carefully maintained historical ranges may be more useful than an unfiltered average.

For example, a dispatcher may need to see both a likely arrival time and a realistic arrival window when the destination has variable unloading delays.

Handle Failed Deliveries as Explicit Route Changes

A failed stop should trigger a defined workflow.

First, the driver records the failure reason. The backend validates the event and updates the stop status. The route engine then determines which future stops are affected.

Depending on the operational rules, the system may:

  1. Keep the failed stop in the route for a later retry.
  2. Move the failed stop to the end of the route.
  3. Schedule a return to the depot.
  4. Assign the delivery to another vehicle.
  5. Request dispatcher approval before changing the route.

Not every failed delivery should be automatically rescheduled. A refrigerated shipment, a high-value parcel, and a time-sensitive medical delivery may require different handling.

The ETA engine must also avoid counting a failed stop as completed service if the driver has not actually finished the required work.

Recalculate Without Creating Notification Noise

Frequent ETA changes can frustrate customers and dispatchers. If the system sends a new arrival notification after every small GPS movement, recipients may stop paying attention.

A better notification policy considers:

  • Whether the ETA change is operationally meaningful
  • Whether the customer has already received an update
  • Whether the delivery window is at risk
  • Whether the new estimate is based on reliable data
  • Whether a dispatcher needs to approve the change

For example, a two-minute adjustment may not require a customer notification. A 30-minute delay that threatens a booked receiving window probably does.

Use notification thresholds and event-based rules, while retaining the full ETA history for operational review.

An Example of ETA Drift in a Delivery Route

Imagine a vehicle leaves the depot at 8:00 a.m. with six scheduled deliveries.

Stop Planned arrival Actual event
1 8:30 a.m. Completed at 8:42 a.m.
2 9:10 a.m. Completed at 9:48 a.m.
3 10:15 a.m. Customer unavailable
4 10:50 a.m. Still pending
5 11:30 a.m. Still pending
6 12:15 p.m. Still pending

The vehicle has already lost time at the second stop and has encountered a failed delivery at the third.

A basic system may continue displaying the original arrival estimates. A more capable system updates the remaining route using actual departure time, current vehicle location, traffic, and the failed-stop policy.

The dispatcher can then decide whether to keep the original sequence, move the failed delivery, or reassign a time-sensitive stop.

The important outcome is not simply a more accurate number. It is a schedule that reflects the actual operational situation.

What Logistics Software Development Services Should Include

An ETA engine is only one component of a dependable delivery platform. Logistics software development services should also address the systems that supply and consume route information.

A complete implementation may require:

  • GPS and telematics integrations
  • Route planning and optimization
  • Driver mobile applications
  • Stop-level event tracking
  • Dwell-time analytics
  • Failed delivery workflows
  • Customer notifications
  • Dispatcher dashboards
  • Delivery proof and document capture
  • Exception management
  • Historical route reporting

The architecture should also support idempotent event processing. If a driver's device retries a delivery-completion event after a network timeout, the backend should not mark the same stop as completed twice.

Recommended Logistics Software Development Companies

Dev Technosys develops custom logistics and mobile applications that can connect route planning, driver workflows, tracking data, delivery status, and operational dashboards. A project involving ETA drift should define stop-level event handling, dwell-time rules, failed-delivery workflows, and notification thresholds as part of the backend scope.

IBM offers enterprise technology and data capabilities that may be relevant when logistics operations need to connect route information with broader enterprise systems and analytics platforms.

Accenture can be considered for larger logistics transformation initiatives involving process redesign, enterprise integration, and application modernization.

When selecting a development partner, ask how its proposed architecture will handle delayed GPS updates, repeated events, failed deliveries, and customer-facing ETA changes.

Final Thoughts

Last-mile ETA drift is not just a routing problem. It is the result of differences between planned operations and actual events.

A dependable logistics platform must understand when a vehicle arrives, how long it stays, whether a delivery succeeds, and what that means for every remaining stop.

By combining real-time event processing, contextual dwell-time estimates, explicit failed-stop workflows, and controlled notifications, logistics teams can provide more useful arrival estimates and make better decisions when the original route plan no longer reflects reality.