Facility Discovery

How to reconcile a satellite-built facility list against a trade directory

Pull any trade directory for a sector built around physical sites, aggregate yards, asphalt plants, bulk terminals, gravel pits, and you're looking at a membership list dressed up as a market map. It counts who paid dues or filled out a listing form. It doesn't count who's actually running a site. Those are different populations, and the gap between them is usually bigger than anyone on the commercial team wants to admit.

A satellite-built list starts from the other end: physical presence. It's built from what's on the ground that matches a signature, a stockpile, a tank farm, a conveyor layout, a fleet yard with a particular footprint. The two lists will disagree, sometimes by a lot, and sorting out why tells you more about the market than either list alone.

Why the two lists never match

Trade directories miss sites for predictable reasons. A facility opened after the last directory print run. An operator never joined the association because the dues didn't pencil out for a two-person yard. A site got folded into a larger corporate listing so it shows up once under a head office address instead of once per location. None of that is fraud or laziness, it's just how opt-in lists work.

Satellite sweeps miss things for different reasons. A new plant gets built between imagery passes and shows up a year late. A site that looks like your target signature from above turns out to be something else on the ground, a staging yard for a different industry, a decommissioned facility with equipment still parked on it. Annual cadence means you're always working with a sweep that's current as of the last pass, not as of this morning.

Neither list is wrong. They're measuring different things: declared presence versus physical presence.

A reconciliation pass, step by step

Start by geocoding the directory. Most trade directories list a mailing address, which is not the same as a site address, so this step alone turns up surprises before you've even touched the satellite data.

Next, buffer-match the two sets. Set a radius around each directory point, something sane for the sector, and flag every satellite hit that falls inside a buffer as a probable match. Anything outside every buffer is a candidate for one of two buckets: a site the directory never had, or a satellite hit that isn't your target type and needs a human look.

Then work the directory entries with no satellite hit nearby. Some of these are closed sites still carrying an old listing. Some are head-office addresses with no physical footprint at all. A few will be real misses, usually because the imagery pass predates construction or the site sits under tree cover or structure that breaks the signature.

Finally, name-match what's left. Fuzzy string matching on operator name catches cases where the same company runs a site under a slightly different name than its directory listing, a regional subsidiary, a DBA, a name change the directory hasn't caught up with yet.

What to do with the leftovers

The unmatched satellite hits are the actual find. These are the sites your directory, and by extension your sales territory maps and account coverage models, don't know exist. Some will turn out to be noise once someone checks them. Most won't. Running the sweep against the directory instead of relying on either one alone gets you there: the directory gives you names and company structure, the satellite pass gives you a count that doesn't depend on who signed up.

The unmatched directory entries are mostly a cleanup list: dead addresses and defunct listings that are normal in any membership-based dataset updated once a year or less.

If you're doing this reconciliation by hand against a directory that's already stale by the time it's published, an annual, country-scale facility sweep gives you a cleaner baseline to check against, one that starts from a current, geocoded count instead of last year's membership roster.

Run the two lists side by side once, and you'll stop treating either one as the market.

Start a pilot
← Back to the blog