Free dataset, CC BY 4.0
Commercial building stock across 100 US metros
Across 100 US metros we count 1,977,317 serviceable commercial buildings. For the plumbing and HVAC comparison, buildings per contractor location run from about 5 to 62, and the comparison also shows local plumbing and HVAC employment growth.
The building stock is useful across trades. The competition and employment axis is specifically Census NAICS 238220, not an all-trade claim.
Buildings per rival against local trade employment growth
Metro building density is plotted against CBSA-level plumbing and HVAC contractor employment growth from 2018 to 2023. Bubble size is serviceable building count; color shows establishment structure.
Top right: more buildings per rival, with faster local trade employment growth.
Top left: fewer buildings per rival, with faster local trade employment growth.
Bottom right: more buildings per rival, with slower local trade employment growth.
Bottom left: fewer buildings per rival, with slower local trade employment growth.
Quadrant lines are the medians of the places plotted, not fixed thresholds, so a position means "compared with everywhere else measured here" rather than passing some absolute bar. The y-axis is CBSA-level plumbing and HVAC contractor employment from Census County Business Patterns, measured directly for 2018 and 2023.
Most room per firm
Columbus, OH · 62 buildings per rival location
Memphis, TN · 60 buildings per rival location
Naples, FL · 54 buildings per rival location
Most contested
Boise City, ID · 5 buildings per rival location
Manchester, NH · 13 buildings per rival location
Portland, ME · 13 buildings per rival location
room and momentum
More buildings per competing location, with faster metro plumbing and HVAC employment growth.
| Metro | Serviceable buildings | Per rival location | Metro trade employment growth |
|---|---|---|---|
| Dallas, TX | 72,608 | 30 | +21.8% |
| Atlanta, GA | 50,451 | 28 | +18.2% |
| Phoenix, AZ | 49,232 | 28 | +22.7% |
| Detroit, MI | 39,028 | 35 | +17.5% |
| Tampa, FL | 38,371 | 27 | +19.4% |
| Orlando, FL | 30,051 | 31 | +19.2% |
| Columbus, OH | 28,414 | 62 | +30.6% |
| Charlotte, NC | 26,168 | 27 | +18.1% |
| Las Vegas, NV | 24,589 | 39 | +54.4% |
| Sacramento, CA | 23,853 | 30 | +22.9% |
| St. Louis, MO | 22,114 | 27 | +17.3% |
| San Jose, CA | 22,046 | 40 | +28.2% |
| Kansas City, MO | 21,724 | 33 | +23.4% |
| Portland, OR | 21,238 | 27 | +25.8% |
| North Port, FL | 20,483 | 40 | +32.8% |
| Nashville, TN | 19,706 | 33 | +34.3% |
| Fresno, CA | 13,636 | 49 | +36.3% |
| Richmond, VA | 13,331 | 29 | +24.7% |
| Grand Rapids, MI | 13,305 | 39 | +22.9% |
| Louisville/Jefferson County, KY | 12,173 | 27 | +28.1% |
| Naples, FL | 11,669 | 54 | +39.0% |
| Bakersfield, CA | 9,782 | 47 | +47.8% |
| Greenville, SC | 9,386 | 29 | +40.2% |
| Knoxville, TN | 9,159 | 33 | +31.8% |
| Greensboro, NC | 8,117 | 27 | +25.1% |
| Winston, NC | 7,276 | 29 | +28.4% |
| Stockton, CA | 6,740 | 33 | +28.3% |
| Des Moines, IA | 6,328 | 29 | +25.1% |
| Spokane, WA | 6,191 | 33 | +28.3% |
growing but crowded
Fewer buildings per competing location, with faster metro plumbing and HVAC employment growth.
| Metro | Serviceable buildings | Per rival location | Metro trade employment growth |
|---|---|---|---|
| Austin, TX | 19,250 | 23 | +27.4% |
| Jacksonville, FL | 16,178 | 27 | +18.2% |
| Cape Coral, FL | 14,631 | 27 | +38.1% |
| Raleigh, NC | 12,941 | 23 | +28.1% |
| Providence, RI | 12,134 | 16 | +29.2% |
| Salt Lake City, UT | 11,392 | 22 | +30.6% |
| Omaha, NE | 9,884 | 27 | +26.7% |
| Oklahoma City, OK | 8,575 | 13 | +25.3% |
| Albuquerque, NM | 8,272 | 26 | +18.7% |
| Allentown, PA | 7,254 | 27 | +24.5% |
| Palm Bay, FL | 6,783 | 25 | +30.3% |
| Kiryas Joel, NY | 6,509 | 19 | +22.5% |
| Charleston, SC | 6,485 | 24 | +23.3% |
| Bridgeport, CT | 6,162 | 17 | +20.8% |
| Ogden, UT | 5,379 | 18 | +52.2% |
| Fayetteville, AR | 5,361 | 22 | +22.9% |
| Wilmington, NC | 5,191 | 22 | +87.8% |
| Portland, ME | 4,495 | 13 | +28.5% |
| Atlantic City, NJ | 3,707 | 20 | +53.7% |
| Barnstable Town, MA | 2,755 | 13 | +29.7% |
| Boise City, ID | 1,817 | 5 | +43.6% |
open but flat
More buildings per competing location, with slower metro plumbing and HVAC employment growth.
| Metro | Serviceable buildings | Per rival location | Metro trade employment growth |
|---|---|---|---|
| Los Angeles, CA | 141,184 | 37 | +9.8% |
| Houston, TX | 64,385 | 34 | +1.2% |
| Riverside, CA | 45,624 | 32 | +8.6% |
| San Francisco, CA | 44,178 | 37 | -2.0% |
| San Diego, CA | 41,222 | 38 | +15.9% |
| Seattle, WA | 37,539 | 35 | +11.4% |
| Indianapolis, IN | 23,418 | 39 | +7.7% |
| Cincinnati, OH | 21,498 | 34 | +13.7% |
| Memphis, TN | 20,900 | 60 | +17.1% |
| Cleveland, OH | 19,922 | 33 | +6.6% |
| Virginia Beach, VA | 18,374 | 30 | +6.2% |
| Tucson, AZ | 14,439 | 42 | +16.2% |
| Birmingham, AL | 13,359 | 31 | +11.5% |
| Milwaukee, WI | 13,271 | 33 | +9.2% |
| Dayton, OH | 11,331 | 51 | +16.3% |
| Rochester, NY | 10,310 | 36 | +2.0% |
| Buffalo, NY | 9,962 | 32 | +13.8% |
| Columbia, SC | 9,229 | 38 | +17.1% |
| Albany, NY | 8,565 | 34 | +2.7% |
| Lakeland, FL | 7,386 | 32 | +13.6% |
| Wichita, KS | 7,131 | 33 | +10.3% |
crowded and slow
Fewer buildings per competing location, with slower metro plumbing and HVAC employment growth.
| Metro | Serviceable buildings | Per rival location | Metro trade employment growth |
|---|---|---|---|
| New York, NY | 112,812 | 15 | -2.5% |
| Miami, FL | 68,639 | 26 | +11.6% |
| Chicago, IL | 57,710 | 19 | +4.9% |
| Philadelphia, PA | 45,428 | 21 | +16.2% |
| Washington, DC | 41,456 | 25 | -3.4% |
| Boston, MA | 35,637 | 16 | +10.4% |
| Denver, CO | 26,929 | 23 | -8.3% |
| Minneapolis, MN | 25,171 | 25 | +13.5% |
| Baltimore, MD | 23,717 | 24 | +15.7% |
| Pittsburgh, PA | 19,108 | 23 | -0.6% |
| San Antonio, TX | 16,729 | 21 | +14.4% |
| Tulsa, OK | 10,669 | 25 | -10.2% |
| Worcester, MA | 7,940 | 24 | +4.1% |
| Hartford, CT | 7,916 | 21 | +8.8% |
| Oxnard, CA | 7,874 | 24 | +3.6% |
| Santa Rosa, CA | 6,386 | 24 | +16.8% |
| Urban Honolulu, HI | 6,295 | 25 | -4.7% |
| Port St. Lucie, FL | 6,220 | 24 | +13.1% |
| New Orleans, LA | 6,105 | 17 | -17.6% |
| Colorado Springs, CO | 5,993 | 22 | -1.3% |
| Little Rock, AR | 5,878 | 19 | +16.1% |
| El Paso, TX | 5,697 | 26 | +2.1% |
| Lancaster, PA | 5,480 | 26 | +12.2% |
| Deltona, FL | 5,445 | 18 | +15.5% |
| Asheville, NC | 5,146 | 25 | +7.7% |
| Baton Rouge, LA | 4,428 | 16 | -27.7% |
| Provo, UT | 4,230 | 17 | +12.2% |
| New Haven, CT | 4,124 | 21 | -33.6% |
| Manchester, NH | 2,604 | 13 | +11.5% |
The denominator changes the answer. Read the companion analysis of contractor market density and competing-firm definitions before treating a middle-tier position as a precise rank.
Frequently asked questions
How is a metro's commercial building count measured?
Every structure inside the metro's Census boundary polygon with a commercial occupancy, a footprint over 4,000 square feet, and enough height to be real premises rather than a garage or a transformer housing. Counted per BUILDING rather than per parcel, which matters because roughly a fifth of commercial addresses carry more than one structure and a contractor bills per building. The count is a floor, not a census: national structure coverage is uneven by metro.
Why rank on buildings per firm rather than on market size?
Because ranking on size mostly ranks by population. Buildings per competing location adds a market-structure denominator. The second axis is plumbing and HVAC contractor employment growth measured directly for each metro by Census County Business Patterns from 2018 to 2023.
Do the competitor counts cover every trade?
No. The building stock is useful across trades, but competitor counts and employment growth use Census NAICS 238220, plumbing, heating, and air-conditioning contractors. The pages label that scope rather than implying it represents electrical, roofing, or fire protection.
Why tiers instead of a ranking of 1 to 100?
Because the middle of any such ranking is not stable. Using two defensible definitions of a competing firm, the rank correlation is 0.77: the extremes hold but mid-table positions move by several places. Publishing a precise order would claim a precision the data does not support, so we name the extremes, group the rest into tiers, and let the chart show position.
Sources, filters, and what this deliberately does not claimEvery source, the polygon rule that makes the counts possible, and why no regional multiplier is applied.
Buildings are counted per structure inside each metro's Census boundary polygon. That polygon step is not incidental: the national structure dataset leaves its ZIP, state and city fields empty across entire regions, so keying on an address field reports near-zero for real places. It reported 13 serviceable buildings for one metro whose true count is over four thousand, and it did not error.
Building counts: FEMA/ORNL USA Structures (CC BY 4.0). Competitors: US Census County Business Patterns, NAICS 238220, 2023 with a 2018 baseline on the same industry vintage. Construction growth: US Bureau of Economic Analysis state GDP by industry, NAICS 23, 2018 to 2025. This product uses the Census Bureau Data API but is not endorsed or certified by the Census Bureau.
Construction growth is a STATE figure applied to the metros inside it, and labelled as such on each page. BEA publishes construction GDP by state with no suppression; the county file is suppressed for about a tenth of counties, which would leave 17 of these 100 metros with a hole we could not disclose honestly. A state figure that is clearly labelled beats a metro figure quietly assembled from gaps.
Establishment counts are physical locations, not firms, and they are an average over a very uneven field: in a typical metro most locations have fewer than five employees and are not bidding for a portfolio of commercial service contracts. Each metro page publishes the full size distribution beside the average for that reason. NAICS 238220 is plumbing, heating, and air-conditioning, not an all-trade competitor count. A missing competitor count is shown as not published, never as zero.
Machine-readable, free to cite with attribution under CC BY 4.0: geo-building-stock.json, version 1.0.2, covering 100 metros and all 50 states plus DC.
Know which buildings are worth winning in your market
We measure what each building type is actually worth to a contractor, then benchmark your book against it. Free audit included.
No commitment. Real numbers, not generic advice.