Journal · 4 May 2026
Thai address systems and app events
If your store-match rate looks weak, you may not have a location problem. You may have asked a Western parser to understand a soi.
Thai addressing is not a failed version of street-plus-number. House numbers can restart, sois branch, and a mall may be known by a developer name, a BTS exit, and a nickname that never appears in the cadastral record. Reverse-geocoding that returns an English street string will still miss the branch your ops team actually runs.
What breaks in the event table
Apps that key visits to “normalized address == store address” silently drop legitimate pings. The user was there. The string was not. Analysts then invent a geofence radius large enough to compensate, and now the food court next door is in the funnel.
A better join is stable identifiers: internal branch IDs, plus a fence drawn with ops on a printed map, plus a human-readable label that is allowed to be unofficial. The address string can remain as a diagnostic field. It should not be the primary key.
Language and script
Thai and romanised forms of the same soi rarely match without a carefully maintained alias table. If your warehouse lowercases and strips punctuation, you have already destroyed distinctions that matter. Keep original script. Maintain aliases as data, not as regex folklore in a notebook.
Classroom use
Week six of District Signal Studio uses a small Bangkok branch list with mixed Thai and English labels. Students who trust the geocoder fail the join exercise on purpose; that failure is the lesson. For teams outside Thailand, the same pattern appears wherever informal place names outrun the gazetteer — which is most of Southeast Asia.
See also overlap in dense grids when the compensating radius gets out of hand.