{
  "slug": "contractor-market-size",
  "name": "Contractor Market Size & Competitive Density by State",
  "publisher": "Level",
  "publisher_url": "https://levelcfo.com",
  "last_updated": "2026-07-18",
  "license": "Free to cite with attribution to Level (levelcfo.com).",
  "attribution": "Level analysis. National contractor-services revenue anchors (roofing ~$70B, US Census 2022 Economic Census NAICS 238160 receipts; HVAC services ~$24B; commercial janitorial ~$60B) are allocated to states by each state's share of housing and commercial activity. Competitor counts are US Census employer firms (SUSB), not the broader all-records universe.",
  "confidence": "Directional market sizing, not an independent per-state survey. National totals are anchored to definition-matched published figures (contractor-services revenue, not materials markets); 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.",
  "denominator_note": "Competitor counts are US Census employer firms (Statistics of U.S. Businesses): businesses with paid employees, which is the universe that actually competes for $1M+ contracts. It excludes the large tail of no-payroll sole proprietors (who average well under $100K/yr). Revenue-tier splits use the SUSB receipt-size tables (2017, the latest Census publishes receipts for). HVAC is reported as its analyst-estimated share of the combined plumbing+heating+AC NAICS 238220 code, since Census does not isolate HVAC.",
  "caveats": {
    "demand_per_employer_firm_usd": "Serviceable demand divided by the count of employer firms in the state and trade. A rough density indicator, not an actual average firm revenue (a state's demand is not evenly split across firms).",
    "firm_counts": "Employer firms (Census SUSB), the businesses with employees that compete for $1M+ work. Excludes no-payroll sole proprietors. HVAC is the analyst-estimated HVAC share of the combined plumbing+heating+AC NAICS 238220 code.",
    "anchors": "Re-anchored 2026-07-20 to contractor-SERVICES revenue after an audit found the prior anchors (roofing $31.5B, HVAC $33B, cleaning $90B) were materials-market or unsourced figures mislabeled as services demand.",
    "method": "State commercial demand does NOT use EIA CBECS state estimates (CBECS is not published below census-division level). It uses a blended housing + commercial-activity share as a modeled proxy."
  },
  "methodology": "National contractor-services revenue is anchored to definition-matched public figures: roofing ~$70B (US Census 2022 Economic Census, NAICS 238160 employer receipts), HVAC services ~$24B (industry research; residential is the larger share in the US), and commercial janitorial ~$60B (a commercial-only slice of the ~$80B US janitorial total). 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 are US Census SUSB employer firms by revenue tier (receipt-size tables), redistributed to states by each state's relative share. This is directional market sizing; treat the numbers as estimates and read residential/commercial as an assumed split, not a measured one.",
  "sources": {
    "housing_counts": "US Census ACS (DP04, B25001, B25024, B25035)",
    "commercial_activity": "US Census County Business Patterns + Economic Census (commercial establishment and payroll share by state)",
    "permits": "US Census Building Permits Survey (public county and state building-permit records)",
    "property_characteristics": "Public county tax-assessor and building-permit records",
    "firm_counts": "US Census Statistics of U.S. Businesses (SUSB), employer firms by revenue tier (2017 receipt-size, 2022 firm totals), NAICS 238160 / 238220 / 561720",
    "national_anchors": "US Census 2022 Economic Census (roofing receipts); industry research for HVAC services and commercial janitorial, definition-matched to contractor-services revenue"
  },
  "trades": [
    "roofing",
    "hvac",
    "cleaning"
  ],
  "states_covered": 51,
  "rows": [
    {
      "state": "AK",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 128321000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 128321000,
      "commercial_share_pct": 100,
      "employer_firms_total": 102,
      "firms_1m_5m": 10,
      "firms_5m_10m": 3,
      "firms_10m_25m": 0,
      "demand_per_employer_firm_usd": 1258000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "AK",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 51608000,
      "residential_annual_demand_usd": 28384000,
      "commercial_annual_demand_usd": 23224000,
      "commercial_share_pct": 45,
      "employer_firms_total": 102,
      "firms_1m_5m": 37,
      "firms_5m_10m": 7,
      "firms_10m_25m": 2,
      "demand_per_employer_firm_usd": 506000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "AK",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 150910000,
      "residential_annual_demand_usd": 87528000,
      "commercial_annual_demand_usd": 63382000,
      "commercial_share_pct": 42,
      "employer_firms_total": 36,
      "firms_1m_5m": 12,
      "firms_5m_10m": 2,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 4192000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "AL",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 838438000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 838438000,
      "commercial_share_pct": 100,
      "employer_firms_total": 627,
      "firms_1m_5m": 50,
      "firms_5m_10m": 12,
      "firms_10m_25m": 5,
      "demand_per_employer_firm_usd": 1337000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "AL",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 376614000,
      "residential_annual_demand_usd": 207138000,
      "commercial_annual_demand_usd": 169476000,
      "commercial_share_pct": 45,
      "employer_firms_total": 500,
      "firms_1m_5m": 124,
      "firms_5m_10m": 27,
      "firms_10m_25m": 9,
      "demand_per_employer_firm_usd": 753000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "AL",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 1155556000,
      "residential_annual_demand_usd": 670222000,
      "commercial_annual_demand_usd": 485334000,
      "commercial_share_pct": 42,
      "employer_firms_total": 241,
      "firms_1m_5m": 73,
      "firms_5m_10m": 14,
      "firms_10m_25m": 7,
      "demand_per_employer_firm_usd": 4795000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "AR",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 509119000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 509119000,
      "commercial_share_pct": 100,
      "employer_firms_total": 346,
      "firms_1m_5m": 22,
      "firms_5m_10m": 7,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 1471000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "AR",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 226606000,
      "residential_annual_demand_usd": 124633000,
      "commercial_annual_demand_usd": 101973000,
      "commercial_share_pct": 45,
      "employer_firms_total": 338,
      "firms_1m_5m": 90,
      "firms_5m_10m": 17,
      "firms_10m_25m": 7,
      "demand_per_employer_firm_usd": 670000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "AR",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 692723000,
      "residential_annual_demand_usd": 401779000,
      "commercial_annual_demand_usd": 290944000,
      "commercial_share_pct": 42,
      "employer_firms_total": 161,
      "firms_1m_5m": 46,
      "firms_5m_10m": 7,
      "firms_10m_25m": 4,
      "demand_per_employer_firm_usd": 4303000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "AZ",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 1243084000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 1243084000,
      "commercial_share_pct": 100,
      "employer_firms_total": 1908,
      "firms_1m_5m": 226,
      "firms_5m_10m": 44,
      "firms_10m_25m": 8,
      "demand_per_employer_firm_usd": 652000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "AZ",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 515624000,
      "residential_annual_demand_usd": 283593000,
      "commercial_annual_demand_usd": 232031000,
      "commercial_share_pct": 45,
      "employer_firms_total": 1295,
      "firms_1m_5m": 594,
      "firms_5m_10m": 66,
      "firms_10m_25m": 24,
      "demand_per_employer_firm_usd": 398000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "AZ",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 1529367000,
      "residential_annual_demand_usd": 887033000,
      "commercial_annual_demand_usd": 642334000,
      "commercial_share_pct": 42,
      "employer_firms_total": 613,
      "firms_1m_5m": 276,
      "firms_5m_10m": 43,
      "firms_10m_25m": 20,
      "demand_per_employer_firm_usd": 2495000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "CA",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 6876329000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 6876329000,
      "commercial_share_pct": 100,
      "employer_firms_total": 5607,
      "firms_1m_5m": 670,
      "firms_5m_10m": 167,
      "firms_10m_25m": 34,
      "demand_per_employer_firm_usd": 1226000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "CA",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 2562916000,
      "residential_annual_demand_usd": 1409604000,
      "commercial_annual_demand_usd": 1153312000,
      "commercial_share_pct": 45,
      "employer_firms_total": 5217,
      "firms_1m_5m": 1824,
      "firms_5m_10m": 300,
      "firms_10m_25m": 89,
      "demand_per_employer_firm_usd": 491000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "CA",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 7215397000,
      "residential_annual_demand_usd": 4184930000,
      "commercial_annual_demand_usd": 3030467000,
      "commercial_share_pct": 42,
      "employer_firms_total": 2160,
      "firms_1m_5m": 798,
      "firms_5m_10m": 128,
      "firms_10m_25m": 68,
      "demand_per_employer_firm_usd": 3340000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "CO",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 1123091000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 1123091000,
      "commercial_share_pct": 100,
      "employer_firms_total": 907,
      "firms_1m_5m": 105,
      "firms_5m_10m": 24,
      "firms_10m_25m": 6,
      "demand_per_employer_firm_usd": 1238000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "CO",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 436686000,
      "residential_annual_demand_usd": 240177000,
      "commercial_annual_demand_usd": 196509000,
      "commercial_share_pct": 45,
      "employer_firms_total": 808,
      "firms_1m_5m": 289,
      "firms_5m_10m": 57,
      "firms_10m_25m": 19,
      "demand_per_employer_firm_usd": 540000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "CO",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 1256292000,
      "residential_annual_demand_usd": 728649000,
      "commercial_annual_demand_usd": 527643000,
      "commercial_share_pct": 42,
      "employer_firms_total": 561,
      "firms_1m_5m": 227,
      "firms_5m_10m": 40,
      "firms_10m_25m": 20,
      "demand_per_employer_firm_usd": 2239000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "CT",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 652581000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 652581000,
      "commercial_share_pct": 100,
      "employer_firms_total": 1076,
      "firms_1m_5m": 62,
      "firms_5m_10m": 16,
      "firms_10m_25m": 5,
      "demand_per_employer_firm_usd": 606000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "CT",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 257287000,
      "residential_annual_demand_usd": 141508000,
      "commercial_annual_demand_usd": 115779000,
      "commercial_share_pct": 45,
      "employer_firms_total": 712,
      "firms_1m_5m": 193,
      "firms_5m_10m": 29,
      "firms_10m_25m": 12,
      "demand_per_employer_firm_usd": 361000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "CT",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 745235000,
      "residential_annual_demand_usd": 432236000,
      "commercial_annual_demand_usd": 312999000,
      "commercial_share_pct": 42,
      "employer_firms_total": 390,
      "firms_1m_5m": 108,
      "firms_5m_10m": 14,
      "firms_10m_25m": 7,
      "demand_per_employer_firm_usd": 1911000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "DC",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 271783000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 271783000,
      "commercial_share_pct": 100,
      "employer_firms_total": 88,
      "firms_1m_5m": 10,
      "firms_5m_10m": 2,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 3088000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "DC",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 74580000,
      "residential_annual_demand_usd": 41019000,
      "commercial_annual_demand_usd": 33561000,
      "commercial_share_pct": 45,
      "employer_firms_total": 71,
      "firms_1m_5m": 17,
      "firms_5m_10m": 3,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 1050000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "DC",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 170266000,
      "residential_annual_demand_usd": 98754000,
      "commercial_annual_demand_usd": 71512000,
      "commercial_share_pct": 42,
      "employer_firms_total": 26,
      "firms_1m_5m": 11,
      "firms_5m_10m": 1,
      "firms_10m_25m": 0,
      "demand_per_employer_firm_usd": 6549000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "DE",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 188128000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 188128000,
      "commercial_share_pct": 100,
      "employer_firms_total": 169,
      "firms_1m_5m": 19,
      "firms_5m_10m": 4,
      "firms_10m_25m": 2,
      "demand_per_employer_firm_usd": 1113000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "DE",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 76042000,
      "residential_annual_demand_usd": 41823000,
      "commercial_annual_demand_usd": 34219000,
      "commercial_share_pct": 45,
      "employer_firms_total": 126,
      "firms_1m_5m": 46,
      "firms_5m_10m": 8,
      "firms_10m_25m": 4,
      "demand_per_employer_firm_usd": 604000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "DE",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 222883000,
      "residential_annual_demand_usd": 129272000,
      "commercial_annual_demand_usd": 93611000,
      "commercial_share_pct": 42,
      "employer_firms_total": 57,
      "firms_1m_5m": 27,
      "firms_5m_10m": 4,
      "firms_10m_25m": 3,
      "demand_per_employer_firm_usd": 3910000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "FL",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 3794359000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 3794359000,
      "commercial_share_pct": 100,
      "employer_firms_total": 9795,
      "firms_1m_5m": 443,
      "firms_5m_10m": 121,
      "firms_10m_25m": 24,
      "demand_per_employer_firm_usd": 387000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "FL",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 1573192000,
      "residential_annual_demand_usd": 865256000,
      "commercial_annual_demand_usd": 707936000,
      "commercial_share_pct": 45,
      "employer_firms_total": 4056,
      "firms_1m_5m": 969,
      "firms_5m_10m": 184,
      "firms_10m_25m": 60,
      "demand_per_employer_firm_usd": 388000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "FL",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 4665253000,
      "residential_annual_demand_usd": 2705847000,
      "commercial_annual_demand_usd": 1959406000,
      "commercial_share_pct": 42,
      "employer_firms_total": 2418,
      "firms_1m_5m": 533,
      "firms_5m_10m": 82,
      "firms_10m_25m": 43,
      "demand_per_employer_firm_usd": 1929000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "GA",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 1893394000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 1893394000,
      "commercial_share_pct": 100,
      "employer_firms_total": 3272,
      "firms_1m_5m": 317,
      "firms_5m_10m": 51,
      "firms_10m_25m": 14,
      "demand_per_employer_firm_usd": 579000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "GA",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 760108000,
      "residential_annual_demand_usd": 418059000,
      "commercial_annual_demand_usd": 342049000,
      "commercial_share_pct": 45,
      "employer_firms_total": 1677,
      "firms_1m_5m": 702,
      "firms_5m_10m": 88,
      "firms_10m_25m": 32,
      "demand_per_employer_firm_usd": 453000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "GA",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 2220789000,
      "residential_annual_demand_usd": 1288058000,
      "commercial_annual_demand_usd": 932731000,
      "commercial_share_pct": 42,
      "employer_firms_total": 1032,
      "firms_1m_5m": 442,
      "firms_5m_10m": 48,
      "firms_10m_25m": 22,
      "demand_per_employer_firm_usd": 2152000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "HI",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 244529000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 244529000,
      "commercial_share_pct": 100,
      "employer_firms_total": 133,
      "firms_1m_5m": 18,
      "firms_5m_10m": 5,
      "firms_10m_25m": 2,
      "demand_per_employer_firm_usd": 1839000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "HI",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 90824000,
      "residential_annual_demand_usd": 49953000,
      "commercial_annual_demand_usd": 40871000,
      "commercial_share_pct": 45,
      "employer_firms_total": 106,
      "firms_1m_5m": 36,
      "firms_5m_10m": 9,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 857000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "HI",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 255230000,
      "residential_annual_demand_usd": 148033000,
      "commercial_annual_demand_usd": 107197000,
      "commercial_share_pct": 42,
      "employer_firms_total": 52,
      "firms_1m_5m": 22,
      "firms_5m_10m": 4,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 4908000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "IA",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 599966000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 599966000,
      "commercial_share_pct": 100,
      "employer_firms_total": 378,
      "firms_1m_5m": 31,
      "firms_5m_10m": 10,
      "firms_10m_25m": 2,
      "demand_per_employer_firm_usd": 1587000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "IA",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 256437000,
      "residential_annual_demand_usd": 141040000,
      "commercial_annual_demand_usd": 115397000,
      "commercial_share_pct": 45,
      "employer_firms_total": 330,
      "firms_1m_5m": 84,
      "firms_5m_10m": 21,
      "firms_10m_25m": 8,
      "demand_per_employer_firm_usd": 777000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "IA",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 770721000,
      "residential_annual_demand_usd": 447018000,
      "commercial_annual_demand_usd": 323703000,
      "commercial_share_pct": 42,
      "employer_firms_total": 199,
      "firms_1m_5m": 68,
      "firms_5m_10m": 12,
      "firms_10m_25m": 4,
      "demand_per_employer_firm_usd": 3873000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "ID",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 335754000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 335754000,
      "commercial_share_pct": 100,
      "employer_firms_total": 454,
      "firms_1m_5m": 27,
      "firms_5m_10m": 6,
      "firms_10m_25m": 2,
      "demand_per_employer_firm_usd": 740000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "ID",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 142640000,
      "residential_annual_demand_usd": 78452000,
      "commercial_annual_demand_usd": 64188000,
      "commercial_share_pct": 45,
      "employer_firms_total": 297,
      "firms_1m_5m": 65,
      "firms_5m_10m": 13,
      "firms_10m_25m": 5,
      "demand_per_employer_firm_usd": 480000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "ID",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 427577000,
      "residential_annual_demand_usd": 247995000,
      "commercial_annual_demand_usd": 179582000,
      "commercial_share_pct": 42,
      "employer_firms_total": 208,
      "firms_1m_5m": 47,
      "firms_5m_10m": 6,
      "firms_10m_25m": 4,
      "demand_per_employer_firm_usd": 2056000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "IL",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 2333621000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 2333621000,
      "commercial_share_pct": 100,
      "employer_firms_total": 1545,
      "firms_1m_5m": 157,
      "firms_5m_10m": 42,
      "firms_10m_25m": 9,
      "demand_per_employer_firm_usd": 1510000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "IL",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 922914000,
      "residential_annual_demand_usd": 507603000,
      "commercial_annual_demand_usd": 415311000,
      "commercial_share_pct": 45,
      "employer_firms_total": 1364,
      "firms_1m_5m": 471,
      "firms_5m_10m": 89,
      "firms_10m_25m": 28,
      "demand_per_employer_firm_usd": 677000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "IL",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 2677244000,
      "residential_annual_demand_usd": 1552802000,
      "commercial_annual_demand_usd": 1124442000,
      "commercial_share_pct": 42,
      "employer_firms_total": 725,
      "firms_1m_5m": 272,
      "firms_5m_10m": 50,
      "firms_10m_25m": 19,
      "demand_per_employer_firm_usd": 3693000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "IN",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 1235892000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 1235892000,
      "commercial_share_pct": 100,
      "employer_firms_total": 994,
      "firms_1m_5m": 75,
      "firms_5m_10m": 25,
      "firms_10m_25m": 6,
      "demand_per_employer_firm_usd": 1243000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "IN",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 518216000,
      "residential_annual_demand_usd": 285019000,
      "commercial_annual_demand_usd": 233197000,
      "commercial_share_pct": 45,
      "employer_firms_total": 701,
      "firms_1m_5m": 204,
      "firms_5m_10m": 43,
      "firms_10m_25m": 13,
      "demand_per_employer_firm_usd": 739000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "IN",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 1544498000,
      "residential_annual_demand_usd": 895809000,
      "commercial_annual_demand_usd": 648689000,
      "commercial_share_pct": 42,
      "employer_firms_total": 405,
      "firms_1m_5m": 139,
      "firms_5m_10m": 21,
      "firms_10m_25m": 10,
      "demand_per_employer_firm_usd": 3814000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "KS",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 556435000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 556435000,
      "commercial_share_pct": 100,
      "employer_firms_total": 484,
      "firms_1m_5m": 36,
      "firms_5m_10m": 12,
      "firms_10m_25m": 3,
      "demand_per_employer_firm_usd": 1150000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "KS",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 230905000,
      "residential_annual_demand_usd": 126998000,
      "commercial_annual_demand_usd": 103907000,
      "commercial_share_pct": 45,
      "employer_firms_total": 381,
      "firms_1m_5m": 97,
      "firms_5m_10m": 22,
      "firms_10m_25m": 6,
      "demand_per_employer_firm_usd": 606000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "KS",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 685006000,
      "residential_annual_demand_usd": 397303000,
      "commercial_annual_demand_usd": 287703000,
      "commercial_share_pct": 42,
      "employer_firms_total": 235,
      "firms_1m_5m": 68,
      "firms_5m_10m": 13,
      "firms_10m_25m": 7,
      "demand_per_employer_firm_usd": 2915000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "KY",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 768789000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 768789000,
      "commercial_share_pct": 100,
      "employer_firms_total": 500,
      "firms_1m_5m": 40,
      "firms_5m_10m": 8,
      "firms_10m_25m": 3,
      "demand_per_employer_firm_usd": 1538000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "KY",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 334194000,
      "residential_annual_demand_usd": 183807000,
      "commercial_annual_demand_usd": 150387000,
      "commercial_share_pct": 45,
      "employer_firms_total": 414,
      "firms_1m_5m": 111,
      "firms_5m_10m": 22,
      "firms_10m_25m": 11,
      "demand_per_employer_firm_usd": 807000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "KY",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 1011673000,
      "residential_annual_demand_usd": 586770000,
      "commercial_annual_demand_usd": 424903000,
      "commercial_share_pct": 42,
      "employer_firms_total": 218,
      "firms_1m_5m": 66,
      "firms_5m_10m": 8,
      "firms_10m_25m": 6,
      "demand_per_employer_firm_usd": 4641000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "LA",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 758190000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 758190000,
      "commercial_share_pct": 100,
      "employer_firms_total": 911,
      "firms_1m_5m": 48,
      "firms_5m_10m": 10,
      "firms_10m_25m": 4,
      "demand_per_employer_firm_usd": 832000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "LA",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 330506000,
      "residential_annual_demand_usd": 181778000,
      "commercial_annual_demand_usd": 148728000,
      "commercial_share_pct": 45,
      "employer_firms_total": 793,
      "firms_1m_5m": 170,
      "firms_5m_10m": 33,
      "firms_10m_25m": 10,
      "demand_per_employer_firm_usd": 417000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "LA",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 1001678000,
      "residential_annual_demand_usd": 580973000,
      "commercial_annual_demand_usd": 420705000,
      "commercial_share_pct": 42,
      "employer_firms_total": 342,
      "firms_1m_5m": 83,
      "firms_5m_10m": 13,
      "firms_10m_25m": 5,
      "demand_per_employer_firm_usd": 2929000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "MA",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 1449381000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 1449381000,
      "commercial_share_pct": 100,
      "employer_firms_total": 1208,
      "firms_1m_5m": 126,
      "firms_5m_10m": 26,
      "firms_10m_25m": 9,
      "demand_per_employer_firm_usd": 1200000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "MA",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 515404000,
      "residential_annual_demand_usd": 283472000,
      "commercial_annual_demand_usd": 231932000,
      "commercial_share_pct": 45,
      "employer_firms_total": 1157,
      "firms_1m_5m": 362,
      "firms_5m_10m": 60,
      "firms_10m_25m": 19,
      "demand_per_employer_firm_usd": 445000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "MA",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 1414162000,
      "residential_annual_demand_usd": 820214000,
      "commercial_annual_demand_usd": 593948000,
      "commercial_share_pct": 42,
      "employer_firms_total": 513,
      "firms_1m_5m": 188,
      "firms_5m_10m": 25,
      "firms_10m_25m": 12,
      "demand_per_employer_firm_usd": 2757000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "MD",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 1083724000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 1083724000,
      "commercial_share_pct": 100,
      "employer_firms_total": 1664,
      "firms_1m_5m": 115,
      "firms_5m_10m": 28,
      "firms_10m_25m": 8,
      "demand_per_employer_firm_usd": 651000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "MD",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 406491000,
      "residential_annual_demand_usd": 223570000,
      "commercial_annual_demand_usd": 182921000,
      "commercial_share_pct": 45,
      "employer_firms_total": 1093,
      "firms_1m_5m": 302,
      "firms_5m_10m": 55,
      "firms_10m_25m": 20,
      "demand_per_employer_firm_usd": 372000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "MD",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 1148216000,
      "residential_annual_demand_usd": 665965000,
      "commercial_annual_demand_usd": 482251000,
      "commercial_share_pct": 42,
      "employer_firms_total": 528,
      "firms_1m_5m": 148,
      "firms_5m_10m": 24,
      "firms_10m_25m": 19,
      "demand_per_employer_firm_usd": 2175000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "ME",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 246800000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 246800000,
      "commercial_share_pct": 100,
      "employer_firms_total": 154,
      "firms_1m_5m": 20,
      "firms_5m_10m": 5,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 1603000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "ME",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 117484000,
      "residential_annual_demand_usd": 64616000,
      "commercial_annual_demand_usd": 52868000,
      "commercial_share_pct": 45,
      "employer_firms_total": 172,
      "firms_1m_5m": 52,
      "firms_5m_10m": 7,
      "firms_10m_25m": 2,
      "demand_per_employer_firm_usd": 683000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "ME",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 368643000,
      "residential_annual_demand_usd": 213813000,
      "commercial_annual_demand_usd": 154830000,
      "commercial_share_pct": 42,
      "employer_firms_total": 72,
      "firms_1m_5m": 31,
      "firms_5m_10m": 4,
      "firms_10m_25m": 2,
      "demand_per_employer_firm_usd": 5120000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "MI",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 1701102000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 1701102000,
      "commercial_share_pct": 100,
      "employer_firms_total": 1928,
      "firms_1m_5m": 132,
      "firms_5m_10m": 33,
      "firms_10m_25m": 9,
      "demand_per_employer_firm_usd": 882000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "MI",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 769066000,
      "residential_annual_demand_usd": 422986000,
      "commercial_annual_demand_usd": 346080000,
      "commercial_share_pct": 45,
      "employer_firms_total": 1250,
      "firms_1m_5m": 304,
      "firms_5m_10m": 55,
      "firms_10m_25m": 17,
      "demand_per_employer_firm_usd": 615000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "MI",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 2365820000,
      "residential_annual_demand_usd": 1372176000,
      "commercial_annual_demand_usd": 993644000,
      "commercial_share_pct": 42,
      "employer_firms_total": 647,
      "firms_1m_5m": 181,
      "firms_5m_10m": 27,
      "firms_10m_25m": 16,
      "demand_per_employer_firm_usd": 3657000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "MN",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 1148074000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 1148074000,
      "commercial_share_pct": 100,
      "employer_firms_total": 1181,
      "firms_1m_5m": 89,
      "firms_5m_10m": 20,
      "firms_10m_25m": 6,
      "demand_per_employer_firm_usd": 972000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "MN",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 461105000,
      "residential_annual_demand_usd": 253608000,
      "commercial_annual_demand_usd": 207497000,
      "commercial_share_pct": 45,
      "employer_firms_total": 817,
      "firms_1m_5m": 254,
      "firms_5m_10m": 40,
      "firms_10m_25m": 20,
      "demand_per_employer_firm_usd": 564000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "MN",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 1347487000,
      "residential_annual_demand_usd": 781542000,
      "commercial_annual_demand_usd": 565945000,
      "commercial_share_pct": 42,
      "employer_firms_total": 664,
      "firms_1m_5m": 166,
      "firms_5m_10m": 29,
      "firms_10m_25m": 15,
      "demand_per_employer_firm_usd": 2029000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "MO",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 1142396000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 1142396000,
      "commercial_share_pct": 100,
      "employer_firms_total": 1507,
      "firms_1m_5m": 78,
      "firms_5m_10m": 19,
      "firms_10m_25m": 4,
      "demand_per_employer_firm_usd": 758000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "MO",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 472634000,
      "residential_annual_demand_usd": 259949000,
      "commercial_annual_demand_usd": 212685000,
      "commercial_share_pct": 45,
      "employer_firms_total": 978,
      "firms_1m_5m": 230,
      "firms_5m_10m": 39,
      "firms_10m_25m": 11,
      "demand_per_employer_firm_usd": 483000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "MO",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 1400220000,
      "residential_annual_demand_usd": 812128000,
      "commercial_annual_demand_usd": 588092000,
      "commercial_share_pct": 42,
      "employer_firms_total": 698,
      "firms_1m_5m": 166,
      "firms_5m_10m": 24,
      "firms_10m_25m": 15,
      "demand_per_employer_firm_usd": 2006000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "MS",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 458018000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 458018000,
      "commercial_share_pct": 100,
      "employer_firms_total": 275,
      "firms_1m_5m": 20,
      "firms_5m_10m": 4,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 1666000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "MS",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 210733000,
      "residential_annual_demand_usd": 115903000,
      "commercial_annual_demand_usd": 94830000,
      "commercial_share_pct": 45,
      "employer_firms_total": 251,
      "firms_1m_5m": 54,
      "firms_5m_10m": 13,
      "firms_10m_25m": 4,
      "demand_per_employer_firm_usd": 840000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "MS",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 652751000,
      "residential_annual_demand_usd": 378596000,
      "commercial_annual_demand_usd": 274155000,
      "commercial_share_pct": 42,
      "employer_firms_total": 94,
      "firms_1m_5m": 27,
      "firms_5m_10m": 5,
      "firms_10m_25m": 2,
      "demand_per_employer_firm_usd": 6944000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "MT",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 197970000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 197970000,
      "commercial_share_pct": 100,
      "employer_firms_total": 162,
      "firms_1m_5m": 11,
      "firms_5m_10m": 3,
      "firms_10m_25m": 0,
      "demand_per_employer_firm_usd": 1222000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "MT",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 86412000,
      "residential_annual_demand_usd": 47527000,
      "commercial_annual_demand_usd": 38885000,
      "commercial_share_pct": 45,
      "employer_firms_total": 157,
      "firms_1m_5m": 38,
      "firms_5m_10m": 7,
      "firms_10m_25m": 2,
      "demand_per_employer_firm_usd": 550000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "MT",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 262038000,
      "residential_annual_demand_usd": 151982000,
      "commercial_annual_demand_usd": 110056000,
      "commercial_share_pct": 42,
      "employer_firms_total": 92,
      "firms_1m_5m": 28,
      "firms_5m_10m": 3,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 2848000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "NC",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 1891880000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 1891880000,
      "commercial_share_pct": 100,
      "employer_firms_total": 2270,
      "firms_1m_5m": 162,
      "firms_5m_10m": 36,
      "firms_10m_25m": 9,
      "demand_per_employer_firm_usd": 833000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "NC",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 783929000,
      "residential_annual_demand_usd": 431161000,
      "commercial_annual_demand_usd": 352768000,
      "commercial_share_pct": 45,
      "employer_firms_total": 1565,
      "firms_1m_5m": 442,
      "firms_5m_10m": 72,
      "firms_10m_25m": 21,
      "demand_per_employer_firm_usd": 501000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "NC",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 2324089000,
      "residential_annual_demand_usd": 1347972000,
      "commercial_annual_demand_usd": 976117000,
      "commercial_share_pct": 42,
      "employer_firms_total": 926,
      "firms_1m_5m": 223,
      "firms_5m_10m": 33,
      "firms_10m_25m": 13,
      "demand_per_employer_firm_usd": 2510000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "ND",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 169202000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 169202000,
      "commercial_share_pct": 100,
      "employer_firms_total": 135,
      "firms_1m_5m": 8,
      "firms_5m_10m": 2,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 1253000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "ND",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 66358000,
      "residential_annual_demand_usd": 36497000,
      "commercial_annual_demand_usd": 29861000,
      "commercial_share_pct": 45,
      "employer_firms_total": 126,
      "firms_1m_5m": 30,
      "firms_5m_10m": 5,
      "firms_10m_25m": 3,
      "demand_per_employer_firm_usd": 527000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "ND",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 191714000,
      "residential_annual_demand_usd": 111194000,
      "commercial_annual_demand_usd": 80520000,
      "commercial_share_pct": 42,
      "employer_firms_total": 65,
      "firms_1m_5m": 15,
      "firms_5m_10m": 2,
      "firms_10m_25m": 2,
      "demand_per_employer_firm_usd": 2949000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "NE",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 395940000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 395940000,
      "commercial_share_pct": 100,
      "employer_firms_total": 310,
      "firms_1m_5m": 24,
      "firms_5m_10m": 5,
      "firms_10m_25m": 2,
      "demand_per_employer_firm_usd": 1277000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "NE",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 160473000,
      "residential_annual_demand_usd": 88260000,
      "commercial_annual_demand_usd": 72213000,
      "commercial_share_pct": 45,
      "employer_firms_total": 216,
      "firms_1m_5m": 66,
      "firms_5m_10m": 13,
      "firms_10m_25m": 5,
      "demand_per_employer_firm_usd": 743000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "NE",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 470951000,
      "residential_annual_demand_usd": 273152000,
      "commercial_annual_demand_usd": 197799000,
      "commercial_share_pct": 42,
      "employer_firms_total": 168,
      "firms_1m_5m": 54,
      "firms_5m_10m": 10,
      "firms_10m_25m": 7,
      "demand_per_employer_firm_usd": 2803000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "NH",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 266483000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 266483000,
      "commercial_share_pct": 100,
      "employer_firms_total": 333,
      "firms_1m_5m": 23,
      "firms_5m_10m": 6,
      "firms_10m_25m": 0,
      "demand_per_employer_firm_usd": 800000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "NH",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 108959000,
      "residential_annual_demand_usd": 59927000,
      "commercial_annual_demand_usd": 49032000,
      "commercial_share_pct": 45,
      "employer_firms_total": 288,
      "firms_1m_5m": 72,
      "firms_5m_10m": 18,
      "firms_10m_25m": 4,
      "demand_per_employer_firm_usd": 378000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "NH",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 321073000,
      "residential_annual_demand_usd": 186222000,
      "commercial_annual_demand_usd": 134851000,
      "commercial_share_pct": 42,
      "employer_firms_total": 131,
      "firms_1m_5m": 43,
      "firms_5m_10m": 7,
      "firms_10m_25m": 3,
      "demand_per_employer_firm_usd": 2451000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "NJ",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 1660978000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 1660978000,
      "commercial_share_pct": 100,
      "employer_firms_total": 1133,
      "firms_1m_5m": 160,
      "firms_5m_10m": 60,
      "firms_10m_25m": 9,
      "demand_per_employer_firm_usd": 1466000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "NJ",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 629134000,
      "residential_annual_demand_usd": 346024000,
      "commercial_annual_demand_usd": 283110000,
      "commercial_share_pct": 45,
      "employer_firms_total": 1102,
      "firms_1m_5m": 391,
      "firms_5m_10m": 73,
      "firms_10m_25m": 32,
      "demand_per_employer_firm_usd": 571000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "NJ",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 1786155000,
      "residential_annual_demand_usd": 1035970000,
      "commercial_annual_demand_usd": 750185000,
      "commercial_share_pct": 42,
      "employer_firms_total": 447,
      "firms_1m_5m": 208,
      "firms_5m_10m": 29,
      "firms_10m_25m": 11,
      "demand_per_employer_firm_usd": 3996000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "NM",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 330454000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 330454000,
      "commercial_share_pct": 100,
      "employer_firms_total": 184,
      "firms_1m_5m": 17,
      "firms_5m_10m": 5,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 1796000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "NM",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 146599000,
      "residential_annual_demand_usd": 80629000,
      "commercial_annual_demand_usd": 65970000,
      "commercial_share_pct": 45,
      "employer_firms_total": 252,
      "firms_1m_5m": 59,
      "firms_5m_10m": 13,
      "firms_10m_25m": 7,
      "demand_per_employer_firm_usd": 582000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "NM",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 447541000,
      "residential_annual_demand_usd": 259574000,
      "commercial_annual_demand_usd": 187967000,
      "commercial_share_pct": 42,
      "employer_firms_total": 79,
      "firms_1m_5m": 29,
      "firms_5m_10m": 5,
      "firms_10m_25m": 3,
      "demand_per_employer_firm_usd": 5665000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "NV",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 579525000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 579525000,
      "commercial_share_pct": 100,
      "employer_firms_total": 494,
      "firms_1m_5m": 52,
      "firms_5m_10m": 14,
      "firms_10m_25m": 2,
      "demand_per_employer_firm_usd": 1173000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "NV",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 223136000,
      "residential_annual_demand_usd": 122725000,
      "commercial_annual_demand_usd": 100411000,
      "commercial_share_pct": 45,
      "employer_firms_total": 266,
      "firms_1m_5m": 94,
      "firms_5m_10m": 20,
      "firms_10m_25m": 6,
      "demand_per_employer_firm_usd": 839000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "NV",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 638802000,
      "residential_annual_demand_usd": 370505000,
      "commercial_annual_demand_usd": 268297000,
      "commercial_share_pct": 42,
      "employer_firms_total": 114,
      "firms_1m_5m": 47,
      "firms_5m_10m": 7,
      "firms_10m_25m": 6,
      "demand_per_employer_firm_usd": 5604000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "NY",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 3680800000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 3680800000,
      "commercial_share_pct": 100,
      "employer_firms_total": 3269,
      "firms_1m_5m": 264,
      "firms_5m_10m": 69,
      "firms_10m_25m": 15,
      "demand_per_employer_firm_usd": 1126000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "NY",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 1299568000,
      "residential_annual_demand_usd": 714762000,
      "commercial_annual_demand_usd": 584806000,
      "commercial_share_pct": 45,
      "employer_firms_total": 3332,
      "firms_1m_5m": 876,
      "firms_5m_10m": 150,
      "firms_10m_25m": 41,
      "demand_per_employer_firm_usd": 390000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "NY",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 3551213000,
      "residential_annual_demand_usd": 2059704000,
      "commercial_annual_demand_usd": 1491509000,
      "commercial_share_pct": 42,
      "employer_firms_total": 1339,
      "firms_1m_5m": 390,
      "firms_5m_10m": 51,
      "firms_10m_25m": 22,
      "demand_per_employer_firm_usd": 2652000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "OH",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 2139058000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 2139058000,
      "commercial_share_pct": 100,
      "employer_firms_total": 1566,
      "firms_1m_5m": 143,
      "firms_5m_10m": 38,
      "firms_10m_25m": 10,
      "demand_per_employer_firm_usd": 1366000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "OH",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 898073000,
      "residential_annual_demand_usd": 493940000,
      "commercial_annual_demand_usd": 404133000,
      "commercial_share_pct": 45,
      "employer_firms_total": 1203,
      "firms_1m_5m": 359,
      "firms_5m_10m": 77,
      "firms_10m_25m": 28,
      "demand_per_employer_firm_usd": 747000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "OH",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 2678158000,
      "residential_annual_demand_usd": 1553332000,
      "commercial_annual_demand_usd": 1124826000,
      "commercial_share_pct": 42,
      "employer_firms_total": 750,
      "firms_1m_5m": 265,
      "firms_5m_10m": 44,
      "firms_10m_25m": 22,
      "demand_per_employer_firm_usd": 3571000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "OK",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 665451000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 665451000,
      "commercial_share_pct": 100,
      "employer_firms_total": 428,
      "firms_1m_5m": 42,
      "firms_5m_10m": 9,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 1555000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "OK",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 290758000,
      "residential_annual_demand_usd": 159917000,
      "commercial_annual_demand_usd": 130841000,
      "commercial_share_pct": 45,
      "employer_firms_total": 445,
      "firms_1m_5m": 162,
      "firms_5m_10m": 24,
      "firms_10m_25m": 9,
      "demand_per_employer_firm_usd": 653000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "OK",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 882073000,
      "residential_annual_demand_usd": 511602000,
      "commercial_annual_demand_usd": 370471000,
      "commercial_share_pct": 42,
      "employer_firms_total": 249,
      "firms_1m_5m": 88,
      "firms_5m_10m": 14,
      "firms_10m_25m": 3,
      "demand_per_employer_firm_usd": 3542000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "OR",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 771439000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 771439000,
      "commercial_share_pct": 100,
      "employer_firms_total": 692,
      "firms_1m_5m": 58,
      "firms_5m_10m": 12,
      "firms_10m_25m": 2,
      "demand_per_employer_firm_usd": 1115000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "OR",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 307911000,
      "residential_annual_demand_usd": 169351000,
      "commercial_annual_demand_usd": 138560000,
      "commercial_share_pct": 45,
      "employer_firms_total": 423,
      "firms_1m_5m": 127,
      "firms_5m_10m": 25,
      "firms_10m_25m": 8,
      "demand_per_employer_firm_usd": 728000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "OR",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 897154000,
      "residential_annual_demand_usd": 520349000,
      "commercial_annual_demand_usd": 376805000,
      "commercial_share_pct": 42,
      "employer_firms_total": 264,
      "firms_1m_5m": 86,
      "firms_5m_10m": 15,
      "firms_10m_25m": 6,
      "demand_per_employer_firm_usd": 3398000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "PA",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 2332107000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 2332107000,
      "commercial_share_pct": 100,
      "employer_firms_total": 2244,
      "firms_1m_5m": 180,
      "firms_5m_10m": 50,
      "firms_10m_25m": 15,
      "demand_per_employer_firm_usd": 1039000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "PA",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 963075000,
      "residential_annual_demand_usd": 529691000,
      "commercial_annual_demand_usd": 433384000,
      "commercial_share_pct": 45,
      "employer_firms_total": 1824,
      "firms_1m_5m": 532,
      "firms_5m_10m": 82,
      "firms_10m_25m": 33,
      "demand_per_employer_firm_usd": 528000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "PA",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 2850829000,
      "residential_annual_demand_usd": 1653481000,
      "commercial_annual_demand_usd": 1197348000,
      "commercial_share_pct": 42,
      "employer_firms_total": 937,
      "firms_1m_5m": 288,
      "firms_5m_10m": 43,
      "firms_10m_25m": 22,
      "demand_per_employer_firm_usd": 3043000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "RI",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 194942000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 194942000,
      "commercial_share_pct": 100,
      "employer_firms_total": 190,
      "firms_1m_5m": 15,
      "firms_5m_10m": 3,
      "firms_10m_25m": 2,
      "demand_per_employer_firm_usd": 1026000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "RI",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 74998000,
      "residential_annual_demand_usd": 41249000,
      "commercial_annual_demand_usd": 33749000,
      "commercial_share_pct": 45,
      "employer_firms_total": 157,
      "firms_1m_5m": 38,
      "firms_5m_10m": 5,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 478000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "RI",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 214621000,
      "residential_annual_demand_usd": 124480000,
      "commercial_annual_demand_usd": 90141000,
      "commercial_share_pct": 42,
      "employer_firms_total": 76,
      "firms_1m_5m": 23,
      "firms_5m_10m": 4,
      "firms_10m_25m": 2,
      "demand_per_employer_firm_usd": 2824000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "SC",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 910737000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 910737000,
      "commercial_share_pct": 100,
      "employer_firms_total": 603,
      "firms_1m_5m": 65,
      "firms_5m_10m": 14,
      "firms_10m_25m": 5,
      "demand_per_employer_firm_usd": 1510000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "SC",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 390038000,
      "residential_annual_demand_usd": 214521000,
      "commercial_annual_demand_usd": 175517000,
      "commercial_share_pct": 45,
      "employer_firms_total": 477,
      "firms_1m_5m": 151,
      "firms_5m_10m": 33,
      "firms_10m_25m": 10,
      "demand_per_employer_firm_usd": 818000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "SC",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 1173255000,
      "residential_annual_demand_usd": 680488000,
      "commercial_annual_demand_usd": 492767000,
      "commercial_share_pct": 42,
      "employer_firms_total": 225,
      "firms_1m_5m": 75,
      "firms_5m_10m": 14,
      "firms_10m_25m": 4,
      "demand_per_employer_firm_usd": 5214000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "SD",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 178286000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 178286000,
      "commercial_share_pct": 100,
      "employer_firms_total": 89,
      "firms_1m_5m": 9,
      "firms_5m_10m": 2,
      "firms_10m_25m": 0,
      "demand_per_employer_firm_usd": 2003000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "SD",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 72907000,
      "residential_annual_demand_usd": 40099000,
      "commercial_annual_demand_usd": 32808000,
      "commercial_share_pct": 45,
      "employer_firms_total": 99,
      "firms_1m_5m": 35,
      "firms_5m_10m": 6,
      "firms_10m_25m": 2,
      "demand_per_employer_firm_usd": 736000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "SD",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 214851000,
      "residential_annual_demand_usd": 124614000,
      "commercial_annual_demand_usd": 90237000,
      "commercial_share_pct": 42,
      "employer_firms_total": 54,
      "firms_1m_5m": 19,
      "firms_5m_10m": 3,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 3979000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "TN",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 1280180000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 1280180000,
      "commercial_share_pct": 100,
      "employer_firms_total": 1016,
      "firms_1m_5m": 83,
      "firms_5m_10m": 21,
      "firms_10m_25m": 5,
      "demand_per_employer_firm_usd": 1260000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "TN",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 530117000,
      "residential_annual_demand_usd": 291564000,
      "commercial_annual_demand_usd": 238553000,
      "commercial_share_pct": 45,
      "employer_firms_total": 765,
      "firms_1m_5m": 212,
      "firms_5m_10m": 45,
      "firms_10m_25m": 17,
      "demand_per_employer_firm_usd": 693000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "TN",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 1571159000,
      "residential_annual_demand_usd": 911272000,
      "commercial_annual_demand_usd": 659887000,
      "commercial_share_pct": 42,
      "employer_firms_total": 403,
      "firms_1m_5m": 132,
      "firms_5m_10m": 21,
      "firms_10m_25m": 11,
      "demand_per_employer_firm_usd": 3899000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "TX",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 5457987000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 5457987000,
      "commercial_share_pct": 100,
      "employer_firms_total": 4383,
      "firms_1m_5m": 424,
      "firms_5m_10m": 97,
      "firms_10m_25m": 24,
      "demand_per_employer_firm_usd": 1245000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "TX",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 2139410000,
      "residential_annual_demand_usd": 1176676000,
      "commercial_annual_demand_usd": 962734000,
      "commercial_share_pct": 45,
      "employer_firms_total": 7581,
      "firms_1m_5m": 1348,
      "firms_5m_10m": 231,
      "firms_10m_25m": 67,
      "demand_per_employer_firm_usd": 282000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "TX",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 6179321000,
      "residential_annual_demand_usd": 3584006000,
      "commercial_annual_demand_usd": 2595315000,
      "commercial_share_pct": 42,
      "employer_firms_total": 2265,
      "firms_1m_5m": 776,
      "firms_5m_10m": 113,
      "firms_10m_25m": 56,
      "demand_per_employer_firm_usd": 2728000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "UT",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 675671000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 675671000,
      "commercial_share_pct": 100,
      "employer_firms_total": 784,
      "firms_1m_5m": 51,
      "firms_5m_10m": 14,
      "firms_10m_25m": 4,
      "demand_per_employer_firm_usd": 862000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "UT",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 253341000,
      "residential_annual_demand_usd": 139338000,
      "commercial_annual_demand_usd": 114003000,
      "commercial_share_pct": 45,
      "employer_firms_total": 519,
      "firms_1m_5m": 165,
      "firms_5m_10m": 24,
      "firms_10m_25m": 10,
      "demand_per_employer_firm_usd": 488000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "UT",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 715475000,
      "residential_annual_demand_usd": 414976000,
      "commercial_annual_demand_usd": 300499000,
      "commercial_share_pct": 42,
      "employer_firms_total": 359,
      "firms_1m_5m": 95,
      "firms_5m_10m": 14,
      "firms_10m_25m": 9,
      "demand_per_employer_firm_usd": 1993000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "VA",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 1603821000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 1603821000,
      "commercial_share_pct": 100,
      "employer_firms_total": 1999,
      "firms_1m_5m": 147,
      "firms_5m_10m": 40,
      "firms_10m_25m": 10,
      "demand_per_employer_firm_usd": 802000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "VA",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 628816000,
      "residential_annual_demand_usd": 345849000,
      "commercial_annual_demand_usd": 282967000,
      "commercial_share_pct": 45,
      "employer_firms_total": 1216,
      "firms_1m_5m": 325,
      "firms_5m_10m": 63,
      "firms_10m_25m": 23,
      "demand_per_employer_firm_usd": 517000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "VA",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 1816443000,
      "residential_annual_demand_usd": 1053537000,
      "commercial_annual_demand_usd": 762906000,
      "commercial_share_pct": 42,
      "employer_firms_total": 600,
      "firms_1m_5m": 172,
      "firms_5m_10m": 33,
      "firms_10m_25m": 14,
      "demand_per_employer_firm_usd": 3027000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "VT",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 117343000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 117343000,
      "commercial_share_pct": 100,
      "employer_firms_total": 160,
      "firms_1m_5m": 14,
      "firms_5m_10m": 2,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 733000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "VT",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 52071000,
      "residential_annual_demand_usd": 28639000,
      "commercial_annual_demand_usd": 23432000,
      "commercial_share_pct": 45,
      "employer_firms_total": 136,
      "firms_1m_5m": 49,
      "firms_5m_10m": 5,
      "firms_10m_25m": 3,
      "demand_per_employer_firm_usd": 383000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "VT",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 158982000,
      "residential_annual_demand_usd": 92210000,
      "commercial_annual_demand_usd": 66772000,
      "commercial_share_pct": 42,
      "employer_firms_total": 70,
      "firms_1m_5m": 27,
      "firms_5m_10m": 3,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 2271000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "WA",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 1380489000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 1380489000,
      "commercial_share_pct": 100,
      "employer_firms_total": 1480,
      "firms_1m_5m": 110,
      "firms_5m_10m": 27,
      "firms_10m_25m": 7,
      "demand_per_employer_firm_usd": 933000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "WA",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 547800000,
      "residential_annual_demand_usd": 301290000,
      "commercial_annual_demand_usd": 246510000,
      "commercial_share_pct": 45,
      "employer_firms_total": 956,
      "firms_1m_5m": 260,
      "firms_5m_10m": 54,
      "firms_10m_25m": 20,
      "demand_per_employer_firm_usd": 573000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "WA",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 1591664000,
      "residential_annual_demand_usd": 923165000,
      "commercial_annual_demand_usd": 668499000,
      "commercial_share_pct": 42,
      "employer_firms_total": 643,
      "firms_1m_5m": 173,
      "firms_5m_10m": 27,
      "firms_10m_25m": 11,
      "demand_per_employer_firm_usd": 2475000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "WI",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 1150723000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 1150723000,
      "commercial_share_pct": 100,
      "employer_firms_total": 619,
      "firms_1m_5m": 70,
      "firms_5m_10m": 15,
      "firms_10m_25m": 5,
      "demand_per_employer_firm_usd": 1859000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "WI",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 471333000,
      "residential_annual_demand_usd": 259233000,
      "commercial_annual_demand_usd": 212100000,
      "commercial_share_pct": 45,
      "employer_firms_total": 572,
      "firms_1m_5m": 207,
      "firms_5m_10m": 39,
      "firms_10m_25m": 14,
      "demand_per_employer_firm_usd": 824000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "WI",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 1390014000,
      "residential_annual_demand_usd": 806208000,
      "commercial_annual_demand_usd": 583806000,
      "commercial_share_pct": 42,
      "employer_firms_total": 352,
      "firms_1m_5m": 142,
      "firms_5m_10m": 21,
      "firms_10m_25m": 11,
      "demand_per_employer_firm_usd": 3949000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "WV",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 275189000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 275189000,
      "commercial_share_pct": 100,
      "employer_firms_total": 222,
      "firms_1m_5m": 15,
      "firms_5m_10m": 3,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 1240000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "WV",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 136642000,
      "residential_annual_demand_usd": 75153000,
      "commercial_annual_demand_usd": 61489000,
      "commercial_share_pct": 45,
      "employer_firms_total": 200,
      "firms_1m_5m": 52,
      "firms_5m_10m": 8,
      "firms_10m_25m": 2,
      "demand_per_employer_firm_usd": 683000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "WV",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 435322000,
      "residential_annual_demand_usd": 252487000,
      "commercial_annual_demand_usd": 182835000,
      "commercial_share_pct": 42,
      "employer_firms_total": 82,
      "firms_1m_5m": 21,
      "firms_5m_10m": 2,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 5309000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "WY",
      "trade": "cleaning",
      "serviceable_annual_demand_usd": 112044000,
      "residential_annual_demand_usd": 0,
      "commercial_annual_demand_usd": 112044000,
      "commercial_share_pct": 100,
      "employer_firms_total": 120,
      "firms_1m_5m": 8,
      "firms_5m_10m": 1,
      "firms_10m_25m": 0,
      "demand_per_employer_firm_usd": 934000,
      "method": "Commercial janitorial serviceable demand = the national commercial-janitorial services market allocated to the state by a modeled commercial-activity share (nonfarm-employment weighted). This is a modeled proxy, not a measured state estimate. Firm counts are US Census SUSB employer firms (businesses with paid employees). Cleaning is unpermitted work, so there is no building-permit signal."
    },
    {
      "state": "WY",
      "trade": "hvac",
      "serviceable_annual_demand_usd": 47326000,
      "residential_annual_demand_usd": 26029000,
      "commercial_annual_demand_usd": 21297000,
      "commercial_share_pct": 45,
      "employer_firms_total": 120,
      "firms_1m_5m": 31,
      "firms_5m_10m": 4,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 394000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    },
    {
      "state": "WY",
      "trade": "roofing",
      "serviceable_annual_demand_usd": 141507000,
      "residential_annual_demand_usd": 82074000,
      "commercial_annual_demand_usd": 59433000,
      "commercial_share_pct": 42,
      "employer_firms_total": 61,
      "firms_1m_5m": 13,
      "firms_5m_10m": 1,
      "firms_10m_25m": 1,
      "demand_per_employer_firm_usd": 2320000,
      "method": "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 are US Census SUSB employer firms (paid-employee businesses that compete for $1M+ work), not a registry pull. Building-permit records inform value MIX only (partial capture)."
    }
  ]
}
