Estimated time significantly different in Valhalla and Google maps

I’m seeing a significant and consistent discrepancy between travel time estimates from Valhalla (using OpenStreetMap data) and Google Maps, and I’m trying to understand what might be causing it.

I expect some variation due to factors like traffic, road conditions, or differing assumptions, but the magnitude and pattern of the difference seem too large to be explained by those alone.

Example

Route:

  • Start: 52.23564716272248, -0.8956605756449354

  • End: 52.07597901967018, -1.0213206533329537

  • Distance: ~30 km (UK)

Results:

Observations

  • Valhalla consistently gives significantly higher travel times than Google Maps.

  • The discrepancy is large (in this case, ~75% longer).

  • This is not a one-off case. I’m observing a consistent trend where the gap increases with route distance. This chart shows this trend - you can see that the disagreement between Google and Valhalla increases with increase in distance.

  • Another OSM-based service (Mapcarta) produces estimates much closer to Google Maps.

Question

Given that both Valhalla and Mapcarta rely on OpenStreetMap data, what could explain such a large and consistent difference in travel time estimates?

Specifically:

  • Could this be due to Valhalla’s default speed assumptions or costing model?

  • Are there configuration differences (e.g., profiles, penalties, road classifications) that might explain this?

  • Is there something I might be misunderstanding or misconfiguring when using Valhalla?

Any insights into how Valhalla computes travel times and why it might systematically overestimate them would be greatly appreciated.

The discrepancy you’re seeing is real and fairly well understood in routing circles. It usually comes down to how travel time is modeled.

Even when two services both use OpenStreetMap, they can produce very different ETAs because OSM mostly provides topology and tags, not reliable real-world speeds. The routing engine has to infer speeds and apply penalties, and that’s where Valhalla and Google differ significantly.

Since OSRM, Graphhopper, and BRouter take about 30 minutes for the same route, this seems to be a unique feature of Valhalla, and it would be better suited here: GitHub - valhalla/valhalla: Open Source Routing Engine for OpenStreetMap · GitHub

I can only assume that it might be due to the unusual tagging situation at Stowe School, e.g.:Way: 953711182 | OpenStreetMap

bicycle=designated
foot=designated
highway=service
horse=designated
motor_vehicle=private

I have absolutely no idea what the signage is supposed to look like there, but I’ve never seen this kind of tagging before. If Valhalla assumes that you’re only allowed to drive at walking speed here (which wouldn’t be unreasonable), then that explains the huge time difference.

2 Likes

With your now updated geo coordinates the situation is different.

GraphHopper - 23 minutes: OpenStreetMap
OSRM - 24 minutes: OpenStreetMap
Valhalla - 35 minutes: OpenStreetMap
Google Maps - 28 minutes: Google Maps

That’s all within an acceptable range.

2 Likes

Thank you for the response. However, that specific coordinate was just an example. The problem is that I am seeing this issue happen consistently across multiple destinations if I pick random points in a 25 KM radius. And the divergence between the two engines increase with distance. With a 30 KM distance, the disagreement of around 15 mins is this to be expected? I am also in general trying to understand how much error I can expect from the various engines. 15 mins (for a 30 KM drive) sounded a bit too huge, but maybe that’s normal?

If you copy&paste your question from here to the valhalla-repo (or any other Issue in a Repo) please at least include the relevant discussion, especially if you are changing a significant part (like the start and end coordinates) midway.
https://community.openstreetmap.org/t/estimated-time-significantly-different-in-valhalla-and-google-maps

As advice in good faith.
All routing engines provided by https://www.openstreetmap.org/directions are open source, with often very few contributors maintaining these routing engines in their free time. All of them are run with a “fits all purposes” configuration, and are mostly demos not showing the full capabilites of these engines.
Try to come up with an explanation for this behaviour yourself, to at least narrow down the probable cause so the people working on these projects can focus on the cause and aren’t occupied with chasing shadows (and most are not willing to do that and rightfully so).

@mcliquid already gave you pointers and i can assure you that in other situations the result is quite different and often comes down to mapping-preferences in a specific location, routing-engines that are configured in a different way to fit a purpose (I don’t know which engine Mapcarta is using), are not using the same version as the ones on https://www.openstreetmap.org/directions or have extra data. For example: Google always uses Real Time Traffic Estimates; Graphhopper has, as far is a remember included these speed estimates .

Or at least structure your question in a way that let’s the reader know what you are really asking about. Since your question seems to be more of a “why is it like this in general”, give more pointers. Not just one example that has been changed midway.

1 Like

OP has now asked this question on Reddit, the Valhalla issue tracker, and here. Maybe other places too.

@anandan9470 Please don’t ask the same question in multiple places without at least linking to them; it wastes everyone’s time answering if you’ve already been given the same answers elsewhere.

8 Likes