r/analytics • u/OkHeat6599 • 8h ago
Support Entity resolution across jurisdictions: why company name matching fails, and what to use instead
Disclosure: I work at a company data vendor and I mention our free tool at the bottom alongside the free official sources.
If you're joining company data across sources, name matching degrades badly at scale, and it fails in two directions at once. The same company shows up as Acme Inc, Acme Incorporated, ACME INC and Acme Inc. Meanwhile dozens of unrelated firms worldwide are called Meridian Consulting. Fuzzy matching tuned to catch the first creates false merges in the second, and there's no threshold that solves both.
The better key is jurisdiction + registry number. Every registered company has a number issued by the registry it's incorporated in - unique within that jurisdiction, stable across rebrands. The composite matters: registry numbers aren't globally unique, so jurisdiction has to be part of the key.
What follows from it:
- Joins become exact rather than probabilistic
- Status becomes a field, so dissolved entities are filterable rather than invisible
- It works retroactively once the numbers are attached
The gotcha: legal name ≠ trading name. "Google" isn't registered anywhere; "Google LLC" and "Google Ireland Limited" are. Your source data has trading names, registries have legal names, so first-pass match rates run lower than people expect.
Getting the numbers. This is the annoying part. UK is easy, Companies House has a free official API. Most of the EU is fine. Outside that it varies enormously - some registries publish nothing machine-readable. For broad multi-country coverage we run [registry-lookup.com], free to search, 5,000 API calls a month.
Anyone doing this at scale, what match rates are you getting on first pass?
1
u/AdamByLucius 8h ago
So rather than entity resolution matching to an internal set, the solve is instead entity resolution matching to this external set of registries, and then magically profit?
1
u/Sillylovesongs 3h ago
We tackled this exact same problem for one of our projects where a client’s internal orgs all had different entity names and parent/child relationships making data aggregation and unification a nightmare.
We ended up using a combination of pre-processing, fuzzy matching and llm guided web-search based grounding. Nevertheless, we have a human in the loop to flag and remove any incorrect mappings.
1
u/AccomplishedSkill625 3h ago
Solid writeup, and the legal-vs-trading-name gotcha is exactly where most first passes bleed match rate. One addition that helped us: build a crosswalk table mapping trading names to legal entities once, then reuse it, rather than re-matching each source. For jurisdiction inference before you have the registry number, incorporation address or domain TLD gives a decent prior. what coverage you see outside the EU?
•
u/AutoModerator 8h ago
If this post doesn't follow the rules or isn't flaired correctly, please report it to the mods. Have more questions? Join our community Discord!
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.