How big is your contractor market?
This contractor market size model estimates serviceable annual services demand, employer-firm density by revenue tier, and local labor benchmarks for roofing, HVAC, and commercial cleaning in every state. National planning anchors are retained at roofing ~$70B, HVAC services ~$24B, commercial janitorial ~$60B; the state split is allocated by housing and commercial activity.
Interpretation reviewed October 7, 2026. Source model dated 2026-07-18. Anchored-and-allocated estimates, directional market sizing, not an independent per-state survey. Free to cite with attribution to Level (levelcfo.com).
What's my market worth?
Serviceable annual demand
$6.18B
$3.58B residential / $2.60B commercial (42% commercial)
Employer firms
2,265
776 at $1-5M · 113 at $5-10M · 56 at $10-25M
US Census employer firms (SUSB); the named tiers are the $1M+ segment. Excludes no-payroll sole proprietors.
Healthy financials (upper anchor)
34% GM
Installed Building Products (FY2025, public), a large scaled operator, upper reference not a typical private contractor.
National median wage for this trade: $24.51/hr (BLS OES, May 2024). State-level wages vary; this is the national figure.
How this is estimated: Total serviceable demand = residential + commercial, allocated to the state from the corrected national services-market anchor by a modeled housing + commercial-activity share (not a measured state floorspace estimate). Residential tracks Census single-family stock and replacement cycle; commercial uses a nonfarm-employment-weighted share. Firm counts and revenue tiers are modeled state allocations of national Census SUSB-based employer-firm references. HVAC includes an analyst split of the combined trade code; these are not directly measured state-by-tier counts. Building-permit records inform value MIX only (partial capture).
We estimate state business counts and company-size groups from national Census figures and each state’s share. Census did not directly count these state-by-size groups. HVAC also uses an estimated share of the combined plumbing, heating and AC category (NAICS 238220). These counts cover employers; businesses without employees are a different group, so not every competitor is included. HVAC and janitorial totals are planning assumptions with unresolved primary-source support. A 10% change to a national anchor changes its allocated state demand by approximately 10%, before rounding; it does not change employer-firm counts.
Market size by state
Roofing, HVAC, and commercial cleaning services demand plus employer-firm density for every state.
The labor market behind the demand
Market size tells you how much work is out there; wages tell you what it costs to staff for it. For what a healthy contractor actually earns, margins, collection rates, DSO, and revenue per employee from public-company filings and the 2,200-contractor dataset, see the contractor financial benchmarks.
National median wages by trade (BLS OES)
National figures. State-level wages vary; these are the national BLS medians.
Full market-size table (all states and trades)
Every one of the 153 rows: serviceable annual demand with residential/commercial split and modeled Census-based employer-firm counts by revenue tier. Free to cite with attribution.
Expand full 153-row state & trade market-size table
| State | Trade | Annual demand | Residential | Commercial | Firms $1-5M | Firms $5-10M | Firms $10-25M |
|---|---|---|---|---|---|---|---|
| Alaska | Commercial Cleaning | $128.3M | $0 | $128.3M | 10 | 3 | 0 |
| Alaska | HVAC | $51.6M | $28.4M | $23.2M | 37 | 7 | 2 |
| Alaska | Roofing | $150.9M | $87.5M | $63.4M | 12 | 2 | 1 |
| Alabama | Commercial Cleaning | $838.4M | $0 | $838.4M | 50 | 12 | 5 |
| Alabama | HVAC | $376.6M | $207.1M | $169.5M | 124 | 27 | 9 |
| Alabama | Roofing | $1.2B | $670.2M | $485.3M | 73 | 14 | 7 |
| Arkansas | Commercial Cleaning | $509.1M | $0 | $509.1M | 22 | 7 | 1 |
| Arkansas | HVAC | $226.6M | $124.6M | $102.0M | 90 | 17 | 7 |
| Arkansas | Roofing | $692.7M | $401.8M | $290.9M | 46 | 7 | 4 |
| Arizona | Commercial Cleaning | $1.2B | $0 | $1.2B | 226 | 44 | 8 |
| Arizona | HVAC | $515.6M | $283.6M | $232.0M | 594 | 66 | 24 |
| Arizona | Roofing | $1.5B | $887.0M | $642.3M | 276 | 43 | 20 |
| California | Commercial Cleaning | $6.9B | $0 | $6.9B | 670 | 167 | 34 |
| California | HVAC | $2.6B | $1.4B | $1.2B | 1,824 | 300 | 89 |
| California | Roofing | $7.2B | $4.2B | $3.0B | 798 | 128 | 68 |
| Colorado | Commercial Cleaning | $1.1B | $0 | $1.1B | 105 | 24 | 6 |
| Colorado | HVAC | $436.7M | $240.2M | $196.5M | 289 | 57 | 19 |
| Colorado | Roofing | $1.3B | $728.6M | $527.6M | 227 | 40 | 20 |
| Connecticut | Commercial Cleaning | $652.6M | $0 | $652.6M | 62 | 16 | 5 |
| Connecticut | HVAC | $257.3M | $141.5M | $115.8M | 193 | 29 | 12 |
| Connecticut | Roofing | $745.2M | $432.2M | $313.0M | 108 | 14 | 7 |
| District of Columbia | Commercial Cleaning | $271.8M | $0 | $271.8M | 10 | 2 | 1 |
| District of Columbia | HVAC | $74.6M | $41.0M | $33.6M | 17 | 3 | 1 |
| District of Columbia | Roofing | $170.3M | $98.8M | $71.5M | 11 | 1 | 0 |
| Delaware | Commercial Cleaning | $188.1M | $0 | $188.1M | 19 | 4 | 2 |
| Delaware | HVAC | $76.0M | $41.8M | $34.2M | 46 | 8 | 4 |
| Delaware | Roofing | $222.9M | $129.3M | $93.6M | 27 | 4 | 3 |
| Florida | Commercial Cleaning | $3.8B | $0 | $3.8B | 443 | 121 | 24 |
| Florida | HVAC | $1.6B | $865.3M | $707.9M | 969 | 184 | 60 |
| Florida | Roofing | $4.7B | $2.7B | $2.0B | 533 | 82 | 43 |
| Georgia | Commercial Cleaning | $1.9B | $0 | $1.9B | 317 | 51 | 14 |
| Georgia | HVAC | $760.1M | $418.1M | $342.0M | 702 | 88 | 32 |
| Georgia | Roofing | $2.2B | $1.3B | $932.7M | 442 | 48 | 22 |
| Hawaii | Commercial Cleaning | $244.5M | $0 | $244.5M | 18 | 5 | 2 |
| Hawaii | HVAC | $90.8M | $50.0M | $40.9M | 36 | 9 | 1 |
| Hawaii | Roofing | $255.2M | $148.0M | $107.2M | 22 | 4 | 1 |
| Iowa | Commercial Cleaning | $600.0M | $0 | $600.0M | 31 | 10 | 2 |
| Iowa | HVAC | $256.4M | $141.0M | $115.4M | 84 | 21 | 8 |
| Iowa | Roofing | $770.7M | $447.0M | $323.7M | 68 | 12 | 4 |
| Idaho | Commercial Cleaning | $335.8M | $0 | $335.8M | 27 | 6 | 2 |
| Idaho | HVAC | $142.6M | $78.5M | $64.2M | 65 | 13 | 5 |
| Idaho | Roofing | $427.6M | $248.0M | $179.6M | 47 | 6 | 4 |
| Illinois | Commercial Cleaning | $2.3B | $0 | $2.3B | 157 | 42 | 9 |
| Illinois | HVAC | $922.9M | $507.6M | $415.3M | 471 | 89 | 28 |
| Illinois | Roofing | $2.7B | $1.6B | $1.1B | 272 | 50 | 19 |
| Indiana | Commercial Cleaning | $1.2B | $0 | $1.2B | 75 | 25 | 6 |
| Indiana | HVAC | $518.2M | $285.0M | $233.2M | 204 | 43 | 13 |
| Indiana | Roofing | $1.5B | $895.8M | $648.7M | 139 | 21 | 10 |
| Kansas | Commercial Cleaning | $556.4M | $0 | $556.4M | 36 | 12 | 3 |
| Kansas | HVAC | $230.9M | $127.0M | $103.9M | 97 | 22 | 6 |
| Kansas | Roofing | $685.0M | $397.3M | $287.7M | 68 | 13 | 7 |
| Kentucky | Commercial Cleaning | $768.8M | $0 | $768.8M | 40 | 8 | 3 |
| Kentucky | HVAC | $334.2M | $183.8M | $150.4M | 111 | 22 | 11 |
| Kentucky | Roofing | $1.0B | $586.8M | $424.9M | 66 | 8 | 6 |
| Louisiana | Commercial Cleaning | $758.2M | $0 | $758.2M | 48 | 10 | 4 |
| Louisiana | HVAC | $330.5M | $181.8M | $148.7M | 170 | 33 | 10 |
| Louisiana | Roofing | $1.0B | $581.0M | $420.7M | 83 | 13 | 5 |
| Massachusetts | Commercial Cleaning | $1.4B | $0 | $1.4B | 126 | 26 | 9 |
| Massachusetts | HVAC | $515.4M | $283.5M | $231.9M | 362 | 60 | 19 |
| Massachusetts | Roofing | $1.4B | $820.2M | $593.9M | 188 | 25 | 12 |
| Maryland | Commercial Cleaning | $1.1B | $0 | $1.1B | 115 | 28 | 8 |
| Maryland | HVAC | $406.5M | $223.6M | $182.9M | 302 | 55 | 20 |
| Maryland | Roofing | $1.1B | $666.0M | $482.3M | 148 | 24 | 19 |
| Maine | Commercial Cleaning | $246.8M | $0 | $246.8M | 20 | 5 | 1 |
| Maine | HVAC | $117.5M | $64.6M | $52.9M | 52 | 7 | 2 |
| Maine | Roofing | $368.6M | $213.8M | $154.8M | 31 | 4 | 2 |
| Michigan | Commercial Cleaning | $1.7B | $0 | $1.7B | 132 | 33 | 9 |
| Michigan | HVAC | $769.1M | $423.0M | $346.1M | 304 | 55 | 17 |
| Michigan | Roofing | $2.4B | $1.4B | $993.6M | 181 | 27 | 16 |
| Minnesota | Commercial Cleaning | $1.1B | $0 | $1.1B | 89 | 20 | 6 |
| Minnesota | HVAC | $461.1M | $253.6M | $207.5M | 254 | 40 | 20 |
| Minnesota | Roofing | $1.3B | $781.5M | $565.9M | 166 | 29 | 15 |
| Missouri | Commercial Cleaning | $1.1B | $0 | $1.1B | 78 | 19 | 4 |
| Missouri | HVAC | $472.6M | $259.9M | $212.7M | 230 | 39 | 11 |
| Missouri | Roofing | $1.4B | $812.1M | $588.1M | 166 | 24 | 15 |
| Mississippi | Commercial Cleaning | $458.0M | $0 | $458.0M | 20 | 4 | 1 |
| Mississippi | HVAC | $210.7M | $115.9M | $94.8M | 54 | 13 | 4 |
| Mississippi | Roofing | $652.8M | $378.6M | $274.2M | 27 | 5 | 2 |
| Montana | Commercial Cleaning | $198.0M | $0 | $198.0M | 11 | 3 | 0 |
| Montana | HVAC | $86.4M | $47.5M | $38.9M | 38 | 7 | 2 |
| Montana | Roofing | $262.0M | $152.0M | $110.1M | 28 | 3 | 1 |
| North Carolina | Commercial Cleaning | $1.9B | $0 | $1.9B | 162 | 36 | 9 |
| North Carolina | HVAC | $783.9M | $431.2M | $352.8M | 442 | 72 | 21 |
| North Carolina | Roofing | $2.3B | $1.3B | $976.1M | 223 | 33 | 13 |
| North Dakota | Commercial Cleaning | $169.2M | $0 | $169.2M | 8 | 2 | 1 |
| North Dakota | HVAC | $66.4M | $36.5M | $29.9M | 30 | 5 | 3 |
| North Dakota | Roofing | $191.7M | $111.2M | $80.5M | 15 | 2 | 2 |
| Nebraska | Commercial Cleaning | $395.9M | $0 | $395.9M | 24 | 5 | 2 |
| Nebraska | HVAC | $160.5M | $88.3M | $72.2M | 66 | 13 | 5 |
| Nebraska | Roofing | $471.0M | $273.2M | $197.8M | 54 | 10 | 7 |
| New Hampshire | Commercial Cleaning | $266.5M | $0 | $266.5M | 23 | 6 | 0 |
| New Hampshire | HVAC | $109.0M | $59.9M | $49.0M | 72 | 18 | 4 |
| New Hampshire | Roofing | $321.1M | $186.2M | $134.9M | 43 | 7 | 3 |
| New Jersey | Commercial Cleaning | $1.7B | $0 | $1.7B | 160 | 60 | 9 |
| New Jersey | HVAC | $629.1M | $346.0M | $283.1M | 391 | 73 | 32 |
| New Jersey | Roofing | $1.8B | $1.0B | $750.2M | 208 | 29 | 11 |
| New Mexico | Commercial Cleaning | $330.5M | $0 | $330.5M | 17 | 5 | 1 |
| New Mexico | HVAC | $146.6M | $80.6M | $66.0M | 59 | 13 | 7 |
| New Mexico | Roofing | $447.5M | $259.6M | $188.0M | 29 | 5 | 3 |
| Nevada | Commercial Cleaning | $579.5M | $0 | $579.5M | 52 | 14 | 2 |
| Nevada | HVAC | $223.1M | $122.7M | $100.4M | 94 | 20 | 6 |
| Nevada | Roofing | $638.8M | $370.5M | $268.3M | 47 | 7 | 6 |
| New York | Commercial Cleaning | $3.7B | $0 | $3.7B | 264 | 69 | 15 |
| New York | HVAC | $1.3B | $714.8M | $584.8M | 876 | 150 | 41 |
| New York | Roofing | $3.6B | $2.1B | $1.5B | 390 | 51 | 22 |
| Ohio | Commercial Cleaning | $2.1B | $0 | $2.1B | 143 | 38 | 10 |
| Ohio | HVAC | $898.1M | $493.9M | $404.1M | 359 | 77 | 28 |
| Ohio | Roofing | $2.7B | $1.6B | $1.1B | 265 | 44 | 22 |
| Oklahoma | Commercial Cleaning | $665.5M | $0 | $665.5M | 42 | 9 | 1 |
| Oklahoma | HVAC | $290.8M | $159.9M | $130.8M | 162 | 24 | 9 |
| Oklahoma | Roofing | $882.1M | $511.6M | $370.5M | 88 | 14 | 3 |
| Oregon | Commercial Cleaning | $771.4M | $0 | $771.4M | 58 | 12 | 2 |
| Oregon | HVAC | $307.9M | $169.4M | $138.6M | 127 | 25 | 8 |
| Oregon | Roofing | $897.2M | $520.3M | $376.8M | 86 | 15 | 6 |
| Pennsylvania | Commercial Cleaning | $2.3B | $0 | $2.3B | 180 | 50 | 15 |
| Pennsylvania | HVAC | $963.1M | $529.7M | $433.4M | 532 | 82 | 33 |
| Pennsylvania | Roofing | $2.9B | $1.7B | $1.2B | 288 | 43 | 22 |
| Rhode Island | Commercial Cleaning | $194.9M | $0 | $194.9M | 15 | 3 | 2 |
| Rhode Island | HVAC | $75.0M | $41.2M | $33.7M | 38 | 5 | 1 |
| Rhode Island | Roofing | $214.6M | $124.5M | $90.1M | 23 | 4 | 2 |
| South Carolina | Commercial Cleaning | $910.7M | $0 | $910.7M | 65 | 14 | 5 |
| South Carolina | HVAC | $390.0M | $214.5M | $175.5M | 151 | 33 | 10 |
| South Carolina | Roofing | $1.2B | $680.5M | $492.8M | 75 | 14 | 4 |
| South Dakota | Commercial Cleaning | $178.3M | $0 | $178.3M | 9 | 2 | 0 |
| South Dakota | HVAC | $72.9M | $40.1M | $32.8M | 35 | 6 | 2 |
| South Dakota | Roofing | $214.9M | $124.6M | $90.2M | 19 | 3 | 1 |
| Tennessee | Commercial Cleaning | $1.3B | $0 | $1.3B | 83 | 21 | 5 |
| Tennessee | HVAC | $530.1M | $291.6M | $238.6M | 212 | 45 | 17 |
| Tennessee | Roofing | $1.6B | $911.3M | $659.9M | 132 | 21 | 11 |
| Texas | Commercial Cleaning | $5.5B | $0 | $5.5B | 424 | 97 | 24 |
| Texas | HVAC | $2.1B | $1.2B | $962.7M | 1,348 | 231 | 67 |
| Texas | Roofing | $6.2B | $3.6B | $2.6B | 776 | 113 | 56 |
| Utah | Commercial Cleaning | $675.7M | $0 | $675.7M | 51 | 14 | 4 |
| Utah | HVAC | $253.3M | $139.3M | $114.0M | 165 | 24 | 10 |
| Utah | Roofing | $715.5M | $415.0M | $300.5M | 95 | 14 | 9 |
| Virginia | Commercial Cleaning | $1.6B | $0 | $1.6B | 147 | 40 | 10 |
| Virginia | HVAC | $628.8M | $345.8M | $283.0M | 325 | 63 | 23 |
| Virginia | Roofing | $1.8B | $1.1B | $762.9M | 172 | 33 | 14 |
| Vermont | Commercial Cleaning | $117.3M | $0 | $117.3M | 14 | 2 | 1 |
| Vermont | HVAC | $52.1M | $28.6M | $23.4M | 49 | 5 | 3 |
| Vermont | Roofing | $159.0M | $92.2M | $66.8M | 27 | 3 | 1 |
| Washington | Commercial Cleaning | $1.4B | $0 | $1.4B | 110 | 27 | 7 |
| Washington | HVAC | $547.8M | $301.3M | $246.5M | 260 | 54 | 20 |
| Washington | Roofing | $1.6B | $923.2M | $668.5M | 173 | 27 | 11 |
| Wisconsin | Commercial Cleaning | $1.2B | $0 | $1.2B | 70 | 15 | 5 |
| Wisconsin | HVAC | $471.3M | $259.2M | $212.1M | 207 | 39 | 14 |
| Wisconsin | Roofing | $1.4B | $806.2M | $583.8M | 142 | 21 | 11 |
| West Virginia | Commercial Cleaning | $275.2M | $0 | $275.2M | 15 | 3 | 1 |
| West Virginia | HVAC | $136.6M | $75.2M | $61.5M | 52 | 8 | 2 |
| West Virginia | Roofing | $435.3M | $252.5M | $182.8M | 21 | 2 | 1 |
| Wyoming | Commercial Cleaning | $112.0M | $0 | $112.0M | 8 | 1 | 0 |
| Wyoming | HVAC | $47.3M | $26.0M | $21.3M | 31 | 4 | 1 |
| Wyoming | Roofing | $141.5M | $82.1M | $59.4M | 13 | 1 | 1 |
Methodology & Data Sources
National contractor-services revenue uses a Census roofing reference and Level HVAC/janitorial planning assumptions: roofing ~$70B (US Census 2022 Economic Census, NAICS 238160 employer receipts), HVAC services ~$24B and commercial janitorial ~$60B (Level estimates; we have not confirmed a primary source measuring the same service categories). Each national total is allocated to states by that state's relative share of housing (residential) and commercial activity (commercial), then residential vs commercial is split by the national-average share for the trade. Competitor counts start with national Census employer counts and company-size groups, then use estimated state shares. The state-by-size numbers are calculated estimates, rather than groups directly counted by Census. This is directional market sizing; treat the numbers as estimates and read residential/commercial as an assumed split, not a measured one.
Sources: US Census ACS (DP04, B25001, B25024, B25035); US Census County Business Patterns + Economic Census (commercial establishment and payroll share by state); US Census Building Permits Survey (public county and state building-permit records); Public county tax-assessor and building-permit records; US Census Statistics of U.S. Businesses (SUSB), employer firms by revenue tier (2017 receipt-size, 2022 firm totals), NAICS 238160 / 238220 / 561720; US Census 2022 Economic Census (roofing receipts); HVAC and commercial janitorial are retained Level planning assumptions; exact definition-matched primary-source support is unresolved. Directional market sizing, not an independent per-state survey. The model retains national scale assumptions; exact primary support for HVAC and janitorial anchors is unresolved; the state distribution is a modeled share and residential vs commercial is applied as a national-average split, not measured per state. Figures are estimates, ranges where noted.
Frequently asked questions
How much roofing, HVAC, or cleaning work is out there in my state?
We anchor to contractor-services revenue, not materials markets: US roofing contractor services are roughly $70B a year (US Census 2022 Economic Census receipts for roofing contractors), US HVAC services about $24B, and commercial janitorial about $60B. The latter two anchors are retained Level planning assumptions without exact primary-source captures; they are not verified market observations. Each national total is allocated to states by that state's share of housing (residential work) and commercial activity (commercial work). Treat the state figures as directional estimates, not an independent per-state survey.
How many contractors compete in my state and trade?
The table allocates national Census SUSB-based employer-firm references to states using retained state shares. The $1-5M, $5-10M and $10-25M cells are modeled allocations, not directly observed Census state revenue-tier cells. No-payroll businesses are a separate competitor population. HVAC is reported as its analyst-estimated share of the combined plumbing+heating+AC NAICS 238220 code, since Census does not isolate HVAC.
What are healthy financials for a contractor?
That is an operating-margin question rather than a market-size one, so it lives on our contractor financial benchmarks page (levelcfo.com/benchmarks/contractor), which covers job margin, collection rate, DSO, and the public-company anchors from FY2025 SEC filings. This page focuses on how big your market is and how many competitors you face.
Are these market-size numbers measured or estimated?
They are anchored-and-allocated estimates. National scale uses retained anchors, including unverified HVAC and janitorial planning assumptions; the state distribution is a modeled share of housing and commercial activity, and residential vs commercial is applied as a national-average split. Directional market sizing, not an independent per-state survey. Every row carries its calculation method.
Related contractor benchmarks
Grow without losing control of the numbers
Drop your info and we’ll show your real margin across jobs, crews, products, and customers, where profit leaks to rework or hidden costs, and how much cash is sitting in unbilled work or inventory.
No commitment. Real numbers, not generic advice.