Skip to main content
Insights

Last-Mile Delivery, Measured: Where a Delivery Route Loses Its Time

We routed 30-stop and 60-stop delivery rounds in Madrid, Paris and Amsterdam. Driving is a quarter of the day; parking and the walk to the door take the rest.

Brent van der Heiden10 min read
#last mile delivery#last-mile delivery#last mile logistics#delivery route#route optimization#parcel delivery#matrix api#openstreetmap
Last-Mile Delivery, Measured: Where a Delivery Route Loses Its Time

Last-mile delivery is the final leg of a parcel's journey: a van leaves a depot, drives to a neighbourhood, stops dozens of times, and comes back. It is where most of the cost of parcel logistics sits, and most of the effort to reduce it goes into the route: which van, which order, which road.

We measured how much of a delivery round the route actually accounts for. For six delivery areas in Madrid, Paris and Amsterdam, we picked real addresses from OpenStreetMap, got the driving time between every pair from our Matrix API, and optimised the stop order. Then we added the time a driver spends looking for parking and at the stop, from two published field studies. On a 30-stop round, driving takes 18 to 29 percent of the time. The rest is spent looking for parking and getting parcels to the door.

What we measured

Each city has two delivery zones: a dense inner district (1 km radius) and a suburban district (2 km radius), both served from a depot point at the edge of the city.

CityDense zoneSuburban zoneDepot
MadridChamberíLas RozasCoslada
Paris11th arrondissementSaint-Maur-des-FossésGennevilliers
AmsterdamDe PijpAmstelveenWestpoort
  1. Stops: random address points from OpenStreetMap inside each zone, drawn with a fixed seed. Rounds of 15, 30 and 60 stops use the first 15, 30 and 60 of the same list, so the area stays the same and only the density changes.
  2. Driving: travel times between the depot and every stop from the MapAtlas Matrix API, by car, requested on 30 September 2026 without live traffic. The stop order is optimised with nearest neighbour plus 2-opt and or-opt.
  3. Time at the stop: not measurable from a map, so we took it from two field studies:
    • 8.1 minutes per vehicle stop, the average dwell time Allen and colleagues measured on parcel rounds in central London. It is the time the van stands still while the driver unloads, walks to one or more doors and back, and hands over the parcels.
    • 2.3 minutes of cruising for parking per trip, the average Dalla Chiara and Goodchild estimated from GPS traces of 2,900 parcel trips in downtown Seattle, 28 percent of total trip time.

Where a 30-stop round spends its time

Driving to and from the depotDriving between stopsLooking for parkingAt the stop060120180240300360420480Madrid, Chamberí: Driving to and from the depot 35 min, Driving between stops 35 min, Looking for parking 69 min, At the stop 243 minMadrid, Chamberí383 minMadrid, Las Rozas: Driving to and from the depot 57 min, Driving between stops 62 min, Looking for parking 69 min, At the stop 243 minMadrid, Las Rozas431 minParis, 11th arr.: Driving to and from the depot 55 min, Driving between stops 58 min, Looking for parking 69 min, At the stop 243 minParis, 11th arr.425 minSaint-Maur-des-Fossés: Driving to and from the depot 60 min, Driving between stops 70 min, Looking for parking 69 min, At the stop 243 minSaint-Maur-des-Fossés442 minAmsterdam, De Pijp: Driving to and from the depot 44 min, Driving between stops 48 min, Looking for parking 69 min, At the stop 243 minAmsterdam, De Pijp404 minAmstelveen: Driving to and from the depot 34 min, Driving between stops 57 min, Looking for parking 69 min, At the stop 243 minAmstelveen402 min
One 30-stop delivery round per zone, in minutes. Driving is measured (MapAtlas Matrix API, 30 September 2026, no live traffic, stop order optimised). Looking for parking (2.3 min per stop) and time at the stop (8.1 min per stop) come from field studies in Seattle and London. Addresses © OpenStreetMap contributors.
ZoneTo and from the depotBetween stopsLooking for parkingAt the stopRoundDriving share
Madrid, Chamberí35 min35 min69 min243 min383 min18%
Madrid, Las Rozas57 min62 min69 min243 min431 min28%
Paris, 11th arrondissement55 min58 min69 min243 min425 min27%
Paris, Saint-Maur-des-Fossés60 min70 min69 min243 min442 min29%
Amsterdam, De Pijp44 min48 min69 min243 min404 min23%
Amsterdam, Amstelveen34 min57 min69 min243 min402 min23%

Three things stand out.

The stop dominates. Time at the stop is 55 to 64 percent of every round, and looking for parking another 16 to 18 percent. That matches what the London study found directly: vans were parked for 62 percent of the round, and drivers walked an average of 7.9 km per round.

The drive out and back is a fixed cost. Between 34 and 60 minutes per round go to reaching the zone and returning, whatever the number of stops. In Chamberí, that is half of all driving. A depot or micro-hub closer to the area removes more driving than any stop order can.

Suburbs cost more driving per stop. At 30 stops, the dense districts needed 1.2 to 1.9 minutes of driving between stops; the suburban ones 1.9 to 2.3 minutes. The suburban zones cover four times the area, so the same number of stops is four times as spread out.

Density: more stops, less driving per stop

The same zones with 15, 30 and 60 stops show what route density does:

Zone15 stops30 stops60 stopsChange 15 to 60
Madrid, Chamberí1.321.170.98-26%
Madrid, Las Rozas2.172.061.39-36%
Paris, 11th arrondissement2.531.921.61-36%
Paris, Saint-Maur-des-Fossés2.882.321.95-32%
Amsterdam, De Pijp2.361.601.47-38%
Amsterdam, Amstelveen2.261.891.51-33%

Minutes of driving between stops, per stop.

Four times as many stops in the same area cut the driving per stop by 26 to 38 percent. Stops get closer together, so each leg is shorter. This is why parcel carriers care about drop density, and why consolidating deliveries from several senders into one round saves more than it seems.

If the stop were faster

The field-study stop times come from busy central districts with many business deliveries: the London drivers served 2.1 establishments and 3.8 parcels per stop. A residential doorstep drop can be quicker. So we also ran a light scenario: 3 minutes at each stop and no time looking for parking.

With those assumptions, driving becomes 44 to 59 percent of a 30-stop round, and the round shrinks from 383 to 442 minutes to 161 to 220 minutes. A driver then makes 8 to 11 stops an hour instead of 4 to 5.

Even in that best case, the stop still takes about half the day. The route matters, but it is never the only lever.

Where the time can be won

At the door. Coordinates that point at the building entrance instead of the middle of the roof, and at the right entrance of a large block, cut the walk and the search on foot. Building-entrance geocoding explains the difference.

At the kerb. The Seattle study found that cruising for parking fell where more kerb space was set aside for commercial loading and more off-street parking was available at the destination. Loading zones are a city decision, but route planning can use them: plan stops at known loading points and group nearby addresses behind one parking stop.

In the order. A well-ordered round still matters for the 18 to 29 percent of time that is driving. In our own tests, a naive nearest-neighbour order was a median of 12 percent slower than the optimum. The route optimization guide covers time windows, capacities and multiple vans.

In the network. Depots closer to the delivery area, and more stops per round in the same area, attack the fixed drive out and back and the driving per stop at once.

To see how far a van gets from a depot in a given time, the travel time map draws the reachable area for any address.

Build the driving part yourself

The measured part of this article is two API calls per zone and a solver. Request the travel times between the depot and every stop:

curl -X POST "https://gateway.mapmetrics-atlas.net/matrix/?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "sources": [{"lat": 40.4290, "lon": -3.5470}, {"lat": 40.4351, "lon": -3.7012}, {"lat": 40.4329, "lon": -3.7068}],
    "targets": [{"lat": 40.4290, "lon": -3.5470}, {"lat": 40.4351, "lon": -3.7012}, {"lat": 40.4329, "lon": -3.7068}],
    "costing": "auto"
  }'

Then order the stops on the returned times, and add your own per-stop time: from your drivers' scan data if you have it, or a field-study value like the ones above if you do not. The share of the round that is driving tells you whether to invest in routing or in the stop.

Method and limits

  • Zones and depots: a 1 km radius around a point in each dense district and a 2 km radius in each suburban district. The depot is a fixed point on the city edge per city (Coslada, Gennevilliers, Westpoort) that we chose for this test.
  • Stops: OpenStreetMap nodes, ways and relations with addr:housenumber in each zone, 64 drawn with a fixed seed. One address in the Paris dense zone could not be reached by car and was replaced by the next in the list. Real rounds are not random: carriers group addresses, and some addresses receive several parcels.
  • Driving: MapAtlas Matrix API, costing auto, 30 September 2026, no departure time, so no rush-hour traffic. Stop order from nearest neighbour plus 2-opt and or-opt; a stronger solver would shave a few percent off the driving time.
  • Time at the stop: two field-study averages applied to every stop: 8.1 minutes of dwell per vehicle stop (central London, parcel carriers, Allen et al. 2018) and 2.3 minutes of cruising for parking per trip (downtown Seattle, Dalla Chiara and Goodchild 2020). They come from different cities than ours and from central business districts, which is why we also show the light scenario. Both are averages; real stops vary from seconds to many minutes.
  • Not included: loading at the depot, breaks, failed deliveries and return trips, and cargo bikes or walking couriers.

Download the data: last-mile-delivery-2026-09-30.csv (one row per zone and round size: addresses in the zone, stem and in-zone driving in minutes and km, the stop-time assumptions and the resulting round time and driving share for both scenarios; addresses © OpenStreetMap contributors, ODbL; derived figures CC BY 4.0 MapAtlas).

The script and raw results are in our research archive: scripts/seo/blog-keyword-research/last-mile-delivery.mjs and docs/blog-keyword-research/last-mile-delivery-2026-09-30.json.

The travel times come from a distance matrix. For the whole planning problem with several vans, read what is route optimization.

The Matrix API returns the travel times used here, the Optimize Route API orders the stops of a round in one call, and the Geocoding API turns delivery addresses into coordinates.

Frequently Asked Questions

What is last-mile delivery?

Last-mile delivery is the final leg of a shipment, from a local depot or hub to the customer's door. It usually means a van or cargo bike that leaves the depot, drives to a delivery area, makes dozens of stops and returns. It is the most expensive part of parcel logistics per item, because every parcel needs its own stop, parking and walk to the door.

Where does a delivery driver lose the most time?

At the stop. Field studies measured an average of 8.1 minutes per vehicle stop in central London and 2.3 minutes of cruising for parking per trip in Seattle. When we combined those stop times with measured driving times for 30-stop rounds in Madrid, Paris and Amsterdam, driving took only 18 to 29 percent of the round; looking for parking and time at the stop took the rest.

How many stops can a delivery driver make per hour?

It depends mostly on time per stop. With 8.1 minutes at the stop and 2.3 minutes looking for parking, as in the field studies we used, a driver makes about 4 to 5 stops an hour including driving. With a quick doorstep drop of 3 minutes and parking at the door, our measured rounds reached 8 to 11 stops an hour. Denser rounds help too: in our test, the driving time per stop fell by 26 to 38 percent when the same area had 60 stops instead of 15.

How do you reduce last-mile delivery time?

Work on the stop first: coordinates of the building entrance rather than the roof, legal loading space close to the door, and one parking stop for several nearby addresses. Then increase density, with more stops per round in the same area, and optimise the stop order with a route optimization API. Finally, keep the depot close to the delivery area, because the drive out and back is a fixed cost of 30 to 60 minutes per round in our cities.

Found this useful? Share it.

About the author

Brent van der Heiden

Written by

Brent van der Heiden

Co-Founder & CEO at MapAtlas

Brent built MapAtlas out of a conviction that developers deserve location APIs with fair pricing and genuine end-user privacy. Before that he co-founded MapMetrics, a community mapping and navigation app. He writes about geospatial infrastructure, map data, AI search visibility, and how location data powers the products people rely on every day.

View all articles →
Back to Blog