LLM versus geocoder
A language model will always give you coordinates. The question is how far they are from the address. Here is what published studies measured, and how to let a model call a geocoder instead.
What the studies found
| Study | What was measured | Finding |
|---|---|---|
| Abbasi et al. 2025, arXiv 2506.00203 | GPT-4o and Gemini 2.0 Flash: coordinates of a known monument, elevations and regions of Austria | systematic and random errors in the coordinates of one landmark; neither model reconstructed the federal states without misclassifications |
| GeoHaluBench, Wang et al. 2025, arXiv 2507.19586 | 20 language models on facts from a geographic knowledge graph | geospatial hallucinations across all 20; a dedicated alignment step improved the benchmark score by 29.6 % |
| arXiv 2512.14228 (December 2025) | a model fine-tuned to georeference written locality descriptions of biological collections | 65 % of records within 10 km on average; best region 85 % within 10 km and 67 % within 1 km |
| MESSY STREETS, arXiv 2609.01612 (June 2026) | geocoders, not models, on verbatim web addresses | commercial geocoders ahead of open-source ones by up to 49 points of recall, mostly because they return a candidate for non-canonical addresses |
Read November 8, 2026, from each paper's abstract on arXiv. A kilometre is a good answer for a collection record and a wrong one for a delivery: an address needs metres.
Why a model is not a geocoder
- A model has no list of the houses of a street. It writes coordinates that look right, and it writes them as confidently when they are wrong.
- It cannot say “not found”: a geocoder that returns nothing is telling you something.
- The same address can get a different point on another day or another model version.
Use both: the model reads, the geocoder finds
Let the model do what it is good at, reading a messy line or a whole e-mail, and give it a geocoder as a tool. With GridPin the tool runs on the same machine: MCP for Claude, Cursor and other MCP clients, a LangChain package, and tools for LlamaIndex, CrewAI, PydanticAI, smolagents and the OpenAI Agents SDK. When the street exists in several towns and the address names none, the tool answers with a question to put to the user instead of a guess; when it finds nothing, it says why.