Skip to content

Sample project

Multi-City POI Data Analysis

Building a comparable category census across five metro areas, and the standardisation work that made the comparison valid.

Markets
5 metro areas
Records collected
94,200 raw
After dedupe
71,480 unique
Refresh
Quarterly
Duration
6 weeks initial
Raw records
94,200

Collected across five full metro boundaries

Unique POIs
71,480

After documented deduplication

Category labels
14 → 1

Standardised with a published mapping

Quarterly refresh
4 days

Down from six weeks for the initial build

Problem

What needed answering

A research team needed to compare how one retail category was structured across five metro areas. Published industry figures existed for two of them, disagreed with each other, and used definitions neither source fully explained.

The requirement was not just a count. They needed the same category definition applied identically in every market, chain ownership resolved so concentration could be measured, and a baseline that could be re-run every quarter without the method drifting.

The obstacle was category chaos. Across sources and cities, the same type of business appeared under fourteen distinct labels, and two of those labels were also used for a different type of business in one of the markets.

Data sources

What went in

  • Map platform listings

    Primary source for venue names, categories, coordinates, hours and status.

  • Public business directories

    Secondary coverage check and a source of registered trading names.

  • Company registers

    Public filings used to resolve which trading names belong to the same group.

  • Census population data

    Per-market population, used to compute penetration per 10,000 residents.

  • Metro boundary definitions

    Consistent statistical geography so 'the market' means the same thing everywhere.

Method

How it was done

Collection was tiled across each full metro boundary rather than driven by city-name search, which is the single biggest source of undercounting in multi-city work. Suburban locations are systematically missed when coverage follows a search box.

Deduplication used a documented business key: normalised name plus address, with a 50 m distance threshold for near matches. The raw-to-unique ratio varied meaningfully between markets, which itself flagged one source as over-representing a particular chain.

Category standardisation reduced fourteen source labels to one defined category, with every mapping decision recorded in a lookup table delivered alongside the data. The two ambiguous labels were resolved by inspecting a sample of venues manually rather than by rule.

Chain ownership was resolved by matching trading names against public company filings, then reviewed by hand for the top forty groups. Automated matching alone was around 88% correct, which is not good enough when the output is a concentration statistic.

The whole pipeline was parameterised by market and by quarter so that the second run required configuration rather than reconstruction.

Processing

The pipeline

Each stage produced an artefact that the next stage consumed, so any result can be traced back to the input that created it.

  1. 01

    Raw collection

    Raw JSON

    94,200 records collected across five full metro boundaries, tiled systematically so suburban coverage matched central coverage.

  2. 02

    Deduplication

    Unique POI table

    Normalised name plus address matching with a 50 m distance threshold, reducing the set to 71,480 unique locations with source keys retained.

  3. 03

    Category standardisation

    Mapping table

    Fourteen source labels mapped to one defined category, with ambiguous cases resolved by manual inspection and the full mapping published.

  4. 04

    Chain resolution

    Brand hierarchy

    Trading names matched against public company filings and reviewed manually for the largest groups, enabling honest concentration measures.

  5. 05

    Comparable census

    Census dataset

    Counts, penetration per 10,000 residents and chain share by market, delivered as a quarterly-refreshable baseline.

Visualization

The output

Collected POI density across one of the five study metrosSparseDense

Data

Results table

Sample project · Comparable census across five markets
MarketRaw recordsUnique POIsDedupe rate %Per 10k residentsChain share %
Metro A28,40021,18025.44.138.2
Metro B19,90015,64021.45.622.7
Metro C17,60013,02026.03.251.4
Metro D16,10012,86020.16.817.9
Metro E12,2008,78028.02.444.6

Findings

The key comparison

  • Metro Dhighest penetration6.8
  • Metro B5.6
  • Metro Alargest absolute count4.1
  • Metro C3.2
  • Metro Emost consolidated2.4
Locations per 10,000 residents. Absolute counts rank the markets in a completely different order.

Result

What the analysis showed

  • Ranked by absolute count, Metro A led by a wide margin. Ranked per capita, it placed third, and the two markets the team had considered marginal turned out to be the most densely served.

  • Chain share varied from 17.9% to 51.4% across markets that industry commentary had treated as broadly similar. That spread became the central finding of the research rather than a footnote.

  • Deduplication rates ranged from 20.1% to 28.0%. Published figures for two markets sat almost exactly at the raw, undeduplicated numbers, which explained why those figures disagreed with each other.

  • The quarterly re-run took four days rather than six weeks, because the pipeline was parameterised rather than rebuilt.

Deliverables

What was handed over

  • Unique POI dataset of 71,480 records across five markets, with stable identifiers
  • Category mapping table covering all fourteen source labels
  • Brand and chain hierarchy resolved against public company filings
  • Comparable census tables with counts, penetration and concentration by market
  • Coverage and validation report stating achieved coverage per market
  • Parameterised pipeline configured for quarterly refresh with change logs

Next step

Want something similar for your market?

Tell us the geography, the category and the decision. We will scope the equivalent project and send a fixed price before any work starts.