{
  "trades": [
    {
      "slug": "hvac",
      "name": "HVAC & Refrigeration",
      "in_level_book": true,
      "resilience": 83.4,
      "leverage": 81.3,
      "resilience_rel": 100,
      "leverage_rel": 82,
      "trade_ai_score": 82.3,
      "quadrant": "transform-and-win",
      "quadrant_label": "Transform & Win",
      "rep_avg_rating": 3.74,
      "rep_claimed_pct": 77.2,
      "rep_n": 42943,
      "firmo_revenue_median": 10800000,
      "firmo_employees_median": 55,
      "firmo_n": 14629,
      "median_hourly_wage_usd": 28.75,
      "gross_margin_pct": 21.01,
      "net_margin_pct": 7.43,
      "operating_margin_pct": 8.24,
      "recurring_revenue_pct": 18,
      "us_employment": 425200
    },
    {
      "slug": "plumbing",
      "name": "Plumbing",
      "in_level_book": false,
      "resilience": 79.9,
      "leverage": 73.1,
      "resilience_rel": 81.8,
      "leverage_rel": 0,
      "trade_ai_score": 76.5,
      "quadrant": "safe-haven",
      "quadrant_label": "Safe Haven",
      "rep_avg_rating": 3.92,
      "rep_claimed_pct": 68.7,
      "rep_n": 11748,
      "firmo_revenue_median": null,
      "firmo_employees_median": null,
      "firmo_n": null,
      "median_hourly_wage_usd": 30.27,
      "gross_margin_pct": 22.1,
      "net_margin_pct": null,
      "operating_margin_pct": 7.1,
      "recurring_revenue_pct": 7.3,
      "us_employment": 504500
    },
    {
      "slug": "electrical",
      "name": "Electrical",
      "in_level_book": true,
      "resilience": 80.6,
      "leverage": 79.7,
      "resilience_rel": 85.4,
      "leverage_rel": 66,
      "trade_ai_score": 80.2,
      "quadrant": "transform-and-win",
      "quadrant_label": "Transform & Win",
      "rep_avg_rating": 4.19,
      "rep_claimed_pct": 74.5,
      "rep_n": 12534,
      "firmo_revenue_median": 10296892,
      "firmo_employees_median": 59,
      "firmo_n": 982,
      "median_hourly_wage_usd": 29.795,
      "gross_margin_pct": 22.4,
      "net_margin_pct": null,
      "operating_margin_pct": 7.1,
      "recurring_revenue_pct": 35.5,
      "us_employment": 818700
    },
    {
      "slug": "roofing",
      "name": "Roofing",
      "in_level_book": true,
      "resilience": 68.5,
      "leverage": 81.1,
      "resilience_rel": 22.4,
      "leverage_rel": 80,
      "trade_ai_score": 74.8,
      "quadrant": "race-to-modernize",
      "quadrant_label": "Race to Modernize",
      "rep_avg_rating": 3.8,
      "rep_claimed_pct": 77.9,
      "rep_n": 22796,
      "firmo_revenue_median": 9900000,
      "firmo_employees_median": 49,
      "firmo_n": 11823,
      "median_hourly_wage_usd": 24.51,
      "gross_margin_pct": 30,
      "net_margin_pct": 5.3,
      "operating_margin_pct": 15,
      "recurring_revenue_pct": 16,
      "us_employment": 166700
    },
    {
      "slug": "glass-glazing",
      "name": "Glass & Glazing",
      "in_level_book": true,
      "resilience": 76.8,
      "leverage": 76.9,
      "resilience_rel": 65.6,
      "leverage_rel": 38,
      "trade_ai_score": 76.8,
      "quadrant": "safe-haven",
      "quadrant_label": "Safe Haven",
      "rep_avg_rating": null,
      "rep_claimed_pct": null,
      "rep_n": null,
      "firmo_revenue_median": 14233314,
      "firmo_employees_median": 63,
      "firmo_n": 833,
      "median_hourly_wage_usd": 25.61,
      "gross_margin_pct": 22.549999999999997,
      "net_margin_pct": 6.275,
      "operating_margin_pct": 7.1,
      "recurring_revenue_pct": null,
      "us_employment": 60500
    },
    {
      "slug": "doors-access",
      "name": "Doors & Access",
      "in_level_book": true,
      "resilience": 79.4,
      "leverage": 77.7,
      "resilience_rel": 79.2,
      "leverage_rel": 46,
      "trade_ai_score": 78.6,
      "quadrant": "safe-haven",
      "quadrant_label": "Safe Haven",
      "rep_avg_rating": null,
      "rep_claimed_pct": null,
      "rep_n": null,
      "firmo_revenue_median": 10000000,
      "firmo_employees_median": 52,
      "firmo_n": 5083,
      "median_hourly_wage_usd": 27.09,
      "gross_margin_pct": 21.8,
      "net_margin_pct": 6.9,
      "operating_margin_pct": 20.7,
      "recurring_revenue_pct": 6,
      "us_employment": 959000
    },
    {
      "slug": "landscaping",
      "name": "Landscaping & Grounds",
      "in_level_book": true,
      "resilience": 68.9,
      "leverage": 80.9,
      "resilience_rel": 24.5,
      "leverage_rel": 78,
      "trade_ai_score": 74.9,
      "quadrant": "race-to-modernize",
      "quadrant_label": "Race to Modernize",
      "rep_avg_rating": 3.68,
      "rep_claimed_pct": 67.5,
      "rep_n": 20019,
      "firmo_revenue_median": 10760825,
      "firmo_employees_median": 50,
      "firmo_n": 4771,
      "median_hourly_wage_usd": 17.96,
      "gross_margin_pct": 23.3,
      "net_margin_pct": 2.4,
      "operating_margin_pct": 5.67,
      "recurring_revenue_pct": 70.8,
      "us_employment": 1192500
    },
    {
      "slug": "commercial-cleaning",
      "name": "Commercial Cleaning & Janitorial",
      "in_level_book": true,
      "resilience": 68.6,
      "leverage": 79.5,
      "resilience_rel": 22.9,
      "leverage_rel": 64,
      "trade_ai_score": 74,
      "quadrant": "race-to-modernize",
      "quadrant_label": "Race to Modernize",
      "rep_avg_rating": null,
      "rep_claimed_pct": null,
      "rep_n": null,
      "firmo_revenue_median": null,
      "firmo_employees_median": null,
      "firmo_n": null,
      "median_hourly_wage_usd": 16.84,
      "gross_margin_pct": 13.39,
      "net_margin_pct": 6.3,
      "operating_margin_pct": 6.3,
      "recurring_revenue_pct": 85,
      "us_employment": 2447700
    },
    {
      "slug": "painting",
      "name": "Painting & Wall Finishing",
      "in_level_book": true,
      "resilience": 64.2,
      "leverage": 74.3,
      "resilience_rel": 0,
      "leverage_rel": 12,
      "trade_ai_score": 69.3,
      "quadrant": "under-pressure",
      "quadrant_label": "Under Pressure",
      "rep_avg_rating": null,
      "rep_claimed_pct": null,
      "rep_n": null,
      "firmo_revenue_median": 9200000,
      "firmo_employees_median": 49,
      "firmo_n": 1040,
      "median_hourly_wage_usd": 22.94,
      "gross_margin_pct": 40,
      "net_margin_pct": null,
      "operating_margin_pct": 7.1,
      "recurring_revenue_pct": 25,
      "us_employment": 342200
    },
    {
      "slug": "concrete-masonry",
      "name": "Concrete & Masonry",
      "in_level_book": false,
      "resilience": 75.7,
      "leverage": 75.3,
      "resilience_rel": 59.9,
      "leverage_rel": 22,
      "trade_ai_score": 75.5,
      "quadrant": "safe-haven",
      "quadrant_label": "Safe Haven",
      "rep_avg_rating": null,
      "rep_claimed_pct": null,
      "rep_n": null,
      "firmo_revenue_median": 12800000,
      "firmo_employees_median": 59,
      "firmo_n": 12514,
      "median_hourly_wage_usd": 24.38,
      "gross_margin_pct": 38.9,
      "net_margin_pct": null,
      "operating_margin_pct": 7.1,
      "recurring_revenue_pct": 40,
      "us_employment": 294300
    },
    {
      "slug": "fire-life-safety",
      "name": "Fire & Life Safety",
      "in_level_book": false,
      "resilience": 83.4,
      "leverage": 79.9,
      "resilience_rel": 100,
      "leverage_rel": 68,
      "trade_ai_score": 81.7,
      "quadrant": "transform-and-win",
      "quadrant_label": "Transform & Win",
      "rep_avg_rating": 3.51,
      "rep_claimed_pct": 71.9,
      "rep_n": 963,
      "firmo_revenue_median": 13344398,
      "firmo_employees_median": 61,
      "firmo_n": 2986,
      "median_hourly_wage_usd": 28.15,
      "gross_margin_pct": 31,
      "net_margin_pct": 3.6,
      "operating_margin_pct": 6.9,
      "recurring_revenue_pct": 54,
      "us_employment": null
    },
    {
      "slug": "low-voltage-security",
      "name": "Low-Voltage & Security",
      "in_level_book": false,
      "resilience": 72.2,
      "leverage": 80.3,
      "resilience_rel": 41.7,
      "leverage_rel": 72,
      "trade_ai_score": 76.3,
      "quadrant": "race-to-modernize",
      "quadrant_label": "Race to Modernize",
      "rep_avg_rating": null,
      "rep_claimed_pct": null,
      "rep_n": null,
      "firmo_revenue_median": 10000000,
      "firmo_employees_median": 54,
      "firmo_n": 3512,
      "median_hourly_wage_usd": 29.98,
      "gross_margin_pct": 22.4,
      "net_margin_pct": null,
      "operating_margin_pct": 7.1,
      "recurring_revenue_pct": 14.2,
      "us_employment": null
    },
    {
      "slug": "restoration",
      "name": "Restoration & Remediation",
      "in_level_book": false,
      "resilience": 70.5,
      "leverage": 83.1,
      "resilience_rel": 32.8,
      "leverage_rel": 100,
      "trade_ai_score": 76.8,
      "quadrant": "race-to-modernize",
      "quadrant_label": "Race to Modernize",
      "rep_avg_rating": null,
      "rep_claimed_pct": null,
      "rep_n": null,
      "firmo_revenue_median": 10300000,
      "firmo_employees_median": 52,
      "firmo_n": 18438,
      "median_hourly_wage_usd": 22.64,
      "gross_margin_pct": 34,
      "net_margin_pct": 6.3,
      "operating_margin_pct": 7.3,
      "recurring_revenue_pct": 47.5,
      "us_employment": 35000
    }
  ]
}