A geocode is not a location
You send an address to a geocoder. It returns coordinates and a match type. The coordinates go into the pipeline. The match type goes into a column, and the column goes nowhere.
That discarded field is the difference between a point on a building and a point that represents the average of a postal delivery route.
Four tiers, four different kinds of object
Most geocoders resolve an address by falling down a ladder until something matches.
- Address point. A surveyed or authoritative point, often on the structure itself. Metres.
- Parcel centroid. The geometric centre of the land parcel. Correct parcel, wrong place within it — and the error grows with lot depth.
- Street interpolation. A position estimated along a road segment from its address range. Tens of metres, and structurally biased toward the road.
- ZIP or place centroid. A fallback that identifies a region, not a location. Kilometres.
These are not the same estimate at four quality levels. They are four different quantities. Two of them carry mostly variance and two carry mostly bias, which matters enormously downstream and is invisible in a latitude and longitude.
What street interpolation is really doing
It is worth knowing the arithmetic, because the failure modes fall straight out of it.
A road segment in a reference file such as TIGER/Line carries an address range per side:
400 to 498, even numbers, on the north. To place 412, the geocoder takes the fraction
(412 − 400) / (498 − 400) along the segment and offsets the
result perpendicular to the centreline by a fixed distance.
That computation assumes uniform lot widths, monotone numbering, an address range that matches reality, and a segment whose geometry corresponds to the street. Corner lots, skipped numbers, half-numbers, blocks that were subdivided after the range was recorded, and rural segments running for kilometres all break at least one of those.
Cayo and Talbot measured the consequence directly in 2003: a median positional error around 38 m for street geocoding in urban areas, degrading substantially in rural ones, where a single segment can cover a great deal of ground. Zandbergen’s 2008 comparison of address-point, parcel and street methods is the other paper to read, and Whitsel and colleagues found that commercial geocoders differ from each other by more than their documentation implies.
ZIP codes are not areas
A ZIP code is a collection of postal delivery routes. It is not a polygon and was never intended to be one. The Census Bureau publishes ZIP Code Tabulation Areas as an areal approximation, built by assigning each census block the most common ZIP among the addresses inside it — a reconstruction of a thing that does not natively have a shape.
So a “ZIP centroid” is the centroid of an approximation of a non-area. For ZIPs that serve a single high-rise or only post office boxes, the concept degenerates entirely. It is a perfectly reasonable object to use for coarse aggregation and a catastrophic one to feed into anything that asks where something is.
Radial error and per-axis error are different numbers
A detail that gets skipped, and it changes the arithmetic. Positional accuracy studies report radial error — the straight-line distance between the geocode and the truth. Most calculations you would want to do need the per-axis standard deviation instead.
For an isotropic two-dimensional normal error, radial distance is Rayleigh distributed
and its median is σ√(2 ln 2) ≈ 1.1774σ. So a reported
median radial error of 38 m implies a per-axis σ of roughly 32 m. Use 38
where 32 belongs and every probability you compute afterwards is wrong in the same
direction.
The failure that does not degrade gracefully
Different downstream operations tolerate positional error very differently.
Distance to a feature absorbs it well. Errors add in quadrature, and if you are measuring three kilometres to the nearest interchange, thirty metres is noise. Aggregation and density absorb it reasonably too, because independent errors partly cancel when you count many points into a large unit.
Point-in-polygon does not absorb it at all. It converts a continuous
error into a categorical one. A point whose true position is d metres inside
a boundary, with per-axis error σ, lands on the wrong side with
probability Φ(−d/σ). And the failure is silent: you get a
valid school district, a valid flood zone, a valid census tract, a valid sales territory.
Just not the right one.
Match rate is the wrong thing to optimise
Geocoding vendors compete on match rate, and Ratcliffe’s 2004 paper proposing a minimum acceptable hit rate did a lot to make it the number people quote. But a match rate is only meaningful alongside the tier distribution that produced it.
A 98% match rate reached by falling back to ZIP centroids is worse than an 85% rooftop rate with the remaining 15% flagged as unresolved. The first hands you thirteen extra percentage points of records that are silently wrong; the second hands you a list of records you know you cannot use. Missing data announces itself. Wrong data does not.
What I actually do about it
Carry the tier as a first-class field through every join, the same way you would carry a unit. Then let it veto operations it cannot support: a ZIP-centroid point should never be asked which side of a parcel line it falls on, and the pipeline should refuse rather than answer.
Two things travel back from a geocoder and they are commonly welded into one score. How
confident the system is that it found the right record is a string-matching
question. How precisely it knows where that record is is a positional question.
A single confidence: 0.87 that blends them cannot be used to answer either,
and the blend is not recoverable afterwards. Keep them apart, and the veto above becomes
something you can actually implement.
None of this is exotic. ISO 19157 has had positional accuracy as a named data-quality element for years. The gap is not that the concept is missing; it is that a geocoding response gets treated as an answer when it is an estimate with a provenance, and estimates that arrive without their provenance attached tend to lose it permanently.
References
- P. A. Zandbergen. “A comparison of address point, parcel and street geocoding techniques.” Computers, Environment and Urban Systems, 32(3), 2008, pp. 214–232. The direct comparison of the tiers.
- M. R. Cayo, T. O. Talbot. “Positional error in automated geocoding of residential addresses.” International Journal of Health Geographics, 2:10, 2003. Where the urban and rural error figures come from.
- P. A. Zandbergen. “Geocoding quality and implications for spatial analysis.” Geography Compass, 3(2), 2009, pp. 647–680.
- E. A. Whitsel et al. “Accuracy and repeatability of commercial geocoding.” American Journal of Epidemiology, 160(10), 2004, pp. 1023–1029.
- D. W. Goldberg, J. P. Wilson, C. A. Knoblock. “From text to geographic coordinates: the current state of geocoding.” URISA Journal, 19(1), 2007, pp. 33–46.
- D. W. Goldberg. A Geocoding Best Practices Guide. North American Association of Central Cancer Registries, 2008. Still the most thorough practical treatment.
- J. H. Ratcliffe. “Geocoding crime and a first estimate of a minimum acceptable hit rate.” International Journal of Geographical Information Science, 18(1), 2004, pp. 61–72.
- G. M. Jacquez. “A research agenda: does geocoding positional error matter in health GIS studies?” Spatial and Spatio-temporal Epidemiology, 3(1), 2012, pp. 7–16.
- U.S. Census Bureau. ZIP Code Tabulation Areas (ZCTAs) and TIGER/Line technical documentation. On what a ZCTA is and how address ranges are recorded.
- ISO 19157. Geographic information — Data quality. Positional accuracy as a named quality element.