I've been loading Overture's monthly places dumps into a side project - 307,100 places across 512 cities and 120 countries, read straight from the S3 Parquet with DuckDB, about three seconds per city on one small VPS. Two things cost me real time. Posting them in case they save someone else some.
- The category substring trap
Overture's categories.primary is a flat string like bar, cafe, parking. I had a rescue rule mapping "park" to my internal park category, matching on substring. That quietly swallows: parking, car_park, industrial_park, business_park, office_park, mobile_home_park, rv_park.
815 car parks ended up in a "parks" ranking on a live site before anyone noticed. What finally gave it away was a Q-Park garage in Paris rendering with a tree icon in sixth place.
To be clear, this is not an Overture data problem, and I checked before saying so: in a San Diego bbox, 219 of 219 places with "parking" in the name are correctly categorised as parking. The data was right, my matching was wrong. But the failure is silent and the output looks plausible, which is the worst combination.
Things that do need to pass through: skate_park, dog_park, national_park and state_park are all real places.
- categories is not the only option any more
If you are still reading categories, note that release 2026-08-19.0 ships all three side by side. I ran DESCRIBE against it today:
categories - struct(primary VARCHAR, alternate VARCHAR[])
basic_category - VARCHAR
taxonomy - struct(primary VARCHAR, hierarchy VARCHAR[], alternates VARCHAR[])
taxonomy.hierarchy is what I actually wanted all along: it gives you the ancestry, so you can match on a level instead of hoping one string does not contain another.
- Minor, but worth knowing
About 3.2% of the places in my extract (7,923 of 250,647) have no Latin-script primary name. If you generate URL slugs from names you need a transliteration step, or you end up with identifiers like place-78b0d703.
The project itself is a game (auracity.lol) if anyone is curious what 307k Overture places look like as a leaderboard, but the notes above are the part I thought was worth writing down.