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
- Unique POIs
- 71,480
- Category labels
- 14 → 1
- Quarterly refresh
- 4 days
Collected across five full metro boundaries
After documented deduplication
Standardised with a published mapping
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.
- 01
Raw collection
Raw JSON94,200 records collected across five full metro boundaries, tiled systematically so suburban coverage matched central coverage.
- 02
Deduplication
Unique POI tableNormalised name plus address matching with a 50 m distance threshold, reducing the set to 71,480 unique locations with source keys retained.
- 03
Category standardisation
Mapping tableFourteen source labels mapped to one defined category, with ambiguous cases resolved by manual inspection and the full mapping published.
- 04
Chain resolution
Brand hierarchyTrading names matched against public company filings and reviewed manually for the largest groups, enabling honest concentration measures.
- 05
Comparable census
Census datasetCounts, penetration per 10,000 residents and chain share by market, delivered as a quarterly-refreshable baseline.
Visualization
The output
Data
Results table
| Market | Raw records | Unique POIs | Dedupe rate % | Per 10k residents | Chain share % |
|---|---|---|---|---|---|
| Metro A | 28,400 | 21,180 | 25.4 | 4.1 | 38.2 |
| Metro B | 19,900 | 15,640 | 21.4 | 5.6 | 22.7 |
| Metro C | 17,600 | 13,020 | 26.0 | 3.2 | 51.4 |
| Metro D | 16,100 | 12,860 | 20.1 | 6.8 | 17.9 |
| Metro E | 12,200 | 8,780 | 28.0 | 2.4 | 44.6 |
Findings
The key comparison
- Metro Dhighest penetration6.8
- Metro B5.6
- Metro Alargest absolute count4.1
- Metro C3.2
- Metro Emost consolidated2.4
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
Keep exploring
Where to go next
Related services
- POI DataBusiness and point-of-interest records with categories, coordinates and attributes.
- Data CollectionCustom data collection and structured datasets built around one specific question.
- Web ScrapingCollect structured data from websites and public sources, on a schedule you control.
- Geospatial DataLocation, road, boundary and land-use datasets, cleaned and projected correctly.
Related reading
- What Is POI Data?A POI record is a name, a category and a coordinate. Everything that makes POI data hard lives in those three fields.
- GIS Data Analysis for Market ResearchSurvey research tells you what people say. Spatial analysis tells you what is actually there. The two answer different halves of the same question.
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.