Why your ETA keeps changing (and why that's a good thing)

Last month, a courier texted me at 11 am: 'Your app just rerouted me away from the M25 before the accident reports even hit Twitter.' He delivered his 40 stops in 7 hours instead of the 9 we'd planned that morning. He didn't know it, but Google's live traffic data had caught a jam two junctions ahead.

The problem with static routes

When we built DropPilot, we watched a lot of drivers work. Most of them were using printed sheets, Google Maps, or route planners that optimised once and hoped for the best. The moment a driver left the depot, their plan started decaying. A school run thickened traffic on the A40. A lorry broke down on the bypass. A signal failure at a railway crossing cascaded delays across three postcodes. The route they'd left with was already stale.

What bothered me most was the moment they'd realise it. They'd ring the dispatcher. The dispatcher would ring other drivers. Customers would get promises nobody could keep. Everyone would be annoyed, and the driver would spend an extra hour sitting in traffic that the technology had already mapped.

That's when we decided the app couldn't just plan once. It had to keep planning.

How Google Directions API feeds live traffic into the route

The engine under DropPilot uses two layers. First, we use nearest-neighbour optimisation plus 2-opt refinement to build an efficient sequence of stops from the addresses you've uploaded (or dragged in one by one). That's the skeleton. But the skeleton needs muscle and blood.

When the driver starts a round, DropPilot begins querying Google Directions API for real-time traffic conditions between each stop. Google knows the live state of every road segment because it pulls from billions of phone signals, loop sensors, and traffic cameras. We pull that data every few minutes, not just at the start. If a particular corridor has slowed, we recompute the journey time and update the ETA. If the slowdown is significant enough that a reorder would save meaningful time, we suggest or execute a reroute.

The driver sees continuous ETA updates in the app. Not guesses. Not 'traffic permitting'. Real numbers, refreshed as the day unfolds. When a driver pulls up to a customer and the app says they'll hit the next stop at 14 minutes, that 14 is built on the current state of the roads, not a morning forecast.

Rerouting: catching deviations before they cost time

We also detect when a driver has wandered from the planned route. This sounds simple. It's not. A driver might pull into a petrol station, park briefly, take a different road for a few hundred metres. The app needs to know the difference between 'they're getting fuel' and 'they're lost' or 'there's been an accident and they're going round it.'

When DropPilot spots a meaningful deviation, it fetches fresh routing data and checks: would a different sequence of remaining stops get them home faster now? If yes, it suggests a reroute. If the deviation was temporary (they were just parking), the original route resurfaces. The driver stays in control. They can accept or ignore the suggestion.

We've seen this catch real situations. A driver deviates because a road is unexpectedly closed. The app reroutes. Another deviation is a side street they prefer. The app notices, reroutes, then watches as they ignore it and keep going their way. It learns that they like that route and stops pestering them. The system adapts.

Why this matters for the person running a fleet

If you're managing five drivers or fifty, the old world was chaos. You'd send them out with routes in the morning. By 10 am, three of them would be delayed and you'd have no idea why. You'd ring them. They'd say 'traffic.' You'd promise the customer a time slot that might not hold. Or you'd tell the customer they'd have to wait, and they'd go elsewhere next time.

With DropPilot pulling live traffic, your dispatchers know what's actually happening. They can see ETAs updating in real time on a team view. They know which driver is heading for a jam and which one is making up time. If a new urgent job comes in, they can assign it to whoever's actually going to have the capacity, not whoever the schedule says should.

Proof of delivery is captured at each stop (signature, photo, or notes), so there's also a record. No 'I delivered it' / 'No you didn't' disputes. That data feeds into the analytics view, where you can see patterns: which routes take longer than expected, which drivers finish early, where the real pinch points are in your operation.

The honest ETA problem

One thing we've learned is that drivers and their customers both crave honesty more than optimism. A customer who hears 'I'll be there at 14 minutes' and sees you arrive at 13 minutes is happy. One who hears '5 to 10 minutes' and waits 20 is furious, even if you tried your best. Live traffic data means your app tells the truth. It doesn't guarantee perfection (a car crash still stops you like everyone else), but it removes the guessing.

The feedback we get from drivers is that they feel less pressured. They're not scrambling to keep to a plan that broke the moment they left the depot. They're following a plan that's aware of the real world as it's happening. And dispatchers stop getting calls asking 'where's my parcel,' because the customer can see a real ETA in a text message or notification.

What you actually need to get started

You don't need enterprise infrastructure. DropPilot's free tier gives you 5 rounds a month with up to 5 stops per round, which works for testing. The Plus tier (£4.99 a month) scales to 30 rounds and 50 stops per round. Pro is unlimited. If you're running a team, Team tier (£49 a month) adds dispatch and fleet management. Each tier pulls the same live traffic data. A solo courier using the free plan gets the same real-time routing as a 20-driver fleet on Team.

You'll need addresses (you can paste them in, drag them, or upload a CSV if you're bulk-loading). DropPilot handles the optimisation and the live traffic querying behind the scenes. The driver gets the app, starts a round, and follows the route as it updates. When they reach a stop, they capture proof of delivery and move on.

The question isn't whether your routes are affected by live traffic. They always are. The question is whether your app knows about it in time to do something useful.

Want to try Droppilot?

Visit Droppilot →