Geocoding & Addresses

Address text is data too — and it is the messiest data in the file.

A geocoder always returns something. That is the problem: a coordinate comes back for a misspelled street, a demolished building and a town in the wrong country, and nothing in the response says which. These guides cover what a geocoder actually does, how to clean and parse addresses before you send them, how to read a match score and a precision level, how to batch thousands of lookups without being blocked, and how to check the results against a boundary you already trust before they become dots on a map.

20 Steps in this path

The full path, in order

20 guides: the concepts underneath the work, then each task, then the errors that task produces. Work down, or jump to the step you need.

  1. The Address Data Model: Why an Address Is Not a String address data model 🧭 Concept
  2. How to Parse and Normalise Addresses in Python parse addresses python ⚙️ How-To
  3. Choosing a Geocoder: Coverage, Licence and Cost Compared choosing a geocoder 🧭 Concept
  4. How to Geocode with Nominatim from Python Without Being Blocked nominatim python geocode ⚙️ How-To
  5. Match Quality Explained: Reading a Geocoder's Confidence Score geocoder match quality 🧭 Concept
  6. Rooftop, Interpolated or Centroid: Geocoding Precision Levels geocoding precision levels 🧭 Concept
  7. How to Batch Geocode Thousands of Addresses in Python batch geocode addresses python ⚙️ How-To
  8. How to Cache Geocoding Results So a Rerun Costs Nothing cache geocoding results ⚙️ How-To
  9. How to Validate Geocoding Results Before You Trust Them validate geocoding results ⚙️ How-To
  10. How to Reverse Geocode Points to Addresses and Areas in Python reverse geocode python ⚙️ How-To
  11. Address Matching Explained: Why Exact String Equality Fails address matching explained 🧭 Concept
  12. How to Match Addresses Against a Reference File in Python match addresses reference file ⚙️ How-To
  13. How to Deduplicate an Address List in Python deduplicate addresses python ⚙️ How-To
  14. How to Build an Offline Geocoder from Open Address Data offline geocoder python ⚙️ How-To
  15. My Geocoder Returns No Match for Addresses That Exist geocoder returns no match 🔧 Fix
  16. Fixing 429 Too Many Requests When Geocoding geocoding 429 rate limit 🔧 Fix
  17. Fixing Geocodes That All Land in the Country Centroid geocodes country centroid 🔧 Fix
  18. Fixing Addresses That Break on Accents and Encoding address encoding accents 🔧 Fix
  19. Fixing a Geocoder That Matches the Wrong Town geocoder wrong town 🔧 Fix

Topics this path covers

A path is a route; a topic is everything the site has on a subject. Open a topic to see the guides this path skips.

Other ways in