# A Dash app to benchmark geocoding providers easily

**URL:** <https://community.plotly.com/t/a-dash-app-to-benchmark-geocoding-providers-easily/96881>\
**Category:** Dash Python\
**Tags:** show-and-tell\
**Created:** [April 29, 2026, 2:53pm UTC](https://community.plotly.com/t/a-dash-app-to-benchmark-geocoding-providers-easily/96881 "2026-04-29T14:53:53Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![spriteware](https://sea2.discourse-cdn.com/flex024/user_avatar/community.plotly.com/spriteware/32/29140_2.png) [@spriteware](https://community.plotly.com/u/spriteware)\
**Post date:** [April 29, 2026, 2:53pm UTC](https://community.plotly.com/t/a-dash-app-to-benchmark-geocoding-providers-easily/96881/1 "2026-04-29T14:53:53Z")

</div>

Hello!

It has been a while since I last show up in this community, but I’m back to share a little project I was working on: _a Dash app that helps to compare geocoding providers (such as Google Maps), easily._

**How the app works:**

1. Upload a .csv or excel file with addresses like “_137 Teaticket Hwy, East Falmouth, MA, 2536_”
2. Pick the providers you want to compare
3. Get a side-by-side accuracy and cost breakdown.

### ![The upload page: drag and drop a dataset, pick the geocoding providers to compare, run the experiment](https://us1.discourse-cdn.com/flex024/uploads/plot/original/3X/2/7/275745f0abf97e5ebe6d044b5e3fbf70397d74d1.jpeg)

**Why did I build this ?**

If you work with geolocated data, there are chances that you used Google Maps Places API to geocode, or another provider such as Nominatim (open source). The problem is that the quality of the geocoding greatly varies with the location, the cleanliness of the data, and the provider. So, analysis can take time. Comparing can take time.

Also, this tool helps understand how mixing providers (cascading providers) can help to get better results at a lower cost. If you are in the logistics industry for instance, you might need to geocode thousands of addresses for delivery every month. It can be costly. Cascading providers helps to reduce the cost by taking open source / free providers for easy to match addresses, then more expensive providers for more difficult addresses.

 ![The benchmark results for 500 US addresses, comparing 5 providers.](https://us1.discourse-cdn.com/flex024/uploads/plot/original/3X/0/e/0ee254a7e238cb0c194d81b2a87be282840f989b.jpeg)

For example, I ran the benchmark for 500 US addresses, comparing 5 providers. What’s interesting here is that US Census (free, governmental provider) can already handle 92.2% of the addresses. Cascading with other providers can help to increase the accuracy by +1.4% and reduce the cost by 97%.

If you are interested into this topic, I wrote detailed blog posts:

- [US Census + Google Maps: How to cut geocoding costs by 90% for US addresses — Coordable.co](https://coordable.co/blog/how-to-cut-geocoding-costs-by-90-for-us-addresses-census-google-maps/)
- [We built a free tool to benchmark geocoding provider accuracy](https://coordable.co/blog/free-tool-benchmark-geocoding-providers/)

### **How did I build this?**

As always with my projects, this is a full Dash app with `dash-bootstrap` for the styles and some custom CSS styles. For tables, I used `Dash AG Grid` (obviously)

It uses Python RQ to “queue” the geocoding jobs, meanwhile a `dcc.Interval` polls for the update of the results. Geocoding uses the [Coordable](https://coordable.co) API.

I used AI for this project. 🙂 Here was my workflow:

1. Built the UI with Google Gemini in full HTML + CSS by giving clear instructions on what I wanted (mockup drawn by hand on paper)
2. Used Cursor to translate the HTML/CSS layout into a full Dash layout and to setup my project workspace
3. Used OpenAI Codex to build the remaining parts, i.e. mapping the layout with Dash callbacks. I wrote clear instructions on how to write Dash callbacks and how to avoid “bad patterns” so that the AI can do a great job.
4. Reviewed the whole stuff in Cursor

I first asked for HTML because I know AIs are better with plain HTML and CSS to design beautiful UI/UX. Also, I preferred to have the layouts fixed complete before writing any callback as I try to minimize AI refactors (it often ends up with bad code).

* * *

If you are working with text addresses and often deal with geocoding, I would love to get your feedback on this tool! Also, if you know somebody working with geocoding, send them the tool ; they’ll probably appreciate 🙂 (because, yes, comparing is painful!)

Fran
