Blog

Automatic dispatch by roads vs. “as the crow flies”: why it determines pickup time

Pickup time is the metric customers notice first and remember longest. They compare prices with competitors once a month, but «the car took twenty minutes» sticks after the very first time, and next time they call another service. For drivers, the same metric means empty mileage: kilometers without a passenger that burn fuel and time.

For both numbers, pickup time and empty mileage, the key factor is not the number of cars on the road but how the software chooses which car gets the order. In this article, we look at two approaches to automatic dispatch, show examples where they give different results, and explain how to check what your software does.

How automatic dispatch works

When an order comes in, the software has the pickup address and the coordinates of every free car. The task is to pick the driver who will reach the customer faster than the others and offer them the order (or build a queue of offers). The dispatcher isn’t involved. They used to pick a car «by eye», knowing the city and the drivers; now the algorithm does it in a fraction of a second.

The difference between programs is how they understand the word «nearest».

«As the crow flies» search

The simplest method: take the coordinates of the customer and each car, calculate the distance between the points on the map as if a straight line connected them, and pick the minimum. It’s cheap to compute, needs no road map and works in any city without setup. That’s exactly why most taxi software does it.

The problem is that cars don’t fly. They drive on roads, and the distance by road can be several times the distance as the crow flies.

Road graph search

The second method: represent the city as a graph, a set of intersections (nodes) and road segments between them (edges), taking into account traffic direction and banned maneuvers. For each free car, the software builds a real route to the customer and calculates its length or travel time. The nearest car is the one with the shortest route.

This is harder. You need a detailed road map of the city, you have to keep it up to date, and you need a fast algorithm that can process dozens of cars while the operator is finishing the call. But the result matches reality.

Where the two approaches diverge

In an open field with an even street grid, the difference is small. But real cities almost always have obstacles that turn «close as the crow flies» into «far by road».

River and bridge

The customer is on one bank, the car is on the other, 300 meters away as the crow flies. But the nearest bridge is two kilometers away, and the drive to the customer is over four kilometers with a U-turn. «As the crow flies» software will give the order to this car. Another driver, 500 meters farther as the crow flies but on the same bank, would have arrived in three minutes.

Railway and industrial zone

Same story: one crossing or overpass every several kilometers. A residential area cut off from the center by a railway is typical of industrial towns. A car that looks «close» to the customer on the map may be fifteen minutes away.

One-way streets and banned turns

In the city center, a driver on the next street may have to circle the block because a left turn is banned and the street is one-way. The customer sees the car on the map two hundred meters away and waits eight minutes. Software that doesn’t know about the turn ban will pick the «wrong» driver again and again.

Median barrier

The most frustrating case: the driver is on the opposite side of an avenue with a crash barrier, and the nearest U-turn is a kilometer and a half away. As the crow flies, 30 meters. By road, three kilometers.

An example in numbers

Picture a typical situation in a city with a river. The customer is on a street by the embankment, and two cars are free.

Car A Car B
Distance as the crow flies 400 m 650 m
Distance by road 4.1 km (via the bridge) 0.9 km
Pickup time 9–11 min 2–3 min
Empty mileage 4.1 km 0.9 km

«As the crow flies» software will choose car A: the customer will wait 7 minutes longer, and the driver will drive 3 more kilometers without a passenger. Road graph software will choose car B. The difference on a single order is 7 minutes and 3 kilometers. At a hundred orders a day, even if this happens in only one case out of ten, that’s 70 minutes of customer waiting and 30 kilometers of empty mileage every day.

Why this matters especially in a small town

In a city of a million, car density is so high that a wrong choice is partly offset: there are almost always several cars near the customer, and even the «wrong» one arrives quickly. In a city of 50,000–300,000 people, there may be 20–60 cars on the road, spread across districts. Here every dispatch error is costly: there’s simply no other car nearby, and the customer waits as long as the chosen driver takes to arrive.

Small towns also share a trait: they usually have one or two «problem» zones, such as a river, a railway, a bypass with few exits, or a neighborhood with a single entrance. Every local driver knows them. A good dispatcher working with two-way radios would never send a car from the other bank. «As the crow flies» automatic dispatch loses that expertise, and a service switching from two-way radios to software sometimes notices that pickups have gotten slower. That’s not a flaw of automation as such. It’s a flaw of a specific algorithm.

How UpTaxi does it

UpTaxi finds the nearest driver using the city’s road graph, taking into account one-way streets and banned turns. It uses its own routing algorithm and its own mapping: during automatic dispatch, the software doesn’t call third-party services like Yandex or Google, so finding the nearest car is fast and doesn’t depend on the availability and limits of external APIs.

This approach has a few practical consequences.

Back-to-back order. Sometimes the driver nearest to the customer is one who is already carrying a passenger and heading to the area the new order came from. UpTaxi will offer that driver the back-to-back order: they drop off the passenger and go straight to the next one, with no empty run. For the driver, this means higher earnings per shift; for the service, less idle time.

The same graph for fare calculation. If the customer names a destination, the estimated price is calculated on the same road graph, along the shortest route with all restrictions applied. The route is shown on the map. More on the fare calculation page.

Map maintenance. The road graph needs upkeep: new interchanges, road closures, changed traffic patterns. The service handles this together with UpTaxi support: when something changes in the city, the map is corrected. That’s the honest price of accuracy: an «as the crow flies» algorithm needs no map, but it doesn’t deliver results either.

More on the mechanics on the automatic order dispatch and routing algorithm page.

Want to see how automatic dispatch by roads works on your city’s map? Get 30 days of free access; a server for your company is set up within a day. Get access.

What else affects pickup time

The nearest-car search algorithm is the foundation, but not the only factor. For consistently fast pickups, the other elements need to be set up too.

Assignment mode: list or auto-assignment

The UpTaxi driver app has two modes: the driver sees a list of orders and picks one, or the software automatically assigns the order to the nearest driver. List mode feels familiar to drivers who came from two-way radios: they «catch» orders the way they used to catch them on the air. Auto-assignment gives more even pickup times because it removes situations where a good order goes to whoever tapped first rather than whoever is closest. Many services start with the list and gradually move drivers to auto-assignment once they see that dispatch is fair.

Driver response time

This is how many seconds a driver gets to accept an order before it goes to the next one. Too few, and drivers can’t keep up and get annoyed; too many, and the order «hangs» while the customer waits. The setting is individual for each service and is usually tuned in the first weeks.

What to do when you have no cars available

If none of your drivers takes the order within the set time, the service has two options: turn the customer down or find a car elsewhere. In UpTaxi, the order automatically goes to the order exchange: a driver from another service on the same platform completes it, while the order data and the customer stay with your company, and dispatch within the exchange uses the same nearest-by-road search. For the customer, this means a car arrives instead of «all cars are busy, call back later».

Advance orders

An order for an exact time should be assigned in advance, based on where the driver will be at that moment, not where they are now. Good software reserves a car a few minutes before pickup and doesn’t let it take a «short» order that would make it late.

Customer notifications

Even with the same pickup time, customers perceive it differently. A customer who gets an automated call saying «a white Hyundai, plate 777, is on its way, arriving in 4 minutes» waits calmly. A customer without information starts calling back after three minutes. Voice and SMS notifications take this load off operators — more.

How to check your software

If you’re not sure how your current software dispatches orders, you can check in half an hour.

  1. Ask the vendor directly. «Is the nearest driver found by distance as the crow flies or by route along the roads? Are one-way streets and banned turns taken into account?» An answer like «by GPS» or «by coordinates» usually means «as the crow flies».
  2. Run a test at a «problem» spot. Place two test cars: one across a river or railway from the address but closer as the crow flies; the other farther as the crow flies but on the same side. Create an order and see who gets it.
  3. Look at empty mileage statistics. If the software tracks pickup mileage, compare the average distance to the customer across districts. Abnormally high values in areas near a river or railway are a sign of «as the crow flies» dispatch.
  4. Ask your drivers. They know exactly whether they sometimes get an order from the other bank while a colleague was parked right next to the customer.

What it means in money

Take a hypothetical service: 150 orders a day, 1.5 km of average empty mileage per pickup, fuel consumption of 8 L per 100 km, gasoline at 60 ₽ per liter. If automatic dispatch by roads cuts average empty mileage by just 300 meters (20%), that’s 45 km a day, 3.6 liters, about 216 ₽ a day — or 6,500 ₽ a month for the whole fleet. The amount is small, but it’s spread across drivers and feels like «you keep more with this service».

The second effect matters much more. If slow pickups cost the service even 2% of customers a month (three orders a day out of 150), and each lost customer made an average of 4 trips a month with a driver commission of 35 ₽ per trip, then over a year the accumulated churn adds up to tens of thousands of rubles in lost driver commissions and, more importantly, lost market share that a competitor will take. The numbers are hypothetical, but the direction is right: in a small town, pickup time is the competitive advantage, because everyone’s prices are about the same.

Summary

«Nearest as the crow flies» and «nearest by road» are two different drivers in almost every city with a river, a railway, an avenue with a crash barrier or one-way streets downtown. The first approach is simpler for the developer; the second is faster for the customer and cheaper for the driver.

UpTaxi dispatches orders using a road graph that accounts for one-way streets and banned turns, with its own algorithm and its own mapping, and no calls to external services. You can check how it works on your city’s map free for 30 days.

Get 30 days free · Message on Telegram · Message on Max · Call +7 900 28-28-328

See what else the software can do on the about the program page.

Comments are closed.

Telegram Max