<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Coordable (Posts by Julien Crétin)</title><link>https://coordable.co/</link><description></description><atom:link href="https://coordable.co/authors/julien-cretin.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2026 &lt;a href="mailto:contact@coordable.co"&gt;Nikola Tesla&lt;/a&gt; </copyright><lastBuildDate>Mon, 22 Jun 2026 12:46:43 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>AI for address quality in geocoding: clean the input, verify the output</title><link>https://coordable.co/blog/ai-address-quality-clean-verify/</link><dc:creator>Julien Crétin</dc:creator><description>&lt;p&gt;&lt;em&gt;The hidden cost of addresses that look resolved but are not, and two ways AI closes it. Measured on 500 real French logistics addresses.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;A bad address rarely announces itself. The geocoder returns coordinates, the order looks clean, and the problem only surfaces when a driver is standing in front of the wrong building. In this benchmark, about one in seven of the addresses Google returned as resolved were not the right street and city, and none of them were flagged. By the time a wrong one surfaces it is a failed delivery, a redelivery, a support call, and a customer who remembers it. The expensive part of address quality is not the addresses you already know are wrong. It is the ones that pass silently, all the way to the van.&lt;/p&gt;
&lt;p&gt;Two things help, and both can be measured rather than assumed: cleaning the address before it is geocoded, and checking each result before you trust it. We tested both on 500 real French logistics addresses.&lt;/p&gt;
&lt;p&gt;There is also a strategic shift behind this. In our &lt;a href="https://coordable.co/blog/cut-geocoding-costs-79-percent-europe/"&gt;European benchmark&lt;/a&gt;, a cascade of free OpenStreetMap, HERE, and Google beat Google alone at roughly a fifth of the cost. In France, fully open-source geocoding already rivals a paid Google setup, a result we detail in a companion piece. When the provider you pick stops being the differentiator, what you feed the geocoder and how you verify what it returns becomes the differentiator instead. That is the layer this article is about.&lt;/p&gt;
&lt;figure style="max-width: 520px; margin: 2rem auto; text-align: center;"&gt;
&lt;img src="https://coordable.co/images/ai-address-quality-hero.png" alt="The pipeline: a messy input address is cleaned by an AI step, sent through a geocoder cascade of BAN, Photon, HERE and Google, then an AI verification step checks the result before it is trusted." style="width: 100%; height: auto;"&gt;
&lt;/figure&gt;

&lt;p&gt;&lt;strong&gt;Table of contents:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/ai-address-quality-clean-verify/#why-this-matters"&gt;Why this matters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/ai-address-quality-clean-verify/#the-test"&gt;The test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/ai-address-quality-clean-verify/#cleaning-the-input"&gt;Cleaning the input&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/ai-address-quality-clean-verify/#verifying-the-output"&gt;Verifying the output&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/ai-address-quality-clean-verify/#honest-limitations"&gt;Honest limitations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/ai-address-quality-clean-verify/#what-this-means-for-your-stack"&gt;What this means for your stack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/ai-address-quality-clean-verify/#what-comes-next"&gt;What comes next&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/ai-address-quality-clean-verify/#methodology-recap"&gt;Methodology recap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/ai-address-quality-clean-verify/#where-to-go-from-here"&gt;Where to go from here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id="why-this-matters"&gt;Why this matters&lt;/h4&gt;
&lt;p&gt;A national address registry is clean. Real logistics data is not. The addresses that flow through an order management system arrive in capital letters, with accents dropped, house numbers missing, street types abbreviated, and trailing noise from whatever field the data passed through on its way in. On the sample in this benchmark, roughly four addresses in five were fully uppercase, about one in four carried no house number, and a meaningful share had lost accents or been truncated mid word.&lt;/p&gt;
&lt;p&gt;Two instincts follow from that mess, and both are worth testing rather than assuming. The first is to clean the input before geocoding. The second is to trust that a provider which returns an answer has actually found the address. Our European benchmark showed the second instinct is dangerous, because the hard part of geocoding is not getting an answer, it is knowing whether the answer is right. This benchmark puts numbers on both instincts, using a language model in each role: once to clean, once to verify.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="the-test"&gt;The test&lt;/h4&gt;
&lt;p&gt;We took 500 addresses from a real French logistics dataset, deliberately weighted toward the difficult cases that production data actually contains. We geocoded each one through five geocoders reached from a single API: the French national BAN, OpenStreetMap through Photon, OpenStreetMap through Nominatim, HERE, and Google. To isolate the effect of input quality, we ran every address in three versions: raw, cleaned with deterministic regex rules, and cleaned with a language model. That is about 7,500 geocoding calls in total.&lt;/p&gt;
&lt;p&gt;Scoring is the hard part, and it is where the language model earns its place a second time. Rather than measure distance to a reference coordinate, we built an LLM-based evaluator that qualifies each returned address against the one that was requested. Throughout this piece, a pass means the result resolves to the right street and the right city, the level of correctness that matters for routing and sectoring. House number precision is a separate question, and we treat it separately. We calibrated the evaluator against 25 hand checked cases before running it at scale, and it agreed with the human verdict on all 25.&lt;/p&gt;
&lt;p&gt;One aside worth keeping, because it is a common trap. We reached Nominatim through its public API, which is heavily throttled and capped, and on these messy inputs it resolved about 5%. A self-hosted Nominatim, given enough hardware, does considerably better, but at a real infrastructure cost. The same OpenStreetMap data through Photon resolved the large majority out of the box. The result you get from OpenStreetMap depends far more on the engine and how it is deployed than on the underlying data.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="cleaning-the-input"&gt;Cleaning the input&lt;/h4&gt;
&lt;p&gt;Start with the cleaning instinct, because the result is blunt. Deterministic regex rules, uppercasing fixes, abbreviation expansion, separator normalization, did essentially nothing. Across every provider and every difficulty bucket, the rule cleaned input scored within noise of the raw input. Regex tidies the surface. It does not solve lost accents, truncations, or inline noise, which are the failures that actually break a geocode.&lt;/p&gt;
&lt;p&gt;The language model is a different story, but a more interesting one than a single headline number suggests. Pooled across providers, LLM cleaning lifted the pass rate from 83.9% to 86.8%, a gain of 2.9 points. That average hides almost everything that matters. The gain is concentrated on the hardest addresses and is close to zero everywhere else.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pass rate by address type, pooled across all four providers&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Address type&lt;/th&gt;
&lt;th&gt;Raw&lt;/th&gt;
&lt;th&gt;Rule cleaned&lt;/th&gt;
&lt;th&gt;LLM cleaned&lt;/th&gt;
&lt;th&gt;Gain from LLM&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Lost accents&lt;/td&gt;
&lt;td&gt;77.2%&lt;/td&gt;
&lt;td&gt;76.8%&lt;/td&gt;
&lt;td&gt;91.5%&lt;/td&gt;
&lt;td&gt;+14.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Truncated&lt;/td&gt;
&lt;td&gt;62.9%&lt;/td&gt;
&lt;td&gt;62.9%&lt;/td&gt;
&lt;td&gt;71.6%&lt;/td&gt;
&lt;td&gt;+8.6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hard cases overall&lt;/td&gt;
&lt;td&gt;68.7%&lt;/td&gt;
&lt;td&gt;68.8%&lt;/td&gt;
&lt;td&gt;74.8%&lt;/td&gt;
&lt;td&gt;+6.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Clean cases&lt;/td&gt;
&lt;td&gt;94.6%&lt;/td&gt;
&lt;td&gt;94.8%&lt;/td&gt;
&lt;td&gt;95.3%&lt;/td&gt;
&lt;td&gt;+0.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;All addresses&lt;/td&gt;
&lt;td&gt;83.9%&lt;/td&gt;
&lt;td&gt;84.0%&lt;/td&gt;
&lt;td&gt;86.8%&lt;/td&gt;
&lt;td&gt;+2.9&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figure style="max-width: 520px; margin: 2rem auto; text-align: center;"&gt;
&lt;img src="https://coordable.co/images/ai-address-quality-cleaning.png" alt="Bar chart of the pass rate gain from LLM cleaning by address type: lost accents +14.3, truncated +8.6, hard cases +6.0, clean cases +0.7, against an average of +2.9." style="width: 100%; height: auto;"&gt;
&lt;/figure&gt;

&lt;p&gt;The ratio is the point. LLM cleaning buys about 6 points on the hard addresses and 0.7 of a point on the clean ones, roughly eight times more where the input is broken. On a clean address, cleaning it again is wasted compute. The single largest effect was on lost accents, the addresses where a character had been replaced by a placeholder, and it held across all four providers, as the next table shows.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lost-accent addresses only: pass rate by provider, raw versus LLM cleaned&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Raw&lt;/th&gt;
&lt;th&gt;LLM cleaned&lt;/th&gt;
&lt;th&gt;Gain&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BAN&lt;/td&gt;
&lt;td&gt;80.4%&lt;/td&gt;
&lt;td&gt;91.1%&lt;/td&gt;
&lt;td&gt;+10.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Photon&lt;/td&gt;
&lt;td&gt;75.0%&lt;/td&gt;
&lt;td&gt;89.3%&lt;/td&gt;
&lt;td&gt;+14.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HERE&lt;/td&gt;
&lt;td&gt;78.6%&lt;/td&gt;
&lt;td&gt;92.9%&lt;/td&gt;
&lt;td&gt;+14.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google&lt;/td&gt;
&lt;td&gt;75.0%&lt;/td&gt;
&lt;td&gt;92.9%&lt;/td&gt;
&lt;td&gt;+17.9&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Two honest caveats keep this from being overstated. First, our model cleans conservatively: it repairs what is there and never invents what is missing. So on the quarter of addresses that arrive with no house number at all, cleaning lifts almost nothing, because there is nothing to recover. Cleaning repairs, it does not complete. Second, the size of the accent effect depends on how you measure it. A naive text comparison, sensitive to the mangled characters in the raw string, would report a swing closer to thirty points. The geocoders themselves already tolerate some of that damage, so the true lift, measured by whether the address actually resolved, is the +14 above, not +30.&lt;/p&gt;
&lt;p&gt;There is a larger point hiding in the regional detail. France is, for this purpose, an easy market: Latin script, a strong national registry, fairly regular conventions. We have run the same preprocessing in markets that are none of those things, and the effect is substantially larger. The messier the local conventions and the further from clean Latin script, the more input cleaning pays. Read the French numbers here as a conservative floor, not a ceiling.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="verifying-the-output"&gt;Verifying the output&lt;/h4&gt;
&lt;p&gt;The cleaning question has a modest, targeted answer. The verification question has a bigger one, and it is the one our European benchmark flagged as the real unsolved problem: deciding whether a result is correct when you have no reference coordinate to check it against.&lt;/p&gt;
&lt;p&gt;The usual approaches fail in opposite directions, and a language model corrects both. A simple textual rule, does the input street and number appear in the returned address, is the standard mechanical check. It agrees with our evaluator on the large majority of cases. The disagreements fall into two revealing buckets.&lt;/p&gt;
&lt;p&gt;The first is false positives, where the mechanical rule says match but the result is wrong. The classic case is a returned address that shares the input's house number and city but sits on a different street: the tokens line up, the street does not, and a token rule waves it through. A language model compares street against street and rejects it. A token counter cannot.&lt;/p&gt;
&lt;p&gt;The second is false negatives, where the rule says no match but the result is fine. These are surface differences that a person reads straight through: minor spelling variants, trailing noise the rule cannot tell apart from the address, postal-format variants, or alternate but equivalent names for the same road. A language model reads through them too. A text rule scores them as failures and quietly discards good results.&lt;/p&gt;
&lt;figure style="max-width: 520px; margin: 2rem auto; text-align: center;"&gt;
&lt;img src="https://coordable.co/images/ai-address-quality-text-rule.png" alt="Three illustrative cases where a text matching rule and the AI evaluator disagree. In each the text rule is wrong and the evaluator is right: a wrong street accepted as a match, and two correct results wrongly rejected over a spelling variant and a CEDEX postal form." style="width: 100%; height: auto;"&gt;
&lt;/figure&gt;

&lt;p&gt;The cleanest illustration of why this matters is Google. Google returns a formatted address for every single input in our test, a 100% response rate. Our evaluator confirms the right street and city for 86% of them. The gap is not addresses Google failed to find, it is addresses Google answered without resolving: roughly one in seven Google responses looks resolved and is not. A hit rate, the most common metric teams track, scores all of these as successes. The silent miss is invisible until something downstream goes to the wrong place. This is exactly the layer a language model verifier replaces: it reads the input and the output together and flags the answer that arrived dressed as a success.&lt;/p&gt;
&lt;figure style="max-width: 520px; margin: 2rem auto; text-align: center;"&gt;
&lt;img src="https://coordable.co/images/ai-address-quality-silent-miss.png" alt="Google returns an answer for 100% of inputs, but only 86% are actually resolved to the right street and city; the remaining 14%, one in seven, look resolved but are not, the silent miss." style="width: 100%; height: auto;"&gt;
&lt;/figure&gt;

&lt;hr&gt;
&lt;h4 id="honest-limitations"&gt;Honest limitations&lt;/h4&gt;
&lt;p&gt;A few caveats matter and we want to name them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;One dataset, one country, one snapshot.&lt;/strong&gt; These are 500 French addresses from a single logistics source, geocoded once. The directional findings are robust. The second decimal place is not, and another dataset would shift the exact percentages.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The evaluator is itself a model.&lt;/strong&gt; We use a language model to grade language model cleaning, which is a circularity worth stating plainly. We mitigated it by calibrating the evaluator against hand checked cases and by holding its scoring format fixed, but a model graded benchmark is not a ground truth measured against surveyed coordinates. It measures whether a result reads as correct, which is the same judgment a dispatcher makes, not whether the pin is within a fixed distance of a registry point.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pass means street and city, not the doorstep.&lt;/strong&gt; We score correctness at the level that matters for routing. House number precision is a separate axis with a different answer, and we keep it for the open-source piece. Read these numbers as resolution quality, not rooftop accuracy.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conservative cleaning by design.&lt;/strong&gt; Our model never fabricates missing data. That is the right choice for trust, but it caps the cleaning lift: an address with no house number cannot be completed, only tidied.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="what-this-means-for-your-stack"&gt;What this means for your stack&lt;/h4&gt;
&lt;p&gt;If you are running geocoding on real, messy address data, four things follow.&lt;/p&gt;
&lt;p&gt;First, &lt;strong&gt;drop deterministic cleaning as a quality lever&lt;/strong&gt;. Regex normalization is fine for storage hygiene, but on these results it moves geocoding quality by nothing. Do not expect a rules pass to recover failed addresses.&lt;/p&gt;
&lt;p&gt;Second, &lt;strong&gt;treat LLM cleaning as a targeted instrument, not a blanket step&lt;/strong&gt;. The gain is real but it lives almost entirely on the hard fraction of your data. Clean the addresses your pipeline already struggles with, the ones with dropped accents, truncations, and inline noise, and leave the clean majority alone. Cleaning every address spends compute to buy a fraction of a point on the ones that did not need it.&lt;/p&gt;
&lt;p&gt;Third, &lt;strong&gt;expect the payoff to scale with how hard your market is&lt;/strong&gt;. France is a conservative case. If your addresses come from markets with non Latin scripts, weaker registries, or looser conventions, the cleaning lift is larger, sometimes much larger. The harder the market, the higher the return on a local cleaning model.&lt;/p&gt;
&lt;p&gt;Fourth, &lt;strong&gt;stop trusting your hit rate, and verify the output&lt;/strong&gt;. A returned address is not a resolved address. The most useful thing a language model does in a geocoding pipeline is not cleaning the input, it is reading each result against its input and catching the silent failures that confidence scores and token rules let through. That verification layer is what lets a cascade run unattended without quietly sending packages down the wrong street.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="what-comes-next"&gt;What comes next&lt;/h4&gt;
&lt;p&gt;We have kept one half of the story for its own piece. This benchmark measured correctness at the street and city level, where fully open-source geocoding in France is already strong. The rooftop question, how precisely each provider places the house number, and how far the national BAN plus OpenStreetMap can carry a stack with no paid API at all, is a different and equally surprising result. That is the next post.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="methodology-recap"&gt;Methodology recap&lt;/h4&gt;
&lt;p&gt;For readers who want to audit the analysis:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dataset: 500 addresses from a single real French logistics source, weighted toward difficult cases (uppercase, lost accents, missing house numbers, truncations, lieu-dit and point-of-interest forms).&lt;/li&gt;
&lt;li&gt;Geocoders: BAN, OpenStreetMap via Photon, OpenStreetMap via the public Nominatim API, HERE, Google, all reached through one orchestration API.&lt;/li&gt;
&lt;li&gt;Input versions: raw, deterministic rule cleaning, and language model cleaning. The cleaning model is conservative and never invents missing data.&lt;/li&gt;
&lt;li&gt;Scoring: an LLM-based evaluator scores each result on house number, street name, postal code, and city. A pass requires the correct street and the correct city. It was calibrated against 25 hand checked cases, with 25 of 25 agreement, before running at scale.&lt;/li&gt;
&lt;li&gt;Volume: about 7,500 geocoding calls across the five providers and three input versions.&lt;/li&gt;
&lt;li&gt;We report verdicts and aggregate rates only. No individual customer address appears in this article.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id="where-to-go-from-here"&gt;Where to go from here&lt;/h4&gt;
&lt;p&gt;If you are improving a geocoding stack, these go deeper on the pieces this benchmark touches:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The parent benchmark: &lt;a href="https://coordable.co/blog/cut-geocoding-costs-79-percent-europe/"&gt;how we cut geocoding costs by 79% across Europe&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Country deep dive: &lt;a href="https://coordable.co/country-analysis/best-geocoding-providers-france/"&gt;best geocoding providers in France&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Provider guides: &lt;a href="https://coordable.co/provider/google-maps-geocoding-api/"&gt;Google Maps Geocoding API&lt;/a&gt;, &lt;a href="https://coordable.co/provider/here-geocoding-api/"&gt;HERE Geocoding API&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Coordable builds multi-provider geocoding cascades with a cleaning and verification layer at every step. If you already run a geocoding stack, we help you improve what you have in place, adding local cleaning and verification models tuned to the markets where generic providers struggle most. &lt;a href="https://coordable.co"&gt;Talk to us about your stack&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</description><category>address quality</category><category>benchmark</category><category>cleaning</category><category>france</category><category>llm</category><category>verification</category><guid>https://coordable.co/blog/ai-address-quality-clean-verify/</guid><pubDate>Mon, 22 Jun 2026 09:00:00 GMT</pubDate></item><item><title>How we cut geocoding costs by 79% across Europe</title><link>https://coordable.co/blog/cut-geocoding-costs-79-percent-europe/</link><dc:creator>Julien Crétin</dc:creator><description>&lt;p&gt;&lt;em&gt;A benchmark of OSM, HERE, and Google across 12 countries and 6,000 residential addresses.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Geocoding 500,000 European residential addresses per month with &lt;a href="https://coordable.co/provider/google-maps-geocoding-api/"&gt;Google Maps&lt;/a&gt; as the sole provider costs $30,000 per year. We ran a benchmark across 12 European countries and 6,000 addresses using a cascade strategy that calls free OSM first, then &lt;a href="https://coordable.co/provider/here-geocoding-api/"&gt;HERE&lt;/a&gt;, then Google. In our test the cascade resolved 86.3% of addresses correctly (within 100m of the national reference coordinate), against 73.7% for Google alone, at a cost of about $6,300 per year at the same volume. That is a 79% cost reduction with a 12.6 percentage point quality gain.&lt;/p&gt;
&lt;p&gt;That average hides large per-country variation. At the same 500,000 addresses per month, the cascade saves between &lt;strong&gt;$15,000 and $30,000 per year per country&lt;/strong&gt; against Google alone, with quality gains ranging from +3 to +34 percentage points depending on the country. We give the full per-country breakdown below so you can read off your own situation.&lt;/p&gt;
&lt;p&gt;The cascade dominates Google on both axes in every single country we tested. There is no country where defaulting to Google is the better choice. But the optimal cascade configuration varies dramatically across Europe: in the Netherlands, free OSM data alone resolves nearly every address, while in Finland and Italy even the full three-provider cascade leaves a quarter of addresses unresolved. The orchestration logic matters more than the choice of providers.&lt;/p&gt;
&lt;p&gt;This article walks through the dataset, the protocol, what we found, and what it means for any team running geocoding at scale in Europe.&lt;/p&gt;
&lt;figure style="max-width: 520px; margin: 2rem auto; text-align: center;"&gt;
&lt;img src="https://coordable.co/images/cut-geocoding-hero.png" alt="Cascade versus Google alone across Europe: $6,336 versus $30,000 per year, and 86.3% versus 73.7% of addresses found, at 500,000 addresses a month." style="width: 100%; height: auto;"&gt;
&lt;figcaption style="font-style: italic; color: #666; font-size: 0.9em; margin-top: 0.5rem;"&gt;The headline, at 500,000 EU residential addresses a month: better coverage, 79% cheaper.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;&lt;strong&gt;Table of contents:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cut-geocoding-costs-79-percent-europe/#why-this-matters"&gt;Why this matters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cut-geocoding-costs-79-percent-europe/#the-dataset"&gt;The dataset&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cut-geocoding-costs-79-percent-europe/#the-protocol"&gt;The protocol&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cut-geocoding-costs-79-percent-europe/#the-headline-results"&gt;The headline results&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cut-geocoding-costs-79-percent-europe/#the-country-by-country-picture"&gt;The country-by-country picture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cut-geocoding-costs-79-percent-europe/#annual-savings-at-scale"&gt;Annual savings at scale&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cut-geocoding-costs-79-percent-europe/#honest-limitations"&gt;Honest limitations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cut-geocoding-costs-79-percent-europe/#what-this-means-for-your-stack"&gt;What this means for your stack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cut-geocoding-costs-79-percent-europe/#what-comes-next"&gt;What comes next&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cut-geocoding-costs-79-percent-europe/#methodology-recap"&gt;Methodology recap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cut-geocoding-costs-79-percent-europe/#where-to-go-from-here"&gt;Where to go from here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id="why-this-matters"&gt;Why this matters&lt;/h4&gt;
&lt;p&gt;Most engineering teams default to Google Maps for geocoding. The reasoning is reasonable on paper: Google has the largest map data footprint in the world, the API is well documented, and "nobody got fired for buying Google". Then the bill arrives.&lt;/p&gt;
&lt;p&gt;At $5 per thousand requests, Google geocoding is the most expensive of the three major options by a factor of six against HERE and by an infinite factor against OSM. Teams notice this when their geocoding spend hits the financial dashboards, usually around the time logistics, e-commerce, or fleet operations scale into hundreds of thousands of monthly addresses.&lt;/p&gt;
&lt;div style="max-width: 800px; margin: 30px auto;"&gt;
  &lt;canvas id="pricing_chart"&gt;&lt;/canvas&gt;
&lt;/div&gt;

&lt;div style="max-width: 800px; margin: 20px auto; text-align: center;"&gt;
  &lt;label for="rows_input" style="font-weight: bold; margin-right: 10px;"&gt;Number of addresses:&lt;/label&gt;
  &lt;input type="number" id="rows_input" value="500000" min="100" step="100" style="padding: 8px; width: 150px; border: 1px solid #ccc; border-radius: 4px; font-size: 16px;"&gt;
&lt;/div&gt;

&lt;p style="max-width: 800px; margin: 0 auto 24px; text-align: center; font-style: italic; color: #666; font-size: 0.9em;"&gt;Costs use each provider's per-1,000 rate; free tiers are not deducted (marginal at this scale, e.g. 10,000 free requests for Google, 30,000 for HERE).&lt;/p&gt;

&lt;script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"&gt;&lt;/script&gt;
&lt;script src="https://coordable.co/includes/pricing-chart.js"&gt;&lt;/script&gt;
&lt;script&gt;
(function() {
  const pricingData = {
    "Google Maps": 5.00,
    "HERE": 0.83,
    "Nominatim (OSM)": 0.00
  };
  createPricingChart("pricing_chart", pricingData);
  // Recalcule le graphe pour la valeur par defaut (500000) des le chargement
  setTimeout(function() {
    var rowsInput = document.getElementById("rows_input");
    if (rowsInput) {
      rowsInput.dispatchEvent(new Event("input", { bubbles: true }));
      rowsInput.dispatchEvent(new Event("change", { bubbles: true }));
    }
  }, 0);
})();
&lt;/script&gt;

&lt;p&gt;Most teams just absorb the cost, or swap Google for a single cheaper provider and brace for a quality drop. The better response is to question the default. &lt;strong&gt;Geocoding is not a problem where one provider is uniformly superior. It is a problem where data sources, coverage, and pricing vary by country, and where a smart routing layer outperforms any single provider on both cost and quality.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We wanted to put numbers on that claim. So we built a benchmark.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="the-dataset"&gt;The dataset&lt;/h4&gt;
&lt;p&gt;We constructed a 6,000-address sample stratified across 12 European countries: France, Spain, Italy, the Netherlands, Denmark, Norway, Portugal, Finland, the Czech Republic, Lithuania, Slovakia, and Slovenia. 500 addresses per country, all residential.&lt;/p&gt;
&lt;figure style="max-width: 520px; margin: 2rem auto; text-align: center;"&gt;
&lt;img src="https://coordable.co/images/cut-geocoding-dataset-map.png" alt="Map of Europe with the 12 benchmarked countries highlighted in blue; the United Kingdom is hatched to mark the absence of an open national address dataset." style="width: 100%; height: auto;"&gt;
&lt;figcaption style="font-style: italic; color: #666; font-size: 0.9em; margin-top: 0.5rem;"&gt;The 12 benchmarked countries, 500 residential addresses each. The UK is hatched: no open national address dataset.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The address sources are national authoritative registries, aggregated through OpenAddresses for 11 countries and through CartoCiudad (the Spanish national mapping agency) for Spain. We deliberately chose residential rather than business addresses, because residential is where geocoding actually breaks: business addresses tend to cluster on well-named commercial streets, while residential includes the long tail of suburban subdivisions, rural hamlets, and post-2010 developments that geocoders struggle with.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://coordable.co/country-analysis/best-geocoding-providers-united-kingdom/"&gt;United Kingdom&lt;/a&gt; is missing from the benchmark, and that absence is itself worth noting: Ordnance Survey AddressBase, the only complete UK address registry, remains paywalled. There is no open national address dataset for the UK comparable to France's BAN or Spain's CartoCiudad. This is a structural blind spot in European open data that affects every open-source geocoding effort.&lt;/p&gt;
&lt;p&gt;Each address in the sample carries a reference coordinate from the national registry: a postal code, a city, a street name, a house number, and a (lat, lng) pair. We treat the (lat, lng) as a reference coordinate, not as ground truth. Ground truth would require a field GPS reading, which we do not have. National registries have their own errors: parcel centroids that differ from the actual building entrance, projection drift, missing recent constructions. The cleanest way to phrase what we measure is "divergence from the national reference", not "provider error". That distinction matters for the methodology and we return to it.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="the-protocol"&gt;The protocol&lt;/h4&gt;
&lt;p&gt;A note on terms first. Google and HERE are commercial providers that bundle their own data, engine, and hosting. OpenStreetMap is an open referential that we query through a separate engine, and the engine choice matters, which is why we use Photon rather than Nominatim (more below). We geocoded the 6,000 addresses three times independently, once with each of the three: OpenStreetMap, HERE, and Google. We kept the raw output for every provider on every address, with no quality filtering at geocoding time. This is the critical choice. By geocoding all 6,000 addresses with all 3 providers, we can reconstruct the cascade afterward with whatever logic we want, and measure the marginal contribution of each step.&lt;/p&gt;
&lt;p&gt;About the OSM provider choice: we initially ran Nominatim and got 6.4% completeness on the Czech sample. This was not a fair measurement of OSM coverage. The public Nominatim instance enforces a 1 request per second rate limit and treats timeouts as no-result, which crushes the apparent hit rate. The same addresses fed to Photon, which uses the same OSM data behind an Elasticsearch index, returned 74.4%. We switched to Photon for all subsequent runs. The Photon numbers reflect what OSM data can actually do; the Nominatim numbers reflected operational throttling, not data coverage.&lt;/p&gt;
&lt;p&gt;For each provider, we then needed a decision rule: "did this provider produce a usable result?" In production, a cascade has to decide whether to accept a result and stop, or fall through to the next provider. It has to do this without access to a reference coordinate, since if you had a reference coordinate you would not need to geocode.&lt;/p&gt;
&lt;p&gt;We started with a simple rule: trust the provider's own classification. HERE returns a confidence score that can be thresholded at 0.8. Google and Photon do not return useful confidence scores, so we used their classification labels (HOUSENUMBER versus LOCALITY versus UNRESOLVED).&lt;/p&gt;
&lt;p&gt;This failed in interesting ways. For Slovakia, Google was returning 1.2% HOUSENUMBER, which is implausible. The actual Google results for Slovak addresses were correct: the right street, the right number, coordinates within meters of the reference. But the off-the-shelf classification we started with was misreading the Slovak address format ("village name + number" without a separate street) and labeling correct rooftop results as LOCALITY or POI. A label-based decision rule was throwing away correct answers because the labels were wrong.&lt;/p&gt;
&lt;p&gt;We replaced the label-based rule with a textual one: a result is accepted if the formatted_address returned by the provider contains the street name, the house number, and either the city or the postal code from the input. This is what a human reviewer would do to validate a match. It is provider-agnostic, language-agnostic to a useful degree, and it makes no use of the reference coordinate, so it is something that could run in production.&lt;/p&gt;
&lt;p&gt;This rule is not perfect, and we want to be transparent about that. We applied it manually for this benchmark as a way to evaluate cascade behavior more honestly than the provider labels allowed. At production scale, validating thousands of geocoded results requires more sophisticated approaches: cross-provider consistency checks, semantic matching with language models, learned rejection thresholds. We are working on a follow-up article on exactly that question, comparing an LLM-based result validator against the manual rule we used here. The takeaway for now is that this kind of validation logic, not the provider choice, is what unlocks cascade performance.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="the-headline-results"&gt;The headline results&lt;/h4&gt;
&lt;p&gt;Here are the two strategies side by side, evaluated on the full 6,000-address sample, with cost shown as annual spend at a 500,000 addresses per month workload (Google $5/1k, HERE $0.83/1k, OpenStreetMap $0).&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Strategy&lt;/th&gt;
&lt;th&gt;Acceptance&lt;/th&gt;
&lt;th&gt;Confirmed hits (&amp;lt;100m from reference)&lt;/th&gt;
&lt;th&gt;Cost / year&lt;/th&gt;
&lt;th&gt;Cost per 1,000 confirmed hits&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Google alone&lt;/td&gt;
&lt;td&gt;77.9%&lt;/td&gt;
&lt;td&gt;73.7%&lt;/td&gt;
&lt;td&gt;$30,000&lt;/td&gt;
&lt;td&gt;$6.79&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cascade (OSM → HERE → Google)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;89.9%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;86.3%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$6,336&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$1.22&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Two things stand out.&lt;/p&gt;
&lt;p&gt;First, the cascade beats Google alone on every metric. It accepts more addresses, it lands more of them within 100m of the reference, it has a lower rate of false positives, and it costs roughly a fifth of what Google alone would.&lt;/p&gt;
&lt;p&gt;Second, the free tier does the bulk of the work. OpenStreetMap alone resolves about 60% of addresses at zero cost. Only the roughly 40% it cannot handle fall through to HERE, and only the roughly 13% that HERE cannot handle ever reach Google. By the time an address reaches the most expensive provider, it is one of a small minority. This is the entire economic logic of a cascade.&lt;/p&gt;
&lt;figure style="max-width: 520px; margin: 2rem auto; text-align: center;"&gt;
&lt;img src="https://coordable.co/images/cut-geocoding-cascade-waterfall.png" alt="How the cascade routes each address: OpenStreetMap resolves about 60%, HERE about 27%, Google about 3%, and roughly 10% stay unresolved." style="width: 100%; height: auto;"&gt;
&lt;figcaption style="font-style: italic; color: #666; font-size: 0.9em; margin-top: 0.5rem;"&gt;OpenStreetMap clears most addresses for free; only a small share ever reaches a paid provider.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Whether you should drop a provider from this cascade, and whether Google's last few points are worth their cost, is something we return to in &lt;a href="https://coordable.co/blog/cut-geocoding-costs-79-percent-europe/#what-this-means-for-your-stack"&gt;What this means for your stack&lt;/a&gt;. But the headline is simple: the expensive provider should be the last resort, not the default.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="the-country-by-country-picture"&gt;The country-by-country picture&lt;/h4&gt;
&lt;p&gt;The headline numbers hide the most important finding: country-by-country variance is enormous. Here are Google alone and the full cascade broken down per country, with the cascade's gain over Google, sorted from the easiest country to the hardest.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Country&lt;/th&gt;
&lt;th&gt;Google alone&lt;/th&gt;
&lt;th&gt;Cascade&lt;/th&gt;
&lt;th&gt;Gain&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Netherlands&lt;/td&gt;
&lt;td&gt;90.4%&lt;/td&gt;
&lt;td&gt;100.0%&lt;/td&gt;
&lt;td&gt;+9.6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Slovenia&lt;/td&gt;
&lt;td&gt;94.6%&lt;/td&gt;
&lt;td&gt;98.4%&lt;/td&gt;
&lt;td&gt;+3.8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spain&lt;/td&gt;
&lt;td&gt;89.8%&lt;/td&gt;
&lt;td&gt;95.0%&lt;/td&gt;
&lt;td&gt;+5.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lithuania&lt;/td&gt;
&lt;td&gt;60.2%&lt;/td&gt;
&lt;td&gt;94.4%&lt;/td&gt;
&lt;td&gt;+34.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;France&lt;/td&gt;
&lt;td&gt;85.0%&lt;/td&gt;
&lt;td&gt;91.2%&lt;/td&gt;
&lt;td&gt;+6.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Czech Republic&lt;/td&gt;
&lt;td&gt;84.6%&lt;/td&gt;
&lt;td&gt;88.0%&lt;/td&gt;
&lt;td&gt;+3.4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Slovakia&lt;/td&gt;
&lt;td&gt;73.0%&lt;/td&gt;
&lt;td&gt;87.0%&lt;/td&gt;
&lt;td&gt;+14.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Portugal&lt;/td&gt;
&lt;td&gt;69.8%&lt;/td&gt;
&lt;td&gt;85.4%&lt;/td&gt;
&lt;td&gt;+15.6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Denmark&lt;/td&gt;
&lt;td&gt;69.6%&lt;/td&gt;
&lt;td&gt;82.0%&lt;/td&gt;
&lt;td&gt;+12.4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Norway&lt;/td&gt;
&lt;td&gt;67.2%&lt;/td&gt;
&lt;td&gt;80.0%&lt;/td&gt;
&lt;td&gt;+12.8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Italy&lt;/td&gt;
&lt;td&gt;65.0%&lt;/td&gt;
&lt;td&gt;74.0%&lt;/td&gt;
&lt;td&gt;+9.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Finland&lt;/td&gt;
&lt;td&gt;34.6%&lt;/td&gt;
&lt;td&gt;60.2%&lt;/td&gt;
&lt;td&gt;+25.6&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figure style="max-width: 520px; margin: 2rem auto; text-align: center;"&gt;
&lt;img src="https://coordable.co/images/cut-geocoding-country-gains.png" alt="Per-country confirmed-hit rates, Google alone versus the full cascade, with the cascade's gain, for all twelve countries." style="width: 100%; height: auto;"&gt;
&lt;figcaption style="font-style: italic; color: #666; font-size: 0.9em; margin-top: 0.5rem;"&gt;Google alone versus the full cascade, country by country. The gain runs from +3.4 to +34.2 points.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The variance is the story.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Netherlands is the easy case&lt;/strong&gt;: OSM alone resolves nearly every Dutch residential address correctly, because the Dutch community has done extraordinary work mapping their country into OSM, much of it imported directly from the BAG (Basisregistratie Adressen en Gebouwen), the national registry of addresses and buildings, which the government publishes under an open licence. The full cascade reaches 100% completeness at zero geocoding cost. If your business operates only in the Netherlands, you do not need a commercial geocoding provider at all. In practice a Dutch team might not reach for OSM here at all: the government runs its own free geocoder, &lt;a href="https://www.pdok.nl/pdok-locatieserver"&gt;PDOK Locatieserver&lt;/a&gt;, on the same BAG data, and open-source tooling such as &lt;a href="https://github.com/nlextract/NLExtract"&gt;NLExtract&lt;/a&gt; turns that official open data into a geocoder you can run yourself. The flip side of this shared lineage is a measurement caveat we cover in &lt;a href="https://coordable.co/blog/cut-geocoding-costs-79-percent-europe/#honest-limitations"&gt;Honest limitations&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lithuania is the surprise&lt;/strong&gt;: Google alone resolves only 60.2% of Lithuanian residential addresses correctly, but Photon brings that to 94.4%. We expected the Nordic and Baltic countries to be a weak spot for OSM, and instead Lithuania is one of the strongest performers. The +34.2 point gain over Google alone is the largest in the dataset.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://coordable.co/country-analysis/best-geocoding-providers-spain/"&gt;Spain&lt;/a&gt;, &lt;a href="https://coordable.co/country-analysis/best-geocoding-providers-france/"&gt;France&lt;/a&gt;, Czech Republic, Slovenia are the steady middle&lt;/strong&gt;: Google alone gets you to the mid-to-high 80s, the cascade adds a few points at low marginal cost, and the value of HERE is small in these countries. A two-provider cascade is sufficient.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Denmark, Norway, Slovakia, &lt;a href="https://coordable.co/country-analysis/best-geocoding-providers-portugal/"&gt;Portugal&lt;/a&gt; are the structural gain zone&lt;/strong&gt;: the cascade adds 12 to 16 points over Google alone. HERE and Google together cover what neither could alone. The cascade costs more here, but the quality lift is large.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://coordable.co/country-analysis/best-geocoding-providers-italy/"&gt;Italy&lt;/a&gt; and Finland are the hard countries&lt;/strong&gt;: even the full cascade leaves a quarter to forty percent of addresses unresolved within 100m. There is no clever orchestration that fixes this with the providers we tested. Italy has notoriously inconsistent residential addressing (the same &lt;code&gt;Via Roma&lt;/code&gt; appears in thousands of municipalities, civic numbers come with suffixes, parenthetical disambiguators, and saint names that geocoders confuse). Finland is harder still because the OpenAddresses source for Finland does not include a city field, only street + postcode + country. That kind of partial input is closer to what a real-world delivery dataset looks like, and it punishes every provider equally.&lt;/p&gt;
&lt;p&gt;What this means: there is no single optimal cascade for Europe. The Netherlands cascade is "Photon only, stop". The Lithuanian cascade is "Photon, then occasionally HERE". The Finnish cascade is "all three, and accept that 40% will need manual review". A geocoding strategy that does not adjust by country is leaving money or quality on the table.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="annual-savings-at-scale"&gt;Annual savings at scale&lt;/h4&gt;
&lt;p&gt;The headline showed the blended average. The country-level numbers are where the real money is, and where the variance becomes impossible to ignore. We use the same 500,000 addresses per month workload, broken down country by country, so you can read off your own situation: if you operate at this volume in France, your numbers are the France row; if you run 200k per month across two countries, take 40% of the relevant rows and add them.&lt;/p&gt;
&lt;p&gt;One number is identical everywhere: geocoding 6 million addresses a year with Google alone costs &lt;strong&gt;$30,000&lt;/strong&gt;, since Google charges $5 per thousand requests in every country. What varies, dramatically, is what the cascade costs. And that variance is the whole point of this article.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Country&lt;/th&gt;
&lt;th&gt;Quality gain&lt;/th&gt;
&lt;th&gt;Cascade cost / year&lt;/th&gt;
&lt;th&gt;Savings / year&lt;/th&gt;
&lt;th&gt;Reduction&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Netherlands&lt;/td&gt;
&lt;td&gt;+9.6&lt;/td&gt;
&lt;td&gt;$20&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$29,980&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Slovenia&lt;/td&gt;
&lt;td&gt;+3.8&lt;/td&gt;
&lt;td&gt;$1,694&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$28,306&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;94%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lithuania&lt;/td&gt;
&lt;td&gt;+34.2&lt;/td&gt;
&lt;td&gt;$2,058&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$27,942&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;93%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spain&lt;/td&gt;
&lt;td&gt;+5.2&lt;/td&gt;
&lt;td&gt;$2,952&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$27,048&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;90%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Slovakia&lt;/td&gt;
&lt;td&gt;+14.0&lt;/td&gt;
&lt;td&gt;$2,957&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$27,043&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;90%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;France&lt;/td&gt;
&lt;td&gt;+6.2&lt;/td&gt;
&lt;td&gt;$5,328&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$24,672&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;82%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Czech Republic&lt;/td&gt;
&lt;td&gt;+3.4&lt;/td&gt;
&lt;td&gt;$5,961&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$24,039&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;80%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Denmark&lt;/td&gt;
&lt;td&gt;+12.4&lt;/td&gt;
&lt;td&gt;$7,794&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$22,206&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;74%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Norway&lt;/td&gt;
&lt;td&gt;+12.8&lt;/td&gt;
&lt;td&gt;$8,244&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$21,756&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;73%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Italy&lt;/td&gt;
&lt;td&gt;+9.0&lt;/td&gt;
&lt;td&gt;$11,732&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$18,268&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;61%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Portugal&lt;/td&gt;
&lt;td&gt;+15.6&lt;/td&gt;
&lt;td&gt;$12,543&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$17,457&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;58%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Finland&lt;/td&gt;
&lt;td&gt;+25.6&lt;/td&gt;
&lt;td&gt;$14,744&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$15,256&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;51%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AVERAGE&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+12.6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$6,336&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$23,664&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;79%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figure style="max-width: 520px; margin: 2rem auto; text-align: center;"&gt;
&lt;img src="https://coordable.co/images/cut-geocoding-annual-savings.png" alt="Per-country annual cost of the cascade and the resulting savings against Google's flat $30,000, at 500,000 addresses a month." style="width: 100%; height: auto;"&gt;
&lt;figcaption style="font-style: italic; color: #666; font-size: 0.9em; margin-top: 0.5rem;"&gt;What you pay versus what you save, per country, against Google's flat $30,000 a year.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;A few observations on this table.&lt;/p&gt;
&lt;p&gt;First, the cascade beats Google alone in every single country. The smallest annual saving is $15,256 in Finland, the largest is $29,980 in the Netherlands. There is no scenario in our benchmark where defaulting to Google is the right call at this volume.&lt;/p&gt;
&lt;p&gt;Second, the variance in savings tracks the variance in cascade cost, not Google cost. Google is $30,000 everywhere. The cascade costs $20 in the Netherlands (essentially free, Photon resolves nearly everything) and $14,744 in Finland (Photon struggles with Finnish addressing, the cascade falls through to the paid providers far more often). So the question "how much does the cascade save me in country X" boils down to "how good is OSM coverage in country X". That is the same country variation we saw in the quality breakdown above.&lt;/p&gt;
&lt;p&gt;Third, the percentage reductions are remarkably high even in countries where the cascade adds little quality. Czech Republic gains only +3.4 quality points, but still saves 80% on cost because Photon resolves 87% of Czech addresses for free. The cascade does not need a quality breakthrough to be massively cheaper. Even where it ties Google on quality, it beats Google on cost.&lt;/p&gt;
&lt;p&gt;Fourth, the Netherlands is the limit case worth its own mention. Free OSM data resolves nearly every address that the cascade is called on, leaving essentially zero paid calls. Annual cost: $20. If your geocoding workload is mostly Dutch, you do not need a paid geocoding provider at all. We would not have predicted this five years ago, but the Dutch OSM community has done that good a job.&lt;/p&gt;
&lt;p&gt;To extrapolate to your own volume, the numbers scale linearly. At 1 million addresses per month per country, the savings double; below that, they shrink in proportion. The percentage reductions are constant, the absolute numbers scale with traffic.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="honest-limitations"&gt;Honest limitations&lt;/h4&gt;
&lt;p&gt;A few caveats matter and we want to name them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HERE and OpenAddresses share data sources in some countries.&lt;/strong&gt; HERE is upfront in their documentation that "HERE Map Content" incorporates public national datasets where available. In France, this includes the BAN, which is also a source for OpenAddresses. This creates a partial overlap on our reference coordinate metric: when HERE answers from BAN-derived data and we compare it to a BAN-derived reference, the match is mechanical. To quantify this, 41% of HERE results sit within 1 meter of the reference coordinate, against 31% for Photon and 10% for Google. The other 59% of HERE results diverge meaningfully from the reference, so HERE is not a copy of OpenAddresses, but the comparison metric does favor providers that source from the same national registries. We return to the cascade with HERE removed entirely in &lt;a href="https://coordable.co/blog/cut-geocoding-costs-79-percent-europe/#what-this-means-for-your-stack"&gt;What this means for your stack&lt;/a&gt;, so readers who want to discount this effect can see those numbers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The same shared-source effect applies to OSM, most visibly in the Netherlands.&lt;/strong&gt; Dutch OSM addresses are largely a BAG import, and our Dutch reference, sourced through OpenAddresses, traces back to the BAG as well, so the near-perfect Dutch result partly reflects a common origin rather than two independent systems agreeing. This does not change the practical takeaway, free OSM data resolves Dutch addresses whatever its provenance, and the government's own PDOK service runs on the very same data, but the 100% figure should be read as completeness against the national registry, not as proof that OSM is independently more accurate than a paid provider. Where no such open registry feeds OSM, the cascade leans much harder on the paid providers, which is exactly what the per-country cost spread shows.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The robust validation rule was applied manually.&lt;/strong&gt; As discussed in the methodology section, deciding whether a geocoded result matches the input is the hard problem. Simple confidence thresholds fail because Google and Photon do not return useful scores. Simple label thresholds fail because the upstream classification can be unreliable on certain address formats. The textual rule we used (street + number + city/postcode in formatted_address) works for a benchmark, but it required country-by-country sanity checking and tolerance for synonyms (Calle and Carrer, Via and Strada, postal code formats with or without separators). A production cascade running at scale needs a more robust validation layer. This is the topic of our next benchmark.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Address completeness varies by source.&lt;/strong&gt; OpenAddresses data for Denmark, Norway, and Finland does not include a city field. The geocoding inputs for these countries are therefore more impoverished than for the others (just street + postcode + country). This degrades all providers symmetrically, but it does inflate the apparent difficulty of these countries. Real-world delivery data often has similar gaps, so the measurement reflects production conditions more than ideal conditions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6,000 addresses is not the entire population.&lt;/strong&gt; Statistical noise is real at this sample size, especially at the country level (500 addresses per country). The directional findings are robust, the second decimal place is not.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="what-this-means-for-your-stack"&gt;What this means for your stack&lt;/h4&gt;
&lt;p&gt;If you are running geocoding at any meaningful European volume, four things follow from this benchmark.&lt;/p&gt;
&lt;figure style="max-width: 520px; margin: 2rem auto; text-align: center;"&gt;
&lt;img src="https://coordable.co/images/cut-geocoding-cost-vs-quality.png" alt="Four geocoding strategies plotted by annual cost on a log scale against confirmed-hit rate. The OSM to HERE to Google cascade and the leaner OSM to HERE cascade sit top-left, with more confirmed hits at a fraction of the cost, while Google alone and the OSM to Google cascade are dominated on the lower right." style="width: 100%; height: auto;"&gt;
&lt;figcaption style="font-style: italic; color: #666; font-size: 0.9em; margin-top: 0.5rem;"&gt;The two cascades sit top-left: more confirmed hits at a fraction of the cost. Cutting HERE moves you right and down.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;First, &lt;strong&gt;stop defaulting to Google&lt;/strong&gt;. The full cascade beats Google alone in every country we tested, on both cost and quality. There is no defensive argument for "we use Google because it is the best". On this dataset, Google alone is dominated: 73.7% confirmed at $30,000 a year, against 86.3% at $6,336 for the cascade.&lt;/p&gt;
&lt;p&gt;Second, &lt;strong&gt;if you trim the stack, cut Google before HERE, never the reverse&lt;/strong&gt;. The instinct when simplifying a cascade is to keep the famous provider and drop the unfamiliar one. On these numbers that is exactly backwards (our &lt;a href="https://coordable.co/comparison/google-vs-here-geocoding-2026/"&gt;Google vs HERE comparison&lt;/a&gt; goes deeper on the two). A cascade with HERE removed entirely, OSM then Google, resolves only 81.8% of addresses and costs $12,720 a year, because every address OSM misses falls straight onto Google at $5 per thousand. The full cascade, with HERE absorbing the middle tier at $0.83 per thousand, lands more addresses (86.3%) for half that cost. HERE is the cheap workhorse, not the expendable one. If you want a genuinely lean stack, the right cut runs the other way: OSM then HERE, no Google at all, returns 83.2% confirmed at $2,116 a year. That is 96% of the full cascade's quality for a third of its cost.&lt;/p&gt;
&lt;p&gt;Third, &lt;strong&gt;Google's last few points are cheap, but their value is concentrated in a handful of countries&lt;/strong&gt;. Adding Google on top of an OSM-then-HERE cascade buys 3.1 percentage points of quality, from 83.2% to 86.3%, for an extra $4,220 a year, about 2.3 cents per additional correctly resolved address. In absolute terms that is inexpensive, so for a mixed European footprint the full cascade is the right default. But the gain is not evenly spread. In the Czech Republic, Slovenia, Spain, and Slovakia, Google adds under two points and barely earns its place in the cascade. In Portugal it adds fifteen points, in Italy almost six. If your traffic is concentrated in OSM-strong countries, OSM then HERE is enough. If it includes the hard ones, Google stays in.&lt;/p&gt;
&lt;p&gt;Fourth, &lt;strong&gt;the orchestration logic matters more than the provider choice&lt;/strong&gt;. A naive cascade that just chains OSM, HERE, and Google without a smart decision rule on when to accept a result will inherit the false positives of the cheaper providers and lose the cost-quality advantage. We showed in &lt;a href="https://coordable.co/blog/cut-geocoding-costs-79-percent-europe/#the-protocol"&gt;the protocol&lt;/a&gt; that switching from a label-based decision rule to a textual one moved cascade quality by several percentage points. The provider stack is the easy part. The accept and reject logic is the hard part.&lt;/p&gt;
&lt;p&gt;One last point on simplicity, because it is easy to overcorrect. A simple uniform cascade already wins; country-aware routing is the next gain, not a prerequisite. Run the same three providers in the same blind cheap-to-expensive order in every country, and you still beat Google alone everywhere, on both cost and quality. You do not need clever per-country provider selection to capture the bulk of the value. Where country-awareness pays off is the bill: serving the Netherlands from OSM alone, calling OSM then HERE where Google earns nothing, and reaching for all three only where it does, trims cost further without touching quality. That refinement is what we are building. The simple uniform cascade is already the right move today.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="what-comes-next"&gt;What comes next&lt;/h4&gt;
&lt;p&gt;The biggest open question from this benchmark is the one we sidestepped: how do you decide, at production scale and without a reference coordinate, whether to accept a provider's result? The textual rule we applied here works for a benchmark of 6,000 addresses. At 500,000 a month and up, it needs to be automated, robust to language and formatting variants, and able to catch the failures the textual rule misses: the right street and number but the wrong city, or the correct address pinned a few hundred meters down the road.&lt;/p&gt;
&lt;p&gt;Two directions follow from this. The first is the accept-or-reject decision itself. Provider confidence scores and labels are the obvious signal to lean on, and a real question is how far they can be trusted: on Slovak addresses, the providers' own labels flagged correct results as failures. So the more promising path may be external, can a language model flag a bad result from the input and output pair alone, with no reference coordinate, well enough to replace the manual rule? That layer is the missing piece that lets a country-aware cascade run unattended at scale. The second direction sits upstream: most real-world address data is far messier than a national registry, and how much of the geocoding gap closes with input cleaning rather than a better provider is still an open question. Both are what we are looking at next.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="methodology-recap"&gt;Methodology recap&lt;/h4&gt;
&lt;p&gt;For readers who want to reproduce or audit the analysis:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dataset: 6,000 residential addresses, 500 per country, 12 European countries, sourced from OpenAddresses (11 countries) and CartoCiudad IGN (Spain). Schema: id, street_name, house_number, city, postal_code, country, country_code, full_address, lat_ref, lng_ref.&lt;/li&gt;
&lt;li&gt;Geocoders: OSM via Photon (not Nominatim), HERE, Google. All addresses geocoded once with each, raw outputs preserved.&lt;/li&gt;
&lt;li&gt;Validation rule: provider result accepted if (a) latitude returned, (b) house_number from input appears in formatted_address from provider, (c) at least one significant token of street_name from input appears in formatted_address from provider, (d) city or postal_code from input appears in formatted_address from provider. For HERE only, additionally requires confidence_score &amp;gt;= 0.8.&lt;/li&gt;
&lt;li&gt;Confirmed hit: accepted result within 100m of the reference coordinate (haversine distance).&lt;/li&gt;
&lt;li&gt;Cost basis: Google Geocoding API $5/1k, HERE Geocoding $0.83/1k, OSM via Photon $0 (self-hosted or platform-included).&lt;/li&gt;
&lt;li&gt;Cascade logic: blind cascade in production order (cheaper first, expensive last). Each step calls the next only if the current one was not accepted.&lt;/li&gt;
&lt;li&gt;Volume normalization: costs reported as annual spend at a workload of 500,000 addresses per month (6 million addresses a year).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The full per-address dataset (6,000 rows, 34 columns) is available on request.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="where-to-go-from-here"&gt;Where to go from here&lt;/h4&gt;
&lt;p&gt;If you are choosing or trimming a geocoding stack, these pages go deeper on the pieces this benchmark touches:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Provider guides: &lt;a href="https://coordable.co/provider/google-maps-geocoding-api/"&gt;Google Maps Geocoding API&lt;/a&gt;, &lt;a href="https://coordable.co/provider/here-geocoding-api/"&gt;HERE Geocoding API&lt;/a&gt;, &lt;a href="https://coordable.co/provider/mapbox-geocoding-api/"&gt;Mapbox Geocoding API&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Head to head: &lt;a href="https://coordable.co/comparison/google-vs-here-geocoding-2026/"&gt;Google vs HERE geocoding in 2026&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Country deep dives: &lt;a href="https://coordable.co/country-analysis/best-geocoding-providers-france/"&gt;France&lt;/a&gt;, &lt;a href="https://coordable.co/country-analysis/best-geocoding-providers-germany/"&gt;Germany&lt;/a&gt;, &lt;a href="https://coordable.co/country-analysis/best-geocoding-providers-italy/"&gt;Italy&lt;/a&gt;, &lt;a href="https://coordable.co/country-analysis/best-geocoding-providers-luxembourg/"&gt;Luxembourg&lt;/a&gt;, &lt;a href="https://coordable.co/country-analysis/best-geocoding-providers-portugal/"&gt;Portugal&lt;/a&gt;, &lt;a href="https://coordable.co/country-analysis/best-geocoding-providers-spain/"&gt;Spain&lt;/a&gt;, &lt;a href="https://coordable.co/country-analysis/best-geocoding-providers-united-kingdom/"&gt;United Kingdom&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</description><category>benchmark</category><category>europe</category><category>openstreetmap</category><category>pricing</category><category>providers</category><guid>https://coordable.co/blog/cut-geocoding-costs-79-percent-europe/</guid><pubDate>Mon, 15 Jun 2026 09:00:00 GMT</pubDate></item><item><title>When a bad geocode changes your flood risk classification</title><link>https://coordable.co/blog/geocoding-ppri-insurance-impact-2026/</link><dc:creator>Julien Crétin</dc:creator><description>&lt;p&gt;French home insurers don't price flood risk by intuition. They price it by zone, specifically by the PPRI (Plan de Prévention des Risques d'Inondation), a government-issued flood risk map that classifies every address in France into one of three statuses: &lt;em&gt;Risque Existant&lt;/em&gt; (known flood zone), &lt;em&gt;Risque non Connu&lt;/em&gt; (municipality at risk, precise address not mapped), or no risk.&lt;/p&gt;
&lt;p&gt;The classification feeds directly into the premium. A property in a &lt;em&gt;Risque Existant&lt;/em&gt; zone typically carries a 10 to 30% surcharge on the natural disaster component of the home insurance premium, and in high-risk zones, coverage can be refused altogether.&lt;/p&gt;
&lt;p&gt;What happens when the geocode is wrong? We tested 300 addresses where two geocoders disagreed; &lt;strong&gt;1 in 7 ended up in a different PPRI classification&lt;/strong&gt; depending on which one was used.&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/geocoding-ppri-insurance-impact-2026/#the-mechanics"&gt;The mechanics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/geocoding-ppri-insurance-impact-2026/#what-we-measured"&gt;What we measured&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/geocoding-ppri-insurance-impact-2026/#three-cases"&gt;Three cases&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/geocoding-ppri-insurance-impact-2026/#case-1-loire-atlantique-dept-44-13-km-flood-zone-missed"&gt;Case 1 — Loire-Atlantique (dept. 44): 1.3 km, flood zone missed&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/geocoding-ppri-insurance-impact-2026/#case-2-vendee-dept-85-11-km-flood-zone-added"&gt;Case 2 — Vendée (dept. 85): 1.1 km, flood zone added&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/geocoding-ppri-insurance-impact-2026/#case-3-moselle-dept-57-three-addresses-same-divergence-pattern"&gt;Case 3 — Moselle (dept. 57): three addresses, same divergence pattern&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/geocoding-ppri-insurance-impact-2026/#what-this-means-for-a-portfolio-audit"&gt;What this means for a portfolio audit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/geocoding-ppri-insurance-impact-2026/#running-an-audit-on-your-portfolio"&gt;Running an audit on your portfolio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/geocoding-ppri-insurance-impact-2026/#methodology-note"&gt;Methodology note&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h3 id="the-mechanics"&gt;The mechanics&lt;/h3&gt;
&lt;p&gt;One common approach: an insurer's system geocodes the address, converting a street address into latitude/longitude coordinates, then queries the PPRI database with those coordinates. The system trusts the coordinates it receives; it has no way to verify whether the geocode is accurate.&lt;/p&gt;
&lt;p&gt;If the geocode places the address 1.2 km from its actual location, the PPRI query runs against the wrong point on the map. Whether that matters depends entirely on where the wrong point lands: in a flood zone, out of one, or across a municipal boundary where the PPRI itself changes.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="what-we-measured"&gt;What we measured&lt;/h3&gt;
&lt;p&gt;We ran 300 French addresses through two geocoders, BAN (Base Adresse Nationale, the French open-source reference) and Google Maps, and queried the Géorisques PPRI API for both coordinate pairs. We selected addresses where the two providers disagreed on location by at least 50 metres.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;1 in 7 addresses ended up in a different PPRI classification&lt;/strong&gt; depending on which geocoder was used.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That's not 1 in 7 addresses overall. It's 1 in 7 among addresses where the geocoders already disagreed.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The right question for a portfolio audit isn't "how many addresses have a bad geocode?"; it's "how many addresses have a geocode divergence large enough to cross a PPRI boundary?"&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id="three-cases"&gt;Three cases&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;On all maps: &lt;/em&gt;&lt;em&gt;orange pin = BAN coordinate&lt;/em&gt;&lt;em&gt;, &lt;/em&gt;&lt;em&gt;green pin = Google coordinate&lt;/em&gt;&lt;em&gt;. Red/blue zones = flood risk areas (PPRI). Source: Géorisques / georisques.gouv.fr · © OpenStreetMap contributors.&lt;/em&gt;&lt;/p&gt;
&lt;h4 id="case-1-loire-atlantique-dept-44-13-km-flood-zone-missed"&gt;Case 1 — Loire-Atlantique (dept. 44): 1.3 km, flood zone missed&lt;/h4&gt;
&lt;p&gt;An address in the Loire-Atlantique estuary area. BAN placed it at 47.2807°N, 2.4322°W, in a known flood zone (&lt;em&gt;Risque Existant&lt;/em&gt;). Google placed it at 47.2691°N, 2.4331°W, 1,294 metres away, outside the mapped zone (&lt;em&gt;Risque non Connu&lt;/em&gt;). BAN confidence score: 0.681.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Case 1, Loire-Atlantique: BAN (orange) in flood zone, Google (green) outside. Gap: 1,294 m." src="https://coordable.co/images/geocoding-ppri-insurance-impact-2026/ppri_case1_loire_atlantique.png"&gt;&lt;/p&gt;
&lt;p&gt;An insurer using Google's coordinates would classify this property as outside the flood zone. No surcharge. Potentially a significant underpricing of risk.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="case-2-vendee-dept-85-11-km-flood-zone-added"&gt;Case 2 — Vendée (dept. 85): 1.1 km, flood zone added&lt;/h4&gt;
&lt;p&gt;An address on the Vendée coast. BAN placed it at 46.4963°N, 1.8072°W, outside the mapped flood zone (&lt;em&gt;Risque non Connu&lt;/em&gt;). Google placed it at 46.4974°N, 1.7925°W, 1,135 metres away, inside a flood zone (&lt;em&gt;Risque Existant&lt;/em&gt;). BAN confidence score: 0.702.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Case 2, Vendée: BAN (orange) outside flood zone, Google (green) inside. Gap: 1,135 m." src="https://coordable.co/images/geocoding-ppri-insurance-impact-2026/ppri_case2_vendee.png"&gt;&lt;/p&gt;
&lt;p&gt;Here the error runs in the other direction. An insurer using BAN would miss the flood zone entirely, no surcharge applied to a property that should carry one. A loss exposure that doesn't show up in the underwriting model.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="case-3-moselle-dept-57-three-addresses-same-divergence-pattern"&gt;Case 3 — Moselle (dept. 57): three addresses, same divergence pattern&lt;/h4&gt;
&lt;p&gt;Three addresses on the same street in the Moselle valley showed a consistent 1,850 to 1,900 metre gap between BAN and Google. All three: BAN in a flood zone (&lt;em&gt;Risque Existant&lt;/em&gt;), Google outside (&lt;em&gt;Risque non Connu&lt;/em&gt;). BAN score: 0.551.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Case 3, Moselle: three addresses (orange = BAN, green = Google) showing the same systematic divergence. Gap: ~1,880 m." src="https://coordable.co/images/geocoding-ppri-insurance-impact-2026/ppri_case3_moselle.png"&gt;&lt;/p&gt;
&lt;p&gt;This is the pattern that matters at portfolio scale. A single address with a bad geocode is a one-off. Three addresses with the same systematic divergence, likely sharing a street, a building, or a postal code, suggest a structured data quality problem that will recur across every address in that zone.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="what-this-means-for-a-portfolio-audit"&gt;What this means for a portfolio audit&lt;/h3&gt;
&lt;p&gt;The 14.5% reclassification rate we observed applies to addresses with a known geocoding divergence. The prior question, how many addresses in a typical insurance portfolio have a divergence large enough to matter, is the one worth answering first.&lt;/p&gt;
&lt;p&gt;Our benchmark on 10,000 French addresses suggests that roughly 3% produce a gap of 500 metres or more between BAN and a premium provider. Applied to a portfolio of 1,000,000 home insurance policies, that's approximately 30,000 addresses worth auditing.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;At a 14.5% reclassification rate: &lt;strong&gt;roughly 4,350 policies may be incorrectly classified for flood risk&lt;/strong&gt;. For the subset under-classified as standard risk, the annual premium shortfall runs from €33,000 to €196,000. Beyond the premium impact, these policies carry an unrecognised claims exposure: at a conservative 1% annual flood event probability, roughly 20 under-classified policies will generate a claim in any given year, each potentially running to €20,000 to €80,000 in damages on a contract priced for standard risk.&lt;/p&gt;
&lt;p&gt;A geocoding audit doesn't require re-underwriting the entire portfolio. It requires identifying the addresses where the geocode is uncertain enough to cross a risk boundary, and those addresses are identifiable before any claim is filed.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The signal is already in your data: the BAN confidence score. Addresses with a score below 0.7 are the ones most likely to produce a divergence large enough to matter. In our sample, every fine-category reclassification came from an address with a BAN score below 0.71.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="running-an-audit-on-your-portfolio"&gt;Running an audit on your portfolio&lt;/h3&gt;
&lt;p&gt;One simplified approach for a portfolio audit, noting that in practice, any geocoder can be wrong, and more robust workflows would cross-reference three or more providers:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Run your address file through BAN and flag addresses with a confidence score below 0.7&lt;/li&gt;
&lt;li&gt;For flagged addresses, run a secondary geocoder and compute the coordinate gap&lt;/li&gt;
&lt;li&gt;For addresses with a gap above ~500 metres, query the PPRI API for both coordinate pairs&lt;/li&gt;
&lt;li&gt;Surface the cases where the two coordinates produce different PPRI classifications&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Steps 1 to 3 can be automated with a cascading geocoding pipeline. Step 4 is a one-time enrichment.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Coordable&lt;/strong&gt; builds multi-provider geocoding pipelines that automate exactly this kind of cascade, surfacing address uncertainty before it becomes a classification error. If you're thinking about a portfolio audit, &lt;a href="mailto:contact@coordable.co"&gt;we'd be happy to talk through the approach&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id="methodology-note"&gt;Methodology note&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Dataset:&lt;/strong&gt; 300 French addresses drawn from the ADEME DPE database (10,000-address stratified sample across urban and rural zones), geocoded with BAN and Google Maps. Only addresses where both providers returned valid French metropolitan coordinates were included.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Selection:&lt;/strong&gt; Addresses split into two groups, &lt;em&gt;fine&lt;/em&gt; (50m to 2km gap, 200 addresses) and &lt;em&gt;gross&lt;/em&gt; (2km to 50km gap, 100 addresses). Gaps above 50km excluded as geocoding errors.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PPRI API:&lt;/strong&gt; Géorisques &lt;code&gt;/api/v1/resultats_rapport_risque&lt;/code&gt;, queried for both coordinate pairs. 72 of 300 address pairs returned network errors (24%), reducing the effective sample. 3 communes returned HTTP 404 (no PPRI data available).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Reclassification rate:&lt;/strong&gt; Computed on address pairs where both coordinates returned a valid, non-null PPRI status. "Risque Inconnu" normalised to "Risque non Connu" (API variant).&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;This post is part of a series on geocoding quality in French operations. For the cost impact on last-mile logistics, see our &lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/"&gt;failed delivery cost models&lt;/a&gt; and &lt;a href="https://coordable.co/blog/geocoding-routing-impact-france-2026/"&gt;routing impact benchmark&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</description><category>address quality</category><category>flood risk</category><category>geocoding</category><category>insurance</category><category>PPRI</category><guid>https://coordable.co/blog/geocoding-ppri-insurance-impact-2026/</guid><pubDate>Sun, 19 Apr 2026 08:00:00 GMT</pubDate></item><item><title>Your routing engine is only as good as your coordinates</title><link>https://coordable.co/blog/geocoding-routing-impact-france-2026/</link><dc:creator>Julien Crétin</dc:creator><description>&lt;p&gt;Route optimization gets most of the attention in last-mile logistics. The tooling has become genuinely sophisticated.&lt;/p&gt;
&lt;p&gt;The input data has not received the same scrutiny.&lt;/p&gt;
&lt;p&gt;A routing engine optimizes the problem it is given. When coordinates are off - resolved to the wrong street, the wrong side of a building, or a town center instead of a specific address - the engine is still mathematically correct. It just optimizes the wrong problem. We ran the numbers on what that costs: &lt;strong&gt;up to €18,966/month in avoidable driver time&lt;/strong&gt;, against €165 in geocoding API calls to avoid it.&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/geocoding-routing-impact-france-2026/#the-setup"&gt;The setup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/geocoding-routing-impact-france-2026/#the-model"&gt;The model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/geocoding-routing-impact-france-2026/#results"&gt;Results&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/geocoding-routing-impact-france-2026/#the-variance-problem-and-why-it-matters"&gt;The variance problem — and why it matters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/geocoding-routing-impact-france-2026/#projection-45000-deliveries-per-month"&gt;Projection — 45,000 deliveries per month&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/geocoding-routing-impact-france-2026/#what-the-routing-engine-cannot-fix"&gt;What the routing engine cannot fix&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/geocoding-routing-impact-france-2026/#limitations"&gt;Limitations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/geocoding-routing-impact-france-2026/#want-to-fix-the-input-not-the-algorithm"&gt;Want to fix the input, not the algorithm?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/geocoding-routing-impact-france-2026/#methodology"&gt;Methodology&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/geocoding-routing-impact-france-2026/#note-on-geocoding-cost-estimates"&gt;Note on geocoding cost estimates&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h3 id="the-setup"&gt;The setup&lt;/h3&gt;
&lt;p&gt;We used the same 10,000 French addresses from our &lt;a href="https://coordable.co/blog/geocoding-ban-google-benchmark-france-2026/"&gt;geocoding benchmark&lt;/a&gt; (DPE database, stratified by density zone). For each address, we had two sets of coordinates: BAN results and Google results.&lt;/p&gt;
&lt;p&gt;Two categories matter here: degraded stops (low BAN score) and risky stops (degraded + gap &amp;gt; 100m). The second is the operational problem. The first is the signal that predicts it.&lt;/p&gt;
&lt;p&gt;Degraded addresses: BAN confidence score below 0.7. In our benchmark, 20–40% of these show a coordinate gap above 100 metres - the threshold above which a driver can no longer reliably locate the right building. The lower the score, the higher the proportion of large divergences.&lt;/p&gt;
&lt;p&gt;We ran the simulation on 10 routes per zone, using actual stop counts representative of each context. Each route was drawn from a geographically constrained pool - stops selected within a realistic radius around a random centroid, to reflect actual last-mile clustering rather than department-wide dispersion.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Zone&lt;/th&gt;
&lt;th&gt;Dept&lt;/th&gt;
&lt;th&gt;Radius&lt;/th&gt;
&lt;th&gt;Stops per route&lt;/th&gt;
&lt;th&gt;Degraded stops (avg)&lt;/th&gt;
&lt;th&gt;Risky stops (avg)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1 — Dense urban&lt;/td&gt;
&lt;td&gt;92&lt;/td&gt;
&lt;td&gt;8 km&lt;/td&gt;
&lt;td&gt;25&lt;/td&gt;
&lt;td&gt;24.6 (98%)&lt;/td&gt;
&lt;td&gt;4.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2 — Peri-urban&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;15 km&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;10.1 (51%)&lt;/td&gt;
&lt;td&gt;2.8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3 — Rural&lt;/td&gt;
&lt;td&gt;85&lt;/td&gt;
&lt;td&gt;20 km&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;7.0 (58%)&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h3 id="the-model"&gt;The model&lt;/h3&gt;
&lt;p&gt;Route planning uses BAN coordinates throughout - this is the realistic scenario where an operator geocodes addresses once and builds routes on the result.&lt;/p&gt;
&lt;p&gt;When a driver arrives at a risky stop, two things happen. First, the coordinates are off by more than 100 metres: the driver spends time searching for the right building or entrance. We model this conservatively at 3 minutes per stop. Second, once the driver locates the actual address, they need to travel from the real position to the next stop in the planned sequence - a sequence that was built around the BAN coordinates, not the real ones.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This second cost is the one that is almost never accounted for. The routing engine planned a direct path from stop A to stop B. In reality, the driver leaves stop A, travels to the actual building, makes the delivery, then drives to stop B - from the wrong starting point. The detour compounds across every risky stop in the route.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="Routing detour — planned route (blue, 29 min / 7.3 km) vs actual route (orange, 48 min / 16.4 km) caused by a 1,542 m geocoding gap. Route 9, Stop 3, Seine-Saint-Denis." src="https://coordable.co/images/geocoding-routing-impact-france-2026/routing_detour_case_r9s3.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Route 9, Stop 3 - Seine-Saint-Denis (93) - BAN score 0.587 - Gap BAN vs Google: 1,542 m - Map: Leaflet · © OpenStreetMap contributors · © CARTO.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;We computed this detour using road distances from OpenRouteService Directions API for each risky stop individually. Route planning used OpenRouteService Matrix API.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="results"&gt;Results&lt;/h3&gt;
&lt;p&gt;Before the numbers: the dense urban figure (+19.7 km) is higher than other contexts in our simulations. In dense urban areas, large geocoding errors tend to resolve to a different street or neighborhood entirely - likely failed deliveries rather than recoverable detours. The peri-urban and rural figures are more representative of typical detour costs.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Zone&lt;/th&gt;
&lt;th&gt;Risky stops (avg)&lt;/th&gt;
&lt;th&gt;Extra distance (median)&lt;/th&gt;
&lt;th&gt;Extra time (median)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1 — Dense urban&lt;/td&gt;
&lt;td&gt;4.1&lt;/td&gt;
&lt;td&gt;+19.7 km&lt;/td&gt;
&lt;td&gt;+55.7 min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2 — Peri-urban&lt;/td&gt;
&lt;td&gt;2.8&lt;/td&gt;
&lt;td&gt;+1.9 km&lt;/td&gt;
&lt;td&gt;+10.3 min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3 — Rural&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;td&gt;+3.8 km&lt;/td&gt;
&lt;td&gt;+29.1 min&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Zone&lt;/th&gt;
&lt;th&gt;Cost per route&lt;/th&gt;
&lt;th&gt;Google fallback cost&lt;/th&gt;
&lt;th&gt;ROI&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1 — Dense urban&lt;/td&gt;
&lt;td&gt;€15.61&lt;/td&gt;
&lt;td&gt;€0.12&lt;/td&gt;
&lt;td&gt;126x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2 — Peri-urban&lt;/td&gt;
&lt;td&gt;€5.14&lt;/td&gt;
&lt;td&gt;€0.08&lt;/td&gt;
&lt;td&gt;65x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3 — Rural&lt;/td&gt;
&lt;td&gt;€7.94&lt;/td&gt;
&lt;td&gt;€0.06&lt;/td&gt;
&lt;td&gt;138x&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;Costs based on €17/h fully loaded driver cost (French CCN Transport 2025). Google fallback cost: €0.005/call applied to degraded stops only.&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;For every euro spent routing degraded addresses through a quality geocoder as fallback, between €65 and €138 in driver time is avoided.&lt;/strong&gt; The rural zone shows the highest ROI at 138x - a combination of high degradation rate (58% of stops) and the relative cost of re-routing in areas where roads are less redundant.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;A note on the dense urban zone.&lt;/strong&gt; The urban figures should be read as a combined effect of detours and likely failed deliveries - not detours alone. For the cost of those failures, see our &lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/"&gt;urban&lt;/a&gt; and &lt;a href="https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/"&gt;peri-urban&lt;/a&gt; models.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="the-variance-problem-and-why-it-matters"&gt;The variance problem — and why it matters&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Results vary significantly between routes in the same zone. A rural route with 7 risky stops generates +10.9 km of extra distance. Another with 0 risky stops generates nothing. This is not noise - it is the actual distribution.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The implication is that average-based cost estimates understate the tail risk. An operator running 100 routes per day will occasionally have routes that cost €20–25 in extra time due to coordinate errors alone.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Those routes are invisible in the planning system. They show up as driver delay, late deliveries, and overtime - attributed to traffic or difficulty, not to data quality.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id="projection-45000-deliveries-per-month"&gt;Projection — 45,000 deliveries per month&lt;/h3&gt;
&lt;p&gt;Assuming a typical French last-mile operator with a mix of urban (40%), peri-urban (30%), and rural (20%) deliveries:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Zone&lt;/th&gt;
&lt;th&gt;Deliveries/month&lt;/th&gt;
&lt;th&gt;Degraded stops&lt;/th&gt;
&lt;th&gt;Extra km&lt;/th&gt;
&lt;th&gt;Extra time&lt;/th&gt;
&lt;th&gt;Cost of degradation&lt;/th&gt;
&lt;th&gt;Fallback cost&lt;/th&gt;
&lt;th&gt;Net saving&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1 — Dense urban&lt;/td&gt;
&lt;td&gt;20,000&lt;/td&gt;
&lt;td&gt;19,680&lt;/td&gt;
&lt;td&gt;15,526 km&lt;/td&gt;
&lt;td&gt;44,064 min&lt;/td&gt;
&lt;td&gt;€12,485&lt;/td&gt;
&lt;td&gt;€98&lt;/td&gt;
&lt;td&gt;€12,386&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2 — Peri-urban&lt;/td&gt;
&lt;td&gt;15,000&lt;/td&gt;
&lt;td&gt;7,575&lt;/td&gt;
&lt;td&gt;2,669 km&lt;/td&gt;
&lt;td&gt;13,598 min&lt;/td&gt;
&lt;td&gt;€3,853&lt;/td&gt;
&lt;td&gt;€38&lt;/td&gt;
&lt;td&gt;€3,815&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3 — Rural&lt;/td&gt;
&lt;td&gt;10,000&lt;/td&gt;
&lt;td&gt;5,833&lt;/td&gt;
&lt;td&gt;2,013 km&lt;/td&gt;
&lt;td&gt;9,275 min&lt;/td&gt;
&lt;td&gt;€2,628&lt;/td&gt;
&lt;td&gt;€29&lt;/td&gt;
&lt;td&gt;€2,599&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;45,000&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;33,088&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;20,208 km&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;66,937 min&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€18,966&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€165&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€18,800&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;For routing detours alone (peri-urban + rural): €6,481/month against €67 in fallback costs - a 97:1 ratio.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The urban figure (€12,485) includes large geocoding errors that likely result in failed deliveries rather than recoverable detours - bringing the total to €18,966. For the cost of those failures, see our &lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/"&gt;urban&lt;/a&gt; and &lt;a href="https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/"&gt;peri-urban&lt;/a&gt; cost models.&lt;/p&gt;
&lt;p&gt;At scale, address quality is not a data engineering concern. It is a P&amp;amp;L line.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id="what-the-routing-engine-cannot-fix"&gt;What the routing engine cannot fix&lt;/h3&gt;
&lt;p&gt;A routing engine optimizes the problem it is given. If the input coordinates are degraded, the optimization is degraded - and the optimizer has no way to know.&lt;/p&gt;
&lt;p&gt;No amount of algorithmic sophistication changes this. A state-of-the-art solver running on wrong coordinates produces a worse result than a simple nearest-neighbor heuristic running on correct ones. The quality of the output is bounded by the quality of the input.&lt;/p&gt;
&lt;p&gt;In French last-mile logistics, degraded geocoding costs approximately &lt;strong&gt;€0.60 per degraded stop&lt;/strong&gt; in extra driver time, against a fallback cost of €0.005. The ratio holds across all three geographic contexts tested.&lt;/p&gt;
&lt;p&gt;The fix is not a better routing engine. It is better coordinates going in.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="limitations"&gt;Limitations&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;3-minute search penalty is a floor, not an average.&lt;/strong&gt; The 3-minute search penalty per risky stop is deliberately conservative - the actual cost is likely higher in areas where buildings are not clearly numbered or GPS signal is unreliable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Simulated routes, not observed ones.&lt;/strong&gt; Routes were generated by OR-Tools on real addresses, not drawn from actual carrier data. Real routes may have different stop density, time window constraints, and geographic clustering.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Deviations modeled in isolation.&lt;/strong&gt; In practice, a driver who arrives at the wrong location may also affect the next 2–3 stops through cascade delays - the same dynamic documented in our &lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/"&gt;failed delivery cost models&lt;/a&gt;. We modeled only the direct detour cost, not the downstream schedule disruption.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Google as the reference.&lt;/strong&gt; We use Google coordinates as the reference position for risky stops. Google can also be wrong - as documented in our benchmark, 0.76% of Google results were located outside France entirely. The model assumes Google is correct where BAN is degraded, which is an approximation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Deep rural zone excluded.&lt;/strong&gt; The deep rural zone showed insufficient risky stops per route to generate a reliable signal. The projection covers 45,000 of the assumed 50,000 monthly deliveries.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="want-to-fix-the-input-not-the-algorithm"&gt;Want to fix the input, not the algorithm?&lt;/h3&gt;
&lt;p&gt;If you're working on route optimization and want to understand where coordinate quality is limiting your results, we'd be happy to talk through your setup.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Coordable&lt;/strong&gt; builds multi-provider geocoding pipelines that automatically route degraded addresses through a quality fallback - so your routing engine gets the right coordinates from the start. &lt;a href="mailto:contact@coordable.co"&gt;Get in touch&lt;/a&gt; to run the numbers on your own operation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id="methodology"&gt;Methodology&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Dataset:&lt;/strong&gt; 10,000 French addresses from the ADEME DPE database (existing residential buildings, post-July 2021). Stratified sample across four INSEE density zones. Zones tested: Dept 92 (dense urban), Dept 60 (peri-urban), Dept 85 (rural).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Geographic constraint:&lt;/strong&gt; Each route drawn from addresses within a fixed radius of a randomly selected centroid - 8 km (urban), 15 km (peri-urban), 20 km (rural). Routes with geographic span exceeding 2× the radius were discarded.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Route simulation:&lt;/strong&gt; OR-Tools (Google) with PATH_CHEAPEST_ARC + GUIDED_LOCAL_SEARCH, 10-second time limit per route. Route planning distances from OpenRouteService Matrix API (driving-car profile). Depot set to centroid of each route's stops.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Degraded stops:&lt;/strong&gt; BAN confidence score &amp;lt; 0.7. Validated as predictive of significant coordinate divergence in benchmark analysis.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Risky stops:&lt;/strong&gt; Degraded stops where BAN↔Google Haversine distance ≥ 100m.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Deviation cost:&lt;/strong&gt; For each risky stop, extra distance = road_distance(BAN → Google) + road_distance(Google → next_BAN) − road_distance(BAN → next_BAN). Road distances from OpenRouteService Directions API. Fallback to Haversine × 1.3 when ORS unavailable. Time cost = extra travel time + 3 min on-site search per risky stop.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Driver cost:&lt;/strong&gt; €17/h fully loaded (French CCN Transport routier, 2025, including employer social charges at ~30%).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Google fallback cost:&lt;/strong&gt; €0.005/call (Google Geocoding API standard pricing), applied only to degraded stops.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Projection figures:&lt;/strong&gt; Based on medians. Extrapolated linearly from simulated routes.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="note-on-geocoding-cost-estimates"&gt;Note on geocoding cost estimates&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Geocoding pipeline cost&lt;/strong&gt; - Estimated using BAN (free, open source) as primary geocoder, with a premium provider (Google Geocoding API, ~€0.005/address) triggered only on addresses where BAN confidence score falls below 0.7 - roughly 15-20% of a typical French address file. This cascading approach is the architecture Coordable is built around: &lt;a href="https://coordable.co"&gt;coordable.co&lt;/a&gt;.&lt;/p&gt;</description><category>address quality</category><category>geocoding</category><category>last-mile</category><category>logistics costs</category><category>routing</category><guid>https://coordable.co/blog/geocoding-routing-impact-france-2026/</guid><pubDate>Tue, 14 Apr 2026 14:00:00 GMT</pubDate></item><item><title>Fuel is cheaper in the US, yet failed deliveries cost more</title><link>https://coordable.co/blog/cost-failed-delivery-eu-vs-us-2026/</link><dc:creator>Julien Crétin</dc:creator><description>&lt;p&gt;Over the past three posts, we built a bottom-up cost model for failed last-mile deliveries: &lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/"&gt;urban (€15.30)&lt;/a&gt;, &lt;a href="https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/"&gt;peri-urban (€22.26)&lt;/a&gt;, &lt;a href="https://coordable.co/blog/cost-failed-delivery-rural-europe-2026/"&gt;rural (€42.14)&lt;/a&gt;. All three used European benchmarks - specifically French labor costs and fuel prices.&lt;/p&gt;
&lt;p&gt;A natural question follows: how does this model hold up in the US?&lt;/p&gt;
&lt;p&gt;The answer is worse than expected. Despite cheaper diesel, US failed deliveries cost &lt;strong&gt;67–70% more&lt;/strong&gt; than their European equivalents across all three contexts. The reason is labor - and the gap is remarkably consistent.&lt;/p&gt;
&lt;p&gt;This post runs the same four-component model with US inputs, compares the results side by side, and explains what drives the gap.&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-eu-vs-us-2026/#why-us-costs-are-higher-despite-cheaper-fuel"&gt;Why US costs are higher despite cheaper fuel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-eu-vs-us-2026/#us-model-assumptions"&gt;US model assumptions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-eu-vs-us-2026/#urban-context"&gt;Urban context&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-eu-vs-us-2026/#peri-urban-context"&gt;Peri-urban context&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-eu-vs-us-2026/#rural-context"&gt;Rural context&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-eu-vs-us-2026/#the-full-comparison"&gt;The full comparison&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-eu-vs-us-2026/#what-this-means-for-geocoding-investment"&gt;What this means for geocoding investment&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-eu-vs-us-2026/#a-note-on-model-limitations-for-the-us"&gt;A note on model limitations for the US&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-eu-vs-us-2026/#want-to-run-the-numbers-on-your-operation"&gt;Want to run the numbers on your operation?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-eu-vs-us-2026/#sources-and-assumptions"&gt;Sources and assumptions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h3 id="why-us-costs-are-higher-despite-cheaper-fuel"&gt;Why US costs are higher despite cheaper fuel&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Labor is the driver.&lt;/strong&gt; The fully loaded cost of a US delivery driver is ~$30/h vs ~€17/h in France - a 76% gap that cascades through every time-based component of the model.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Diesel is significantly cheaper in the US - but not enough to offset labor.&lt;/strong&gt; The average US retail diesel price in 2025 was ~$3.68/gallon ($0.97/L), giving a fuel cost of approximately &lt;strong&gt;$0.11/km&lt;/strong&gt;. The French average was €1.62/L, giving &lt;strong&gt;€0.18/km&lt;/strong&gt;. The US fuel advantage (~39% cheaper per km) is real, but modest relative to the labor gap.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The reason for the price difference is structural: US federal and state fuel taxes represent ~15–20% of the pump price, vs ~60–65% in France (TICPE + TVA). Same crude oil, very different fiscal treatment.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;PUDO networks are structurally limited in the US.&lt;/strong&gt; Europe has over 500,000 out-of-home delivery points, with dense carrier-agnostic networks (Pickup, Mondial Relay, InPost, DHL Packstations). In the US, out-of-home options exist - Amazon Locker, UPS Access Point, FedEx OnSite - but they are carrier-specific, less dense, and not structured around a merchant commission model. For most US operators, redelivery remains the dominant failure resolution path.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;We include a PUDO column for the US model for completeness and comparability, but note that it applies only to operators with access to a compatible carrier locker network - which is far from universal.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="us-model-assumptions"&gt;US model assumptions&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;EU (France)&lt;/th&gt;
&lt;th&gt;US&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Driver hourly wage (fully loaded)&lt;/td&gt;
&lt;td&gt;€17/h&lt;/td&gt;
&lt;td&gt;$30/h&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fuel cost per km&lt;/td&gt;
&lt;td&gt;€0.18/km&lt;/td&gt;
&lt;td&gt;$0.11/km&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vehicle depreciation per km&lt;/td&gt;
&lt;td&gt;€0.12/km&lt;/td&gt;
&lt;td&gt;$0.14/km&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dispatch/support hourly wage&lt;/td&gt;
&lt;td&gt;€15/h&lt;/td&gt;
&lt;td&gt;$26/h&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;Vehicle depreciation for US: IRS standard mileage rate 2025, depreciation component for light commercial vehicles, ~$0.14/km. Dispatch/support: estimated at ~$24/h gross × 1.08 employer FICA ≈ $26/h.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="urban-context"&gt;Urban context&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;EU Redelivery&lt;/th&gt;
&lt;th&gt;US Redelivery&lt;/th&gt;
&lt;th&gt;EU PUDO&lt;/th&gt;
&lt;th&gt;US PUDO&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1. On-site failure&lt;/td&gt;
&lt;td&gt;€2.70&lt;/td&gt;
&lt;td&gt;$4.77&lt;/td&gt;
&lt;td&gt;€2.70&lt;/td&gt;
&lt;td&gt;$4.77&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2. Resolution path&lt;/td&gt;
&lt;td&gt;€4.30&lt;/td&gt;
&lt;td&gt;$6.26&lt;/td&gt;
&lt;td&gt;€2.83&lt;/td&gt;
&lt;td&gt;$4.07&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3. Route disruption&lt;/td&gt;
&lt;td&gt;€5.90&lt;/td&gt;
&lt;td&gt;$10.43&lt;/td&gt;
&lt;td&gt;€2.95&lt;/td&gt;
&lt;td&gt;$5.22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4. Customer support&lt;/td&gt;
&lt;td&gt;€2.40&lt;/td&gt;
&lt;td&gt;$4.16&lt;/td&gt;
&lt;td&gt;€0.80&lt;/td&gt;
&lt;td&gt;$1.39&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€15.30&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$25.62&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€9.28&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$15.45&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The US urban redelivery cost at $25.62 is 67% higher than the EU equivalent (€15.30).&lt;/strong&gt; The gap is almost entirely driven by the labor differential - the fuel saving over a 3 km urban detour amounts to only $0.21 per failed delivery, which barely registers.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id="peri-urban-context"&gt;Peri-urban context&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;EU Redelivery&lt;/th&gt;
&lt;th&gt;US Redelivery&lt;/th&gt;
&lt;th&gt;EU PUDO&lt;/th&gt;
&lt;th&gt;US PUDO&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1. On-site failure&lt;/td&gt;
&lt;td&gt;€2.70&lt;/td&gt;
&lt;td&gt;$4.77&lt;/td&gt;
&lt;td&gt;€2.70&lt;/td&gt;
&lt;td&gt;$4.77&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2. Resolution path&lt;/td&gt;
&lt;td&gt;€9.23&lt;/td&gt;
&lt;td&gt;$14.37&lt;/td&gt;
&lt;td&gt;€6.45&lt;/td&gt;
&lt;td&gt;$9.97&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3. Route disruption&lt;/td&gt;
&lt;td&gt;€7.53&lt;/td&gt;
&lt;td&gt;$13.33&lt;/td&gt;
&lt;td&gt;€3.77&lt;/td&gt;
&lt;td&gt;$6.67&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4. Customer support&lt;/td&gt;
&lt;td&gt;€2.80&lt;/td&gt;
&lt;td&gt;$4.85&lt;/td&gt;
&lt;td&gt;€0.96&lt;/td&gt;
&lt;td&gt;$1.66&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€22.26&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$37.32&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€13.88&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$23.07&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The peri-urban gap widens further: &lt;strong&gt;$37.32 vs €22.26, a 68% premium for US operators.&lt;/strong&gt; Longer detours amplify the labor cost gap - more minutes of driving at $30/h rather than €17/h.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="rural-context"&gt;Rural context&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;EU Redelivery&lt;/th&gt;
&lt;th&gt;US Redelivery&lt;/th&gt;
&lt;th&gt;EU PUDO*&lt;/th&gt;
&lt;th&gt;US PUDO*&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1. On-site failure&lt;/td&gt;
&lt;td&gt;€4.04&lt;/td&gt;
&lt;td&gt;$7.14&lt;/td&gt;
&lt;td&gt;€4.04&lt;/td&gt;
&lt;td&gt;$7.14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2. Resolution path&lt;/td&gt;
&lt;td&gt;€24.37&lt;/td&gt;
&lt;td&gt;$40.26&lt;/td&gt;
&lt;td&gt;€14.90&lt;/td&gt;
&lt;td&gt;$24.55&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3. Route disruption&lt;/td&gt;
&lt;td&gt;€10.13&lt;/td&gt;
&lt;td&gt;$17.92&lt;/td&gt;
&lt;td&gt;€5.07&lt;/td&gt;
&lt;td&gt;$8.96&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4. Customer support&lt;/td&gt;
&lt;td&gt;€3.60&lt;/td&gt;
&lt;td&gt;$6.24&lt;/td&gt;
&lt;td&gt;€1.20&lt;/td&gt;
&lt;td&gt;$2.08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€42.14&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$71.56&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€25.21&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$42.73&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;*PUDO path in rural US is even more constrained than in rural EU. Apply with significant caution.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Rural is the starkest divergence: &lt;strong&gt;$71.56 vs €42.14, a 70% premium.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="the-full-comparison"&gt;The full comparison&lt;/h3&gt;
&lt;figure style="text-align:center;margin:2em 0;"&gt;
&lt;svg width="580" viewbox="0 0 580 330" role="img" xmlns="http://www.w3.org/2000/svg"&gt;
  &lt;title&gt;Failed delivery redelivery cost — EU vs US by context (€/$)&lt;/title&gt;
  &lt;desc&gt;Grouped bar chart comparing EU and US redelivery costs across urban, peri-urban and rural contexts. US costs are 67-70% higher in all contexts.&lt;/desc&gt;

  &lt;text x="290" y="16" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="12" font-weight="600" fill="#2C2C2A"&gt;Redelivery cost per failed delivery — EU vs US (€/$)&lt;/text&gt;

  &lt;!-- Legend --&gt;
  &lt;rect x="140" y="30" width="10" height="10" rx="2" fill="#378ADD"&gt;&lt;/rect&gt;
  &lt;text x="155" y="39" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#5F5E5A"&gt;EU&lt;/text&gt;
  &lt;rect x="200" y="30" width="10" height="10" rx="2" fill="#D85A30"&gt;&lt;/rect&gt;
  &lt;text x="215" y="39" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#5F5E5A"&gt;US&lt;/text&gt;
  &lt;rect x="260" y="30" width="28" height="10" rx="2" fill="#378ADD" opacity="0.25"&gt;&lt;/rect&gt;
  &lt;text x="294" y="39" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#5F5E5A"&gt;+67-70%&lt;/text&gt;

  &lt;!-- Grid lines --&gt;
  &lt;line x1="60" y1="282" x2="540" y2="282" stroke="#B4B2A9" stroke-width="0.5"&gt;&lt;/line&gt;
  &lt;line x1="60" y1="237" x2="540" y2="237" stroke="#D3D1C7" stroke-width="0.5" stroke-dasharray="3 3"&gt;&lt;/line&gt;
  &lt;line x1="60" y1="192" x2="540" y2="192" stroke="#D3D1C7" stroke-width="0.5" stroke-dasharray="3 3"&gt;&lt;/line&gt;
  &lt;line x1="60" y1="147" x2="540" y2="147" stroke="#D3D1C7" stroke-width="0.5" stroke-dasharray="3 3"&gt;&lt;/line&gt;
  &lt;line x1="60" y1="102" x2="540" y2="102" stroke="#D3D1C7" stroke-width="0.5" stroke-dasharray="3 3"&gt;&lt;/line&gt;

  &lt;text x="54" y="286" text-anchor="end" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#888780"&gt;€0&lt;/text&gt;
  &lt;text x="54" y="241" text-anchor="end" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#888780"&gt;€20&lt;/text&gt;
  &lt;text x="54" y="196" text-anchor="end" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#888780"&gt;€40&lt;/text&gt;
  &lt;text x="54" y="151" text-anchor="end" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#888780"&gt;€60&lt;/text&gt;
  &lt;text x="54" y="106" text-anchor="end" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#888780"&gt;€80&lt;/text&gt;

  &lt;!-- Urban EU --&gt;
  &lt;rect x="88" y="243.5" width="44" height="38.5" fill="#378ADD"&gt;&lt;/rect&gt;
  &lt;text x="110" y="239" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#378ADD"&gt;€15.30&lt;/text&gt;
  &lt;!-- Urban US --&gt;
  &lt;rect x="138" y="217.6" width="44" height="64.4" fill="#D85A30"&gt;&lt;/rect&gt;
  &lt;text x="160" y="213" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#D85A30"&gt;$25.62&lt;/text&gt;
  &lt;!-- +67% --&gt;
  &lt;text x="160" y="300" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="10" font-weight="600" fill="#888780"&gt;+67%&lt;/text&gt;
  &lt;text x="135" y="310" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#5F5E5A"&gt;Urban&lt;/text&gt;

  &lt;!-- Peri-urban EU --&gt;
  &lt;rect x="228" y="226.0" width="44" height="56.0" fill="#378ADD"&gt;&lt;/rect&gt;
  &lt;text x="250" y="221" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#378ADD"&gt;€22.26&lt;/text&gt;
  &lt;!-- Peri-urban US --&gt;
  &lt;rect x="278" y="188.1" width="44" height="93.9" fill="#D85A30"&gt;&lt;/rect&gt;
  &lt;text x="300" y="183" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#D85A30"&gt;$37.32&lt;/text&gt;
  &lt;!-- +68% --&gt;
  &lt;text x="300" y="300" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="10" font-weight="600" fill="#888780"&gt;+68%&lt;/text&gt;
  &lt;text x="275" y="310" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#5F5E5A"&gt;Peri-urban&lt;/text&gt;

  &lt;!-- Rural EU --&gt;
  &lt;rect x="368" y="176.0" width="44" height="106.0" fill="#378ADD"&gt;&lt;/rect&gt;
  &lt;text x="390" y="171" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#378ADD"&gt;€42.14&lt;/text&gt;
  &lt;!-- Rural US --&gt;
  &lt;rect x="418" y="102.0" width="44" height="180.0" fill="#D85A30"&gt;&lt;/rect&gt;
  &lt;text x="440" y="97" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#D85A30"&gt;$71.56&lt;/text&gt;
  &lt;!-- +70% --&gt;
  &lt;text x="440" y="300" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="10" font-weight="600" fill="#888780"&gt;+70%&lt;/text&gt;
  &lt;text x="415" y="310" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#5F5E5A"&gt;Rural&lt;/text&gt;
&lt;/svg&gt;
&lt;/figure&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Context&lt;/th&gt;
&lt;th&gt;EU Redelivery&lt;/th&gt;
&lt;th&gt;US Redelivery&lt;/th&gt;
&lt;th&gt;Delta&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Urban&lt;/td&gt;
&lt;td&gt;€15.30&lt;/td&gt;
&lt;td&gt;$25.62&lt;/td&gt;
&lt;td&gt;+67%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Peri-urban&lt;/td&gt;
&lt;td&gt;€22.26&lt;/td&gt;
&lt;td&gt;$37.32&lt;/td&gt;
&lt;td&gt;+68%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rural&lt;/td&gt;
&lt;td&gt;€42.14&lt;/td&gt;
&lt;td&gt;$71.56&lt;/td&gt;
&lt;td&gt;+70%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Context&lt;/th&gt;
&lt;th&gt;EU PUDO&lt;/th&gt;
&lt;th&gt;US PUDO&lt;/th&gt;
&lt;th&gt;Delta&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Urban&lt;/td&gt;
&lt;td&gt;€9.28&lt;/td&gt;
&lt;td&gt;$15.45&lt;/td&gt;
&lt;td&gt;+66%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Peri-urban&lt;/td&gt;
&lt;td&gt;€13.88&lt;/td&gt;
&lt;td&gt;$23.07&lt;/td&gt;
&lt;td&gt;+66%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rural&lt;/td&gt;
&lt;td&gt;€25.21&lt;/td&gt;
&lt;td&gt;$42.73&lt;/td&gt;
&lt;td&gt;+70%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The delta is remarkably consistent across all contexts and scenarios: US failed deliveries cost roughly 67–70% more than their European equivalents.&lt;/strong&gt; The consistency of this gap confirms that the cause is structural - labor cost differential - rather than context-specific.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id="what-this-means-for-geocoding-investment"&gt;What this means for geocoding investment&lt;/h3&gt;
&lt;p&gt;The geocoding ROI argument is stronger in the US than in Europe - not because the underlying failure rate differs, but because the cost of each failure is higher. The same logic applies to routing: degraded coordinates add driver time on every route, not just on failed deliveries. We quantified this in a &lt;a href="https://coordable.co/blog/geocoding-routing-impact-france-2026/"&gt;separate routing simulation on 10,000 French addresses&lt;/a&gt; - the mechanism and ROI structure translate directly to US operations, with labor costs amplifying the impact further.&lt;/p&gt;
&lt;p&gt;Applying the same 20–25% address-related failure rate assumption:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;US operator running 50,000 deliveries/month at 8% failure rate:&lt;/strong&gt;
- ~4,000 failed deliveries/month
- ~900 attributable to address/geocoding issues
- At $25.62 per urban failure: &lt;strong&gt;~$23,000/month in avoidable cost&lt;/strong&gt;
- Cost of geocoding pipeline: typically &lt;strong&gt;$20–$200&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The return is not structurally different from the European model - but the absolute dollar amounts are larger, and the business case lands harder in a market where labor costs are a daily operational pressure.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="a-note-on-model-limitations-for-the-us"&gt;A note on model limitations for the US&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Labor cost variance is higher.&lt;/strong&gt; The $30/h fully loaded figure is a national average. In California, New York, or Washington state, driver costs can reach $35–$40/h. In rural Midwest or Southeast markets, they can be closer to $22–$25/h.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The subcontractor structure differs.&lt;/strong&gt; In the EU, we documented the salaried vs DSP subcontractor distinction explicitly (CCN overtime thresholds, flat-fee margin loss). In the US, the DSP model dominates Amazon's network, while FedEx Ground relies heavily on independent service providers and UPS uses a mix of Teamsters-represented drivers and contractors. The cost absorption mechanisms differ but the underlying economic logic holds regardless of employment structure.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;This post completes the four-part series on failed delivery costs. For the full picture: &lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/"&gt;urban EU&lt;/a&gt;, &lt;a href="https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/"&gt;peri-urban EU&lt;/a&gt;, &lt;a href="https://coordable.co/blog/cost-failed-delivery-rural-europe-2026/"&gt;rural EU&lt;/a&gt;, and this EU vs US comparison.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="want-to-run-the-numbers-on-your-operation"&gt;Want to run the numbers on your operation?&lt;/h3&gt;
&lt;p&gt;Whether you're operating in Europe or the US, the ROI on address quality is substantial. We'd be happy to talk through how geocoding quality affects your specific setup.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Coordable&lt;/strong&gt; builds multi-provider geocoding pipelines that surface address issues before dispatch, not after. &lt;a href="mailto:contact@coordable.co"&gt;Get in touch&lt;/a&gt; if you want to see what this looks like with your own labor costs and route structure.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id="sources-and-assumptions"&gt;Sources and assumptions&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;US driver hourly wage ($30/h fully loaded)&lt;/strong&gt; - BLS, &lt;em&gt;Occupational Employment and Wage Statistics: Light Truck Drivers&lt;/em&gt;, May 2024: median $44,140/year (~$21/h gross). BLS, &lt;em&gt;Employer Costs for Employee Compensation&lt;/em&gt;, December 2025: benefits average 29.9% of total compensation for private sector workers. $21/h × 1.43 ≈ $30/h.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;EU driver hourly wage (€17/h fully loaded)&lt;/strong&gt; - CCN Transport routier logistique, May 2025: €11.91–€19.27/h gross. Employer contributions ~30% (Urssaf, 2025). €12.50 × 1.30 ≈ €17/h.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;US fuel cost ($0.11/km)&lt;/strong&gt; - Average US retail diesel 2025: ~$3.68/gallon ($0.97/L). LCV consumption: 11L/100km. $0.97 × 0.11 = $0.11/km.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;EU fuel cost (€0.18/km)&lt;/strong&gt; - Average diesel price France 2025: €1.6186/L (prixdubaril.com / Ministry of Ecological Transition, January 2026). €1.62 × 0.11 = €0.18/km.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;US vehicle depreciation ($0.14/km)&lt;/strong&gt; - IRS standard mileage rate 2025, depreciation/maintenance component for light vehicles, converted from per-mile to per-km.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;EU vehicle depreciation (€0.12/km)&lt;/strong&gt; - French fiscal mileage allowance 2024–2025 (BOFiP, BOI-BAREME-000003).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;US dispatch/support wage ($26/h)&lt;/strong&gt; - Estimated at ~$24/h gross (BLS Office and Administrative Support, 2024) × 1.08 employer FICA ≈ $26/h.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;US fuel tax differential&lt;/strong&gt; - US federal + state diesel taxes: ~15–20% of pump price (EIA / Tax Foundation). French TICPE + TVA: ~60–65% (Ministry of Ecological Transition).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;PUDO network comparison&lt;/strong&gt; - &lt;a href="https://nshift.com/blog/eu-parcel-locker-growth-in-2025-what-it-means-for-retailers"&gt;nShift, &lt;em&gt;EU Parcel Locker Growth in 2025&lt;/em&gt;&lt;/a&gt;, 2025 (500,000+ EU OOH points). US carrier-specific networks: Amazon Locker, UPS Access Point, FedEx OnSite - fragmented, carrier-specific.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;First-attempt failure rate (8%)&lt;/strong&gt; - Composite estimate, last-mile industry reports 2021–2025.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Address-related failure rate (20–25%)&lt;/strong&gt; - Composite estimate, industry studies 2021–2024.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Geocoding pipeline cost&lt;/strong&gt; - Estimated using an open-source geocoder (BAN in France, equivalent national APIs elsewhere) as primary, with a premium provider (Google Geocoding API, ~$0.005/address) triggered only on addresses where the primary confidence score falls below threshold - roughly 15-20% of a typical address file. This cascading approach is the architecture Coordable is built around: &lt;a href="https://coordable.co"&gt;coordable.co&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description><category>EU vs US</category><category>failed delivery</category><category>last-mile</category><category>logistics costs</category><category>US logistics</category><guid>https://coordable.co/blog/cost-failed-delivery-eu-vs-us-2026/</guid><pubDate>Tue, 14 Apr 2026 13:00:00 GMT</pubDate></item><item><title>The €17 failed delivery in rural operations: the number no longer holds</title><link>https://coordable.co/blog/cost-failed-delivery-rural-europe-2026/</link><dc:creator>Julien Crétin</dc:creator><description>&lt;p&gt;We have now modeled failed delivery costs for &lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/"&gt;urban (€15.30)&lt;/a&gt; and &lt;a href="https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/"&gt;peri-urban (€22.26)&lt;/a&gt;. Rural is a different category entirely.&lt;/p&gt;
&lt;p&gt;The structural constraints are more severe, the mitigation options largely absent, and the cost profile reflects it: &lt;strong&gt;€42.14 per failed redelivery&lt;/strong&gt; - 175% higher than urban, 89% higher than peri-urban.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This model covers rural B2C operations - low-density zones, typically &amp;gt;60 km from a major urban center, with dispersed housing, limited road infrastructure in some areas, and thin or absent out-of-home delivery networks.&lt;/em&gt;&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-rural-europe-2026/#what-makes-rural-structurally-different"&gt;What makes rural structurally different&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-rural-europe-2026/#the-model"&gt;The model&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-rural-europe-2026/#component-1-on-site-failure-cost-both-scenarios"&gt;Component 1 — On-site failure cost (both scenarios)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-rural-europe-2026/#component-2a-redelivery-to-home-address"&gt;Component 2A — Redelivery to home address&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-rural-europe-2026/#component-2b-redirect-to-pickup-point-pudolocker"&gt;Component 2B — Redirect to pickup point (PUDO/locker)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-rural-europe-2026/#component-3-route-disruption"&gt;Component 3 — Route disruption&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-rural-europe-2026/#component-4-customer-support-contact"&gt;Component 4 — Customer support contact&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-rural-europe-2026/#the-full-picture"&gt;The full picture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-rural-europe-2026/#the-three-context-summary"&gt;The three-context summary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-rural-europe-2026/#what-this-means-for-geocoding-quality"&gt;What this means for geocoding quality&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-rural-europe-2026/#a-note-on-what-this-model-does-not-include"&gt;A note on what this model does not include&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-rural-europe-2026/#want-to-run-the-numbers-on-your-operation"&gt;Want to run the numbers on your operation?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-rural-europe-2026/#sources-and-assumptions"&gt;Sources and assumptions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h3 id="what-makes-rural-structurally-different"&gt;What makes rural structurally different&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Stop density collapses.&lt;/strong&gt; Rural routes average 8–15 stops per day vs 25–40 in urban. Each stop - including each failed stop - carries a much higher share of the day's fixed driver cost.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Inter-stop distances are large.&lt;/strong&gt; Where an urban detour is 3 km and a peri-urban detour is 10 km, a rural detour to reinsert a failed stop can easily be 20–35 km. There is no shortcut.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PUDO networks are effectively absent.&lt;/strong&gt; The European OOH delivery infrastructure is urban-centric. In many rural zones, the nearest PUDO point is further away than the original delivery address - making redirection economically irrational or simply impossible.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Address data quality is lowest here.&lt;/strong&gt; Rural addressing systems are inconsistent across countries. Hamlets, isolated farms, lieu-dits, and rural routes with non-standard numbering are systematic sources of geocoding failure. New builds in rural areas can take months to appear in any geocoding database. GPS coordinates for rural addresses frequently resolve to road junctions rather than actual building locations.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dedicated redelivery trips are more likely.&lt;/strong&gt; In rural operations with 8–15 stops per route and large distances between them, reinsertion is often not viable - the failed stop is too far from any other scheduled stop to be absorbed without a near-dedicated trip. This is what makes Component 2 so different in rural operations.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="the-model"&gt;The model&lt;/h3&gt;
&lt;h4 id="component-1-on-site-failure-cost-both-scenarios"&gt;Component 1 — On-site failure cost (both scenarios)&lt;/h4&gt;
&lt;p&gt;On-site time is higher in rural than in urban or peri-urban. When a geocode resolves to a road junction or an approximate location, drivers spend additional time locating the actual building - calling the recipient, consulting maps, asking neighbors.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Assumption&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;On-site time (approach + attempt + departure)&lt;/td&gt;
&lt;td&gt;12 min @ €17/h&lt;/td&gt;
&lt;td&gt;€3.40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Recipient call attempt (~75% of failures)&lt;/td&gt;
&lt;td&gt;3 min @ €17/h&lt;/td&gt;
&lt;td&gt;€0.64&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Subtotal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€4.04&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;On-site time is higher than urban and peri-urban (8 min) to reflect address-location difficulty in rural zones. The call rate is higher (75% vs 60%) for the same reason.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="component-2a-redelivery-to-home-address"&gt;Component 2A — Redelivery to home address&lt;/h4&gt;
&lt;p&gt;This is where the rural model diverges most sharply from the previous two.&lt;/p&gt;
&lt;p&gt;In a significant share of rural failures, the redelivery cannot be absorbed into an existing route without a near-dedicated trip. We model two sub-scenarios and weight them:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Scenario 2A-i (40% of cases):&lt;/strong&gt; Failed stop is reinserted into a nearby future route with a meaningful but manageable detour (25 km round trip).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scenario 2A-ii (60% of cases):&lt;/strong&gt; No nearby route exists within a reasonable timeframe. A quasi-dedicated trip is required.&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Assumption&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;2A-i: Reinserted into existing route (40%)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Driver time&lt;/td&gt;
&lt;td&gt;35 min @ €17/h&lt;/td&gt;
&lt;td&gt;€9.92&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fuel&lt;/td&gt;
&lt;td&gt;25 km @ €0.18/km&lt;/td&gt;
&lt;td&gt;€4.50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vehicle depreciation&lt;/td&gt;
&lt;td&gt;25 km @ €0.12/km&lt;/td&gt;
&lt;td&gt;€3.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Weighted subtotal (× 40%)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€6.97&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;2A-ii: Near-dedicated redelivery trip (60%)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Driver time&lt;/td&gt;
&lt;td&gt;60 min @ €17/h&lt;/td&gt;
&lt;td&gt;€17.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fuel&lt;/td&gt;
&lt;td&gt;40 km @ €0.18/km&lt;/td&gt;
&lt;td&gt;€7.20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vehicle depreciation&lt;/td&gt;
&lt;td&gt;40 km @ €0.12/km&lt;/td&gt;
&lt;td&gt;€4.80&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Weighted subtotal (× 60%)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€17.40&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Combined subtotal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€24.37&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;The 60/40 split between near-dedicated and reinserted redeliveries is a conservative estimate for genuinely rural operations. This is the assumption we flag most clearly for operators to calibrate against their own data.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="component-2b-redirect-to-pickup-point-pudolocker"&gt;Component 2B — Redirect to pickup point (PUDO/locker)&lt;/h4&gt;
&lt;p&gt;In many rural zones, this path is not viable. Where it is available, the economics are poor: the nearest relay point may be 15–25 km away, which partially or fully offsets the consolidation benefit.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Assumption&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Driver time (detour + PUDO drop)&lt;/td&gt;
&lt;td&gt;30 min @ €17/h&lt;/td&gt;
&lt;td&gt;€8.50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fuel&lt;/td&gt;
&lt;td&gt;20 km @ €0.18/km&lt;/td&gt;
&lt;td&gt;€3.60&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vehicle depreciation&lt;/td&gt;
&lt;td&gt;20 km @ €0.12/km&lt;/td&gt;
&lt;td&gt;€2.40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Merchant commission&lt;/td&gt;
&lt;td&gt;€0.40&lt;/td&gt;
&lt;td&gt;€0.40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Subtotal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€14.90&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;Where no PUDO exists within 20 km, the PUDO path is not a realistic option. For many rural operators, redelivery is the only available resolution.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="component-3-route-disruption"&gt;Component 3 — Route disruption&lt;/h4&gt;
&lt;p&gt;In urban and peri-urban operations, a failed stop cascades into the next few stops. In rural, the risk is different: running out of shift time before the route is complete.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For salaried drivers&lt;/strong&gt;, unplanned time on a failed stop can push the shift past standard hours, triggering overtime costs under the CCN Transport routier (25% premium beyond 39h/week).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For subcontracted drivers on a flat daily fee&lt;/strong&gt;, the disruption translates into fewer stops completed for the same fee - a margin loss absorbed by the subcontractor.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For operators on slot-based markets&lt;/strong&gt;, rural areas with precise delivery commitments face the same SLA penalty risk described in our previous posts - amplified here by the near-impossibility of same-day recovery.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Assumption&lt;/th&gt;
&lt;th&gt;Redelivery&lt;/th&gt;
&lt;th&gt;PUDO redirect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;End-of-day stops missed (25% probability × 1.5 stops × €17/stop avg)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;€6.38&lt;/td&gt;
&lt;td&gt;€3.19&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dispatch rescheduling&lt;/td&gt;
&lt;td&gt;15 min @ €15/h&lt;/td&gt;
&lt;td&gt;€3.75&lt;/td&gt;
&lt;td&gt;€1.88&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Subtotal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€10.13&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€5.07&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Route disruption in the rural model represents a different failure mode&lt;/strong&gt; - not a cascade on adjacent stops, but a probability of end-of-day route incompletion. In low-density routes with hard shift-end constraints, this is the more realistic cost driver.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h4 id="component-4-customer-support-contact"&gt;Component 4 — Customer support contact&lt;/h4&gt;
&lt;p&gt;Rural customers tend to have fewer delivery options and less familiarity with automated rescheduling flows. Combined with the higher incidence of address-related failures, we model a higher human contact rate.&lt;/p&gt;
&lt;p&gt;At 45%, the rural contact rate is 50% higher than urban - reflecting both lower automation adoption and a higher baseline of address-related failures that automated flows cannot resolve.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;th&gt;Contact rate&lt;/th&gt;
&lt;th&gt;Cost per contact&lt;/th&gt;
&lt;th&gt;Subtotal&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Redelivery&lt;/td&gt;
&lt;td&gt;45%&lt;/td&gt;
&lt;td&gt;€8&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€3.60&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PUDO redirect&lt;/td&gt;
&lt;td&gt;15%&lt;/td&gt;
&lt;td&gt;€8&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€1.20&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h3 id="the-full-picture"&gt;The full picture&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Redelivery&lt;/th&gt;
&lt;th&gt;PUDO redirect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1. On-site failure&lt;/td&gt;
&lt;td&gt;€4.04&lt;/td&gt;
&lt;td&gt;€4.04&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2. Resolution path&lt;/td&gt;
&lt;td&gt;€24.37&lt;/td&gt;
&lt;td&gt;€14.90&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3. Route disruption&lt;/td&gt;
&lt;td&gt;€10.13&lt;/td&gt;
&lt;td&gt;€5.07&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4. Customer support&lt;/td&gt;
&lt;td&gt;€3.60&lt;/td&gt;
&lt;td&gt;€1.20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€42.14&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€25.21&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figure style="text-align:center;margin:2em 0;"&gt;
&lt;svg width="600" viewbox="0 0 600 330" role="img" xmlns="http://www.w3.org/2000/svg"&gt;
  &lt;title&gt;Cost per failed delivery across three contexts: urban, peri-urban, rural&lt;/title&gt;
  &lt;desc&gt;Stacked bar chart comparing redelivery costs across urban (€15.30), peri-urban (€22.26) and rural (€42.14) scenarios.&lt;/desc&gt;

  &lt;text x="300" y="16" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="12" font-weight="600" fill="#2C2C2A"&gt;Redelivery cost per failed delivery — by context (€)&lt;/text&gt;

  &lt;rect x="44" y="32" width="10" height="10" rx="2" fill="#5DCAA5"&gt;&lt;/rect&gt;
  &lt;text x="59" y="41" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#5F5E5A"&gt;On-site failure&lt;/text&gt;
  &lt;rect x="165" y="32" width="10" height="10" rx="2" fill="#378ADD"&gt;&lt;/rect&gt;
  &lt;text x="180" y="41" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#5F5E5A"&gt;Resolution path&lt;/text&gt;
  &lt;rect x="296" y="32" width="10" height="10" rx="2" fill="#D85A30"&gt;&lt;/rect&gt;
  &lt;text x="311" y="41" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#5F5E5A"&gt;Route disruption&lt;/text&gt;
  &lt;rect x="432" y="32" width="10" height="10" rx="2" fill="#888780"&gt;&lt;/rect&gt;
  &lt;text x="447" y="41" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#5F5E5A"&gt;Support&lt;/text&gt;

  &lt;line x1="60" y1="282" x2="560" y2="282" stroke="#B4B2A9" stroke-width="0.5"&gt;&lt;/line&gt;
  &lt;line x1="60" y1="239" x2="560" y2="239" stroke="#D3D1C7" stroke-width="0.5" stroke-dasharray="3 3"&gt;&lt;/line&gt;
  &lt;line x1="60" y1="196" x2="560" y2="196" stroke="#D3D1C7" stroke-width="0.5" stroke-dasharray="3 3"&gt;&lt;/line&gt;
  &lt;line x1="60" y1="153" x2="560" y2="153" stroke="#D3D1C7" stroke-width="0.5" stroke-dasharray="3 3"&gt;&lt;/line&gt;
  &lt;line x1="60" y1="102" x2="560" y2="102" stroke="#D3D1C7" stroke-width="0.5" stroke-dasharray="3 3"&gt;&lt;/line&gt;

  &lt;text x="54" y="286" text-anchor="end" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#888780"&gt;€0&lt;/text&gt;
  &lt;text x="54" y="243" text-anchor="end" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#888780"&gt;€10&lt;/text&gt;
  &lt;text x="54" y="200" text-anchor="end" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#888780"&gt;€20&lt;/text&gt;
  &lt;text x="54" y="157" text-anchor="end" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#888780"&gt;€30&lt;/text&gt;
  &lt;text x="54" y="106" text-anchor="end" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#888780"&gt;€42&lt;/text&gt;

  &lt;!-- Urban: total 65.4px, baseline 282 --&gt;
  &lt;rect x="90" y="271.7" width="90" height="10.3" fill="#888780"&gt;&lt;/rect&gt;
  &lt;rect x="90" y="246.5" width="90" height="25.2" fill="#D85A30"&gt;&lt;/rect&gt;
  &lt;rect x="90" y="228.1" width="90" height="18.4" fill="#378ADD"&gt;&lt;/rect&gt;
  &lt;rect x="90" y="216.6" width="90" height="11.5" fill="#5DCAA5"&gt;&lt;/rect&gt;
  &lt;rect x="90" y="212.6" width="90" height="7" rx="3" fill="#5DCAA5"&gt;&lt;/rect&gt;
  &lt;text x="135" y="204" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="13" font-weight="600" fill="#2C2C2A"&gt;€15.30&lt;/text&gt;
  &lt;text x="135" y="300" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="12" fill="#5F5E5A"&gt;Urban&lt;/text&gt;

  &lt;!-- Peri-urban: total 95.1px --&gt;
  &lt;rect x="255" y="269.9" width="90" height="12.1" fill="#888780"&gt;&lt;/rect&gt;
  &lt;rect x="255" y="237.7" width="90" height="32.2" fill="#D85A30"&gt;&lt;/rect&gt;
  &lt;rect x="255" y="198.3" width="90" height="39.4" fill="#378ADD"&gt;&lt;/rect&gt;
  &lt;rect x="255" y="186.8" width="90" height="11.5" fill="#5DCAA5"&gt;&lt;/rect&gt;
  &lt;rect x="255" y="182.8" width="90" height="7" rx="3" fill="#5DCAA5"&gt;&lt;/rect&gt;
  &lt;text x="300" y="174" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="13" font-weight="600" fill="#2C2C2A"&gt;€22.26&lt;/text&gt;
  &lt;text x="300" y="300" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="12" fill="#5F5E5A"&gt;Peri-urban&lt;/text&gt;

  &lt;!-- Rural: total 180px --&gt;
  &lt;rect x="420" y="266.6" width="90" height="15.4" fill="#888780"&gt;&lt;/rect&gt;
  &lt;rect x="420" y="223.3" width="90" height="43.3" fill="#D85A30"&gt;&lt;/rect&gt;
  &lt;rect x="420" y="119.2" width="90" height="104.1" fill="#378ADD"&gt;&lt;/rect&gt;
  &lt;rect x="420" y="101.9" width="90" height="17.3" fill="#5DCAA5"&gt;&lt;/rect&gt;
  &lt;rect x="420" y="97.9" width="90" height="7" rx="3" fill="#5DCAA5"&gt;&lt;/rect&gt;
  &lt;text x="465" y="89" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="13" font-weight="600" fill="#2C2C2A"&gt;€42.14&lt;/text&gt;
  &lt;text x="465" y="300" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="12" fill="#5F5E5A"&gt;Rural&lt;/text&gt;
&lt;/svg&gt;
&lt;/figure&gt;

&lt;p&gt;With a low–high range across assumptions:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;th&gt;Low&lt;/th&gt;
&lt;th&gt;Central&lt;/th&gt;
&lt;th&gt;High&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Redelivery&lt;/td&gt;
&lt;td&gt;€27.00&lt;/td&gt;
&lt;td&gt;€42.14&lt;/td&gt;
&lt;td&gt;€57.30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PUDO redirect (where available)&lt;/td&gt;
&lt;td&gt;€17.00&lt;/td&gt;
&lt;td&gt;€25.21&lt;/td&gt;
&lt;td&gt;€33.40&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The rural redelivery cost at €42.14 is 175% higher than urban (€15.30) and 89% higher than peri-urban (€22.26).&lt;/strong&gt; The range is also wider - rural operations are more heterogeneous, and the assumptions around dedicated vs reinserted redeliveries drive significant variance.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id="the-three-context-summary"&gt;The three-context summary&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Context&lt;/th&gt;
&lt;th&gt;Redelivery&lt;/th&gt;
&lt;th&gt;PUDO redirect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/"&gt;Urban&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;€15.30&lt;/td&gt;
&lt;td&gt;€9.28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/"&gt;Peri-urban&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;€22.26&lt;/td&gt;
&lt;td&gt;€13.88&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rural&lt;/td&gt;
&lt;td&gt;€42.14&lt;/td&gt;
&lt;td&gt;€25.21*&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;*Where a PUDO point exists within reasonable distance.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The €15–€20 figure commonly cited in industry reports is at best an urban average. Applied to peri-urban or rural operations, it understates the true cost by a factor of 1.5× to 2.8×.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="what-this-means-for-geocoding-quality"&gt;What this means for geocoding quality&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Rural is where geocoding quality has the highest leverage - and the most room for improvement.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Address data quality in rural zones is systematically worse than urban. New builds lag. Non-standard addressing is common. Precision degrades. And the cost of a geocoding-related failure is at its highest. Beyond failed deliveries, poor coordinates affect every route passing through those addresses - the routing overhead alone runs to &lt;a href="https://coordable.co/blog/geocoding-routing-impact-france-2026/"&gt;€7.94 per route in rural zones&lt;/a&gt;, at a 138:1 ROI on the geocoding fix.&lt;/p&gt;
&lt;p&gt;Various industry studies estimate 20–25% of delivery failures trace back to incorrect address data. In rural operations, this figure is likely higher - some operators report address-related failures exceeding 30% in rural zones. Applied conservatively:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;An operator running &lt;strong&gt;10,000 deliveries/month&lt;/strong&gt; in rural zones at an &lt;strong&gt;8% failure rate&lt;/strong&gt;:
- ~800 failed deliveries per month
- ~200 attributable to address or geocoding issues
- At €42.14 per failure: &lt;strong&gt;~€8,400/month in avoidable cost&lt;/strong&gt;
- Cost of a quality geocoding pipeline for those same addresses: typically &lt;strong&gt;€4–€45&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The ROI is higher in rural than anywhere else - precisely because the cost of failure is highest and the baseline data quality is lowest.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="a-note-on-what-this-model-does-not-include"&gt;A note on what this model does not include&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Customer churn.&lt;/strong&gt; Relevant to retailers. Rural customers, with fewer competing delivery options, may show higher churn propensity after a failure.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Return-to-depot logistics.&lt;/strong&gt; Particularly costly in rural operations where the depot may be 60–100 km from the delivery zone.&lt;/p&gt;
&lt;p&gt;Both exclusions make the estimates above conservative.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;This post is the third in a four-part series. The &lt;a href="https://coordable.co/blog/cost-failed-delivery-eu-vs-us-2026/"&gt;next and final post&lt;/a&gt; applies the same model to US operating conditions - and shows why failed deliveries cost even more on the other side of the Atlantic, despite cheaper fuel.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="want-to-run-the-numbers-on-your-operation"&gt;Want to run the numbers on your operation?&lt;/h3&gt;
&lt;p&gt;If you're managing rural or mixed-density routes and want to understand where geocoding quality affects your costs most, we'd be happy to talk through the specifics.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Coordable&lt;/strong&gt; builds multi-provider geocoding pipelines that surface address issues before dispatch, not after. &lt;a href="mailto:contact@coordable.co"&gt;Get in touch&lt;/a&gt; to run the numbers on your own operation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id="sources-and-assumptions"&gt;Sources and assumptions&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Driver hourly wage (€17/h fully loaded)&lt;/strong&gt; - Median gross wage for delivery drivers in France: €12–€13/h (Indeed, JOBTransport, 2025; CCN Transport routier logistique, May 2025: €11.91–€19.27/h). Employer contributions ~30% (Urssaf, 2025). Fully loaded: €12.50 × 1.30 = €16.25/h, rounded to €17/h.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Fuel cost (€0.18/km)&lt;/strong&gt; - Average diesel price France 2025: €1.6186/L (prixdubaril.com / Ministry of Ecological Transition, January 2026). LCV rural consumption: 11L/100km.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Vehicle depreciation (€0.12/km)&lt;/strong&gt; - French fiscal mileage allowance 2024–2025 (BOFiP, BOI-BAREME-000003).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Rural stops per route (8–15/day)&lt;/strong&gt; - Upper Inc., &lt;em&gt;Last-Mile Delivery Route Optimization Guide&lt;/em&gt;, 2026.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Detour distances (25 km reinserted / 40 km near-dedicated)&lt;/strong&gt; - Internal estimate based on rural route geometry and stop density data.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;60/40 split between near-dedicated and reinserted redeliveries&lt;/strong&gt; - Internal conservative estimate for rural operations. High variance across operators.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;PUDO availability in rural zones&lt;/strong&gt; - &lt;a href="https://nshift.com/blog/eu-parcel-locker-growth-in-2025-what-it-means-for-retailers"&gt;nShift, &lt;em&gt;EU Parcel Locker Growth in 2025&lt;/em&gt;&lt;/a&gt;, 2025.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;On-site time (12 min)&lt;/strong&gt; - Higher than urban/peri-urban (8 min) to reflect address-location difficulty in rural zones. Internal estimate.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Recipient call rate (75%)&lt;/strong&gt; - Higher than urban (60%) and peri-urban (60%) to reflect greater address ambiguity in rural zones.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Route incompletion disruption model&lt;/strong&gt; - Internal estimate. Shift from "cascade on adjacent stops" to "probability of end-of-day route incompletion", reflecting rural low-density route reality.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Human contact rate (45%)&lt;/strong&gt; - Higher than urban (30%) and peri-urban (35%) to reflect lower automation adoption and higher address-issue incidence in rural zones.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Address-related failure rate in rural zones (&amp;gt;25%)&lt;/strong&gt; - Conservative estimate; some operators report rates exceeding 30% in rural zones. Composite industry data 2021–2024.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Dispatch/support agent wage (€15/h fully loaded)&lt;/strong&gt; - Estimate by analogy with CCN Transport routier, administrative roles.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Geocoding pipeline cost&lt;/strong&gt; - Estimated using BAN (free, open source) as primary geocoder, with a premium provider (Google Geocoding API, ~€0.005/address) triggered only on addresses where BAN confidence score falls below 0.7 - roughly 15-20% of a typical French address file. This cascading approach is the architecture Coordable is built around: &lt;a href="https://coordable.co"&gt;coordable.co&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description><category>failed delivery</category><category>last-mile</category><category>logistics costs</category><category>rural delivery</category><guid>https://coordable.co/blog/cost-failed-delivery-rural-europe-2026/</guid><pubDate>Tue, 14 Apr 2026 12:00:00 GMT</pubDate></item><item><title>The €17 failed delivery in peri-urban operations: the math is worse</title><link>https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/</link><dc:creator>Julien Crétin</dc:creator><description>&lt;p&gt;In our &lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/"&gt;previous post&lt;/a&gt;, we rebuilt the cost of a failed delivery from scratch for dense urban B2C operations in Europe. The central estimate: €15.30 for a redelivery scenario, €9.28 for a PUDO redirect.&lt;/p&gt;
&lt;p&gt;Peri-urban changes the math. The detours are longer, the routes are thinner, and the PUDO options are fewer. The result: a redelivery cost of &lt;strong&gt;€22.26&lt;/strong&gt; - 45% higher than urban.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This model covers peri-urban B2C operations - suburban zones, secondary cities, mixed-density areas typically located 20–60 km from a major urban center.&lt;/em&gt;&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/#what-makes-peri-urban-different"&gt;What makes peri-urban different&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/#the-model"&gt;The model&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/#component-1-on-site-failure-cost-both-scenarios"&gt;Component 1 — On-site failure cost (both scenarios)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/#component-2a-redelivery-to-home-address"&gt;Component 2A — Redelivery to home address&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/#component-2b-redirect-to-pickup-point-pudolocker"&gt;Component 2B — Redirect to pickup point (PUDO/locker)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/#component-3-route-disruption"&gt;Component 3 — Route disruption&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/#component-4-customer-support-contact"&gt;Component 4 — Customer support contact&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/#the-full-picture"&gt;The full picture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/#what-this-means-for-geocoding-quality"&gt;What this means for geocoding quality&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/#a-note-on-what-this-model-does-not-include"&gt;A note on what this model does not include&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/#want-to-run-the-numbers-on-your-own-operation"&gt;Want to run the numbers on your own operation?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/#sources-and-assumptions"&gt;Sources and assumptions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h3 id="what-makes-peri-urban-different"&gt;What makes peri-urban different&lt;/h3&gt;
&lt;p&gt;Three structural differences drive the cost gap vs urban:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lower stop density.&lt;/strong&gt; Urban routes average 25–40 stops per day. Peri-urban routes average 15–25. The same driver cost, spread over fewer deliveries, means a higher cost per stop - and a higher cost per failure.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Longer inter-stop distances.&lt;/strong&gt; Where an urban detour might be 3 km, a peri-urban detour to reinsert a failed stop is closer to 8–12 km. The distances between addresses are simply larger.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Thinner PUDO networks.&lt;/strong&gt; Europe's 500,000+ out-of-home delivery points are concentrated in urban cores. In peri-urban zones, PUDO density drops significantly - the nearest relay point may be 5–10 km away rather than 1–2 km. In some cases there is no viable PUDO option at all, making redelivery the only path.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="the-model"&gt;The model&lt;/h3&gt;
&lt;h4 id="component-1-on-site-failure-cost-both-scenarios"&gt;Component 1 — On-site failure cost (both scenarios)&lt;/h4&gt;
&lt;p&gt;This component is largely context-independent. A failed stop costs roughly the same on-site time regardless of geography.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Assumption&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;On-site time (approach + attempt + departure)&lt;/td&gt;
&lt;td&gt;8 min @ €17/h&lt;/td&gt;
&lt;td&gt;€2.27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Recipient call attempt (~60% of failures)&lt;/td&gt;
&lt;td&gt;2.5 min @ €17/h&lt;/td&gt;
&lt;td&gt;€0.43&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Subtotal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€2.70&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h4 id="component-2a-redelivery-to-home-address"&gt;Component 2A — Redelivery to home address&lt;/h4&gt;
&lt;p&gt;The key difference vs urban: the detour is longer. In a peri-urban route, stops are spread across a wider area. Reinserting a failed stop into a future run means a meaningful additional distance, not just a marginal detour.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Assumption&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Driver time (detour + stop)&lt;/td&gt;
&lt;td&gt;22 min @ €17/h&lt;/td&gt;
&lt;td&gt;€6.23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fuel&lt;/td&gt;
&lt;td&gt;10 km @ €0.18/km&lt;/td&gt;
&lt;td&gt;€1.80&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vehicle depreciation&lt;/td&gt;
&lt;td&gt;10 km @ €0.12/km&lt;/td&gt;
&lt;td&gt;€1.20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Subtotal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€9.23&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;22 minutes and 10 km reflect a realistic marginal detour in a peri-urban route of 15–25 stops spread across a suburban or secondary urban zone.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="component-2b-redirect-to-pickup-point-pudolocker"&gt;Component 2B — Redirect to pickup point (PUDO/locker)&lt;/h4&gt;
&lt;p&gt;Where a PUDO network exists in the zone, the redirect path is still cheaper than redelivery - but the economics narrow compared to urban. The nearest relay point is farther, and consolidation benefits are smaller.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Assumption&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Driver time (detour + PUDO drop)&lt;/td&gt;
&lt;td&gt;15 min @ €17/h&lt;/td&gt;
&lt;td&gt;€4.25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fuel&lt;/td&gt;
&lt;td&gt;6 km @ €0.18/km&lt;/td&gt;
&lt;td&gt;€1.08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vehicle depreciation&lt;/td&gt;
&lt;td&gt;6 km @ €0.12/km&lt;/td&gt;
&lt;td&gt;€0.72&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Merchant commission&lt;/td&gt;
&lt;td&gt;€0.40&lt;/td&gt;
&lt;td&gt;€0.40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Subtotal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€6.45&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;Where no PUDO option exists within a reasonable radius (&amp;gt;10 km), redelivery becomes the only option. This is a meaningful constraint in lower-density peri-urban zones.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="component-3-route-disruption"&gt;Component 3 — Route disruption&lt;/h4&gt;
&lt;p&gt;This is where peri-urban diverges most sharply from urban.&lt;/p&gt;
&lt;p&gt;In a dense urban route, a failed stop disrupts the stops immediately following it - the cascade is local and relatively contained. In a peri-urban route with larger inter-stop distances and fewer stops per route, the same time loss has a proportionally larger impact: the driver has less buffer, fewer stops to resequence around, and longer travel legs that make recovering the deficit harder.&lt;/p&gt;
&lt;p&gt;The nature of this disruption - and who absorbs the cost - depends on the operator's model.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For operators with salaried drivers&lt;/strong&gt;, the disruption translates into route lengthening. Time lost accumulates across the week and can contribute to crossing the overtime threshold - in France, 39 hours under the transport collective agreement, with a 25% premium beyond that.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For operators using subcontracted drivers on a daily or per-route flat fee&lt;/strong&gt; - which represents the majority of last-mile operations in France for networks such as Amazon, Chronopost, or DHL - the disruption generates a margin loss: if a subcontractor completes 18 stops instead of 20 due to time lost on a failure, they deliver less for the same flat fee.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A third case: markets with precise delivery slots.&lt;/strong&gt; In peri-urban contexts, this dynamic is more prevalent than in urban - peri-urban operations are more likely to include B2B deliveries with contractual time windows, or premium residential services with narrow slots. A failed stop in this context is a missed contractual commitment, potentially triggering SLA penalties on top of the operational cost.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Assumption&lt;/th&gt;
&lt;th&gt;Redelivery&lt;/th&gt;
&lt;th&gt;PUDO redirect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cascade delay on following stops&lt;/td&gt;
&lt;td&gt;2 stops × 8 min @ €17/h&lt;/td&gt;
&lt;td&gt;€4.53&lt;/td&gt;
&lt;td&gt;€2.27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dispatch rescheduling&lt;/td&gt;
&lt;td&gt;12 min @ €15/h&lt;/td&gt;
&lt;td&gt;€3.00&lt;/td&gt;
&lt;td&gt;€1.50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Subtotal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€7.53&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€3.77&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Route disruption is the largest single component in the redelivery scenario - €7.53, or 34% of the total.&lt;/strong&gt; In peri-urban contexts, fewer stops and longer legs mean there is less slack to absorb the cascade.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h4 id="component-4-customer-support-contact"&gt;Component 4 — Customer support contact&lt;/h4&gt;
&lt;p&gt;The contact rate dynamics are similar to urban, with one additional factor: geocoding quality in peri-urban zones tends to be less reliable. New residential developments on the urban periphery lag in address databases. Industrial parks and business zones often have poor coordinate precision. This increases the likelihood that a failure is address-related rather than recipient-absent - which in turn increases the probability of a support contact.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Assumption&lt;/th&gt;
&lt;th&gt;Redelivery&lt;/th&gt;
&lt;th&gt;PUDO redirect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Scenario&lt;/td&gt;
&lt;td&gt;Contact rate&lt;/td&gt;
&lt;td&gt;Cost per contact&lt;/td&gt;
&lt;td&gt;Subtotal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;---&lt;/td&gt;
&lt;td&gt;---&lt;/td&gt;
&lt;td&gt;---&lt;/td&gt;
&lt;td&gt;---&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Redelivery&lt;/td&gt;
&lt;td&gt;35%&lt;/td&gt;
&lt;td&gt;€8&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€2.80&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PUDO redirect&lt;/td&gt;
&lt;td&gt;12%&lt;/td&gt;
&lt;td&gt;€8&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€0.96&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;The slightly higher contact rate vs urban (35% vs 30%) reflects the greater prevalence of address-quality issues in peri-urban zones.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="the-full-picture"&gt;The full picture&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Redelivery&lt;/th&gt;
&lt;th&gt;PUDO redirect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1. On-site failure&lt;/td&gt;
&lt;td&gt;€2.70&lt;/td&gt;
&lt;td&gt;€2.70&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2. Resolution path&lt;/td&gt;
&lt;td&gt;€9.23&lt;/td&gt;
&lt;td&gt;€6.45&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3. Route disruption&lt;/td&gt;
&lt;td&gt;€7.53&lt;/td&gt;
&lt;td&gt;€3.77&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4. Customer support&lt;/td&gt;
&lt;td&gt;€2.80&lt;/td&gt;
&lt;td&gt;€0.96&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€22.26&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€13.88&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figure style="text-align:center;margin:2em 0;"&gt;
&lt;svg width="560" viewbox="0 0 560 330" role="img" xmlns="http://www.w3.org/2000/svg"&gt;
  &lt;title&gt;Cost per failed delivery: urban vs peri-urban comparison&lt;/title&gt;
  &lt;desc&gt;Stacked bar chart comparing four cost components across urban and peri-urban redelivery scenarios. Urban totals €15.30, peri-urban totals €22.26.&lt;/desc&gt;

  &lt;text x="280" y="16" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="12" font-weight="600" fill="#2C2C2A"&gt;Redelivery cost per failed delivery — urban vs peri-urban (€)&lt;/text&gt;

  &lt;rect x="64" y="32" width="10" height="10" rx="2" fill="#5DCAA5"&gt;&lt;/rect&gt;
  &lt;text x="79" y="41" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#5F5E5A"&gt;On-site failure&lt;/text&gt;
  &lt;rect x="185" y="32" width="10" height="10" rx="2" fill="#378ADD"&gt;&lt;/rect&gt;
  &lt;text x="200" y="41" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#5F5E5A"&gt;Resolution path&lt;/text&gt;
  &lt;rect x="316" y="32" width="10" height="10" rx="2" fill="#D85A30"&gt;&lt;/rect&gt;
  &lt;text x="331" y="41" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#5F5E5A"&gt;Route disruption&lt;/text&gt;
  &lt;rect x="450" y="32" width="10" height="10" rx="2" fill="#888780"&gt;&lt;/rect&gt;
  &lt;text x="465" y="41" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#5F5E5A"&gt;Support&lt;/text&gt;

  &lt;line x1="84" y1="282" x2="500" y2="282" stroke="#B4B2A9" stroke-width="0.5"&gt;&lt;/line&gt;
  &lt;line x1="84" y1="237" x2="500" y2="237" stroke="#D3D1C7" stroke-width="0.5" stroke-dasharray="3 3"&gt;&lt;/line&gt;
  &lt;line x1="84" y1="192" x2="500" y2="192" stroke="#D3D1C7" stroke-width="0.5" stroke-dasharray="3 3"&gt;&lt;/line&gt;
  &lt;line x1="84" y1="102" x2="500" y2="102" stroke="#D3D1C7" stroke-width="0.5" stroke-dasharray="3 3"&gt;&lt;/line&gt;

  &lt;text x="78" y="286" text-anchor="end" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#888780"&gt;€0&lt;/text&gt;
  &lt;text x="78" y="241" text-anchor="end" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#888780"&gt;€5&lt;/text&gt;
  &lt;text x="78" y="196" text-anchor="end" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#888780"&gt;€10&lt;/text&gt;
  &lt;text x="78" y="106" text-anchor="end" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#888780"&gt;€20&lt;/text&gt;

  &lt;!-- Urbain --&gt;
  &lt;rect x="130" y="262.6" width="100" height="19.4" fill="#888780"&gt;&lt;/rect&gt;
  &lt;rect x="130" y="214.9" width="100" height="47.7" fill="#D85A30"&gt;&lt;/rect&gt;
  &lt;rect x="130" y="180.1" width="100" height="34.8" fill="#378ADD"&gt;&lt;/rect&gt;
  &lt;rect x="130" y="158.3" width="100" height="21.8" fill="#5DCAA5"&gt;&lt;/rect&gt;
  &lt;rect x="130" y="154.3" width="100" height="7" rx="3" fill="#5DCAA5"&gt;&lt;/rect&gt;
  &lt;text x="180" y="146" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="13" font-weight="600" fill="#2C2C2A"&gt;€15.30&lt;/text&gt;
  &lt;text x="180" y="300" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="12" fill="#5F5E5A"&gt;Urban&lt;/text&gt;

  &lt;!-- Péri-urbain --&gt;
  &lt;rect x="320" y="259.4" width="100" height="22.6" fill="#888780"&gt;&lt;/rect&gt;
  &lt;rect x="320" y="198.5" width="100" height="60.9" fill="#D85A30"&gt;&lt;/rect&gt;
  &lt;rect x="320" y="123.9" width="100" height="74.6" fill="#378ADD"&gt;&lt;/rect&gt;
  &lt;rect x="320" y="102.1" width="100" height="21.8" fill="#5DCAA5"&gt;&lt;/rect&gt;
  &lt;rect x="320" y="98.1" width="100" height="7" rx="3" fill="#5DCAA5"&gt;&lt;/rect&gt;
  &lt;text x="370" y="90" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="13" font-weight="600" fill="#2C2C2A"&gt;€22.26&lt;/text&gt;
  &lt;text x="370" y="300" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="12" fill="#5F5E5A"&gt;Peri-urban&lt;/text&gt;

  &lt;!-- Flèche +45% --&gt;
  &lt;line x1="230" y1="155" x2="318" y2="100" stroke="#888780" stroke-width="1" stroke-dasharray="3 2"&gt;&lt;/line&gt;
  &lt;text x="278" y="118" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="12" font-weight="600" fill="#D85A30"&gt;+45%&lt;/text&gt;
&lt;/svg&gt;
&lt;/figure&gt;

&lt;p&gt;With a low–high range across assumptions:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;th&gt;Low&lt;/th&gt;
&lt;th&gt;Central&lt;/th&gt;
&lt;th&gt;High&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Redelivery&lt;/td&gt;
&lt;td&gt;€16.00&lt;/td&gt;
&lt;td&gt;€22.26&lt;/td&gt;
&lt;td&gt;€28.50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PUDO redirect&lt;/td&gt;
&lt;td&gt;€9.70&lt;/td&gt;
&lt;td&gt;€13.88&lt;/td&gt;
&lt;td&gt;€18.10&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The peri-urban redelivery cost at €22.26 is 45% higher than the urban equivalent (€15.30).&lt;/strong&gt; This reflects the structural reality of lower stop density and longer detours - not exceptional conditions, just standard peri-urban operations.&lt;/p&gt;
&lt;p&gt;Where PUDO networks exist in peri-urban zones, the savings vs redelivery are even larger than in urban: &lt;strong&gt;€8.38 saved per failure&lt;/strong&gt; vs €6.02 in urban. The rarer the PUDO option, the more valuable it becomes when it's available.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id="what-this-means-for-geocoding-quality"&gt;What this means for geocoding quality&lt;/h3&gt;
&lt;p&gt;The geocoding problem is more significant in peri-urban contexts for two reasons.&lt;/p&gt;
&lt;p&gt;First, address data quality degrades at the urban periphery. New residential developments, industrial zones, and business parks on city fringes are consistently slower to appear in geocoding databases - and when they do appear, precision is often street-level rather than rooftop.&lt;/p&gt;
&lt;p&gt;Second, the cost of getting it wrong is higher. At €22.26 per failure vs €15.30 in urban, the same root cause generates 45% more damage. And beyond failed deliveries, degraded coordinates affect every route that runs through those addresses - see our &lt;a href="https://coordable.co/blog/geocoding-routing-impact-france-2026/"&gt;routing simulation&lt;/a&gt; for the direct impact on driver time and distance.&lt;/p&gt;
&lt;p&gt;Various industry studies estimate 20–25% of delivery failures trace back to incorrect address data. Applied to peri-urban operations:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;An operator running &lt;strong&gt;30,000 deliveries/month&lt;/strong&gt; in peri-urban zones at an &lt;strong&gt;8% failure rate&lt;/strong&gt;:
- ~2,400 failed deliveries per month
- ~540 attributable to address or geocoding issues
- At €22.26 per failure: &lt;strong&gt;~€12,000/month in avoidable cost&lt;/strong&gt;
- Cost of a quality geocoding pipeline for those same addresses: typically &lt;strong&gt;€12–€110&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id="a-note-on-what-this-model-does-not-include"&gt;A note on what this model does not include&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Customer churn.&lt;/strong&gt; Relevant to retailers, not carriers. An e-commerce operator running this model for their own context should add it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Return-to-depot logistics.&lt;/strong&gt; Particularly significant in peri-urban zones where PUDO is unavailable - an undeliverable parcel must travel further to return to depot. Both exclusions make the estimates above conservative.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;The figures above apply to peri-urban B2C operations in a European context. Rural contexts are more extreme still - longer distances, near-absent PUDO networks, and substantially higher per-stop costs. We cover those in the &lt;a href="https://coordable.co/blog/cost-failed-delivery-rural-europe-2026/"&gt;next post&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="want-to-run-the-numbers-on-your-own-operation"&gt;Want to run the numbers on your own operation?&lt;/h3&gt;
&lt;p&gt;If you're working on address quality or last-mile cost reduction in peri-urban or mixed-density contexts, we'd be happy to talk through how geocoding quality affects your specific setup.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Coordable&lt;/strong&gt; helps logistics and operations teams build multi-provider geocoding pipelines that surface address issues before dispatch, not after. &lt;a href="mailto:contact@coordable.co"&gt;Get in touch&lt;/a&gt; to run the numbers on your own operation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id="sources-and-assumptions"&gt;Sources and assumptions&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Driver hourly wage (€17/h fully loaded)&lt;/strong&gt; - Median gross wage for delivery drivers in France: €12–€13/h (Indeed, JOBTransport, 2025; CCN Transport routier logistique, May 2025: €11.91–€19.27/h). Employer contributions ~30% (Urssaf, 2025). Fully loaded: €12.50 × 1.30 = €16.25/h, rounded to €17/h.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Fuel cost (€0.18/km)&lt;/strong&gt; - Average diesel price France 2025: €1.6186/L (prixdubaril.com / Ministry of Ecological Transition, January 2026). LCV peri-urban consumption: 11L/100km.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Vehicle depreciation (€0.12/km)&lt;/strong&gt; - French fiscal mileage allowance 2024–2025 (BOFiP, BOI-BAREME-000003).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Peri-urban stops per route (15–25/day)&lt;/strong&gt; - Upper Inc., &lt;em&gt;Last-Mile Delivery Route Optimization Guide&lt;/em&gt;, 2026.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Detour distance and time (10 km / 22 min)&lt;/strong&gt; - Internal estimate based on peri-urban route geometry and stop density data.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;PUDO network density in peri-urban zones&lt;/strong&gt; - &lt;a href="https://nshift.com/blog/eu-parcel-locker-growth-in-2025-what-it-means-for-retailers"&gt;nShift, &lt;em&gt;EU Parcel Locker Growth in 2025&lt;/em&gt;&lt;/a&gt;, 2025.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;PUDO merchant commission (€0.40)&lt;/strong&gt; - Published rates from Pickup, Mondial Relay, Relais Colis, 2025.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cascade disruption (2 stops × 8 min)&lt;/strong&gt; - Internal estimate. No published benchmark identified.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Human contact rate (35%)&lt;/strong&gt; - Slightly higher than urban (30%) to reflect greater address-quality issues in peri-urban zones. &lt;a href="https://wismolabs.com/what-is-wismo/"&gt;WISMOlabs, &lt;em&gt;What Is WISMO?&lt;/em&gt;&lt;/a&gt;, 2025.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Dispatch/support agent wage (€15/h fully loaded)&lt;/strong&gt; - Estimate by analogy with CCN Transport routier, administrative roles.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Address-related failure rate (20–25%)&lt;/strong&gt; - Composite estimate, last-mile industry studies 2021–2024.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Geocoding pipeline cost&lt;/strong&gt; - Estimated using BAN (free, open source) as primary geocoder, with a premium provider (Google Geocoding API, ~€0.005/address) triggered only on addresses where BAN confidence score falls below 0.7 - roughly 15-20% of a typical French address file. This cascading approach is the architecture Coordable is built around: &lt;a href="https://coordable.co"&gt;coordable.co&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description><category>failed delivery</category><category>last-mile</category><category>logistics costs</category><category>peri-urban delivery</category><guid>https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/</guid><pubDate>Tue, 14 Apr 2026 11:00:00 GMT</pubDate></item><item><title>The €17 failed delivery: everyone cites it, nobody shows the math</title><link>https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/</link><dc:creator>Julien Crétin</dc:creator><description>&lt;p&gt;Search for "cost of a failed delivery" and you find the same figure everywhere: somewhere between €15 and €20 per failed order. It shows up in industry reports, logistics blogs, carrier decks. Sometimes €17, sometimes €18, sometimes just "around €17." The number circulates freely.&lt;/p&gt;
&lt;p&gt;What never appears alongside it is a breakdown.&lt;/p&gt;
&lt;p&gt;We rebuilt the estimate from scratch, line by line, with explicit assumptions, for a realistic urban B2C context in Europe in 2026. And we modeled two scenarios, because not all failed deliveries end the same way.&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/#two-paths-after-a-failed-first-attempt"&gt;Two paths after a failed first attempt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/#the-model"&gt;The model&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/#component-1-on-site-failure-cost-both-scenarios"&gt;Component 1 - On-site failure cost (both scenarios)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/#component-2a-redelivery-to-home-address"&gt;Component 2A - Redelivery to home address&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/#component-2b-redirect-to-pickup-point"&gt;Component 2B - Redirect to pickup point&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/#component-3-route-disruption"&gt;Component 3 - Route disruption&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/#component-4-customer-support-contact"&gt;Component 4 - Customer support contact&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/#the-full-picture"&gt;The full picture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/#what-this-means-for-geocoding-quality"&gt;What this means for geocoding quality&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/#a-note-on-what-this-model-does-not-include"&gt;A note on what this model does not include&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/#want-to-run-the-numbers-on-your-own-operation"&gt;Want to run the numbers on your own operation?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/#sources-and-assumptions"&gt;Sources and assumptions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h3 id="two-paths-after-a-failed-first-attempt"&gt;Two paths after a failed first attempt&lt;/h3&gt;
&lt;p&gt;When a delivery attempt fails, operators have two main options:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Redeliver to the home address.&lt;/strong&gt; Schedule a second attempt, slot it into a future route, try again.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Redirect to a pickup point (PUDO/locker).&lt;/strong&gt; Drop the parcel at a nearby relay point, a staffed shop or an automated locker, and notify the recipient to collect at their convenience.&lt;/p&gt;
&lt;figure style="max-width:680px;margin:1.5em 0;"&gt;
&lt;svg width="100%" viewbox="0 0 680 220" role="img" xmlns="http://www.w3.org/2000/svg"&gt;
  &lt;title&gt;Two paths after a failed delivery attempt&lt;/title&gt;
  &lt;desc&gt;A flowchart showing that a failed delivery attempt splits into two paths: redelivery to home address, or redirect to a PUDO pickup point.&lt;/desc&gt;
  &lt;defs&gt;
    &lt;marker id="arr-flow" viewbox="0 0 10 10" refx="8" refy="5" markerwidth="6" markerheight="6" orient="auto-start-reverse"&gt;
      &lt;path d="M2 1L8 5L2 9" fill="none" stroke="#9c9a92" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;/path&gt;
    &lt;/marker&gt;
  &lt;/defs&gt;

  &lt;rect x="215" y="20" width="250" height="52" rx="8" fill="#FAECE7" stroke="#993C1D" stroke-width="0.5"&gt;&lt;/rect&gt;
  &lt;text x="340" y="42" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="13" font-weight="600" fill="#712B13"&gt;Failed delivery attempt&lt;/text&gt;
  &lt;text x="340" y="60" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#993C1D"&gt;Driver on-site, recipient absent&lt;/text&gt;

  &lt;path d="M290 72 L175 140" fill="none" stroke="#9c9a92" stroke-width="1" marker-end="url(#arr-flow)"&gt;&lt;/path&gt;
  &lt;path d="M390 72 L505 140" fill="none" stroke="#9c9a92" stroke-width="1" marker-end="url(#arr-flow)"&gt;&lt;/path&gt;

  &lt;rect x="60" y="140" width="230" height="56" rx="8" fill="#E1F5EE" stroke="#0F6E56" stroke-width="0.5"&gt;&lt;/rect&gt;
  &lt;text x="175" y="162" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="13" font-weight="600" fill="#085041"&gt;Redeliver to home&lt;/text&gt;
  &lt;text x="175" y="180" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#0F6E56"&gt;Slotted into a future route&lt;/text&gt;

  &lt;rect x="390" y="140" width="230" height="56" rx="8" fill="#E1F5EE" stroke="#0F6E56" stroke-width="0.5"&gt;&lt;/rect&gt;
  &lt;text x="505" y="162" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="13" font-weight="600" fill="#085041"&gt;Redirect to PUDO&lt;/text&gt;
  &lt;text x="505" y="180" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#0F6E56"&gt;Nearest relay point or locker&lt;/text&gt;
&lt;/svg&gt;
&lt;/figure&gt;

&lt;p&gt;The second path is growing fast. Out-of-home delivery networks in Europe &lt;a href="https://nshift.com/blog/eu-parcel-locker-growth-in-2025-what-it-means-for-retailers"&gt;now exceed 500,000 points&lt;/a&gt;. In France alone, the three main networks (Pickup, Mondial Relay, Relais Colis) cover over 37,000 relay points. Redirecting to a PUDO is no longer a fallback; in many operations it is the default response to a failed first attempt.&lt;/p&gt;
&lt;p&gt;The cost profiles of these two paths are meaningfully different. We modeled both.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="the-model"&gt;The model&lt;/h3&gt;
&lt;h4 id="component-1-on-site-failure-cost-both-scenarios"&gt;Component 1 - On-site failure cost (both scenarios)&lt;/h4&gt;
&lt;p&gt;Before any decision about what happens next, a failed stop already costs something. The driver arrived, attempted delivery, documented the failure, and departed. That time is gone regardless of what follows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Assumption&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;On-site time (approach + attempt + departure)&lt;/td&gt;
&lt;td&gt;8 min @ €17/h&lt;/td&gt;
&lt;td&gt;€2.27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Recipient call attempt&lt;/td&gt;
&lt;td&gt;2.5 min @ €17/h (~60% of failures)&lt;/td&gt;
&lt;td&gt;€0.43&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Subtotal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€2.70&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;The call is not systematic - carriers typically place it when the address is unclear or the recipient was expected to be home. We estimate it occurs in roughly 60% of failed attempts.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="component-2a-redelivery-to-home-address"&gt;Component 2A - Redelivery to home address&lt;/h4&gt;
&lt;p&gt;The package gets slotted back into a future route. The marginal cost is the detour: the extra time and distance to work that stop back into an existing run. Not a dedicated trip, just the incremental cost of squeezing it in.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Assumption&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Driver time (detour + stop)&lt;/td&gt;
&lt;td&gt;12 min @ €17/h&lt;/td&gt;
&lt;td&gt;€3.40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fuel&lt;/td&gt;
&lt;td&gt;3 km @ €0.18/km&lt;/td&gt;
&lt;td&gt;€0.54&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vehicle depreciation&lt;/td&gt;
&lt;td&gt;3 km @ €0.12/km&lt;/td&gt;
&lt;td&gt;€0.36&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Subtotal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€4.30&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;12 minutes and 3 km reflect a marginal detour within a dense urban route. In peri-urban or rural contexts, these figures are significantly higher.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="component-2b-redirect-to-pickup-point"&gt;Component 2B - Redirect to pickup point&lt;/h4&gt;
&lt;p&gt;The driver diverts to the nearest relay point on the same or next run. A PUDO stop is fast: 1.5-2 minutes vs 6-7 minutes for a residential delivery, because consolidation means multiple parcels per stop. Detour distance is short in a dense urban network.&lt;/p&gt;
&lt;p&gt;There is also a cost that most estimates miss: the commission paid by the carrier to the merchant hosting the relay point. In France, this runs €0.30-€0.50 per parcel depending on the network (Mondial Relay, Pickup, Relais Colis). Small, but real, and exactly the kind of line item that gets lost when a figure is simply quoted without a breakdown.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Assumption&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Driver time (detour + PUDO drop)&lt;/td&gt;
&lt;td&gt;7 min @ €17/h&lt;/td&gt;
&lt;td&gt;€1.98&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fuel&lt;/td&gt;
&lt;td&gt;1.5 km @ €0.18/km&lt;/td&gt;
&lt;td&gt;€0.27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vehicle depreciation&lt;/td&gt;
&lt;td&gt;1.5 km @ €0.12/km&lt;/td&gt;
&lt;td&gt;€0.18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Merchant commission&lt;/td&gt;
&lt;td&gt;€0.40&lt;/td&gt;
&lt;td&gt;€0.40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Subtotal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€2.83&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h4 id="component-3-route-disruption"&gt;Component 3 - Route disruption&lt;/h4&gt;
&lt;p&gt;This is the component that almost never appears in cost estimates, and the one we think matters most.&lt;/p&gt;
&lt;p&gt;A failed stop does not happen in isolation. The driver spent time on-site. In a tightly scheduled urban run of 20-30 stops, that time ripples downstream. The nature of this disruption, and who absorbs the cost, depends on the operator's model.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For operators with salaried drivers&lt;/strong&gt;, the disruption translates into route lengthening. Time lost accumulates across the week and can contribute to crossing the overtime threshold: in France, 39 hours under the transport collective agreement, with a 25% premium beyond that. The marginal cost is real but diffuse: it rarely maps cleanly to a single failed stop.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For operators using subcontracted drivers on a daily or per-route flat fee&lt;/strong&gt;, which represents the majority of last-mile operations in France for networks such as Amazon, Chronopost, or DHL, the disruption does not generate overtime. It generates a margin loss: if a subcontractor completes 18 stops instead of 20 due to time lost on a failure, they deliver less for the same flat fee. The cost is real, but it sits with the subcontractor rather than the network operator. Operators on this model can calibrate the disruption cost by dividing their daily flat rate by the number of planned stops.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A third case: markets with precise delivery slots.&lt;/strong&gt; In the UK, Germany, and increasingly in premium services across Europe, recipients select a 1-2 hour window at checkout. In this context, a failed stop is not just a time loss; it is a missed contractual commitment, and SLA-based contracts can trigger financial penalties: a cost that does not appear in any per-failed-delivery model, but is very real at scale. We do not include it in our central estimate, but operators on slot-based markets should factor it in.&lt;/p&gt;
&lt;p&gt;In all three cases, dispatch rescheduling remains a fixed cost: someone must handle the failed stop, reassign it, and notify the recipient.&lt;/p&gt;
&lt;p&gt;There is no published benchmark for the cascade effect specifically. We modeled it conservatively and flag it as an assumption operators should calibrate against their own route data.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Assumption&lt;/th&gt;
&lt;th&gt;Redelivery&lt;/th&gt;
&lt;th&gt;PUDO redirect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cascade delay on following stops&lt;/td&gt;
&lt;td&gt;3 stops × 4 min @ €17/h&lt;/td&gt;
&lt;td&gt;€3.40&lt;/td&gt;
&lt;td&gt;€1.70&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dispatch rescheduling&lt;/td&gt;
&lt;td&gt;10 min @ €15/h&lt;/td&gt;
&lt;td&gt;€2.50&lt;/td&gt;
&lt;td&gt;€1.25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Subtotal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€5.90&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€2.95&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;The €17/h figure is an approximation of the real operational cost in both salaried and subcontracted models - marginal hourly cost for salaried drivers, opportunity cost per undelivered stop for flat-fee subcontractors.&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Route disruption accounts for roughly 40% of the total cost in the redelivery scenario.&lt;/strong&gt; It is the component most directly amplified by address quality issues - and the one almost entirely invisible in standard last-mile cost reporting.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h4 id="component-4-customer-support-contact"&gt;Component 4 - Customer support contact&lt;/h4&gt;
&lt;p&gt;In 2026, most platforms automatically notify recipients of a failed attempt and offer self-service rescheduling. The majority of failures do not generate a human support contact. But a meaningful share do: particularly when the address is genuinely unresolvable, the automated flow breaks down, or the delay exceeds the customer's tolerance.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://wismolabs.com/what-is-wismo/"&gt;Industry data on post-failure contact rates&lt;/a&gt; shows that well-optimized operators with proactive SMS/WhatsApp notifications see human contact rates around 15%. Average operators without strong visibility tooling can exceed 40%. We use 30% as a central estimate.&lt;/p&gt;
&lt;p&gt;For PUDO redirects, the contact rate drops significantly: the recipient gets an automatic notification, the package is safe, and there is nothing to escalate.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Redelivery&lt;/th&gt;
&lt;th&gt;PUDO redirect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Human contact rate&lt;/td&gt;
&lt;td&gt;30%&lt;/td&gt;
&lt;td&gt;10%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost per contact (internal dispatch or support)&lt;/td&gt;
&lt;td&gt;€8&lt;/td&gt;
&lt;td&gt;€8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Subtotal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€2.40&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€0.80&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h3 id="the-full-picture"&gt;The full picture&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Redelivery&lt;/th&gt;
&lt;th&gt;PUDO redirect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1. On-site failure&lt;/td&gt;
&lt;td&gt;€2.70&lt;/td&gt;
&lt;td&gt;€2.70&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2. Resolution path&lt;/td&gt;
&lt;td&gt;€4.30&lt;/td&gt;
&lt;td&gt;€2.83&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3. Route disruption&lt;/td&gt;
&lt;td&gt;€5.90&lt;/td&gt;
&lt;td&gt;€2.95&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4. Customer support&lt;/td&gt;
&lt;td&gt;€2.40&lt;/td&gt;
&lt;td&gt;€0.80&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€15.30&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€9.28&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figure style="text-align:center;margin:2em 0;"&gt;
&lt;svg width="560" viewbox="0 0 560 320" role="img" xmlns="http://www.w3.org/2000/svg"&gt;
  &lt;title&gt;Cost breakdown per failed delivery: redelivery vs PUDO redirect&lt;/title&gt;
  &lt;desc&gt;Stacked bar chart comparing four cost components across two scenarios. Redelivery totals €15.30, PUDO redirect totals €9.28. Route disruption is the largest single component in the redelivery scenario.&lt;/desc&gt;

  &lt;text x="280" y="16" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="12" font-weight="600" fill="#2C2C2A"&gt;Cost per failed delivery (€)&lt;/text&gt;

  &lt;rect x="64" y="30" width="10" height="10" rx="2" fill="#5DCAA5"&gt;&lt;/rect&gt;
  &lt;text x="79" y="39" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#5F5E5A"&gt;On-site failure&lt;/text&gt;
  &lt;rect x="185" y="30" width="10" height="10" rx="2" fill="#378ADD"&gt;&lt;/rect&gt;
  &lt;text x="200" y="39" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#5F5E5A"&gt;Resolution path&lt;/text&gt;
  &lt;rect x="316" y="30" width="10" height="10" rx="2" fill="#D85A30"&gt;&lt;/rect&gt;
  &lt;text x="331" y="39" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#5F5E5A"&gt;Route disruption&lt;/text&gt;
  &lt;rect x="450" y="30" width="10" height="10" rx="2" fill="#888780"&gt;&lt;/rect&gt;
  &lt;text x="465" y="39" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#5F5E5A"&gt;Support&lt;/text&gt;

  &lt;line x1="84" y1="272" x2="500" y2="272" stroke="#B4B2A9" stroke-width="0.5"&gt;&lt;/line&gt;
  &lt;line x1="84" y1="214" x2="500" y2="214" stroke="#D3D1C7" stroke-width="0.5" stroke-dasharray="3 3"&gt;&lt;/line&gt;
  &lt;line x1="84" y1="155" x2="500" y2="155" stroke="#D3D1C7" stroke-width="0.5" stroke-dasharray="3 3"&gt;&lt;/line&gt;
  &lt;line x1="84" y1="96" x2="500" y2="96" stroke="#D3D1C7" stroke-width="0.5" stroke-dasharray="3 3"&gt;&lt;/line&gt;

  &lt;text x="78" y="276" text-anchor="end" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#888780"&gt;€0&lt;/text&gt;
  &lt;text x="78" y="218" text-anchor="end" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#888780"&gt;€5&lt;/text&gt;
  &lt;text x="78" y="159" text-anchor="end" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#888780"&gt;€10&lt;/text&gt;
  &lt;text x="78" y="100" text-anchor="end" font-family="system-ui,-apple-system,sans-serif" font-size="11" fill="#888780"&gt;€15&lt;/text&gt;

  &lt;rect x="130" y="242.2" width="110" height="29.8" fill="#888780"&gt;&lt;/rect&gt;
  &lt;rect x="130" y="172.8" width="110" height="69.4" fill="#D85A30"&gt;&lt;/rect&gt;
  &lt;rect x="130" y="113.0" width="110" height="59.8" fill="#378ADD"&gt;&lt;/rect&gt;
  &lt;rect x="130" y="75.6" width="110" height="37.4" fill="#5DCAA5"&gt;&lt;/rect&gt;
  &lt;rect x="130" y="71.6" width="110" height="8" rx="3" fill="#5DCAA5"&gt;&lt;/rect&gt;

  &lt;text x="185" y="64" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="13" font-weight="600" fill="#2C2C2A"&gt;€15.30&lt;/text&gt;
  &lt;text x="185" y="292" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="12" fill="#5F5E5A"&gt;Redelivery&lt;/text&gt;

  &lt;rect x="320" y="262.4" width="110" height="9.6" fill="#888780"&gt;&lt;/rect&gt;
  &lt;rect x="320" y="221.6" width="110" height="40.8" fill="#D85A30"&gt;&lt;/rect&gt;
  &lt;rect x="320" y="187.4" width="110" height="34.2" fill="#378ADD"&gt;&lt;/rect&gt;
  &lt;rect x="320" y="149.8" width="110" height="37.6" fill="#5DCAA5"&gt;&lt;/rect&gt;
  &lt;rect x="320" y="145.8" width="110" height="8" rx="3" fill="#5DCAA5"&gt;&lt;/rect&gt;

  &lt;text x="375" y="138" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="13" font-weight="600" fill="#2C2C2A"&gt;€9.28&lt;/text&gt;
  &lt;text x="375" y="292" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="12" fill="#5F5E5A"&gt;PUDO redirect&lt;/text&gt;
&lt;/svg&gt;
&lt;/figure&gt;

&lt;p&gt;With a low-high range across assumptions:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;th&gt;Low&lt;/th&gt;
&lt;th&gt;Central&lt;/th&gt;
&lt;th&gt;High&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Redelivery&lt;/td&gt;
&lt;td&gt;€11.00&lt;/td&gt;
&lt;td&gt;€15.30&lt;/td&gt;
&lt;td&gt;€19.60&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PUDO redirect&lt;/td&gt;
&lt;td&gt;€6.50&lt;/td&gt;
&lt;td&gt;€9.28&lt;/td&gt;
&lt;td&gt;€12.10&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Our central redelivery estimate of &lt;strong&gt;€15.30&lt;/strong&gt; sits within the €15-€20 range commonly cited in industry reports: a useful sanity check. But where those figures are self-reported averages with no decomposition, this model shows where the money goes. Route disruption is the largest single component, and it is almost entirely invisible in standard last-mile cost reporting.&lt;/p&gt;
&lt;p&gt;The PUDO path at &lt;strong&gt;€9.28&lt;/strong&gt; is meaningfully cheaper - not because the logistics are simpler, but because the cascade is shorter and the customer contact rate drops. The merchant commission is real but minor.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="what-this-means-for-geocoding-quality"&gt;What this means for geocoding quality&lt;/h3&gt;
&lt;p&gt;The model above assumes a generic failed delivery: recipient absent, address found, no particular navigation issue. In practice, not all failures are equal.&lt;/p&gt;
&lt;p&gt;When a failure is caused by a bad geocode: the driver is routed to the wrong area, cannot locate the address, and spends additional time on-site trying to find it. Two things happen. First, the on-site time (Component 1) increases. Second, and more importantly, the route disruption (Component 3) is amplified: more time lost on that stop means a larger downstream cascade. We quantified this routing impact separately - &lt;a href="https://coordable.co/blog/geocoding-routing-impact-france-2026/"&gt;see our routing simulation on 10,000 French addresses&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Various industry studies estimate that between 20% and 25% of delivery failures trace back to incorrect or unresolvable address data. Applied to the redelivery scenario:&lt;/p&gt;
&lt;p&gt;An operator running &lt;strong&gt;50,000 deliveries/month&lt;/strong&gt; at an &lt;strong&gt;8% failure rate&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;~4,000 failed deliveries per month&lt;/li&gt;
&lt;li&gt;~900 of those attributable to address or geocoding issues&lt;/li&gt;
&lt;li&gt;At €15.30 per failure: &lt;strong&gt;~€13,800/month in avoidable cost&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;The cost of running those same 50,000 addresses through a quality geocoding pipeline before dispatch: typically &lt;strong&gt;€20-€180&lt;/strong&gt;, depending on provider mix and cascading strategy.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id="a-note-on-what-this-model-does-not-include"&gt;A note on what this model does not include&lt;/h3&gt;
&lt;p&gt;Two cost categories are deliberately excluded:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Customer churn.&lt;/strong&gt; A failed delivery affects repurchase intent: research consistently shows 20-25% of recipients do not reorder after a poor delivery experience. This is a real and significant cost, but it falls primarily on the retailer, not the carrier. An e-commerce operator building this model for their own operation should add it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Return-to-depot logistics.&lt;/strong&gt; When a package cannot be delivered and is not redirected to a PUDO point, it must be returned to the depot or sender. We have not modeled this, as handling varies significantly by operator and contract structure.&lt;/p&gt;
&lt;p&gt;Both exclusions make the estimates above conservative.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;The figures above apply to dense urban B2C operations in a European context. Peri-urban and rural contexts change the calculus significantly: longer detours, fewer PUDO options, higher cascade costs per failed stop. We cover both in the next posts in this series: &lt;a href="https://coordable.co/blog/cost-failed-delivery-peri-urban-europe-2026/"&gt;peri-urban (€22.26)&lt;/a&gt;, &lt;a href="https://coordable.co/blog/cost-failed-delivery-rural-europe-2026/"&gt;rural (€42.14)&lt;/a&gt;, and a &lt;a href="https://coordable.co/blog/cost-failed-delivery-eu-vs-us-2026/"&gt;EU vs US comparison&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="want-to-run-the-numbers-on-your-own-operation"&gt;Want to run the numbers on your own operation?&lt;/h3&gt;
&lt;p&gt;If you're working on geocoding quality or last-mile cost reduction, we'd be happy to talk through how address data affects your specific setup.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Coordable&lt;/strong&gt; helps logistics and operations teams build multi-provider geocoding pipelines that surface address issues before dispatch, not after. &lt;a href="mailto:contact@coordable.co"&gt;Get in touch&lt;/a&gt; - we're always up for a conversation about how geocoding quality affects delivery performance.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id="sources-and-assumptions"&gt;Sources and assumptions&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Driver hourly wage (€17/h fully loaded)&lt;/strong&gt; - Median gross wage for delivery drivers in France: €12-€13/h (Indeed, Glassdoor, JOBTransport, 2025; CCN Transport routier logistique, driver pay scale as of May 1, 2025: €11.91-€19.27/h). Employer social contributions: average rate ~30% of gross wage in 2025, range 25-42% depending on company size and applicable exemptions (Urssaf / Staffmatch, 2025). Estimated fully loaded cost: €12.50/h x 1.30 = €16.25/h, rounded to €17/h.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Fuel cost (€0.18/km)&lt;/strong&gt; - Average diesel price in France, annual average 2025: €1.6186/L (prixdubaril.com / French Ministry of Ecological Transition, January 2026). Light commercial vehicle urban fuel consumption: 11L/100km. Fuel cost: €1.62 x 0.11 = €0.178/km, rounded to €0.18/km.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Vehicle depreciation (€0.12/km)&lt;/strong&gt; - French fiscal mileage allowance 2024-2025 (BOFiP, BOI-BAREME-000003), depreciation/maintenance component excluding fuel, light commercial vehicle.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;PUDO stop time (1.5-2 min vs 6-7 min residential)&lt;/strong&gt; - Parcelhive, &lt;em&gt;Last-Mile Delivery Economics: Save 50% with Lockers&lt;/em&gt;, 2025.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;PUDO merchant commission (€0.30-€0.50/parcel)&lt;/strong&gt; - Published rates from Pickup (Groupe La Poste), Mondial Relay, Relais Colis, 2025. Central value: €0.40.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Out-of-home delivery network size (500,000+ points in Europe)&lt;/strong&gt; - &lt;a href="https://nshift.com/blog/eu-parcel-locker-growth-in-2025-what-it-means-for-retailers"&gt;nShift, &lt;em&gt;EU Parcel Locker Growth in 2025&lt;/em&gt;&lt;/a&gt;, 2025.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Address-related failure rate (20-25%)&lt;/strong&gt; - Composite estimate, last-mile industry studies 2021-2024.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Human contact rate on failed deliveries (15-40%)&lt;/strong&gt; - &lt;a href="https://wismolabs.com/what-is-wismo/"&gt;WISMOlabs, &lt;em&gt;What Is WISMO? Definition, Meaning &amp;amp; Rate Benchmarks&lt;/em&gt;&lt;/a&gt;, 2025.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Dispatch/support agent wage (€15/h fully loaded)&lt;/strong&gt; - Estimate by analogy with CCN Transport routier, administrative/operational roles. Gross wage ~€12/h, fully loaded cost ~€15/h.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;First-attempt failure rate (8%)&lt;/strong&gt; - Composite estimate, last-mile industry reports 2021-2025.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cascade delay assumption (3 stops x 4 min)&lt;/strong&gt; - Internal estimate, no published benchmark identified. Conservative assumption for a dense urban route of 20-30 stops.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Geocoding pipeline cost&lt;/strong&gt; - Estimated using BAN (free, open source) as primary geocoder, with a premium provider (Google Geocoding API, ~€0.005/address) triggered only on addresses where BAN confidence score falls below 0.7 - roughly 15-20% of a typical French address file. This cascading approach is the architecture Coordable is built around: &lt;a href="https://coordable.co"&gt;coordable.co&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description><category>failed delivery</category><category>last-mile</category><category>logistics costs</category><category>urban delivery</category><guid>https://coordable.co/blog/cost-failed-delivery-urban-europe-2026/</guid><pubDate>Mon, 13 Apr 2026 10:00:00 GMT</pubDate></item></channel></rss>