Sheet metal worker salary in Minnesota
Median $35.08 an hour for 2,980 sheet metal workers, May 2025, with the union scale by county and the trend since 1999.
Sheet metal worker pay in Minnesota: the full range
Minnesota ranks 13th of 50 states for median sheet metal worker pay, and 13th once adjusted for cost of living (the cost-of-living-adjusted median is $35.58). 2,980 sheet metal workers work in the state.
| Career stage (approximate) | Hourly | Annual | Where it sits in the distribution |
|---|---|---|---|
| Apprentice / entry | $22.85 – $24.79 | $47,520 – $51,570 | roughly the 10th–25th percentile |
| Journeyman | $24.79 – $51.38 | $51,570 – $106,870 | the middle half, around the median |
| Master / foreman / specialist | $51.38 – $56.24 | $106,870 – $116,990 | the 75th–90th percentile and above |
Where does your pay fall?
Sheet metal worker pay by metro in Minnesota
| Metro | 10th | Median $/hr | 90th | Jobs | vs state |
|---|---|---|---|---|---|
| Duluth | $22.68 | $41.65 | $50.26 | 110 | 19% above |
| Fargo | $24.37 | $38.60 | $39.30 | 100 | 10% above |
| La Crosse | $19.36 | $36.15 | $47.37 | 60 | 3% above |
| Rochester | $23.02 | $35.42 | $47.31 | 60 | 1% above |
| Minneapolis | $23.08 | $35.08 | $56.86 | 2,340 | about the same as |
| Grand Forks | $23.11 | $29.55 | $40.74 | 100 | 16% below |
| Mankato | $22.46 | $28.77 | $51.38 | 50 | 18% below |
| Sioux Falls | $18.78 | $23.23 | $42.46 | 170 | 34% below |
Sheet metal worker wages in Minnesota over time
Table
| Year | Minnesota $/hr | In 2025 $ | US $/hr | Jobs |
|---|---|---|---|---|
| 1999 | $15.77 | $30.47 | $14.09 | 5,820 |
| 2000 | $21.34 | $39.90 | $15.31 | 4,270 |
| 2001 | $21.16 | $38.47 | $15.97 | 4,850 |
| 2002 | $20.90 | $37.40 | $16.62 | 4,290 |
| 2003 | $20.97 | $36.69 | $16.83 | 4,020 |
| 2004 | $22.31 | $38.02 | $17.09 | 4,070 |
| 2005 | $23.96 | $39.50 | $17.50 | 2,870 |
| 2006 | $24.92 | $39.80 | $17.96 | 3,740 |
| 2007 | $25.99 | $40.36 | $18.85 | 3,730 |
| 2008 | $27.31 | $40.84 | $19.37 | 3,970 |
| 2009 | $26.75 | $40.14 | $19.54 | 3,210 |
| 2010 | $27.02 | $39.89 | $20.05 | 2,530 |
| 2011 | $26.37 | $37.74 | $20.55 | 2,380 |
| 2012 | $32.79 | $45.98 | $20.81 | 2,330 |
| 2013 | $32.81 | $45.34 | $21.10 | 2,330 |
| 2014 | $33.47 | $45.52 | $21.67 | 2,480 |
| 2015 | $30.13 | $40.93 | $21.99 | 2,340 |
| 2016 | $31.44 | $42.17 | $22.57 | 2,860 |
| 2017 | $31.78 | $41.74 | $23.07 | 2,760 |
| 2018 | $34.88 | $44.72 | $23.30 | 2,550 |
| 2019 | $29.72 | $37.43 | $24.23 | 2,860 |
| 2020 | $31.81 | $39.57 | $24.70 | 3,170 |
| 2021 | $29.99 | $35.63 | $25.69 | 2,910 |
| 2022 | $29.17 | $32.09 | $26.61 | 2,370 |
| 2023 | $27.84 | $29.42 | $28.26 | 2,600 |
| 2024 | $30.07 | $30.86 | $29.26 | 2,230 |
| 2025 | $35.08 | $35.08 | $29.71 | 2,980 |
In today's dollars, the median sheet metal worker wage in Minnesota changed by -14.3% over the last ten years of data.
Union scale and prevailing wage for sheet metal workers in Minnesota
On federally funded construction in Minnesota, contractors must pay sheet metal workers at least the Davis-Bacon rate for the county. 0 of the 86 counties with a Building rate use a union contract rate (typical package — an hour including fringe); the rest use a survey rate (typical $78.71). The market median for the state is $35.08.
| County | Rate source | Base | Fringe | Total | Determination |
|---|---|---|---|---|---|
| Anoka | state SAMN2025-001 2025-12-22 | $60.96 | $35.82 | $96.78 | MN20260028 |
| Carver | state SAMN2025-001 2025-12-22 | $60.96 | $35.82 | $96.78 | MN20260036 |
| Chisago | state SAMN2025-001 2025-12-22 | $60.96 | $35.82 | $96.78 | MN20260039 |
| Dakota | state SAMN2025-001 2025-12-22 | $60.96 | $35.82 | $96.78 | MN20260045 |
| Hennepin | state SAMN2025-001 2025-12-22 | $60.96 | $35.82 | $96.78 | MN20260053 |
| Isanti | state SAMN2025-001 2025-12-22 | $60.96 | $35.82 | $96.78 | MN20260056 |
| Kanabec | state SAMN2025-001 2025-12-22 | $60.96 | $35.82 | $96.78 | MN20260059 |
| McLeod | state SAMN2025-001 2025-12-22 | $60.96 | $35.82 | $96.78 | MN20260072 |
| Meeker | state SAMN2025-001 2025-12-22 | $60.96 | $35.82 | $96.78 | MN20260073 |
| Pine | state SAMN2025-001 2025-12-22 | $60.96 | $35.82 | $96.78 | MN20260084 |
| Ramsey | state SAMN2025-001 2025-12-22 | $60.96 | $35.82 | $96.78 | MN20260088 |
| Rice | state SAMN2025-001 2025-12-22 | $60.96 | $35.82 | $96.78 | MN20260092 |
| Scott | state SAMN2025-001 2025-12-22 | $60.96 | $35.82 | $96.78 | MN20260095 |
| Sibley | state SAMN2025-001 2025-12-22 | $60.96 | $35.82 | $96.78 | MN20260097 |
| Washington | state SAMN2025-001 2025-12-22 | $60.96 | $35.82 | $96.78 | MN20260108 |
| Wright | state SAMN2025-001 2025-12-22 | $60.96 | $35.82 | $96.78 | MN20260112 |
| Douglas | state SAMN2025-001 2025-12-22 | $54.96 | $30.51 | $85.47 | MN20260047 |
| Grant | state SAMN2025-001 2025-12-22 | $54.96 | $30.51 | $85.47 | MN20260052 |
| Mahnomen | state SAMN2025-001 2025-12-22 | $54.96 | $30.51 | $85.47 | MN20260069 |
| Mille Lacs | state SAMN2025-001 2025-12-22 | $54.96 | $30.51 | $85.47 | MN20260074 |
| Morrison | state SAMN2025-001 2025-12-22 | $54.96 | $30.51 | $85.47 | MN20260075 |
| Otter Tail | state SAMN2025-001 2025-12-22 | $54.96 | $30.51 | $85.47 | MN20260082 |
| Pope | state SAMN2025-001 2025-12-22 | $54.96 | $30.51 | $85.47 | MN20260087 |
| Sherburne | state SAMN2025-001 2025-12-22 | $54.96 | $30.51 | $85.47 | MN20260096 |
| Stearns | state SAMN2025-001 2025-12-22 | $54.96 | $30.51 | $85.47 | MN20260099 |
| Stevens | state SAMN2025-001 2025-12-22 | $54.96 | $30.51 | $85.47 | MN20260101 |
| Todd | state SAMN2025-001 2025-12-22 | $54.96 | $30.51 | $85.47 | MN20260103 |
| Traverse | state SAMN2025-001 2025-12-22 | $54.96 | $30.51 | $85.47 | MN20260104 |
| Dodge | state SAMN2025-001 2025-12-22 | $52.48 | $31.77 | $84.25 | MN20260046 |
| Freeborn | state SAMN2025-001 2025-12-22 | $52.48 | $31.77 | $84.25 | MN20260050 |
| Goodhue | state SAMN2025-001 2025-12-22 | $52.48 | $31.77 | $84.25 | MN20260051 |
| Mower | state SAMN2025-001 2025-12-22 | $52.48 | $31.77 | $84.25 | MN20260076 |
| Olmsted | state SAMN2025-001 2025-12-22 | $52.48 | $31.77 | $84.25 | MN20260081 |
| Steele | state SAMN2025-001 2025-12-22 | $52.48 | $31.77 | $84.25 | MN20260100 |
| Wabasha | state SAMN2025-001 2025-12-22 | $52.48 | $31.77 | $84.25 | MN20260105 |
| Winona | state SAMN2025-001 2025-12-22 | $52.48 | $31.77 | $84.25 | MN20260111 |
| Aitkin | state SAMN2025-001 2025-12-22 | $49.83 | $32.65 | $82.48 | MN20260027 |
| Carlton | state SAMN2025-001 2025-12-22 | $49.83 | $32.65 | $82.48 | MN20260035 |
| Cook | state SAMN2025-001 2025-12-22 | $49.83 | $32.65 | $82.48 | MN20260042 |
| Lake | state SAMN2025-001 2025-12-22 | $49.83 | $32.65 | $82.48 | MN20260064 |
| Itasca | state SAMN2025-001 2025-12-22 | $48.76 | $31.14 | $79.90 | MN20260057 |
| Koochiching | state SAMN2025-001 2025-12-22 | $48.76 | $31.14 | $79.90 | MN20260062 |
| St. Louis | state SAMN2025-001 2025-12-22 | $48.76 | $31.14 | $79.90 | MN20260098 |
| Cass | state SAMN2025-001 2025-12-22 | $45.75 | $31.76 | $77.51 | MN20260037 |
| Crow Wing | state SAMN2025-001 2025-12-22 | $45.75 | $31.76 | $77.51 | MN20260044 |
| Hubbard | state SAMN2025-001 2025-12-22 | $45.75 | $31.76 | $77.51 | MN20260055 |
| Wadena | state SAMN2025-001 2025-12-22 | $45.75 | $31.76 | $77.51 | MN20260106 |
| Benton | state SAMN2025-001 2025-12-22 | $48.15 | $29.12 | $77.27 | MN20260031 |
| Chippewa | state SAMN2025-001 2025-12-22 | $42.23 | $31.52 | $73.75 | MN20260038 |
| Kandiyohi | state SAMN2025-001 2025-12-22 | $42.23 | $31.52 | $73.75 | MN20260060 |
| Renville | state SAMN2025-001 2025-12-22 | $42.23 | $31.52 | $73.75 | MN20260091 |
| Swift | state SAMN2025-001 2025-12-22 | $42.23 | $31.52 | $73.75 | MN20260102 |
| Yellow Medicine | state SAMN2025-001 2025-12-22 | $42.23 | $31.51 | $73.74 | MN20260113 |
| Fillmore | state SAMN2025-001 2025-12-22 | $43.53 | $28.98 | $72.51 | MN20260049 |
| Houston | state SAMN2025-001 2025-12-22 | $43.53 | $28.98 | $72.51 | MN20260054 |
| Beltrami | state SAMN2025-001 2025-12-22 | $40.96 | $27.33 | $68.29 | MN20260030 |
| Clearwater | state SAMN2025-001 2025-12-22 | $40.96 | $27.33 | $68.29 | MN20260041 |
| Lake of the Woods | state SAMN2025-001 2025-12-22 | $40.96 | $27.33 | $68.29 | MN20260065 |
| Jackson | state SAMN2025-001 2025-12-22 | $41.58 | $23.61 | $65.19 | MN20260058 |
| Lincoln | state SAMN2025-001 2025-12-22 | $41.58 | $23.61 | $65.19 | MN20260067 |
| Lyon | state SAMN2025-001 2025-12-22 | $41.58 | $23.61 | $65.19 | MN20260068 |
| Murray | state SAMN2025-001 2025-12-22 | $41.58 | $23.61 | $65.19 | MN20260077 |
| Nicollet | state SAMN2025-001 2025-12-22 | $41.58 | $23.61 | $65.19 | MN20260078 |
| Pipestone | state SAMN2025-001 2025-12-22 | $41.58 | $23.61 | $65.19 | MN20260085 |
| Redwood | state SAMN2025-001 2025-12-22 | $41.58 | $23.61 | $65.19 | MN20260090 |
| Waseca | state SAMN2025-001 2025-12-22 | $41.58 | $23.61 | $65.19 | MN20260107 |
| Watonwan | state SAMN2025-001 2025-12-22 | $41.58 | $23.61 | $65.19 | MN20260109 |
| Clay | state SAMN2025-001 2025-12-22 | $38.51 | $24.76 | $63.27 | MN20260040 |
| Wilkin | state SAMN2025-001 2025-12-22 | $38.51 | $24.76 | $63.27 | MN20260110 |
| Kittson | state SAMN2025-001 2025-12-22 | $35.37 | $22.69 | $58.06 | MN20260061 |
| Marshall | state SAMN2025-001 2025-12-22 | $35.37 | $22.69 | $58.06 | MN20260070 |
| Big Stone | state SAMN2025-001 2025-12-22 | $39.00 | $13.39 | $52.39 | MN20260032 |
| Nobles | state SAMN2025-001 2025-12-22 | $39.00 | $13.39 | $52.39 | MN20260079 |
| Rock | state SAMN2025-001 2025-12-22 | $39.00 | $13.39 | $52.39 | MN20260093 |
| Lac qui Parle | state SAMN2025-001 2025-12-22 | $32.17 | $17.65 | $49.82 | MN20260063 |
| Brown | state SAMN2025-001 2025-12-22 | $36.00 | $12.74 | $48.74 | MN20260034 |
| Becker | state SAMN2025-001 2025-12-22 | $34.00 | $9.30 | $43.30 | MN20260029 |
| Cottonwood | state SAMN2025-001 2025-12-22 | $30.00 | $7.40 | $37.40 | MN20260043 |
| Norman | state SAMN2025-001 2025-12-22 | $32.00 | $3.60 | $35.60 | MN20260080 |
| Polk | state SAMN2025-001 2025-12-22 | $32.00 | $3.60 | $35.60 | MN20260086 |
| Pennington | state SAMN2025-001 2025-12-22 | $28.50 | $5.50 | $34.00 | MN20260083 |
| Roseau | state SAMN2025-001 2025-12-22 | $28.50 | $5.50 | $34.00 | MN20260094 |
| Blue Earth | state SAMN2025-001 2025-12-22 | $26.00 | $1.77 | $27.77 | MN20260033 |
| Faribault | state SAMN2025-001 2025-12-22 | $26.00 | $1.77 | $27.77 | MN20260048 |
| Le Sueur | state SAMN2025-001 2025-12-22 | $26.00 | $1.77 | $27.77 | MN20260066 |
| Martin | state SAMN2025-001 2025-12-22 | $26.00 | $1.77 | $27.77 | MN20260071 |
Building construction type, current revisions as of 2026-09-28. Residential, Heavy and Highway rates differ; look them up on the Minnesota prevailing wage page. This is not the official wage determination.
Is construction work growing in Minnesota?
Contractor pay by county
Average pay at plumbing, heating and air-conditioning contractors establishments by county (all employees, not just sheet metal workers), from the Quarterly Census of Employment and Wages, 2025 annual averages.
| County | Employees | Average annual pay | Avg weekly wage |
|---|---|---|---|
| Washington County | 797 | $132,763 | $2,553 |
| Ramsey County | 3,001 | $108,630 | $2,089 |
| Hennepin County | 5,935 | $104,030 | $2,001 |
| Scott County | 619 | $95,075 | $1,828 |
| Itasca County | 192 | $92,110 | $1,771 |
| Dakota County | 1,360 | $90,068 | $1,732 |
| Houston County | 58 | $87,827 | $1,689 |
| Benton County | 1,214 | $87,803 | $1,689 |
| Chisago County | 130 | $87,553 | $1,684 |
| Olmsted County | 964 | $84,715 | $1,629 |
| Stearns County | 694 | $82,442 | $1,585 |
| Anoka County | 1,058 | $81,822 | $1,574 |
| Sherburne County | 338 | $79,579 | $1,530 |
| Mower County | 130 | $79,544 | $1,530 |
| St. Louis County | 667 | $78,629 | $1,512 |
| Blue Earth County | 464 | $78,313 | $1,506 |
| Douglas County | 230 | $76,231 | $1,466 |
| Rice County | 246 | $75,927 | $1,460 |
| Carver County | 219 | $75,656 | $1,455 |
| Wright County | 524 | $75,432 | $1,451 |
| Beltrami County | 318 | $73,414 | $1,412 |
| Lyon County | 88 | $72,361 | $1,392 |
| Winona County | 217 | $70,871 | $1,363 |
| McLeod County | 113 | $68,345 | $1,314 |
| Freeborn County | 69 | $67,848 | $1,305 |
| Martin County | 63 | $67,312 | $1,294 |
| Rock County | 30 | $67,286 | $1,294 |
| Otter Tail County | 214 | $64,433 | $1,239 |
| Brown County | 125 | $62,181 | $1,196 |
| Waseca County | 55 | $61,597 | $1,185 |
| Mille Lacs County | 62 | $61,178 | $1,177 |
| Becker County | 122 | $60,952 | $1,172 |
| Meeker County | 43 | $59,591 | $1,146 |
| Polk County | 45 | $58,489 | $1,125 |
| Todd County | 33 | $56,999 | $1,096 |
| Le Sueur County | 37 | $56,129 | $1,079 |
| Fillmore County | 42 | $55,966 | $1,076 |
| Cass County | 44 | $55,851 | $1,074 |
| Pine County | 29 | $53,908 | $1,037 |
| Pennington County | 33 | $53,262 | $1,024 |
| Faribault County | 67 | $52,876 | $1,017 |
| Nicollet County | 24 | $52,517 | $1,010 |
| Wabasha County | 26 | $51,450 | $989 |
| Morrison County | 16 | $50,487 | $971 |
| Yellow Medicine County | 19 | $50,102 | $963 |
| Big Stone County | 21 | $50,034 | $962 |
| Dodge County | 20 | $50,031 | $962 |
| Sibley County | 21 | $49,898 | $960 |
| Swift County | 31 | $46,947 | $903 |
| Redwood County | 31 | $45,679 | $878 |
| Murray County | 20 | $42,527 | $818 |
| Jackson County | 15 | $39,024 | $750 |
| Pipestone County | 23 | $36,519 | $702 |
| Wadena County | 9 | $35,853 | $689 |
Keep comparing
Sheet metal worker pay in neighbouring states
Other trades in Minnesota
Questions this page answers
How much do sheet metal workers make in Minnesota?
The median sheet metal worker in Minnesota earned $35.08 an hour ($72,970 a year) in May 2025, 18% above the national median of $29.71. The middle half earn $24.79–$51.38; the top 10% earn more than $56.24.
Where does Minnesota rank for sheet metal worker pay?
Minnesota ranks 13th of 50 states for sheet metal worker pay, with a median of $35.08 an hour, and 13th after adjusting for Minnesota's cost of living (BEA price parity 98.6, US = 100).
What is the union sheet metal worker rate in Minnesota?
Davis-Bacon determinations do not list a sheet metal worker classification for most Minnesota counties, or the trade is not covered; the BLS wage figures above are the best available measure.
How many sheet metal workers work in Minnesota?
BLS counted 2,980 sheet metal workers in Minnesota in May 2025, 1.0 per 1,000 jobs (location quotient 1.31; 1.0 is the national average concentration).
Sources and notes
- BLS Occupational Employment and Wage Statistics, May 2025, Minnesota and metro areas, SOC 47-2211.
- BLS Current Employment Statistics, state construction employment through 2026-08.
- BLS Quarterly Census of Employment and Wages, 2025 annual averages.
- BEA Regional Price Parities (cost-of-living adjustment).
- SAM.gov Davis-Bacon wage determinations, current revisions as of 2026-09-28. Not the official determination.