BizGapMap

Home / Fitness & recreational sports centers / California / San Bernardino County, CA

San Bernardino County, CA — Gyms Saturation

How many gyms 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. 109 ZIP codes analyzed.

Includes: Gyms & fitness centers · CrossFit boxes · Boxing, martial arts & dance studios · Recreational sports centers. Counted together because official statistics use one 713940 code.

Measured density: Range spans bands — 0.66× the U.S. rate (between 0.66× and 1.13× 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. 84 ZIP cells in this county are withheld, 62 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

Range spans the U.S. rate   San Bernardino County gyms — 66–113% of the U.S. rate

173 gyms are counted in San Bernardino County — 0.7 per 10,000 people present (residents + daytime workers), 66% of the U.S. rate of 1.0.

On the comparable ZIP set (ZIPs with a published count in every year), the total has risen 55% between 2015 and 2023 (78 → 121). 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 92373 (Redlands), 92374 (Redlands), 91786 (Upland) — well above the national rate. On measured density alone, the lowest-density residential ZIPs with a published count are 92336 (Fontana), 91764 (Ontario), 91762 (Ontario).

BLS QCEW puts the latest county-wide count (2026 Q1) at 203 establishments, the freshest available signal.

Measured density: San Bernardino County sits at 66% of the U.S. rate for gyms. 62 ZIPs with population have no published count (each 0–2 businesses), so the true per-capita rate is between 66% and 113% of the U.S. rate. Why. The highest measured density is in 92373 and 92374; the lowest measured density is in 92336 and 91764.

This is a supply-side read: it counts existing gyms 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.

Gyms
173–341
published count; upper bound counts each withheld ZIP cell as 2 (84 cells) (2023)
Per 10,000 present
0.7
residents + daytime workers
U.S. average
1.0
per 10,000 present
County index
0.66×
vs. U.S.
Latest quarter (QCEW)
203
2026 Q1 — county total
Residents
2,195,107
87 ZIPs with data
Workers
711,262
jobs located in county

Is the area growing?

Population
2,214,281
Census PEP, July 1 2024
Change since 2020
+1.4%
+30,755 people
Net migration 2024
+3,724
international +9,984, domestic −6,260
Jobs located here
841,615
LODES 2022, +9.4% since 2019

San Bernardino County had an estimated 2,214,281 residents on July 1, 2024 — 1.4% more than in 2020 (+30,755). In the latest year it gained 13,476 people: births minus deaths +9,604, international migration +9,984, domestic migration −6,260. Components are published separately and may not sum exactly.

841,615 jobs were located in the county in 2022 (+9.4% since 2019), and 942,704 employed residents lived there (+7.2% 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→2022 spans the pandemic, so read it as one change, not a trend.

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
91708 Chino
+379.2%
92256 Morongo Valley
+35.8%
92394 Victorville
+19.2%
ZIP losing residents
2015–19 → 2020–24
Change
91710 Chino
−14.2%
92346 Highland
−12.0%
92324 Colton
−4.3%

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

Not shown. NES 2024 does not publish fitness and recreational sports centers (NAICS 71394); only the broader recreation group (7139) is available.

Census Nonemployer Statistics 2024 (NAICS 2022). We do not approximate this figure.

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 gyms 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 55% since 2015

Number of gyms in San Bernardino 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.

78
2015
107
2018
114
2020
107
2021
122
2022
121
2023

Highest measured density

ZIP
vs. U.S. average
Index
92373 Redlands
211%
92374 Redlands
199%
91786 Upland
171%
91730 Rancho Cucamonga
130%
92404 San Bernardino
129%
91710 Chino
128%
92407 San Bernardino
126%
91709 Chino Hills
126%
92399 Yucaipa
115%
92395 Victorville
112%
92284 Yucca Valley
106%
92311 Barstow
105%
91739 Rancho Cucamonga
103%
92410 San Bernardino
95%
92308 Apple Valley
85%

Lowest measured density

ZIP
vs. U.S. average
Index
92336 Fontana
35%
91764 Ontario
41%
91762 Ontario
56%
92376 Rialto
60%
92345 Hesperia
61%
92346 Highland
62%
92392 Victorville
67%
91701 Rancho Cucamonga
71%
91761 Ontario
85%
92308 Apple Valley
85%
92410 San Bernardino
95%
91739 Rancho Cucamonga
103%
92311 Barstow
105%
92284 Yucca Valley
106%
92395 Victorville
112%
Low measured density is not evidence of opportunity. A ZIP with few gyms 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 ResidentsWorkersGymsIndex
92408San Bernardino Employment hub 14,32553,660 5 118%
92350Loma Linda Employment hub 3442,352 0–2 —
92364Nipton Destination 797 0–2 —
92401San Bernardino Employment hub 1,6593,378 0–2 —

Scroll the table sideways to see all columns.

All ZIP codes

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

ZIPNeighborhood ResidentsWorkersGyms Per 10kIndexStatus
92373Redlands 35,25721,800 10 2.2 211% High density
92374Redlands 45,26226,678 12 2.0 199% High density
91786Upland 55,82925,012 12 1.8 171% High density
91730Rancho Cucamonga 71,61351,205 13 1.3 130% Above average
92404San Bernardino 63,2439,026 9 1.3 129% Above average
91710Chino 78,75440,333 13 1.3 128% Above average
92407San Bernardino 71,71110,988 10 1.3 126% Above average
91709Chino Hills 78,00614,381 11 1.3 126% Above average
92408San Bernardino 14,32553,660 5 1.2 118% Above average
92399Yucaipa 55,3667,769 7 1.2 115% Above average
92395Victorville 47,3759,843 6 1.1 112% Above average
92284Yucca Valley 25,4154,558 3 1.1 106% Above average
92311Barstow 33,9546,604 4 1.1 105% Above average
91739Rancho Cucamonga 41,67311,454 5 1.1 103% Above average
92410San Bernardino 47,8696,508 5 1.0 95% Below average
92308Apple Valley 42,7095,955 4 0.9 85% Below average
91761Ontario 62,93580,635 9 0.9 85% Below average
91701Rancho Cucamonga 39,2873,424 3 0.7 71% Below average
92392Victorville 65,42914,518 5 0.7 67% Below average
92346Highland 56,17914,141 4 0.6 62% Below average
92345Hesperia 88,70612,884 6 0.6 61% Below average
92376Rialto 84,39425,088 6 0.6 60% Below average
91762Ontario 64,23511,224 4 0.6 56% Below average
91764Ontario 56,27031,385 3 0.4 41% Far below average
92336Fontana 105,51712,653 4 0.4 35% Far below average
91708Chino 19,2137,009 0–2 — — Not published
91729Rancho Cucamonga —348 0–2 — — Not published
91737Rancho Cucamonga 22,9583,913 0–2 — — Not published
91743Guasti —7 0–2 — — Not published
91758Ontario —67 0–2 — — Not published
91759Mt Baldy 34176 0–2 — — Not published
91763Montclair 37,70012,536 0–2 — — Not published
91784Upland 26,8863,894 0–2 — — Not published
91785Upland —62 0–2 — — Not published
92242Earp 1,359185 0–2 — — Not published
92252Joshua Tree 7,5381,190 0–2 — — Not published
92256Morongo Valley 4,209243 0–2 — — Not published
92267Parker Dam 0151 0–2 — — Not published
92268Pioneertown 434137 0–2 — — Not published
92277Twentynine Palms 26,2771,626 0–2 — — Not published
92278Twentynine Palms 3,913401 0–2 — — Not published
92285Landers 2,76458 0–2 — — Not published
92286Yucca Valley —24 0–2 — — Not published
92301Adelanto 38,5773,763 0–2 — — Not published
92304Amboy 035 0–2 — — Not published
92305Angelus Oaks 533112 0–2 — — Not published
92307Apple Valley 41,1809,065 0–2 — — Not published
92309Baker 343391 0–2 — — Not published
92310Fort Irwin 8,4191,906 0–2 — — Not published
92312Barstow —28 0–2 — — Not published
92313Grand Terrace 13,0782,241 0–2 — — Not published
92314Big Bear City 9,334601 0–2 — — Not published
92315Big Bear Lake 5,2155,701 0–2 — — Not published
92316Bloomington 32,76513,511 0–2 — — Not published
92317Blue Jay 916379 0–2 — — Not published
92318Bryn Mawr —38 0–2 — — Not published
92321Cedar Glen 724100 0–2 — — Not published
92322Cedarpines Park 77028 0–2 — — Not published
92324Colton 57,36520,473 0–2 — — Not published
92325Crestline 9,065995 0–2 — — Not published
92327Daggett 576123 0–2 — — Not published
92329Phelan —31 0–2 — — Not published
92331Fontana —280 0–2 — — Not published
92332Essex 10542 0–2 — — Not published
92333Fawnskin 30252 0–2 — — Not published
92334Fontana —258 0–2 — — Not published
92335Fontana 97,51130,986 0–2 — — Not published
92337Fontana 36,02621,209 0–2 — — Not published
92338Ludlow 073 0–2 — — Not published
92339Forest Falls 1,302140 0–2 — — Not published
92340Hesperia —188 0–2 — — Not published
92341Green Valley Lake 40698 0–2 — — Not published
92342Helendale 7,606345 0–2 — — Not published
92344Hesperia 21,3491,246 0–2 — — Not published
92347Hinkley 76689 0–2 — — Not published
92350Loma Linda 3442,352 0–2 — — Not published
92352Lake Arrowhead 6,2461,449 0–2 — — Not published
92354Loma Linda 22,05119,065 0–2 — — Not published
92356Lucerne Valley 6,5431,007 0–2 — — Not published
92357Loma Linda —3,094 0–2 — — Not published
92358Lytle Creek 672179 0–2 — — Not published
92359Mentone 9,284754 0–2 — — Not published
92363Needles 5,5311,076 0–2 — — Not published
92364Nipton 797 0–2 — — Not published
92365Newberry Springs 2,192178 0–2 — — Not published
92368Oro Grande 906356 0–2 — — Not published
92369Patton 2,5752,856 0–2 — — Not published
92371Phelan 21,5801,155 0–2 — — Not published
92372Pinon Hills 5,149151 0–2 — — Not published
92375Redlands —140 0–2 — — Not published
92377Rialto 20,8145,807 0–2 — — Not published
92378Rimforest 315182 0–2 — — Not published
92382Running Springs 5,215876 0–2 — — Not published
92385Skyforest 198170 0–2 — — Not published
92386Sugarloaf 2,042140 0–2 — — Not published
92391Twin Peaks 2,254171 0–2 — — Not published
92393Victorville —263 0–2 — — Not published
92394Victorville 41,6145,012 0–2 — — Not published
92397Wrightwood 5,8541,152 0–2 — — Not published
92398Yermo 2,609332 0–2 — — Not published
92401San Bernardino 1,6593,378 0–2 — — Not published
92402San Bernardino —97 0–2 — — Not published
92405San Bernardino 31,2172,538 0–2 — — Not published
92406San Bernardino —225 0–2 — — Not published
92411San Bernardino 27,2493,739 0–2 — — Not published
92415San Bernardino 0106 0–2 — — Not published
92423San Bernardino —84 0–2 — — Not published
92427San Bernardino —88 0–2 — — Not published
93562Trona 1,849500 0–2 — — Not published

Scroll the table sideways to see all columns.

Find an actual space in Ontario

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 Ontario retail space →
Crexi
Free listings + market data
Browse Ontario retail space →
CityFeet
Retail space for lease
Browse Ontario 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 San Bernardino County and gyms

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 713940 — fitness & recreational sports centers (gyms). Counts establishments with paid employees. ZBP is published annually with a ~2-year lag.

Fresh county signal. BLS QCEW (quarterly) is newer than ZBP — 2026 Q1 shows 203 establishments county-wide for this industry. 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.03 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.