A bridge clearance check answers one question: does this truck fit? Ask it about a bridge with 5.5 metres of clearance and a 4.1-metre trailer and it says yes, correctly, and moves on. It says exactly the same thing when that bridge has been closed to all traffic for a year. The clearance is still 5.5 metres. Nothing about the truck is wrong. The road simply is not there.
Until two days ago that was also true of our own route response. The bridge inventory we serve carried the closure on every affected record, four different adapters wrote it, and the routing enrichment read none of them. A closed bridge with enough headroom produced no warning at all, and one with no published dimensions was invisible. As of 29 September the closure reaches the route as its own warning, and this post is about what that warning says, the bug we found in it this morning, and what it still cannot tell you.
How Many Bridges Say “Closed”
We carry 732,506 active bridge records across North America, most of them from the federal National Bridge Inventory with state DOT feeds layered on top where a state publishes its own. Measured on production on 1 October 2026, 4,847 of them are flagged closed to traffic. After the fix described below, 4,495 of those raise a route warning, across 52 jurisdictions:
| Source | Flagged closed | What the flag means there |
|---|---|---|
Federal NBI, code K | 3,579 | Closed to all traffic |
Federal NBI, code G | 352 | New structure, not yet open — no warning (see below) |
| Pennsylvania (PennDOT) | 509 | Closed |
| Ohio (ODOT) | 223 | Closed |
| Texas (TxDOT) | 107 | Closed |
| Nova Scotia | 69 | Closed |
| Washington (WSDOT) | 8 | Closed |
Most of these are small: county roads over creeks, rail overpasses on collectors. Some are not. The busiest closed record in the inventory, a structure on I-278 in New York, carries 149,369 vehicles a day in its last federal count, and 475 closed bridges carry more than 1,000. A closure on a road that size is exactly the case where a navigation map and a bridge file disagree, and a driver should hear about the disagreement before reaching it.
What the Warning Looks Like
Nothing new to send. Ask for a truck route as usual:
POST /api/v1/routing/route
{
"origin": { "lat": 40.5877, "lng": -111.935 },
"destination": { "lat": 40.5877, "lng": -111.895 },
"truck": { "height_m": 4.1, "weight_t": 36 }
}
That short run along 9000 South in Salt Lake County crosses the Jordan River on a bridge the federal inventory lists as closed. This is the warning it returned on 1 October, trimmed to the relevant fields:
{
"type": "bridge_closed",
"severity": "warning",
"title": "Closed bridge near your route",
"description": "SR-209 90TH SO.ST. over JORDAN RIVER is reported closed to traffic. Proximity cannot tell whether your route crosses it or passes beneath it — check facility_carried before relying on it.",
"distance_along_route_m": 1877,
"source": "FHWA",
"provenance": "authoritative",
"properties": {
"closed_to_traffic": true,
"posting_status": "closed",
"posting_code": "K",
"facility_carried": "SR-209 90TH SO.ST.",
"feature_crossed": "JORDAN RIVER",
"avg_daily_traffic": 43295,
"year_built": 1971
}
}
Notice what happened there. The routing engine’s path runs past that point as though nothing were wrong, and the bridge inventory says the bridge there is closed. One of them is out of date, and nothing in either dataset says which. That is not a defect in the warning; it is the warning’s whole job. Without it the two sources disagree silently and the driver finds out at the barrier.
Three design choices are visible in that payload:
- It fires for every truck. Every other bridge warning we raise is a comparison between a number on the bridge and a number on the truck. A closure is not, so it is not gated on the truck profile: a 3-metre box van and a 4.3-metre reefer get the same warning.
- It is a
warning, notcritical. We match bridges to a route by proximity, within a narrow buffer around the line. That cannot tell a closed bridge the route drives across from a closed overpass the route passes under. When we measured it in September, 92 closed bridges outside Pennsylvania sat within 100 metres of a bridge carrying an Interstate. Acriticalthere would reject perfectly good routes. - It carries
facility_carriedandfeature_crossed. Those two fields are how you settle the over-or-under question: if the closed bridge carries SR-209 and your route is on SR-209, it is yours. If it carries a county road over the Interstate you are driving, it is not.
“Closed” and “Not Open Yet” Were the Same Flag
Here is what we got wrong, and fixed this morning. The federal inventory’s status field has a code K for a bridge closed to all traffic, and a separate code G for a new structure not yet open to traffic. Both mean “this structure carries no vehicles today”, and our feature records publish both as closed_to_traffic: true, which is accurate for anyone reading the inventory.
For a route warning it is badly wrong. A G bridge is almost always a replacement span being built beside a road that is open. Of the 352 G records, 282 were built in 2022 or later, and between them they carry a recorded 2.87 million vehicles a day: new spans on SR-429 in Florida, I-270 and I-55 around St. Louis, I-15 in California, I-16 in Georgia. Because matching is by proximity, a truck driving the live Interstate past one of those construction sites was told a bridge on its route was closed. Of all the false alarms a routing API can raise, that is one of the worst: on the busiest roads, about a hazard that is not there.
A not-yet-open structure is no longer a reason to warn. The routing engine will not route over a bridge that is not open, so there is nothing for the warning to protect against. The inventory record still says closed_to_traffic: true with posting_status: "new_not_yet_open", because that is still true of the structure. Only the route warning ignores it. We checked it live: a route along I-270 past the new span at Conway Road now comes back with no warnings.
The Closed Set Was Once Twelve Times Too Big
One more honest note, because it explains why we take the flag seriously in both directions. When we first measured this in September, the inventory held 57,597 closed bridges, 53,256 of them in Pennsylvania. That was our own decoding error: the Pennsylvania adapter read PennDOT’s code for an open bridge as closed, and never fetched its real closed code at all. After the fix Pennsylvania has 509 closed bridges. Had the route warning shipped on the uncorrected data, it would have fired on most bridges in the state, and within a day every integrator would have learned to ignore it. A warning that is right only a tenth of the time does more harm than no warning at all.
The Honest Limits
The federal inventory is an annual snapshot. A bridge reopened in March can still read closed until the next federal release, and a bridge closed last week reads open until a state feed says otherwise. Where a state publishes its own feed (Pennsylvania, Ohio, Texas, Washington, Nova Scotia today) the flag is as fresh as that feed. Elsewhere it is as fresh as the last federal file. The warning passes last_inspection_date through so you can weigh it. In the next federal refresh that field switches from the inventory’s raw month-year code to YYYY-MM.
Over or under is your call. As above: proximity matching cannot tell the two apart, and the warning says so in its own description. Compare facility_carried with the road you are on.
A new span that has opened since the snapshot stays silent. If a G bridge opened in May, the inventory still says not-yet-open and we raise nothing about it. That is the safe direction to be wrong in, but it is still a gap.
No detour. We tell you the bridge is reported closed. We do not reroute around it. The route geometry comes from the routing engine, which in a case like 9000 South evidently believes the bridge is open. Re-requesting with a waypoint is the caller’s decision, not ours.
For the dimensional side of the same inventory (clearances, weight postings, and the corridor search that finds the low bridges on a lane before you dispatch), see bridge clearance data for fleet routing. This post is about the one fact a clearance check cannot express.
Try It
- API docs — the routing warning types, including
bridge_closed, and the/featuressurface for the bridge inventory itself - Bridge clearances for fleet routing — the dimensional side of the same data
- Free API key — no credit card, 14-day trial
Put the closure on the route, not just on the map
732,506 bridges, 4,495 of them flagged closed and raised as a warning on any truck route that passes them — with the road it carries, so you can tell over from under. Free 14-day trial. No credit card.
Get Free API Key Read the Docs