Saturday 20 September 2014

How accurate are Google Maps cycling time estimates?

Summary: Google Maps cycling directions are the primary route mapping tool used by cyclists. However, the recommended bike routes are generally sub-optimal and the cycling route time estimates can be quite inaccurate. Hence, for those who rely on bikes to get around efficiently, it's useful to know how to manually choose the best route and to understand how Google calculates its route time estimates. In this post I'll use my Melbourne Grid map and actual trips to explain how to use Google savvily to pick the quickest and most suitable routes.

San Francisco Fixie Fiend
Flickr CC by 2.0 - Greg Balzer

Related Posts:
> See the "routes and maps" category of this blog.
Actual trips demonstrate the factors that enable cycling to maximise access and opportunity

1. How does Google Maps choose its recommended cycling routes?
- When using Google Maps cycling directions you are typically presented with 3 recommended routes and a time estimate for each one. However, it is unclear from the map as to how these routes are chosen. Below is my understanding based on usage.

- The key aspects to understand for cycling route choice are:
(a) Google heavily favours routes with bicycling infrastructure - Trails, Dedicated lanes and Bicycle-friendly roads.
(b) Google prefers routes that it estimates to take less time (e.g. fewer intersections, less elevation).
(c) Google prefers routes which don't involve significant climbing if it can be avoided.
(d) Google prefers shorter routes by distance but its estimated route time matters more.
(e) Google will chart roundabout routes if they have better/more bicycling infrastructure.

2. How does Google Maps calculate route travel time?
- The key aspects to understand for cycling route time estimates are:
(a) Google assumes no voluntary stops (e.g. breaks, stopping to check directions).
(b) Google assumes a baseline moving speed of around 16km/hr (10miles/hr) regardless of trip distance.
(c) Google adjusts the moving speed for each part of the route based on route specifics like elevation (it is faster downhill and slower uphill based on the gradient and distance) and the number of intersections.
(d) Google often adjusts the calculated route times (including moving speed) based on end user data (e.g. GPS). E.g. The fast, arterial St Georges Rd bike path in Melbourne has a quicker baseline moving speed.
(e) Google includes average stopped time for traffic lights and other stops (e.g. rail crossings).
(f) Google assumes cyclists will wait at all red signals till they turn green, even ridiculously long ones that are safe to cross when clear.
(g) Traffic congestion and other factors affecting cars should not affect bike trip calculated times.
(h) Google does not appear to take into account weather conditions (wind, rain, snow) or time of day.
(i) Google does not appear to take into account route surface conditions directly (e.g. bumpy or rough surface off-road bike paths). However, it may account for some of them via end user data on average speeds.
(j) Google Maps route time estimates are often quite inaccurate due to the way it calculates time, such as delays at intersections or average on-road route times. For example, it considers off-road bike trails to be much quicker relative to on-road bike routes than they really are (especially for experienced cyclists). See the other main sources of inaccuracy in the examples below.

- An ex-Google engineer also provided this summary of how route travel times are estimated:
These things range from official speed limits and recommended speeds, likely speeds derived from road types, historical average speed data over certain time periods [...] actual travel times from previous users, and real-time traffic information," wrote Russell. "They mix data from whichever sources they have, and come up with the best prediction they can make."
Pocket-lint: Want to know how Google Maps calculates ETA? Ex-Googler reveals all
3. Trip A: Home to The Commons, Brunswick
Key lesson: Cycling routes often have ways to skip intersection delays
- For a recent trip, I left at 5:18pm on a Sunday to get to a meeting at The Commons in Brunswick. Google recommended the three cycling routes below with estimated trip times of 14-15 minutes.

Google Maps: Rae St to The Commons, Brunswick - Google recommended routes

- In actual fact the best route is the one below which uses the relevant Melbourne cycling grid routes to maximise usage of efficient bike-friendly infrastructure and connections. Interestingly, Google Maps estimates this route at 18 minutes - perhaps because its intersection or GPS data indicates that the north section on the Upfield bike path has many intersections with potential delays.

Google Maps: Rae St to The Commons, Brunswick - My actual route

- However, below is my actual trip logged from Strava. I was running late so rode pretty quick and tried to make all the green lights at major intersections, which I did - the "Elapsed Time" is the same as the "Moving Time". However, 10min 27sec is a lot less than 18 minutes.

My Strava Activities: Home to The Commons, Brunswick

- I believe the discrepancy is Google's overestimate of the non-moving time at intersections on the route I took. On the Upfield bike path, Google thinks I'll dutifully wait for a minute for a green signal even though it is perfectly safe to cross. It also appears to factor in stopped time because at all of the non-signalled Upfield bike path intersections the cross traffic has right of way. However, in reality, there are plenty of gaps in the traffic, the speeds are slow, the intersection distance short and there is sometimes a median island to stop in.

Upfield Bike Path at Hope St

- The lesson is that experienced cyclists can build up a grid of efficient routes, connections, shortcuts and other measures for avoiding major waits at intersections. Google Maps travel time calculations do not factor in these time-saving methods.

4. Trip B: Home to Work (Treasury Place)
Key lesson: Routine trips can become highly time-optimised
- For my 3.9km work commute to the city Google Maps calculates a travel time of 17 minutes. If we assume Google uses a moving speed of 16km/hr for this trip that would equal 14.6 minutes. The extra 2.4 minutes must be its average stopped time (plus time lost just before and after each stop).

Home to Work (Treasury Place, East Melbourne)

- I recorded a recent ride on Strava and the total moving time was only 9min 32secs and total elapsed time was only 9min 56secs. My much faster average moving speed (24km/hr) is the major reason for the significantly quicker time. The other reason is that I only spent 24 seconds stopped on my entire commute. Of course, it isn't always this low, but my stopped time is usually under a minute and almost never more than two minutes.

My Strava Activities: Home to Work (Treasury Place)

- The secret to my faster moving time is simply that I have optimised the use of my bike to save time and limited stops and having to slow down. This includes:
(a) Using either Piedemontes car park as a shortcut or the most efficient non-signalled street (Watkins St) to save having to turn right at a traffic light.
(b) Looking ahead and accelerating where necessary to avoid stops at pedestrian crossings and traffic lights.
(c) Familiarity with the route and intersections allows me to optimise effort, road position and timing to ride as efficiently as possible.

5. Trip C: Friend's house to Home
Key lesson: Google does adjust bike route speeds from its baseline 16km/hr - based on GPS data and route efficiency measures
- This was a simple trip from a friend's house back home on Sunday at 6:35pm. Google refused to route my actual trip which uses a pedestrian shortcut to assist the right turn and then via Miller St as it is a stickler for using only official roads, paths and turns. However, the below route is close enough.

Friend's house (Northcote) to Home

- I didn't ride particularly fast home and did lose 1min 31secs stopped time at intersections but it's interesting that Google's estimate of 11 minutes is very close to my actual elapsed time (10min 54secs) as I had an average moving speed of 20.9km/hr - which is faster than most cyclists.

My Strava Activities: Y's House to Home

- In this case, Google's trip speed = 60min/11min * 3.2km = 17.45km/hr. While for my work commute Google's trip speed was = 60min/17min * 3.9km = 13.76km/hr. Obviously, there are a lot more intersections on my work commute so there is more stopped time and the 16km/hr baseline is consequently reduced. However, it is interesting that for my trip from my friend's house to home the trip speed is faster than 16km/hr, even though it is inclusive of all stopped time and time forced to travel slowly. This suggests that Google is estimating average moving speeds much higher than 16km/hr for this route.

- If we subtract the 1.5 minutes I lost to intersection stopped time from Google's total trip time (11min) this equals a moving time for Google's trip of 9.5 minutes. Recalculating Google's moving speed = 60min/9.5min * 3.2km = 20.2km/hr. This is surprisingly high as an estimate for the average cyclist given my moving speed was only 20.9km/hr and I am a pretty quick and efficient rider. I suspect that this 20.2km/hr moving speed is based in part on the GPS data from typical cyclists on this route who tend to be quicker, more experienced and to be travelling longer distances compared to an average cyclist.

- This Google cycling trip time insight should be of interest to both slower and faster cyclists who may expect Google's times to consistently accord with the average cyclist speed. It would actually be useful for Google to list its estimated trip time speed and moving time speed with its bicycle route time estimate so that cyclists could figure out how much time to add or subtract based on where they might fall on this spectrum.

6. Trip D: Home to Melbourne Airport (25 Oct 2014)
Key lesson: If you've highly optimised the efficiency and potential speed of your route for longer trips the time saving can be massive
- I'd done this trip to the airport previously (see: How to use a bike for more challenging transport trips) but hadn't yet figured out the optimal route, stopped several times to check directions and got lost at one point. Last time I was relatively pleased with a Moving Time of 1hr 11min and Elapsed Time of 1hr 23min as Google Maps estimate had been around 1hr 15min. This time I had a highly-optimised route which involved very few stops and allowed me to maintain a good cruising speed (25-30km/hr). As you can see below, Google Maps has a trip time estimate for the route I took of 1hr 21min. My Strava log shows that my actual trip time was 53min and note the Google Maps route was 0.4km shorter (I stopped my Strava trip right at the airport bike parking). So Google's estimate is over 50% higher than my actual trip time. And, yes, I was carrying a backpack but it was pretty light this time (~3.5kg).

Home to Melbourne Airport (via Glenlyon Rd, Upfield path, Gaffney St, Mascoma St)

My Strava Activities: Home to Melbourne Airport (25 Oct 2014)

- First, let's look at Google's estimated trip times for its suggested routes which use the Moonee Ponds or Merri Creek off-road bike trails. Amazingly, Google estimates that these winding routes which you can't ride as quickly on and which are also longer (22.5km for Moonee Ponds; 22.1km for Merri Creek) are quicker than the optimised route I took - 1hr 15min rather than 1hr 21min! My estimates for riding these routes as efficiently as I could would be at least 10min longer not 6min shorter.

Home to Melbourne Airport (via Google Map's suggested bike routes)

This example implies a few important things about Google Maps bike routes and time estimates:

(a) Don't trust Google Maps to select the most time-efficient cycling route for longer routes and especially those with off-road bike trails as options. You'll need to use your own experience and knowledge to optimise routes.

(b) Google Maps budgets a lot of stopped time or slow moving time for on-road bike routes - most likely based (at least partly) on motorist trip time data and the number of intersections. These calculations are excessive and don't take into account all of the ways smart cyclists can avoid or limit stopped time. For my entire trip from Home to Melbourne Airport I was stopped for less than 2 minutes. It appears Google Maps thinks the average for my route is at least 10 minutes.

(c) Google Maps seems to favour off-road bike paths for time estimates based on the fact that there are less required stops. However, most off-road bike paths in Melbourne (like the Moonee Ponds and Merri Creek paths) are windy, indirect, and have lots of slow points and grade changes. There are a few exceptions like the St Georges Rd bike path but Google Maps does not differentiate enough in average/potential speed between efficient and inefficient bike paths.

(d) In this case, Google's trip speed = 60min/75min * 22.5km = 18km/hr for its recommended Moonee Ponds route and 60min/81min * 21.2km = 15.7km/hr for the route I actually took. While for my actual trip the trip speed was = 60min/53min * 21.2km = 24km/hr. It's clear that Google's complex algorithm calculations based on a variety of data including undifferentiated users (e.g. "cycle chic" riders vs experienced transport cyclists) isn't very useful for each specific cyclist. The future of accurate cycling route planning and trip time calculations is via apps like Strava that are highly personalised to your preferred routes, riding speed and time-saving efficiency, and base estimates on your personal averages.

7. Trip E: Home to friend's house in Bundoora (15 December 2014)
Key lesson: The efficiency of off-road bike trails/paths varies massively and you should factor in this local knowledge in assessing Google Maps route time estimates
- Cycling 14km one way to go meet up with friends is challenging enough for most people. In Australia, taking an indirect, inefficient but slightly safer route that maximises usage of off-road bike trails is generally not recommended for medium or long trips.

- Unfortunately, Google Maps consistently underestimates the time for recreational off-road bike trails around Melbourne relative to on-road bike routes or off-road bike paths with many intersections. As you can see in the recommended routes presented below, Google Maps estimates that the Merri Creek Trail route will take only 2min longer than the St Georges Rd route despite being 2.5km longer. And it estimates that the Darebin Creek Trail route will only take 7min longer than the St Georges Rd route despite being 5.1km longer! In reality, the opposite is true - the St Georges Rd/Cheddar Rd route is easily Melbourne's most efficient and direct north-south arterial bike route, and takes much less time than any alternative. Using the St Georges Rd route this trip takes me around 35min while I'd estimate the Merri Creek route at around 47min and Darebin Creek at around 60min.

Home to friend's house in Bundoora (via Google Maps suggested bike routes)

My Strava Activities: Home to B's House (21 Dec 2014)

- In the Netherlands, I would expect off-road bike trails/paths to be of a consistently high quality and the preferred routes for getting around. Firstly, because transport-oriented routes would be direct and not roundabout. But also because of their overall quality - surface, width, connection efficiency, wayfinding signage, etc. Australian off-road bike trails that are windy (e.g. along creeks) are recreational and have many deficiencies that make them very time-inefficient as arterial bike routes. I don't think Google Maps bike routing algorithms understand these distinctions in the time-efficiency of off-road bike trails.

Further Info:
Pocket-lint: Want to know how Google Maps calculates ETA? Ex-Googler reveals all

Bicycle Dutch: Ride into the city: 5 kilometres priority

Google Official Blog: The bright side of sitting in traffic: Crowdsourcing road congestion data

Bike Forums: Google Maps Time estimates: are they accurate?