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.
