Skip to main content
2,200+ contractors in the research universe benchmarked. Do you know your gross profit per labor hour? See where you stand →
Level

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.

Coverage varies by metro. Density reflects retained building records, not a complete inventory or a measured service-market share. Connecticut metro employment counts span boundary changes: the retained 2018 and 2023 values are not certified to the same boundary, so their percentage difference is not proven growth or decline. Open the metro page before using its plotted position to choose a territory.

Service Demand by StateBuilding Opportunity by StateBuilding Opportunity by Metro

Buildings per rival against local trade employment growth

Captured building density is plotted against the retained 2018-to-2023 plumbing and HVAC employment-count difference. Connecticut comparisons are not boundary-harmonized and do not prove growth or decline. Bubble size is retained serviceable building count; color shows establishment structure.

Vertical axis: Plumbing/HVAC employment growth, 2018 to 2023

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.

consolidatingfragmentingstableBubble size = serviceable commercial building count.

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 buildings per contractor location

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

More captured buildings per location, above-median employment change

More captured buildings per contractor location, with employment change above the plotted metro median. Coverage differences can affect the density comparison.

MetroServiceable buildingsPer rival location2018-2023 trade employment change
Dallas, TX72,60830+21.8%
Atlanta, GA50,45128+18.2%
Phoenix, AZ49,23228+22.7%
Detroit, MI39,02835+17.5%
Tampa, FL38,37127+19.4%
Orlando, FL30,05131+19.2%
Columbus, OH28,41462+30.6%
Charlotte, NC26,16827+18.1%
Las Vegas, NV24,58939+54.4%
Sacramento, CA23,85330+22.9%
St. Louis, MO22,11427+17.3%
San Jose, CA22,04640+28.2%
Kansas City, MO21,72433+23.4%
Portland, OR21,23827+25.8%
North Port, FL20,48340+32.8%
Nashville, TN19,70633+34.3%
Fresno, CA13,63649+36.3%
Richmond, VA13,33129+24.7%
Grand Rapids, MI13,30539+22.9%
Louisville/Jefferson County, KY12,17327+28.1%
Naples, FL11,66954+39.0%
Bakersfield, CA9,78247+47.8%
Greenville, SC9,38629+40.2%
Knoxville, TN9,15933+31.8%
Greensboro, NC8,11727+25.1%
Winston, NC7,27629+28.4%
Stockton, CA6,74033+28.3%
Des Moines, IA6,32829+25.1%
Spokane, WA6,19133+28.3%

Fewer captured buildings per location, above-median employment change

Fewer captured buildings per contractor location, with employment change above the plotted metro median. Coverage differences can affect the density comparison.

MetroServiceable buildingsPer rival location2018-2023 trade employment change
Austin, TX19,25023+27.4%
Jacksonville, FL16,17827+18.2%
Cape Coral, FL14,63127+38.1%
Raleigh, NC12,94123+28.1%
Providence, RI12,13416+29.2%
Salt Lake City, UT11,39222+30.6%
Omaha, NE9,88427+26.7%
Oklahoma City, OK8,57513+25.3%
Albuquerque, NM8,27226+18.7%
Allentown, PA7,25427+24.5%
Palm Bay, FL6,78325+30.3%
Kiryas Joel, NY6,50919+22.5%
Charleston, SC6,48524+23.3%
Bridgeport, CT6,16217+20.8%Boundary changed; counts are not directly comparable.
Ogden, UT5,37918+52.2%
Fayetteville, AR5,36122+22.9%
Wilmington, NC5,19122+87.8%
Portland, ME4,49513+28.5%
Atlantic City, NJ3,70720+53.7%
Barnstable Town, MA2,75513+29.7%
Boise City, ID1,8175+43.6%

More captured buildings per location, below-median employment change

More captured buildings per contractor location, with employment change below the plotted metro median. Below-median change can still be positive growth; inspect the actual percentage.

MetroServiceable buildingsPer rival location2018-2023 trade employment change
Los Angeles, CA141,18437+9.8%
Houston, TX64,38534+1.2%
Riverside, CA45,62432+8.6%
San Francisco, CA44,17837-2.0%
San Diego, CA41,22238+15.9%
Seattle, WA37,53935+11.4%
Indianapolis, IN23,41839+7.7%
Cincinnati, OH21,49834+13.7%
Memphis, TN20,90060+17.1%
Cleveland, OH19,92233+6.6%
Virginia Beach, VA18,37430+6.2%
Tucson, AZ14,43942+16.2%
Birmingham, AL13,35931+11.5%
Milwaukee, WI13,27133+9.2%
Dayton, OH11,33151+16.3%
Rochester, NY10,31036+2.0%
Buffalo, NY9,96232+13.8%
Columbia, SC9,22938+17.1%
Albany, NY8,56534+2.7%
Lakeland, FL7,38632+13.6%
Wichita, KS7,13133+10.3%

Fewer captured buildings per location, below-median employment change

Fewer captured buildings per contractor location, with employment change below the plotted metro median. Below-median change can still be positive growth; inspect the actual percentage.

MetroServiceable buildingsPer rival location2018-2023 trade employment change
New York, NY112,81215-2.5%
Miami, FL68,63926+11.6%
Chicago, IL57,71019+4.9%
Philadelphia, PA45,42821+16.2%
Washington, DC41,45625-3.4%
Boston, MA35,63716+10.4%
Denver, CO26,92923-8.3%
Minneapolis, MN25,17125+13.5%
Baltimore, MD23,71724+15.7%
Pittsburgh, PA19,10823-0.6%
San Antonio, TX16,72921+14.4%
Tulsa, OK10,66925-10.2%
Worcester, MA7,94024+4.1%
Hartford, CT7,91621+8.8%Boundary changed; counts are not directly comparable.
Oxnard, CA7,87424+3.6%
Santa Rosa, CA6,38624+16.8%
Urban Honolulu, HI6,29525-4.7%
Port St. Lucie, FL6,22024+13.1%
New Orleans, LA6,10517-17.6%
Colorado Springs, CO5,99322-1.3%
Little Rock, AR5,87819+16.1%
El Paso, TX5,69726+2.1%
Lancaster, PA5,48026+12.2%
Deltona, FL5,44518+15.5%
Asheville, NC5,14625+7.7%
Baton Rouge, LA4,42816-27.7%
Provo, UT4,23017+12.2%
New Haven, CT4,12421-33.6%Boundary changed; counts are not directly comparable.
Manchester, NH2,60413+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 meeting the building-height filter described in the methodology. 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 compare buildings per contractor location rather than market size?

Because ranking on size mostly ranks by population. Buildings per competing location adds a market-structure denominator. The second axis compares published Census County Business Patterns employment counts for plumbing and HVAC contractors in 2018 and 2023. Connecticut changed geographic boundaries, so its count changes are not confirmed growth or decline in the same territory.

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.

The chart uses metro-specific plumbing/HVAC employment change. The dataset also retains construction growth as STATE-level context; it is not a metro observation. 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. The full geographic dataset retains establishment-size context where available; inspect it before treating every location as an equally sized competitor. 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

Use scoped building scenarios and verified local records to evaluate your territory and operating book.

2,200+ businesses benchmarked$13.25B in revenue analyzedWeekly action cadence

No credit card. Start with a 15-min call. We only follow up if we can actually help.

No commitment. Real numbers, not generic advice.