Coordinately

What Is Geocoding?

Geocoding explained — forward (address → coordinate), reverse (coordinate → address), the major providers, match-code confidence, and accuracy by reference data.

By . Published . Last updated .

Geocoding is the conversion between addresses and coordinates. Forward geocoding goes address → coordinate (e.g. "1600 Pennsylvania Ave NW" → 38.8977°N, −77.0365°W); reverse geocoding goes coordinate → nearest known address within a search radius.

Geocoding is the bridge between two ways of locating a place: the postal address that humans write on letters and the coordinate that GPS receivers, web maps and spatial databases need to do anything with the location. The Coordinately tools /tools/address-to-coordinates and /tools/coordinates-to-address implement both directions; the underlying coordinates are stored in WGS-84 per /learn/wgs84-explained. Forward and reverse geocoding are foundational to ride-hailing, food delivery, real-estate search, emergency dispatch, and almost every map-based consumer application. This pillar explains how the conversion works, what the major providers offer, the accuracy and confidence model that every production geocoder publishes, and the standardisation steps that turn "1600 Pennsylvania Ave NW" into something the database can match.

Forward vs reverse geocoding

The two directions of geocoding are operationally distinct but use the same underlying reference data.

DirectionInputOutputExample queryCommon use
ForwardAddress (or place name) textOne or more candidate coordinates with confidence"Empire State Building, NYC" → (40.7484, −73.9857), confidence highPlace-search UIs, delivery apps, ride-hailing pickup
Reverse(lat, lon) coordinate (optionally + radius)Nearest address or addresses(40.7484, −73.9857) → "20 W 34th St, NYC, NY 10001"GPS tracking, geofencing labels, "where am I?"
AutocompletePartial address as user typesRanked list of completion suggestions"123 main" → list of "123 Main St" matches by citySearch-box UX, type-ahead

Forward geocoding is one-to-many in nature: "Springfield" alone matches dozens of cities; even a complete street address can match multiple buildings sharing the address (in different countries, or duplicate ranges within a city). Production geocoders return a ranked list of candidates with confidence scores rather than a single answer.

How forward geocoding works

A modern geocoder runs three stages: address standardisation, candidate lookup against the reference database, and ranking by confidence.

StageWhat happensExample
1. NormalisationCapitalise, expand abbreviations, fix common typos, split into components"1600 Penn ave NW DC" → number=1600, street=Pennsylvania Avenue NW, city=Washington, state=DC, country=USA
2. TokenisationIdentify which tokens are street numbers, unit, street type, postal code, etc.Number, predirectional, street name, suffix, postdirectional, unit
3. Candidate lookupQuery the address-coordinate database for matching recordsReturns N candidates with raw match scores
4. RankingScore candidates by completeness, confidence, language match, populationBest match scored highest; lower-confidence candidates returned for fuzzy queries
5. Coordinate assignmentUse the exact rooftop/parcel coordinate if available; interpolate along street centerline otherwiseRooftop accurate to <5 m; interpolation accurate to ±20-50 m

The accuracy ceiling is set by the reference data, not the algorithm. A geocoder backed by parcel-level data (each address mapped to its exact building rooftop) reaches metre-level accuracy — comparable to civilian GPS, per /learn/gps-accuracy-explained. A geocoder falling back to address-range interpolation (the street is divided into linear segments and the address is placed proportionally along the segment) reaches tens-of-metres accuracy. A geocoder with no local data and only place-name information falls back to centroid of the smallest known administrative region — potentially several kilometres off.

Match-code confidence: what the score means

Every production geocoder returns a confidence indicator alongside the coordinate. Mapbox v6 publishes a match_code.confidence field that illustrates the convention.

ConfidenceMapbox criterionTypical horizontal accuracyAcceptable for
exactAll address components matched a database record exactly< 5 m (rooftop / parcel)Auto-routing without UI confirmation
highAll major components match; minor differences (unit, casing)5-20 mAuto-routing with optional UI confirmation
mediumStreet, city match; number may be approximate (interpolation)20-100 mShow candidate list; require user confirmation
lowPartial match; may have fallen back to city/postal centroid> 100 m, possibly kilometresShow prominently in UI; do not auto-route

The Coordinately tools (per architectural decision 19.1) treat anything below "high" as a candidate to surface in the UI rather than auto-select. Auto-selecting a low-confidence match silently can put a ride-share driver at the wrong intersection, a delivery at the wrong building, or an emergency responder at the wrong street — all incidents that have happened in production geocoders without confidence-aware logic.

The major geocoding providers

ProviderStrengthsWeaknessesFree tierLicensing
Mapbox Geocoding v6Modern API; strong urban global coverage; honest confidenceResponse-retention forbidden per ToS; mid-tier in rural areas100,000/moPer-request commercial
Google Maps GeocodingBest coverage in most regions; rich place-name autocompleteMost expensive; strict ToS; map-display required for some uses$200/mo credit (~40K req)Per-request commercial
HERE GeocodingStrong in Europe and emerging markets; autocomplete-friendlySmaller ecosystem; less developer-friendly250K/moPer-request commercial
OpenStreetMap Nominatim (community)Free, open data, no ToS retention limitsQuality varies by region; rate-limited (1 req/sec for nonprofit)1 req/sec (nonprofit); paid hosts for higher ratesODbL (data); MIT (code)
MapTiler GeocodingOSM-based; commercial-grade hostingCoverage tracks OSM updates100K/moPer-request commercial
Pelias (self-hosted, open source)Full control; OSM + OpenAddresses + GeoNames + WhosOnFirstOperations burden; ~50 GB disk for globalFree (self-host)MIT
US Census GeocoderFree for US; rooftop accuracy via TIGER/LineUS-only; rate limitsFree, publicPublic domain
SmartyStreetsBest-in-class US address validationUS-focused250/moPer-request commercial

The choice depends on coverage area, accuracy needs, licensing constraints (Mapbox response-retention restriction is a hard operational constraint for many use cases), and budget.

Address standardisation: the unsung hero

Most of a geocoder's real work is parsing the input. Human addresses vary widely: capitalisation, abbreviation, punctuation, component order, language — all of which the standardiser must normalise before lookup.

Raw inputStandardisedStandardisation operations
"1600 penn ave nw dc"1600 Pennsylvania Avenue NW, Washington, DC 20500, USACapitalise; expand abbreviations (penn→Pennsylvania, ave→Avenue); infer state/country
"123 Main St., Apt. 5"123 Main St #5, [implicit city], [implicit country]Normalise punctuation; normalise unit prefix (Apt.→#); flag missing components
"100 Hauptstraße, München"100 Hauptstraße, 80331 München, DeutschlandPreserve diacritics; add postal code from city; normalise country name
"四川省成都市天府广场"天府广场, 锦江区, 成都市, 四川省, 中国Tokenise by Chinese administrative hierarchy; normalise component order
"GPS: 40.7484,-73.9857"Coordinate input → reverse-geocode flowDetect coordinate syntax; bypass forward-geocoder

The USPS Address Information System (AIS) is the canonical US reference; equivalent national postal authorities exist in most countries. ISO 19112:2019 standardises the concept of "address as geographic identifier" but leaves the actual string format to national standards (which differ widely).

Reverse geocoding: from coordinate to address

Reverse geocoding is conceptually simpler but operationally tricky. The query is "what address is closest to this (lat, lon)?" and the answer depends on what kind of address-objects are stored in the database.

Reverse-geocode levelReturned objectUse case
RooftopSingle building / parcel addressDelivery, ride-share dropoff
Address pointStreet address (e.g. "20 W 34th St")Reverse lookup of a GPS fix
Street segmentStreet range (e.g. "1-99 Main St")Approximate address from GPS
BlockBlock face / city blockCoarse "where is this" labelling
Neighborhood / district"Midtown Manhattan"Search filtering, UI labels
City / locality"New York"Country-level GPS labelling
Administrative region"NY, USA"Statistical / census purposes
Country"USA"Country-level geofencing

Most production reverse geocoders return multiple levels in a single response, letting the consumer pick the granularity they want. A delivery app picks rooftop or address-point; a weather app picks city; a country-detection feature picks country.

Geocoding accuracy in real numbers

How accurate is geocoding in practice? Independent benchmarks on US urban addresses give the following typical numbers across providers.

Address typeTypical accuracy (95th percentile)Why
Urban rooftop / parcel match< 10 mDirect database lookup; building-level data
Urban address (interpolated)10-30 mStreet centerline + address-range proportional placement
Suburban address15-50 mLarger parcels; less dense reference data
Rural / unincorporated address50 m to several kmAddress points often missing; fallback to road centerline or place centroid
PO BoxCentroid of postal-code area (km-scale)No physical address; can only place at postal centroid
"City name only" queryCentroid of city (km-scale)No street info; city-centroid fallback
Place-name (POI) queryVariable (depends on POI data quality)Often a marker placed at the POI&apos;s historical centroid
International (non-US, non-EU)Highly variable; rural can be tens of km offReference data gaps in emerging markets

The "geocoding gap" between urban and rural addresses is one of the quieter inequalities in location services: a downtown ride-share in New York or London gets under 10 m accuracy; a delivery to a rural address in rural Africa or parts of India gets several-km accuracy — sometimes none at all, where the address itself isn't in the geocoder's database.

Rate limits and operational considerations

ConcernMitigationWhy it matters
Rate limitsUse a paid tier; cache aggressively where allowedFree tiers throttle at ~1-100 req/sec; production load needs higher
Caching restrictionsRead provider ToS carefully; Mapbox forbids retentionMapbox per-request SSR is compatible with their ToS; caching is not
Ambiguous queriesReturn candidates, not single answerAuto-selecting low-confidence matches causes real-world delivery / dispatch errors
Language / localePass user locale to API; some providers default to EnglishNon-English place names may not match without explicit locale
Bounding-box biasUse viewport-bias parameter when available"Springfield" alone matches dozens; biasing toward user&apos;s view gives better candidates
Postal-code only queriesTreat as area, not pointA postal-code centroid can be miles from any actual address
Data freshnessTrack provider update cadence (typically quarterly)New buildings, renamed streets, new postal codes take weeks-months to land

The most common production bug is silently auto-selecting a low-confidence match. The fix is to always check the confidence and surface the candidate list to the user when confidence drops below "high." The /learn/forward-vs-reverse-geocoding support article covers this UX in depth.

Common misconceptions

Frequently asked questions

What is geocoding?

Geocoding is the conversion between a human-readable address (or place name) and geographic coordinates (latitude, longitude). It comes in two directions: forward geocoding takes an address like '1600 Pennsylvania Ave, Washington DC' and returns coordinates (~38.8977°N, 77.0365°W); reverse geocoding takes coordinates and returns an address. Both rely on large datasets of address-to-coordinate mappings, typically derived from government sources (TIGER/Line in the US), crowdsourced data (OpenStreetMap), or commercial address layers.

What is the difference between forward and reverse geocoding?

Forward (address → coordinates) is what you do when you search 'pizza near Times Square' or type an address into navigation software. Reverse (coordinates → address) is what you do when you tap a point on a map and the app tells you the nearest street address. Forward is harder because addresses are messy and have many synonyms; reverse is more deterministic because the input is precise. Most geocoding APIs offer both. See /learn/forward-vs-reverse-geocoding for the deeper treatment.

How accurate is geocoding?

Accuracy depends on the input data and the geocoder. A rooftop geocode (the building's footprint is in the database) is typically ~5 m accurate. A parcel geocode (the property lot is known but not the building) is ~10–20 m. A street-segment-interpolated geocode (the address number is interpolated along a street's address range) is ~20–50 m. A ZIP-code-centroid geocode (no street-level data, just the postal code) is ~1–5 km. The accuracy tier is usually reported by the geocoder; high-quality applications use the tier to filter or weight results.

What is TIGER/Line?

Topologically Integrated Geographic Encoding and Referencing (TIGER) is the US Census Bureau's foundational geographic dataset. TIGER/Line files include every named street in the US with its address ranges, every census-defined feature (water, parks, administrative boundaries), and the spatial topology connecting them. It's been published since 1990 and is the primary input to almost every US geocoder, including the commercial ones. The data is freely downloadable from the Census Bureau and updated regularly.

Which geocoding service should I use?

Depends on the use case. Google Maps Platform has the broadest coverage but expensive paid pricing. Mapbox is competitive on pricing with strong global coverage; OpenStreetMap Nominatim is free but lower-quality outside major metros. HERE has strong commercial data; OpenCage aggregates several sources. Self-hosted Nominatim is free but operationally complex. For small-scale or hobby projects, Nominatim's free public service or Mapbox's free tier is the practical answer. For business-critical large-scale applications, Google or HERE with a paid plan provides the highest data quality.

Is geocoding free?

Free tiers exist on most providers. Mapbox: 100,000 requests/month free. Google Maps Geocoding: $200/month credit (~40K requests). HERE: 250K/month free. OpenStreetMap Nominatim: free for nonprofit use at 1 req/sec rate limit. The US Census Geocoder is unlimited and free for US addresses. Self-hosted Nominatim or Pelias is free in license cost but requires server operations. For commercial applications above the free tier, expect $0.50-$5 per 1,000 requests.

How do I geocode an address?

Send the address as a query string to a geocoding API and parse the JSON response for the (lat, lon) coordinate plus a match-code confidence score. Example with Mapbox: GET https://api.mapbox.com/search/geocode/v6/forward?q=1600+Pennsylvania+Ave+NW&access_token=YOUR_TOKEN. The Coordinately /tools/address-to-coordinates tool wraps Mapbox v6 with confidence-aware result display and surfaces multiple candidates when match confidence is low.

Can I cache geocoding results?

Depends on the provider's terms. Mapbox's ToS *forbids* response retention — each query must be fresh, no caching to a database. Google permits ~30-day caching but only for personalised responses tied to a specific user query. HERE allows caching tied to the address that requested it. OpenStreetMap Nominatim allows redistribution under the Open Database License. Always read the provider's ToS before caching; per-request server-side rendering is the safer default.

Sources

  1. OGCOGC Geocoding standards · https://www.ogc.org/standards/ · Accessed .
  2. US CensusTIGER/Line — primary US geocoding dataset · https://www.census.gov/geographies/mapping-files/time-series/geo/tiger-line-file.html · Accessed .
  3. MapboxMapbox Geocoding API — documentation · https://docs.mapbox.com/api/search/geocoding/ · Accessed .
  4. GoogleGoogle Maps Platform — Geocoding API · https://developers.google.com/maps/documentation/geocoding/overview · Accessed .
  5. OSMOpenStreetMap Nominatim — open-source geocoding · https://nominatim.org/ · Accessed .

Cite this article

APA format:

Steve K. (2026). What Is Geocoding?. Coordinately. https://coordinately.org/learn/what-is-geocoding

BibTeX:

@misc{coordinately_whatisgeocoding_2026,
  author = {K., Steve},
  title  = {What Is Geocoding?},
  year   = {2026},
  publisher = {Coordinately},
  url    = {https://coordinately.org/learn/what-is-geocoding},
  note   = {Accessed: 2026-06-05}
}