How we verify places
This page explains how we build places from three open sources, verify them against official registers and mark them closed, so you can decide how far to trust a place. The response fields are described in How a place is verified.
Combining the three sources
We build each country from Foursquare Open Places, OpenStreetMap and Overture Maps. Records in different sources that describe the same place become one place, found in two passes.
- Name and location. Two records match when their names are similar and they are close.
How close depends on the category: parks and other large sites can be further apart than
cafés and restaurants. Records in unrelated category groups, such as a gym and a church, do
not match, unless one has no category or a broad one such as
store. - Location and category. A record the first pass left unmatched can match a record of
the same category at a much shorter distance, whatever the names. This joins a café listed
under its trading name in one source and its company name in another. The pass skips
crowded spots and broad categories such as
store, where distance alone is not enough.
What source_count counts is described in
Source counts and min_sources.
How registers verify places
Registers are official lists such as food hygiene inspections, health providers and schools. Only records the register lists as open can verify a place.
A register record verifies a nearby place when the names identify the same
establishment. The names must be similar, and at least half the words of the register's name
must appear in the place's name, ignoring words such as the and ltd, unless the two names
are the same once spaces are removed ("Pizza Express", "PizzaExpress"). When the two are of
different kinds, a word many places share, such as a town or street name, is not enough. This
keeps the business next door from being verified. A street or town word both addresses carry
is no evidence either when their house numbers differ. Names that pass the similarity test but
fail the rest can still match on the same street and house number. A register that matches by
location also matches a nearby place in its category group when every word of one name appears
in the other; for a register that only verifies, one of those words must be distinctive, not a
kind of place or a town.
A matched place gains the register in verified_by and becomes verified.
Some registers name the licensee or company rather than the sign over the door, or give no
name at all. A record of theirs that no name matches pairs with the nearest place of the
same category close by, shown as matched_on: "location and category". Registers that give
only a postcode match on the postcode and a stricter name test, shown as
matched_on: "name and postcode", as does a record whose location sits away from the place:
it pairs with the only unmatched place in its postcode that passes the stricter test, if that
place is within 2 km and gives no other house number.
Registers add trust. They never delete a place. A register we use as the primary source for a category also works the other way, as described in Official registers.
GET /v1/catalog lists each country's registers under layers.gov_registers, with each
register's name and publisher under sources. The Data page shows the same
per country.
Closed places
A place is marked closed when a record the register lists as closed matches it: nearby, in the same category group, and by a stricter name test than verifying uses. Registers that give only a postcode never mark a place closed. The mark is skipped in two cases.
- A register confirms the place as open.
- An open record near the closed record has a name that matches the place. A register still lists the business as open next door.
Marks come only from a register's own closed records, never from a record that disappeared. A place with no mark is not proven open: most categories have no register.
Closed places stay in the data. closed names the register and, when it gives one, the
closing date.
Source counts and min_sources says which
endpoints leave them out on include_closed=false.
How we measure accuracy
For each register with a judged sample, an AI judges a random sample of its matches: is
each pair the same place? match_accuracy on the register's entry in GET /v1/catalog gives
the share of pairs judged the same place, with a 95% interval. Closed marks are not measured
this way.
We check the places themselves against Google Places. The Accuracy page
shows agreement and coverage for each country, including agreement by number of sources.
GET /v1/benchmark returns the same figures.
Choosing filters
| You want | Send |
|---|---|
| Reliable results for most uses | Nothing. The default keeps verified places and places with 2 or 3 sources. |
| As many places as possible, accepting some wrong | min_sources=1 |
| Only places a register or TravelTime transport data confirms | verified=true. Expect gaps where a category or country has no register. |
| Places every open source agrees on | min_sources=3. Verified places and public transport places are still included. |
| No places a register says have closed | include_closed=false, on any endpoint that takes min_sources. |
GET /v1/pois/{id} ignores all three filters, so read source_count, verified and closed
from the place and apply your own rule.