Documentation menu
Truck restriction data, measured
A truck router can only enforce a restriction the map records. That is true of every routing engine, ours included, and it is the one limit that no amount of engine work removes. So rather than assert that our truck data is good, we measured it and published the measurement, with the denominators attached.
No provider publishes restriction completeness for the road network they route over. We found no provider that guarantees the accuracy of the height and weight limits their trucks are routed against. This page exists so that the gaps in ours are measured rather than assumed away.
Everything below comes from one audit run. Where a number is a share, the denominator it is a share of is stated next to it.
What we measured, and how
The source is a single OpenStreetMap extract, uk.osm.pbf, dated
5 August 2026, 2.24 GB, covering the whole United Kingdom including
Northern Ireland. One extract, one date, one pass. Re-running the audit
on a later extract will move these numbers, and we would rather publish a
dated measurement than an undated impression.
The unit of counting is the OSM way, except where a length in kilometres is stated. A way is not a road and not a kilometre, so counts of ways and shares of network length are reported separately rather than mixed.
Two denominators carry most of the page:
| Denominator | Count |
|---|---|
| Ways in the extract, all kinds | 35,707,141 |
| Highway ways | 8,212,278 |
| Ways carrying any truck-relevant restriction tag | 47,208 (0.57% of highway ways) |
A truck-relevant restriction tag means any of the tags in the table below: a dimension limit, a weight limit, a hazardous-goods restriction, or an HGV access rule.
The tags that are there
| Tag | Ways |
|---|---|
maxheight | 18,353 |
maxheight:physical | 107 |
maxweight | 11,594 |
maxweight:signed | 10,351 |
maxwidth | 4,374 |
maxlength | 771 |
maxaxleload | 109 |
hazmat | 564 |
hgv | 11,412 |
maxweight:signed is the one entry in that table that is not a limit. It
is signage metadata: it records whether a weight limit is signed, not
what the limit is. At 10,351 ways it is a large enough block to distort
any figure that mistakes it for a value, which is exactly what happens
below.
The most common values on the 11,412 hgv ways are no 3,670,
destination 3,058, yes 851, designated 528 and delivery 480.
What the numbers say
The head of the network is better covered than the whole. Taking the major classes, motorway down to secondary including link roads, the extract holds 103,978 km across 429,664 ways. Of that, 7,029 km, or 6.76% of the major-class length, carries any truck-relevant tag. That is far better than the 0.57% of highway ways across the whole extract, and it is what you would expect: the roads that carry lorries are the roads people tag for lorries. The two shares are not directly comparable, one being a share of length and the other a share of way counts, but the direction is not in doubt.
The tail is thin, and it starts thinning early. Within those same major classes, primary roads sit at 1.10% and secondary roads at 1.33%. Since the major-class figure as a whole is 6.76%, the coverage is concentrated in the classes above primary. By the time you reach the roads a delivery actually finishes on, the recorded restriction data is close to absent.
Values are mostly parseable, once the metadata is set aside. About
6.7% of genuine dimension and weight values cannot be parsed into a
number. A naive pass over the same data reports 27.4%. The difference is
almost entirely maxweight:signed, whose values are not weights at all,
so counting them as unparseable limits badly overstates the problem. We
publish 6.7% and mention 27.4% only to explain why we do not publish it.
A small conflation probe found the head covered. We took the ten
most-struck bridges in the Network Rail struck-bridge dataset and looked
for a matching OSM height limit near each. Seven had a numeric
maxheight near the anchor point. Two misses were attributable to poor
anchors on our side rather than missing OSM data. One was a true absence:
Abbey Farm, Thetford, a struck bridge with no recorded height limit.
That result is head-biased by construction. n is 10, and the ten were selected for being the most struck, which is close to selecting for the ten most likely to have been noticed and tagged. It says the worst offenders are largely known. It says nothing about the other bridges.
Regionally, the picture is uneven rather than uniformly thin. In a Birmingham sample, 4 of 644 major bridge ways carried a height tag. In a Cumbria sample, 0 of 893 did. Two samples are not a national survey, but a gap that wide between an urban and a rural sample is not noise, and it means a national completeness figure would hide more than it revealed.
For context on why any of this matters: the Network Rail dataset of struck bridges runs to more than 5,000 structures, and 1,666 strikes were recorded in 2024/25. That is about one every five hours.
What this means for routing
Our truck costing applies every dimension, weight and hazardous-goods constraint the graph carries, and excludes restricted ways rather than penalising them. See truck and ADR routing for exactly which rules are enforced and which are not. What that page and this one share is a single boundary: enforcement stops where the recorded data stops.
The consequence is worth stating in one sentence, because it is the sentence most easily lost.
Absence of a recorded restriction is not evidence that a road was checked. A route returned over an untagged bridge is not a claim that the bridge is high enough. It is a claim that the map records no limit there, which on this data is the ordinary case rather than the exception. Treat a clear route on a sparsely tagged network as unverified, not as verified.
This is also why we do not fabricate values. Where the graph carries no limit, nothing is surfaced, rather than a plausible guess that would be indistinguishable from a real one.
What we are doing about it
The audit tool is open, and it is the source of this page. It measures truck-attribute completeness cell by cell over an extract, so the coverage of a given area can be checked rather than assumed. The numbers above are its output, not a summary of it.
Conflation against authoritative structure data is in progress. The ten-bridge probe was a probe, not a product. Matching recorded restrictions against an authoritative structures dataset at full scale is the work that turns "we found no tag here" into "there is no limit here", and those are different statements.
Ingest of the Department for Transport's D-TRO service is in progress. Traffic regulation orders are the legal source for many of the restrictions that OSM records second-hand. Nothing from it is wired into routing today, and we will say so on this page until it is.
We will re-run the audit on later extracts and update the figures here with their new dates. If a number on this page moves in the wrong direction, it will still be on this page.