Data Report2026 Edition

Metro Labor Index 2026: What Skilled Trades Cost by City

Labor is where a renovation gets expensive, and where the same job costs wildly different amounts by city. Materials ship at nearly national prices; wages are set locally. This report indexes the mean hourly wage for the seven trades that carry renovation work across 49 US metros against the national average, using US Bureau of Labor Statistics OEWS data. It is the wage layer underneath every metro price on this site.

ByCost to Renovate Editorial Team·Updated July 2026

Key Findings

  • Skilled-trade labor runs about 1.96x more in San Jose (1.41x the national mean) than in El Paso (0.72x), across the 49 metros indexed.
  • The gap is not uniform by trade. Floor layers vary the most, about 2.23x between the priciest and cheapest metro; other trades cluster tighter.
  • Because each project leans on a different trade, a single citywide cost multiplier misprices renovations. This index lets every project scale by the trade it actually depends on.

Why labor, and why by trade

A renovation budget splits into labor, materials, permits, and design. Materials are commodities that move at close to national prices, so the reason a kitchen in San Jose costs far more than the same kitchen in El Paso is almost entirely the labor line. And labor is not one number: an electrical panel job is priced off electricians, a re-roof off roofers, a repaint off painters. A city can be expensive for one trade and ordinary for another, so the honest way to localize a renovation price is to scale its labor by the specific trade it uses. That is exactly how the metro prices elsewhere on this site are built.

The index: 49 metros, ranked

Mean hourly wage relative to the national average for each trade. 1.00 is the national mean; 1.20 means 20 percent above.

#MetroCompositeElectriciansPlumbersCarpentersRoofersFloor layersPaintersHVAC mechanics
1San Jose1.411.391.581.341.321.551.251.41
2San Francisco1.321.451.281.371.281.271.271.34
3Chicago1.291.321.341.271.391.231.281.22
4Boston1.261.171.291.241.211.481.171.23
5Seattle1.251.391.331.281.261.061.131.32
6New York City1.251.241.261.231.331.221.261.23
7Portland1.201.441.401.191.151.061.021.12
8Minneapolis1.191.171.281.141.311.161.091.18
9Los Angeles1.141.151.111.201.151.131.121.15
10Sacramento1.121.121.061.121.151.161.141.11
11Hartford1.121.061.041.081.17-1.231.14
12San Diego1.121.151.091.181.121.021.081.17
13Philadelphia1.101.141.161.001.051.211.041.07
14St. Louis1.091.061.121.091.121.051.131.05
15Providence1.051.021.141.051.11-0.901.09
16Detroit1.051.111.131.021.140.861.071.03
17Pittsburgh1.021.051.041.010.961.130.961.00
18Denver1.020.951.001.041.000.911.081.15
19Kansas City1.011.091.101.031.010.861.011.00
20Buffalo1.011.061.020.981.110.851.061.01
21Las Vegas1.011.050.971.060.960.941.100.96
22Indianapolis1.000.971.061.020.990.960.961.06
23Columbus1.000.970.961.030.951.011.031.06
24Cleveland1.001.000.970.991.020.981.001.03
25Baltimore0.981.020.980.981.030.791.001.09
26Cincinnati0.970.930.980.950.970.930.991.01
27Louisville0.940.910.990.880.950.950.970.93
28Salt Lake City0.920.930.940.870.910.940.910.97
29Phoenix0.910.900.980.920.890.760.980.96
30Boise0.890.920.830.860.96-0.830.94
31Nashville0.890.930.870.860.890.860.840.94
32Albuquerque0.880.820.900.900.850.920.880.88
33Austin0.880.850.880.820.86-0.850.99
34New Orleans0.870.880.870.81--0.850.94
35Richmond0.860.870.840.820.86-0.860.90
36Jacksonville0.860.810.810.810.840.950.890.91
37Atlanta0.860.870.830.790.860.810.910.93
38Miami0.860.840.800.820.83-0.910.93
39Virginia Beach0.850.880.820.830.820.820.910.90
40Charlotte0.850.830.810.810.880.890.820.93
41Memphis0.850.880.840.810.83-0.820.93
42Tampa0.850.810.770.830.840.970.870.86
43Oklahoma City0.840.870.850.810.790.760.880.93
44Raleigh0.840.800.840.780.89-0.830.90
45Dallas0.840.840.860.770.850.750.840.95
46Tucson0.840.860.810.820.79-0.880.86
47Houston0.830.860.880.810.790.710.850.93
48San Antonio0.790.800.800.750.780.700.800.91
49El Paso0.720.730.780.680.66-0.700.76

A dash means BLS suppresses that metro-trade wage estimate; the composite is the mean of the trades the metro does report.

Spread by trade

How far each trade's wage stretches between the most and least expensive metro.

TradeNational / hrPriciest metroCheapest metroSpread
Electricians$34.37San Francisco (1.45)El Paso (0.73)1.99x
Plumbers$34.70San Jose (1.58)Tampa (0.77)2.06x
Carpenters$31.55San Francisco (1.37)El Paso (0.68)2.02x
Roofers$27.95Chicago (1.39)El Paso (0.66)2.11x
Floor layers$29.69San Jose (1.55)San Antonio (0.70)2.23x
Painters$26.64Chicago (1.28)El Paso (0.70)1.82x
HVAC mechanics$31.14San Jose (1.41)El Paso (0.76)1.85x

Common questions

Which US metro has the most expensive renovation labor?

San Jose has the highest skilled-trade wages of the 49 metros indexed, at 1.41x the national mean across the trades that drive renovation cost. El Paso is the lowest at 0.72x, so trade labor runs about 1.96x more in San Jose than in El Paso.

How much of a renovation is labor?

Labor is roughly 40 to 60 percent of a typical renovation and is where most of the regional cost difference lives, because materials ship at close to national prices while wages are set locally. That is why this index tracks wages by trade and metro.

Where does this labor data come from?

From the US Bureau of Labor Statistics Occupational Employment and Wage Statistics (OEWS) program, the May 2025 vintage. We take each metro area mean hourly wage for the trades that carry renovation work and divide by the national mean for that trade, giving a per-metro, per-trade index where 1.00 is the national average.

Does every trade vary by the same amount across metros?

No. The spread differs by trade. Floor layers vary the most, about 2.23x between the highest and lowest metro, while other trades cluster tighter. A single citywide cost multiplier cannot capture that, which is why renovation prices should scale each project by its own trade.

Cite this report

Free to cite and share under CC BY 4.0 with attribution to Cost to Renovate. Source data: US Bureau of Labor Statistics OEWS, May 2025. Index = metro mean hourly wage / national mean hourly wage, per trade.