BizGapMap

Home / Offices of physical, occupational & speech therapists / Michigan / Oakland County, MI

Oakland County, MI — Physical therapy Saturation

How many physical therapy exist per person present — residents plus daytime workers — by ZIP code, compared with the U.S. average. Establishment data: Census ZBP 2023. Population: ACS 2024 5-year. 84 ZIP codes analyzed.

Includes: Physical therapy clinics · Occupational therapy offices · Speech therapy offices · Audiology offices. Counted together because official statistics use one 621340 code.

Measured density: High density — 1.79× the U.S. rate (between 1.79× and 1.97× once withheld ZIP cells are counted)

Why a range: Census does not publish a ZIP-by-industry count when that ZIP has 0–2 businesses. 36 ZIP cells in this county are withheld, 19 of them with residents. Each could hold 0, 1, or 2 businesses: counting them all as 0 gives the low end, counting them all as 2 gives the high end — the data cannot say where the truth sits. The density range uses only the populated cells, since ZIPs without residents are excluded from per-person rates. How ranges work

High density   Oakland County physical therapy — 179–197% of the U.S. rate

380 physical therapy are counted in Oakland County — 2.3 per 10,000 people present (residents + daytime workers), 179% of the U.S. rate of 1.3.

On the comparable ZIP set (ZIPs with a published count in every year), the total has risen 50% between 2015 and 2023 (200 → 299). That set is smaller than today's county total. 2020–2021 were pandemic-distorted, and Census rounds counts, so small moves are within noise.

Measured supply density is highest in 48075 (Southfield), 48025 (Franklin), 48322 (West Bloomfield) — well above the national rate. On measured density alone, the lowest-density residential ZIPs with a published count are 48067 (Royal Oak), 48371 (Oxford), 48341 (Pontiac).

Census County Business Patterns (2023) puts the county-wide count at 395 establishments, including locations in ZIP codes that do not map to a ZCTA — so it can run slightly above the sum of the ZIP rows on this page. It is annual, so it lags more than QCEW.

Measured density: Oakland County sits at 179% of the U.S. rate for physical therapy. 19 ZIPs with population have no published count (each 0–2 businesses), so the true per-capita rate is between 179% and 197% of the U.S. rate. Why. The highest measured density is in 48075 and 48025; the lowest measured density is in 48067 and 48371.

This is a supply-side read: it counts existing physical therapy and the people present, not foot traffic, income, rent, or whether locals want more. Treat low density as a question to check, not an answer.

Physical therapy
380–452
published count; upper bound counts each withheld ZIP cell as 2 (36 cells) (2023)
Per 10,000 present
2.3
residents + daytime workers
U.S. average
1.3
per 10,000 present
County index
1.79×
vs. U.S.
Latest year (CBP)
395
2023 — $244M annual payroll
Residents
1,282,834
67 ZIPs with data
Workers
727,774
jobs located in county

Is the area growing?

Population
1,296,888
Census PEP, July 1 2024
Change since 2020
+1.9%
+24,362 people
Net migration 2024
+13,721
international +18,153, domestic −4,432
Jobs located here
726,660
LODES 2021, −6.6% since 2019

Oakland County had an estimated 1,296,888 residents on July 1, 2024 — 1.9% more than in 2020 (+24,362). In the latest year it gained 15,052 people: births minus deaths +1,288, international migration +18,153, domestic migration −4,432. Components are published separately and may not sum exactly.

726,660 jobs were located in the county in 2021 (−6.6% since 2019), and 563,863 employed residents lived there (−6.6% since 2019). LODES counts wage and salary jobs covered by unemployment insurance plus federal jobs; it excludes the self-employed and military, and counts jobs rather than unique people. 2019→2021 spans the pandemic, so read it as one change, not a trend. The 2022 file for this state is not usable, so 2021 is the latest year shown.

Population and migration say whether the customer base is growing. They do not say whether people want another business of this type. Definitions and limits →  ·  Full county detail →

ZIP gaining residents
2015–19 → 2020–24
Change
48165 New Hudson
+27.4%
48377 Novi
+18.4%
48393 Wixom
+18.1%
ZIP losing residents
2015–19 → 2020–24
Change
48320 Keego Harbor
−13.3%
48030 Hazel Park
−9.5%
48071 Madison Heights
−5.6%

ACS 5-year estimates for 2015–2019 and 2020–2024. Only ZIPs with at least 2,000 residents in both windows and a change larger than the survey margin of error (90%) are listed — small ZIPs move a lot on paper without a real signal.

Nonemployer businesses (no paid employees)

Nonemployer businesses
590
no paid employees (2024)
Receipts
$29.3M
published gross receipts
Receipts per business
$50K
gross, not profit

Census Nonemployer Statistics counts businesses with no paid employees — a separate universe from the employer establishments counted above; a business is in one or the other, never both. They are not storefronts by definition: many are home-based, mobile, or part-time.

We show them beside the density index, not inside it. In categories such as nail and beauty salons, child care, and pet care, one-person businesses can outnumber employer establishments, so the employer-only count understates how many businesses exist. That is not evidence of higher demand.

Receipts are gross revenue reported for these businesses — not profit, and not the size of the local market. Census publishes this only at county level, so it is not shown on the ZIP map. See methodology.

Saturation map

Each ZIP area is shaded by its density of this business type per person present (residents + workers) vs. the U.S. average. Click any ZIP to zoom to its boundary, see its numbers, and switch to aerial imagery. Individual mapped shops appear as dots at street level — Show locations zooms you in to them (scroll or double-click to zoom).

Basemap:
Under 50% 50–100% 100–150% 150–250% 250%+ 0–2 (not published) / no data ZIP total (dot size) Mapped shop (OpenStreetMap, street level)

Map data © OpenStreetMap contributors, tiles by OpenFreeMap.

White dots are ZIP totals from the official Census count — the bigger the dot, the more physical therapy in that ZIP. They are aggregated, not individual shops. Turquoise dots are individual locations mapped in OpenStreetMap, shown only at street level; they are crowd-sourced and indicative, may be incomplete, and do not equal the official counts. Only the official ZIP totals feed the saturation index.

Market trend — up 50% since 2015

Number of physical therapy in Oakland County across 2015–2023, on a consistent set of ZIP codes present in every year — so changes are real, not ZIP-boundary artifacts. 2015/2018 are pre-pandemic baselines; 2020/2021 are COVID-distorted.

200
2015
254
2018
268
2020
287
2021
296
2022
299
2023

Highest measured density

ZIP
vs. U.S. average
Index
48075 Southfield
542%
48025 Franklin
491%
48322 West Bloomfield
381%
48083 Troy
379%
48034 Southfield
368%
48070 Huntington Woods
355%
48346 Clarkston
347%
48374 Novi
335%
48071 Madison Heights
332%
48381 Milford
326%
48307 Rochester
323%
48334 Farmington
312%
48302 Bloomfield Hills
307%
48360 Lake Orion
290%
48304 Bloomfield Hills
282%

Lowest measured density

ZIP
vs. U.S. average
Index
48067 Royal Oak
76%
48371 Oxford
82%
48341 Pontiac
84%
48348 Clarkston
88%
48335 Farmington
96%
48393 Wixom
107%
48377 Novi
119%
48098 Troy
119%
48309 Rochester
120%
48442 Holly
121%
48323 West Bloomfield
125%
48306 Rochester
131%
48328 Waterford
143%
48220 Ferndale
149%
48386 White Lake
161%
Low measured density is not evidence of opportunity. A ZIP with few physical therapy may simply lack foot traffic, retail space, or demand. We rank only residential and mixed ZIPs here; employment hubs and visitor destinations are listed separately below. ZIPs where Census did not publish a count (0–2 businesses) are not ranked: they may be the least served of all, but the data cannot tell 0 from 1 or 2. Verify those locally.

Employment hubs & destinations

These ZIPs have far more workers (or visitors) than residents, so their counts are driven by daytime and visitor demand — not a place to read "shortage" from resident numbers alone.

ZIPNeighborhoodType ResidentsWorkersPhysical therapyIndex
48084Troy Employment hub 15,96042,532 9 188%
48326Auburn Hills Employment hub 24,51461,963 7 98%

Scroll the table sideways to see all columns.

All ZIP codes

Click a column header to sort. Index = physical therapy per 10,000 people present (residents + 0.5×workers) ÷ the U.S. average. 100% = exactly average.

ZIPNeighborhood ResidentsWorkersPhysical therapy Per 10kIndexStatus
48075Southfield 22,84128,976 26 7.0 542% Very high density
48025Franklin 14,73411,743 13 6.3 491% Very high density
48322West Bloomfield 32,88511,793 19 4.9 381% Very high density
48083Troy 23,77138,686 21 4.9 379% Very high density
48034Southfield 14,79629,575 14 4.7 368% Very high density
48070Huntington Woods 6,328481 3 4.6 355% Very high density
48346Clarkston 23,1677,498 12 4.5 347% Very high density
48374Novi 17,6726,466 9 4.3 335% Very high density
48071Madison Heights 28,41922,868 17 4.3 332% Very high density
48381Milford 14,0945,166 7 4.2 326% Very high density
48307Rochester 44,71421,200 23 4.2 323% Very high density
48334Farmington 19,61820,591 12 4.0 312% Very high density
48302Bloomfield Hills 17,50510,644 9 3.9 307% Very high density
48360Lake Orion 12,1162,627 5 3.7 290% Very high density
48304Bloomfield Hills 17,3879,411 8 3.6 282% Very high density
48085Troy 27,2319,479 9 2.8 219% High density
48359Lake Orion 10,4017,768 4 2.8 218% High density
48375Novi 24,02919,397 9 2.7 208% High density
48073Royal Oak 33,10616,949 11 2.6 206% High density
48076Southfield 25,40517,788 9 2.6 204% High density
48336Farmington 26,43210,708 8 2.5 196% High density
48084Troy 15,96042,532 9 2.4 188% High density
48362Lake Orion 14,9663,416 4 2.4 187% High density
48072Berkley 15,1493,081 4 2.4 186% High density
48301Bloomfield Hills 14,6824,318 4 2.4 185% High density
48033Southfield 17,27718,086 6 2.3 177% High density
48382Commerce Township 24,4794,280 6 2.3 175% High density
48178South Lyon 37,7894,611 9 2.2 175% High density
48327Waterford 20,9604,841 5 2.1 166% High density
48462Ortonville 13,2791,544 3 2.1 166% High density
48237Oak Park 29,3187,626 7 2.1 164% High density
48390Walled Lake 23,9399,857 6 2.1 162% High density
48386White Lake 17,8563,040 4 2.1 161% High density
48220Ferndale 21,5279,144 5 1.9 149% Above average
48328Waterford 24,4785,444 5 1.8 143% Above average
48306Rochester 28,3892,601 5 1.7 131% Above average
48323West Bloomfield 17,2352,746 3 1.6 125% Above average
48442Holly 22,7885,750 4 1.6 121% Above average
48309Rochester 30,68516,075 6 1.5 120% Above average
48098Troy 20,93623,670 5 1.5 119% Above average
48377Novi 19,81625,952 5 1.5 119% Above average
48393Wixom 20,14517,775 4 1.4 107% Above average
48326Auburn Hills 24,51461,963 7 1.3 98% Below average
48335Farmington 25,07714,430 4 1.2 96% Below average
48348Clarkston 24,5743,910 3 1.1 88% Below average
48341Pontiac 18,92417,441 3 1.1 84% Below average
48371Oxford 25,9724,925 3 1.1 82% Below average
48067Royal Oak 24,86811,460 3 1.0 76% Below average
48007Troy —209 0–2 — — Not published
48009Birmingham 21,77217,066 0–2 — — Not published
48012Birmingham —93 0–2 — — Not published
48017Clawson 11,3503,620 0–2 — — Not published
48030Hazel Park 14,9634,379 0–2 — — Not published
48037Southfield —416 0–2 — — Not published
48068Royal Oak —175 0–2 — — Not published
48069Pleasant Ridge 2,602261 0–2 — — Not published
48086Southfield —372 0–2 — — Not published
48099Troy —606 0–2 — — Not published
48165New Hudson 9,5665,480 0–2 — — Not published
48303Bloomfield Hills —953 0–2 — — Not published
48308Rochester —18 0–2 — — Not published
48320Keego Harbor 4,2772,007 0–2 — — Not published
48321Auburn Hills —236 0–2 — — Not published
48324West Bloomfield 17,0981,254 0–2 — — Not published
48325West Bloomfield —57 0–2 — — Not published
48329Waterford 24,7154,787 0–2 — — Not published
48330Drayton Plains —6 0–2 — — Not published
48331Farmington 21,56222,442 0–2 — — Not published
48332Farmington —292 0–2 — — Not published
48333Farmington —37 0–2 — — Not published
48340Pontiac 25,6696,764 0–2 — — Not published
48342Pontiac 17,5646,412 0–2 — — Not published
48343Pontiac —358 0–2 — — Not published
48347Clarkston —141 0–2 — — Not published
48350Davisburg 8,163630 0–2 — — Not published
48356Highland 8,365956 0–2 — — Not published
48357Highland 8,7182,336 0–2 — — Not published
48361Lake Orion —113 0–2 — — Not published
48363Oakland 7,362410 0–2 — — Not published
48367Leonard 4,668307 0–2 — — Not published
48370Oxford 1,777151 0–2 — — Not published
48376Novi —98 0–2 — — Not published
48380Milford 7,1256,640 0–2 — — Not published
48383White Lake 13,2851,540 0–2 — — Not published

Scroll the table sideways to see all columns.

Find an actual space in Auburn Hills

The numbers above tell you how the market looks. To find a specific storefront, these marketplaces list available retail space for lease.

LoopNet
Largest commercial marketplace
Browse Auburn Hills retail space →
Crexi
Free listings + market data
Browse Auburn Hills retail space →
CityFeet
Retail space for lease
Browse Auburn Hills retail space →

Open vacancy data (actual empty units) is only published by some cities; where it exists we show it directly. Listings above are third-party.

Census withholds some ZIP-by-industry cells to protect small businesses. 0–2 means the cell was not published (Census publishes industry counts only at 3+ per ZIP), so the ZIP is left unranked rather than counted as zero. ~ means the count is estimated from the broader industry group and can be off by a business or two.

Follow Oakland County and physical therapy

When a data vintage changes or a section of this report is revised, we post it to a public update feed. No email address, no account, no tracking — and nothing is sent unless something actually changed.

Subscribe to updates (RSS) How these numbers are built →

Methodology & sources

Establishments. U.S. Census ZIP Code Business Patterns (ZBP 2023), NAICS 621340 — offices of physical, occupational and speech therapists, and audiologists. Counts establishments with paid employees. ZBP is published annually with a ~2-year lag.

Fresh county signal. This industry has no clean QCEW series, so the freshest county signal is Census County Business Patterns 2023: 395 establishments and $244M in annual payroll county-wide. This count includes locations in ZIP codes that do not map to a ZCTA, so it can be slightly higher than the sum of the ZIP rows. CBP is annual and slower than QCEW. It cannot be broken down by ZIP.

Population. U.S. Census American Community Survey 2024 5-year ZCTA population (table B01003). Workers are the ZIP's total employment from the same 2023 ZBP file.

Demand ("people present"). Demand comes from residents and daytime workers: residents + 0.5 × workers. This is the single documented assumption in the model and can be tuned.

Index. index = (ZIP establishments ÷ ZIP demand × 10,000) ÷ the U.S. average for this industry (1.29 per 10,000 present). It is a supply-side density measure; it does not capture income, rent, tourism, or whether locals actually want more.

Read the full methodology →  ·  Data sources & vintages →

BizGapMap — free, no-login small-business saturation reports for major U.S. counties. Built entirely from public U.S. Census, BLS, and IRS data (ZBP 2023, ACS 2024 5-year, PEP 2024, LODES, QCEW, IRS SOI). No forecasts, no revenue guesses — withheld cells are marked, and the few derived counts are labelled as estimates.