OPPORTUNITY MAP
Each circle is a ZIP, placed at its geographic centroid on a real basemap. Hover for a quick read; click a circle (or a table row) for full detail and to zoom. Drag/scroll to pan and zoom.
TOP TRADE AREAS
Non-overlapping catchments built greedily from the highest-scoring anchor ZIPs at the current radius. Combined demand vs combined competition. Click a row to map it.
ZIP DETAIL
Click a ZIP on the map or a row in Top Trade Areas above to narrow this list to that catchment (use "Clear selection" in the sidebar panel to go back to all ZIPs). Every ZIP inherits its trade area's score and rank.
SHORTLIST / COMPARE
Star a trade area in the Top Trade Areas table above to add it here for side-by-side comparison.
HOW THE TRADE AREA SCORE WORKS
The primary score is calculated per trade area (a catchment of ZIPs within the selected radius of a high-scoring anchor), not per individual ZIP — patients don't stop at ZIP boundaries, so a small ZIP embedded in a strong broader market is scored on that market, not penalized for its own size. Trade areas are built greedily and non-overlapping: the highest-scoring anchor claims every unclaimed ZIP within radius, then the next-highest anchor does the same, and so on. Every ZIP inherits its trade area's score and rank.
Within each trade area, components are percentile-ranked against all other trade areas at the current radius, then weighted per the selected scoring model: Demand 30% (combined children under 18) · Ability to pay 25% (weighted-avg % households > $100k) · Unmet need 30% (children per practice location, weighted 75%, blended with children per dentist, weighted 25%; areas with no local practices/dentists rank highest) · Accessibility 15% (weighted-avg % households with a vehicle).
Practice locations (physical dental offices — organization NPIs, 120 metro locations) are weighted more heavily than raw dentist headcount for competitive supply, since patients choose an office to visit, not a headcount of individual providers (which academic/hospital clusters can inflate). Dentist supply = individual pediatric-dentistry specialists (NPI taxonomy 1223P0221X) with a practice location in the ZIP (288 metro individuals; sourced from CMS NPPES via npidb.org). Academic/hospital clusters (e.g. 19134 with ~38 residents/faculty, 19104, 19115) inflate counts in a few urban ZIPs and aren't private-practice competition.
The "ZIP-Only Score" column and legend option retain the original single-ZIP percentile scoring (no catchment pooling) for reference/comparison.
Within each trade area, components are percentile-ranked against all other trade areas at the current radius, then weighted per the selected scoring model: Demand 30% (combined children under 18) · Ability to pay 25% (weighted-avg % households > $100k) · Unmet need 30% (children per practice location, weighted 75%, blended with children per dentist, weighted 25%; areas with no local practices/dentists rank highest) · Accessibility 15% (weighted-avg % households with a vehicle).
Practice locations (physical dental offices — organization NPIs, 120 metro locations) are weighted more heavily than raw dentist headcount for competitive supply, since patients choose an office to visit, not a headcount of individual providers (which academic/hospital clusters can inflate). Dentist supply = individual pediatric-dentistry specialists (NPI taxonomy 1223P0221X) with a practice location in the ZIP (288 metro individuals; sourced from CMS NPPES via npidb.org). Academic/hospital clusters (e.g. 19134 with ~38 residents/faculty, 19104, 19115) inflate counts in a few urban ZIPs and aren't private-practice competition.
The "ZIP-Only Score" column and legend option retain the original single-ZIP percentile scoring (no catchment pooling) for reference/comparison.