For retail, consumer brands & site selection

Site selection and trade-area analysis without a mapping specialist

Pick locations the way your analysts wish they could. Census demographics, drive-time trade areas, your competitor list, and your loyalty spreadsheet — all in one workflow. From 'should we open in Tampa?' to a board-ready map in minutes.

What it looks like

A typical workflow for retail, consumer brands & site selection teams. Each line is one operation; together they take a few minutes and produce a published map plus a downloadable dataset.

# "Score 12 candidate sites in Tampa: median household income above
#  $75,000 within a 10-minute drive, no competitor inside 1 mile."

mcp.call("bulk_match_addresses", { records: candidate_sites })
  → 12 latitude/longitude pairs

// Fan out one drive-time area per candidate (geo_isochrone runs point-by-point):
const tradeAreas = await Promise.all(sites.map(s =>
  mcp.call("geo_isochrone", { point: [s.lng, s.lat], minutes: [10], profile: "driving" })
));

mcp.call("geo_intersect_dataset", { dataset: "competitor_locations", geometry: tradeAreas })
  → competitor count per trade area

mcp.call("census_acs", {
  collection: "us-zcta", version: "tiger-2024",
  year: 2023,
  variables: ["B19013_001E", "B01003_001E"],   // median household income, total population
  slug: "tampa-zip-demographics",
})
  → income + population for every ZIP code inside each trade area

mcp.call("describe_report", { slug: "tampa-12-sites" })
  → "Sites #3 and #7 lead on combined income + density; site #11 has zero
     competitors within 1 mile..."

What you can build

The tools you'd actually use

bulk_match_addresses
Candidate-site addresses → latitude/longitude + county
geo_isochrone
Drive-time trade areas around any location
geo_intersect_dataset
Competitor count inside each trade area
census_acs
Income, density, age, education per ZIP code or county
geo_voronoi
Territory carve-up around existing stores
shapes_within_radius
Every ZIP code within X miles of a candidate
render_map_bivariate
Income × density two-variable scoring
describe_report
Claude writes the deck-ready summary

How it differs from the alternative

vs. Placer.ai / SafeGraph: $30,000-plus per year for the data, then build your own pipeline. We're $50/month and the joins are already done. vs. building in-house with Census data + an open-source routing engine: every step is one Model Context Protocol call instead of a notebook plus a basemap subscription.

Pricing for retail, consumer brands & site selection teams

Most retail teams run on Pro ($50/month, 50,000 calls + sub-workspaces for each region or brand). High-cadence buyers run Enterprise. Full pricing details.

Score 12 sites before the next planning meeting.

Free tier covers your first 50 calls — usually one full scoring round.

Get an API key

The same toolkit also covers grassroots organizing platforms & campaign tooling · healthcare & life sciences · civic tech & journalism · real estate & property tech · insurance & risk modeling · logistics, delivery & field service · research, academia & think tanks · pollsters & survey research firms — one U.S.-geography surface for any team whose question comes down to where.