Data report · June 2026
The highest-paying US metros for skilled trades
We ranked 50 metros by what the trades actually pay, using 1,302 real BLS wage figures. The top of the list isn't only the expensive coasts, and we show exactly why.
Read this first
These are raw wages, not adjusted for cost of living. A dollar goes further in St. Louis than in San Jose, and this ranking does not correct for that. We haven't ingested cost-of-living data, so we don't pretend to adjust for it. Read this as “highest-paying before rent,” not “best place to work.”
That said, the list is not just expensive cities. Chicago ranks #2 ($80,440) and St. Louis #13 ($66,080), both well above what their cost of living would predict, sitting near San Francisco (#4, $78,490). Strong building-trades unions, not just rent, push trade wages up.
TradesPays data report
Highest-paying metros for skilled trades
Median wage across the top 20 of 50 metros, over the trades BLS reports in every one. Raw dollars, not cost-of-living adjusted.
- 1. San Jose, CA$82,050
- 2. Chicago, IL$80,440
- 3. Seattle, WA$79,920
- 4. San Francisco, CA$78,490
- 5. New York, NY$76,400
- 6. Boston, MA$75,210
- 7. Minneapolis, MN$74,800
- 8. Portland, OR$73,710
- 9. Milwaukee, WI$72,680
- 10. San Diego, CA$72,510
- 11. Los Angeles, CA$72,090
- 12. Sacramento, CA$66,670
- 13. St. Louis, MO$66,080
- 14. Detroit, MI$65,810
- 15. Providence, RI$64,770
- 16. Philadelphia, PA$64,580
- 17. Columbus, OH$64,440
- 18. Riverside, CA$64,300
- 19. Denver, CO$63,150
- 20. Cincinnati, OH$62,990
TradesPays · BLS OEWS May 2025 metropolitan files · median across the trades reported in every metro · raw wages, not cost-of-living adjusted.
Share it: download the chart (PNG) or the dataset (JSON). Every figure traces to BLS OEWS May 2025.
What the numbers say
San Jose, CA pays the most ($82,050 median), San Antonio, TX the least of the covered metros ($48,900) — a $33,150 spread on the same trades. The expensive coastal metros lead, as you'd expect. But the surprise is the industrial Midwest: Chicago, Minneapolis, and Milwaukee all pay near San Francisco wages at a fraction of the rent, on the strength of organized building trades. Where the union is strong, the wage follows — cost of living or not.
All 50 metros, ranked
Median wage across the 15 trades BLS reports in every covered metro (the apples-to-apples basket). Raw dollars, not cost-of-living adjusted.
| # | Metro | Median wage | Trades reported |
|---|---|---|---|
| 1 | San Jose, CA | $82,050 | 25 |
| 2 | Chicago, IL | $80,440 | 29 |
| 3 | Seattle, WA | $79,920 | 28 |
| 4 | San Francisco, CA | $78,490 | 29 |
| 5 | New York, NY | $76,400 | 30 |
| 6 | Boston, MA | $75,210 | 25 |
| 7 | Minneapolis, MN | $74,800 | 28 |
| 8 | Portland, OR | $73,710 | 29 |
| 9 | Milwaukee, WI | $72,680 | 24 |
| 10 | San Diego, CA | $72,510 | 28 |
| 11 | Los Angeles, CA | $72,090 | 30 |
| 12 | Sacramento, CA | $66,670 | 27 |
| 13 | St. Louis, MO | $66,080 | 26 |
| 14 | Detroit, MI | $65,810 | 27 |
| 15 | Providence, RI | $64,770 | 25 |
| 16 | Philadelphia, PA | $64,580 | 29 |
| 17 | Columbus, OH | $64,440 | 24 |
| 18 | Riverside, CA | $64,300 | 27 |
| 19 | Denver, CO | $63,150 | 27 |
| 20 | Cincinnati, OH | $62,990 | 25 |
| 21 | Cleveland, OH | $62,790 | 27 |
| 22 | Kansas City, MO | $62,250 | 27 |
| 23 | Indianapolis, IN | $62,160 | 27 |
| 24 | Pittsburgh, PA | $62,140 | 26 |
| 25 | Baltimore, MD | $61,920 | 26 |
| 26 | Washington, DC | $61,270 | 27 |
| 27 | Salt Lake City, UT | $60,790 | 26 |
| 28 | Phoenix, AZ | $60,320 | 28 |
| 29 | Las Vegas, NV | $60,040 | 29 |
| 30 | Grand Rapids, MI | $59,540 | 24 |
| 31 | Virginia Beach, VA | $59,470 | 25 |
| 32 | Nashville, TN | $59,220 | 25 |
| 33 | Austin, TX | $59,040 | 23 |
| 34 | Louisville, KY | $58,930 | 25 |
| 35 | Baton Rouge, LA | $58,210 | 22 |
| 36 | Boise City, ID | $56,940 | 23 |
| 37 | Richmond, VA | $55,280 | 24 |
| 38 | Omaha, NE | $53,110 | 25 |
| 39 | Houston, TX | $51,870 | 28 |
| 40 | Miami, FL | $51,800 | 27 |
| 41 | Dallas, TX | $51,630 | 29 |
| 42 | Charlotte, NC | $50,960 | 24 |
| 43 | Raleigh, NC | $50,820 | 20 |
| 44 | Atlanta, GA | $50,680 | 25 |
| 45 | Tampa, FL | $50,300 | 26 |
| 46 | Orlando, FL | $50,200 | 25 |
| 47 | Birmingham, AL | $49,930 | 23 |
| 48 | Jacksonville, FL | $49,350 | 24 |
| 49 | Oklahoma City, OK | $48,940 | 25 |
| 50 | San Antonio, TX | $48,900 | 25 |
Where each trade pays the most
The single highest-paying metro for each of the 30 trades, by BLS median. The last column shows how many of the 50 metros BLS reports the trade in — a few specialized trades appear in far fewer, so read those leaders as “of the metros that report it.”
| Trade | Top metro | Median wage | Metros |
|---|---|---|---|
| Elevator Installer | San Jose, CA | $173,920 | 36 |
| Power-Line Worker | San Jose, CA | $157,620 | 50 |
| Insulation Worker | San Francisco, CA | $136,460 | 35 |
| Boilermaker | San Francisco, CA | $135,290 | 15 |
| Construction Equipment Operator | San Francisco, CA | $124,750 | 50 |
| Ironworker | Boston, MA | $120,840 | 49 |
| Plasterer | New York, NY | $120,180 | 31 |
| Rebar Worker | Seattle, WA | $118,970 | 24 |
| Millwright | San Francisco, CA | $113,490 | 43 |
| Taper | Chicago, IL | $113,180 | 21 |
| Sheet Metal Worker | Seattle, WA | $109,830 | 50 |
| Glazier | Boston, MA | $107,610 | 48 |
| Plumber | San Jose, CA | $107,560 | 50 |
| Telecom Line Installer | San Jose, CA | $107,310 | 50 |
| Floor Layer | San Jose, CA | $105,280 | 39 |
| Electrician | Portland, OR | $105,090 | 50 |
| Brickmason | Minneapolis, MN | $97,960 | 49 |
| Pipelayer | Milwaukee, WI | $93,550 | 43 |
| Industrial Machinery Mechanic | San Francisco, CA | $90,580 | 50 |
| Carpenter | San Francisco, CA | $89,200 | 50 |
| Tile & Stone Setter | Boston, MA | $82,230 | 43 |
| Drywall Installer | San Francisco, CA | $82,160 | 49 |
| Roofer | Chicago, IL | $82,090 | 50 |
| HVAC Technician | San Jose, CA | $82,050 | 50 |
| Cement Mason | Chicago, IL | $81,020 | 50 |
| Welder | Baton Rouge, LA | $78,170 | 50 |
| Hazardous Materials Removal Worker | New York, NY | $74,060 | 50 |
| Construction Laborer | San Francisco, CA | $72,610 | 50 |
| Solar Installer | San Francisco, CA | $72,150 | 27 |
| Painter | San Francisco, CA | $63,600 | 50 |
What this is not
The numbers are real BLS medians. Read honestly, here is what they can and can't tell you.
Not cost-of-living adjusted.
Expensive metros rank high partly because they're expensive. San Jose, CA dollars and San Antonio, TX dollars don't buy the same life. We didn't adjust, and we won't pretend a high raw wage means a high real one.
Not a best-places-to-work score.
Pay is one input. Cost of living, job volume, commute, weather, and how much work is actually going aren't in this ranking. This is the wage line only.
A consistent basket, on purpose.
Metros are ranked on the 15 trades BLS reports in all 50 of them, not each metro's own mix. Ranking on the local mix would float metros that simply lack their low-paying trades. The number is "the typical trade's median," not an all-trades average.
Suppressed cells are excluded, not filled.
198 of 1,500 metro-and-trade cells were too thin for BLS to publish. We leave them out rather than estimate. That's why per-trade leaders show a metro count.
Not every US metro.
These are the 50 metros with the most skilled-trades employment. A smaller metro could pay more for a specific trade and not appear here.
Methodology
- Source
- BLS Occupational Employment and Wage Statistics (OEWS) May 2025, metropolitan (CBSA) files. Annual median (p50) wage by trade SOC code and metro. Public domain.
- Metros covered
- The 50 US metros with the most combined skilled-trades employment across our 30 trades. Each is a Metropolitan Statistical Area (BLS area type 4); no metropolitan divisions, so there's no parent/child double-counting.
- How a metro is ranked
- For each metro, we take the BLS median for every trade in the consistent basket (15 trades BLS reports in all 50 metros) and rank by the median of those figures. Ties break on the mean, then name. No figure is modeled or imputed.
- How per-trade leaders are found
- For each trade, the metro with the highest BLS annual median, among the metros where BLS published that trade. The metro count is shown so a leader drawn from a thin set is visible.
- Coverage
- 1,302 of 1,500 metro-and-trade cells had publishable BLS data (86.8%). The other 198 were suppressed and excluded.
- Known limitations
- Raw wages, no cost-of-living adjustment. OEWS is an employer survey of wages, not total compensation (no benefits, overtime, or self-employment). A single May 2025 vintage; not a trend.
More on how we source everything: our methodology. The companion report on union scale vs the prevailing wage: what the union scales show.
Know what your metro really pays?
BLS tells you the median. It can't tell you what the shop down the road is actually paying. Send us your trade, your metro, and your pay. We publish anonymously, never with a raw email address.