How we decide a market is underserved.
No panel, no proprietary index, no black box. Two public federal datasets, one regression, and a residual. Everything below is checkable — including the parts that don't work, which are further down this page.
Demand is measured. Supply is measured. The gap is what's left over.
The insight is that you don't have to guess how many businesses a market should support. Every county in the country already ran that experiment, and the Census counted the result.
-
STAGE 01
Score demand
Census ACS demographics are assembled for all 33,774 ZIP code tabulation areas, then weighted per industry — a daycare and a self-storage facility want opposite things from the same neighbourhood.
13–23 weighted signals per industry.
Standardized, clipped at ±3σ.
Output is a percentile, 0–100. -
STAGE 02
Predict supply
An ordinary-least-squares fit across US counties learns how many establishments in a given NAICS industry the demographics actually support — trained only on counties where the Census publishes a real count.
log(establishments) ~ demographics
Fit per NAICS industry code.
Suppressed counties excluded. -
STAGE 03
Take the residual
Actual minus predicted. Negative means fewer operators than the demographics justify — a supply gap. Positive means the market is already saturated relative to what it can support.
residual = actual − predicted
Standardized across counties.
Broadcast to every ZIP in that county.
Sources are public and citable: the American Community Survey for demographics and County Business Patterns 2022 — 1,100,804 county-by-industry records — for establishment counts. Nothing here is licensed, scraped, or modelled from a panel. You can check any number against the Census yourself.
Madison, Alabama — taken apart line by line.
ZCTA 35756, ranked second in the country for self-storage. This is the actual output, not an illustration. Every figure below comes from the shipped dataset.
Renter share is a headwind here — self-storage skews renter-heavy and Madison is 19.4% against a 32.7% median. It ranks second anyway, because growth of that magnitude outweighs it. The report shows you both sides; nothing is hidden to make a market look better than it is.
Most of the work is refusing to over-claim.
Three decisions do more for the quality of a shortlist than any amount of feature engineering. All three make the numbers less exciting and more true.
-
01
Small markets aren't trusted at face value
A 400-household hamlet reporting 96% owner-occupancy is a handful of houses, not a reliable 96%. Every rate is pulled toward the national mean in proportion to how little population backs it.
shrunk = (n·x + k·μ) / (n + k) k = 2,000 -
02
Unmeasured is not the same as empty
The Census withholds establishment counts that would identify an individual business. Those counties are marked unmeasured — never scored as zero competitors, which would make a suppressed rural county look like open territory.
absent row → unknown, not 0 -
03
Scores are ranks, not ratings
A 90 means the market scores higher than 90% of markets for that industry. It does not mean 90% of some ceiling. Ranks stay comparable across industries; invented absolute scales do not.
score = percentile rank within industry
Where the method applies, and where it stops.
Demand scoring runs everywhere. Supply-gap modelling only runs where the Census publishes enough establishment data to fit a defensible model — which is 20 of the 38 industries.
| Coverage | Markets | Counties | Jurisdictions | Supply gap |
|---|---|---|---|---|
| 30 industries — standard threshold | 22,564 | 3,130 | 52 | where data allows |
| 6 industries — higher threshold | 21,275 | 3,082 | 52 | where data allows |
| Daycare — plus catchment floor | 11,011 | 1,547 | 52 | yes |
| Self-storage — plus catchment floor | 10,051 | 1,294 | 52 | yes |
| 18 industries — demand only | — | — | 52 | not enough Census data |
A scored market is any ZIP code tabulation area with at least 800 residents and 400 households — the floor below which a local business has no catchment. Six industries use 1,000 / 500. Self-storage and daycare additionally require a 5-mile catchment of 20,000 and 15,000 residents, because a facility needs people within driving distance, not just inside the ZIP boundary. Supply-gap modelling spans 2,924 counties in total. "Jurisdictions" is 50 states plus DC and Puerto Rico.
What this cannot tell you.
Every vendor's data looks confident everywhere. Here is where ours genuinely isn't — so you can weigh it before you rely on it, rather than after.
Supply is county-resolution
The Census publishes establishment counts by county, not by address. We allocate them across a 5-mile catchment, but we cannot tell you that three competitors sit on the same road as your site. Drive the market before you sign.
Some industries share a Census code
Self-storage and RV/boat storage are both NAICS 531130; HVAC and plumbing are both 238220. The Census counts them together, so their supply figures are identical. We report the combined category rather than inventing a split.
Demographics, not real estate
Nothing here knows about zoning, parcel availability, traffic counts, or what a site costs. A market can score 98 and still have nowhere to build. This narrows a search from thousands of candidates to a shortlist — it does not pick the site.
The data is as current as the Census
ACS and County Business Patterns run on a release cycle, and CBP 2022 is the current vintage. A market that changed dramatically in the last eighteen months may not show it yet. Fast-moving markets are exactly where local knowledge still beats data.
Coverage and known limitations are versioned alongside the data. If a figure on this page stops matching what the product returns, that's a bug — tell us and we'll fix it.
The method is only useful on a market you care about.
Pick an industry and a region and we'll run it — ranked shortlist, score drivers, supply gap, and the operators already there. Same day.