Companion Research · Census CBP × ZIP Geography
The Trade Data project counts businesses by trade, countywide. This page breaks that same count down by ZIP code, and the ZIP with the most people is almost never the ZIP with the most businesses per person.
The Idea
The Trade Data project answered "how many roofing companies are in Tulsa County?" A single county-wide number is useful, but it flattens 33 real ZIP codes into one figure. It can't tell you whether those businesses are spread evenly across the county or piled up in a handful of specific places.
This page pulls the same 15 trades from the Census Bureau's County Business Patterns program, broken out by ZIP code, and cross-references each ZIP's count against its actual population. That last part matters more than it sounds: a ZIP with more people will almost always have more of everything, so a raw count mostly just measures population size. Dividing by population is what actually reveals a cluster.
At A Glance
The Data
Top ZIP (Per Capita) is the ZIP code with the highest establishment count relative to its own population, not the highest raw count. Per 10k Residents is establishments in that ZIP × 10,000, divided by that ZIP's population: the number that actually reveals a cluster instead of just a population center. ZIPs w/ Data shows how many of the 33 ZIPs had a usable published figure at all for that trade; the rest were too small to publish, not necessarily zero.
| Trade | Top ZIP (Per Capita) | Establishments There | Per 10k Residents | ZIPs w/ Data |
|---|---|---|---|---|
| Plumbing and HVAC contractors | 74116 (Tulsa) | 6 | 18.10 | 25 / 33 |
| Landscaping services | 74116 (Tulsa) | 6 | 18.10 | 20 / 33 |
| Offices of dentists | 74135 (Tulsa) | 32 | 15.95 | 21 / 33 |
| Site preparation contractors | 74116 (Tulsa) | 5 | 15.08 | 3 / 33 |
| Offices of chiropractors | 74135 (Tulsa) | 27 | 13.46 | 12 / 33 |
| General automotive repair | 74116 (Tulsa) | 4 | 12.07 | 16 / 33 |
| Electrical contractors | 74120 (Tulsa) | 6 | 11.39 | 21 / 33 |
| Plumbing and HVAC contractors (2nd) | 74145 (Tulsa) | 19 | 10.09 | N/A |
| Janitorial services | 74145 (Tulsa) | 11 | 5.84 | 15 / 33 |
| Pest control services | 74146 (Tulsa) | 9 | 5.62 | 6 / 33 |
| Masonry contractors | 74120 (Tulsa) | 3 | 5.69 | 6 / 33 |
| Roofing contractors | 74120 (Tulsa) | 3 | 5.69 | 12 / 33 |
| Veterinary services | 74132 (Tulsa) | 6 | 5.55 | 13 / 33 |
| Painting contractors | 74145 (Tulsa) | 6 | 3.19 | 11 / 33 |
| Finish carpentry contractors | 74145 (Tulsa) | 4 | 2.12 | 8 / 33 |
| Car washes | 74008 (Bixby) | 6 | 1.92 | 5 / 33 |
Establishments: U.S. Census Bureau, County Business Patterns (CBP), 2023. Population: American Community Survey 5-Year Estimates, 2022, table B01003. Geography: 33 ZIP Code Tabulation Areas with 50%+ of land area inside Tulsa County. Full per-ZIP data for all 15 trades is downloadable below.
Download the full dataset (JSON), every disclosed ZIP for all 15 trades, not just the top cluster shown above.
The Findings
A handful of small-population ZIPs punch far above their weight for trade businesses, and they're probably not residential. ZIP 74116 has only 3,315 residents, yet it's the single highest per-capita cluster for four different trades: plumbing/HVAC, landscaping, site preparation, and general auto repair, each in the 12-18 per-10,000-residents range. ZIP 74120 (5,270 residents, downtown Tulsa) does the same for masonry, roofing, and electrical. That combination, very few residents, disproportionately many trade businesses, reads like a commercial or industrial-zoned pocket where companies keep an office, yard, or shop, not a neighborhood where a lot of people actually live. This is an inference from the population-versus-business pattern, not a confirmed zoning fact.
Dentists and chiropractors cluster in the same ZIP, and it's not a coincidence. ZIP 74135 is the top per-capita cluster for both trades: 15.95 per 10,000 residents for dentists, 13.46 for chiropractors, well ahead of every other ZIP for either trade. Both are professional healthcare-office trades that tend to locate in medical office buildings and similar commercial real estate, so the same ZIP showing up as the top cluster for both is a real, coherent pattern, not noise.
Raw counts mostly just measure population, which is exactly why per-capita is the right lens. ZIP 74012 (Broken Arrow) has the largest population of any ZIP in this analysis, 63,498 (about 31% more than the next-largest) and it also posts the single highest raw establishment count for eight of the fifteen trades tracked. But once divided by population, it's the top per-capita cluster for none of them. That's not a contradiction; it's the whole point of normalizing by population instead of stopping at "which ZIP has the most."
The trades that showed almost no direct search interest in the companion Search Demand piece also show almost no ZIP-level clustering here. Masonry, site preparation, and car washes each had a usable published figure for only 3-6 of the 33 ZIPs analyzed (the lowest disclosure rates in the dataset) and none of their top clusters break above roughly 5-6 establishments per ZIP. That's consistent with the earlier finding that these trades either don't cluster in consumer-visible commercial corridors (masonry, site prep) or are still genuinely scarce everywhere (car washes), two independent data sources landing on the same read.
The Method
Geography: only ZIPs meaningfully inside Tulsa County. 41 ZIP Code Tabulation Areas (ZCTAs) intersect Tulsa County's boundary at all. Several of those are centered in a neighboring county with only a small sliver crossing the line. Sand Springs' primary ZIP, for example, has only 49.1% of its land area inside Tulsa County, and several others sit in the 10-30% range. This analysis kept only the 33 ZCTAs where at least half the land area falls inside Tulsa County, using the Census Bureau's own 2020 ZCTA-to-county relationship file to measure the overlap, not a guess at which suburb "counts."
Establishment counts come from the Census Bureau's County Business Patterns (CBP) API, 2023: the same 15 NAICS trade categories used throughout the Trade Data project, just queried at the ZIP level instead of the county level. Population comes from the American Community Survey 5-Year Estimates, 2022 (table B01003), matched by ZCTA. Both are pulled live from api.census.gov, not a static download, so the same query can be re-run to check it.
A real limitation, stated plainly: the API doesn't distinguish "zero" from "suppressed." Unlike BLS QCEW, which explicitly flags a cell as "not disclosed" when it withholds a number, the Census CBP API simply returns nothing at all for a ZIP/trade combination that's too small to publish. There's no flag, no explicit zero, just an empty response. That means a missing ZIP in the table above or the full dataset means "no usable published figure," never a confirmed zero. I checked this directly: querying masonry contractors for downtown Tulsa's ZIP came back completely empty, with no error and no zero value returned.
Per-capita, not raw count, because population varies enormously across these 33 ZIPs. The smallest ZIP analyzed has 25 residents; the largest has over 63,000. A raw establishment count without dividing by population mostly just measures how big a ZIP happens to be: the per-10,000-residents figure used throughout this page is establishments ÷ population × 10,000, nothing else folded in.
This product uses the Census Bureau Data API but is not endorsed or certified by the Census Bureau.
Full detail on the trade categories, wage data, and BLS sourcing this page depends on lives in the Trade Data project's own methodology; the search-demand side of the comparison is covered in the companion Search Demand piece.
FAQ
Related
Five years of BLS establishment counts, wages, and location quotients for all 15 trades, the countywide dataset this page breaks down by ZIP.
Learn more → Companion PieceWhere Google search demand outruns the number of businesses available to meet it, the demand side of this same 15-trade dataset.
Learn more →