Back to GraphHopper in Google Sheets
SheetXAI logo
GraphHopper logo
GraphHopper · Google Sheets Guide

Generate Drive-Time Isochrones for Store Locations in a Google Sheet

2026-05-14
5 min read

The Scenario

You're a retail analyst three days into a site-selection project. Your manager wants to know how much market each of your 12 store locations actually covers — specifically, the area a customer can reach by car within 15 minutes. Someone suggested GraphHopper has an isochrone API. You've found the documentation. There are parameters, coordinate formats, output polygon schemas. This was supposed to be a two-hour analysis, not a two-day API integration project.

The bad version:

  • Convert each store address in column A to a latitude/longitude coordinate by hand (or find a separate geocoding tool), copy the coordinates into a GraphHopper isochrone API call, and pull the polygon area out of the GeoJSON response.
  • Repeat for all 12 stores, keeping careful track of which response belongs to which row.
  • Realize the polygon area is in square meters and your manager wants square kilometers — convert and re-paste.

Twelve stores. Twelve separate API calls. Twelve manual extractions. One spreadsheet that should have been done before lunch.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that lives inside your Google Sheet. It reads the store addresses in column A, calls the GraphHopper Isochrone API for each location with a 15-minute drive-time limit, and writes the reachable polygon area in sq km into column B — all in one pass.

For each store address in column A, call the GraphHopper isochrone endpoint with a 15-minute driving limit and write the reachable polygon area in sq km into column B

What You Get

  • Column B fills with the reachable area in sq km for each store, one row per location.
  • Stores where geocoding fails (address not recognized) are flagged in column B rather than returning a blank.
  • All 12 rows process in a single pass — no looping, no re-running.

What If the Data Is Not Quite Ready

The addresses are missing suite numbers or floor designations and geocoding might fail

Clean up any incomplete addresses in column A by removing suite numbers and secondary designators, then compute GraphHopper 15-minute drive-time isochrone areas for each cleaned address and write the result in sq km into column B

You need both 10-minute and 20-minute isochrones to assess overlap

For each store address in column A, compute a 10-minute drive-time isochrone area and a 20-minute drive-time isochrone area using GraphHopper and write the results in sq km into columns B and C respectively

Store coordinates are already in columns B and C as lat/lon — use those directly

Use the latitude in column B and longitude in column C for each store to call the GraphHopper isochrone endpoint with a 15-minute driving limit and write the reachable polygon area in sq km into column D

Find overlapping markets in one shot

For each store in column A, compute a 15-minute GraphHopper drive-time isochrone area and write the result into column B, then identify any two stores whose 15-minute isochrones overlap by more than 30% and write "OVERLAP" in column C for those stores

The pattern: market overlap analysis and the raw isochrone computation are a single ask, not two separate projects.

Try It

Get the 7-day free trial of SheetXAI and drop your store address list into a Google Sheet — then ask it to generate drive-time coverage areas for every location in one pass. You might also find these useful: Bulk Geocode Addresses From a Google Sheet Into Lat/Lon Columns and the GraphHopper overview.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more