Plumber salary in Minnesota
Median $45.39 an hour for 10,720 plumbers, May 2025, with the union scale by county, the job trend since 1999 and the state's own outlook.
Plumber pay in Minnesota: the full range
Minnesota ranks 4th of 51 states for median plumber pay, and 2nd once adjusted for cost of living (the cost-of-living-adjusted median is $46.03). 10,720 plumbers work in the state. The top 10% earn 2.5× what the bottom 10% earn.
| Career stage (approximate) | Hourly | Annual | Where it sits in the distribution |
|---|---|---|---|
| Apprentice / entry level | $23.42 – $29.40 | $48,720 – $61,150 | roughly the 10th to 25th percentile |
| Journeyman | $29.40 – $52.29 | $61,150 – $108,750 | the middle half, around the median |
| Master, foreman or specialist | $52.29 – $58.20 | $108,750 – $121,050 | the 75th to 90th percentile and above |
Where does your pay fall?
Plumber pay by metro in Minnesota
| Metro | 10th | Median $/hr | Cost-of-living adjusted | 90th | Jobs | vs state |
|---|---|---|---|---|---|---|
| Minneapolis | $24.70 | $48.86 | $46.62 | $58.52 | 6,730 | 8% above |
| St. Cloud | $24.41 | $43.38 | $49.52 | $56.18 | 830 | 4% below |
| Duluth | $22.26 | $40.89 | $46.05 | $52.57 | 420 | 10% below |
| Rochester | $23.44 | $40.81 | $44.94 | $51.30 | 490 | 10% below |
| La Crosse | $23.93 | $39.72 | $43.27 | $50.77 | 280 | 12% below |
| Mankato | $23.50 | $35.79 | $39.33 | $55.24 | 130 | 21% below |
| Fargo | $21.86 | $30.46 | $33.51 | $39.82 | 670 | 33% below |
| Grand Forks | $22.04 | $30.26 | $34.90 | $40.30 | 240 | 33% below |
| Sioux Falls | $19.36 | $26.44 | $29.18 | $36.77 | 810 | 42% below |
Cost-of-living adjusted: median divided by the BEA regional price parity for the metro (2024, US = 100).
Plumber wages in Minnesota over time
Table
| Year | Minnesota $/hr | In 2025 $ | US $/hr | Jobs |
|---|---|---|---|---|
| 1999 | $22.40 | $43.29 | $17.41 | 6,700 |
| 2000 | $23.03 | $43.06 | $18.19 | 10,130 |
| 2001 | $24.73 | $44.96 | $18.61 | 10,540 |
| 2002 | $25.43 | $45.51 | $19.31 | 10,170 |
| 2003 | $25.73 | $45.02 | $19.69 | 10,090 |
| 2004 | $27.93 | $47.60 | $19.85 | 8,520 |
| 2005 | $26.53 | $43.73 | $20.27 | 9,590 |
| 2006 | $27.94 | $44.62 | $20.56 | 9,150 |
| 2007 | $28.50 | $44.25 | $21.20 | 9,070 |
| 2008 | $29.78 | $44.53 | $21.94 | 8,060 |
| 2009 | $29.15 | $43.74 | $22.27 | 6,890 |
| 2010 | $29.58 | $43.67 | $22.43 | 6,280 |
| 2011 | $30.36 | $43.45 | $22.96 | 6,460 |
| 2012 | $29.73 | $41.69 | $23.62 | 7,210 |
| 2013 | $31.62 | $43.70 | $24.13 | 7,720 |
| 2014 | $32.77 | $44.56 | $24.36 | 8,740 |
| 2015 | $32.78 | $44.53 | $24.34 | 8,630 |
| 2016 | $33.44 | $44.86 | $24.74 | 8,570 |
| 2017 | $33.19 | $43.59 | $25.28 | 8,660 |
| 2018 | $35.25 | $45.19 | $25.92 | 8,700 |
| 2019 | $35.69 | $44.94 | $26.52 | 9,950 |
| 2020 | $37.89 | $47.13 | $27.08 | 10,480 |
| 2021 | $37.82 | $44.93 | $28.79 | 8,450 |
| 2022 | $36.51 | $40.16 | $28.89 | 9,430 |
| 2023 | $38.43 | $40.60 | $29.59 | 10,100 |
| 2024 | $40.04 | $41.09 | $30.27 | 8,520 |
| 2025 | $45.39 | $45.39 | $30.67 | 10,720 |
In today's dollars, the median plumber wage in Minnesota changed by +1.9% over the last ten years of data and by +1.0% since 2019.
Are there more plumber jobs in Minnesota?
Since 1999, the number of plumbers counted in Minnesota has changed by +60.0%, against +12.7% for the country as a whole. Since 2019 the state count changed by +7.7%.
Table
| Year | Minnesota jobs | Minnesota index | US index |
|---|---|---|---|
| 1999 | 6,700 | 100 | 100 |
| 2000 | 10,130 | 151 | 106 |
| 2001 | 10,540 | 157 | 106 |
| 2002 | 10,170 | 152 | 106 |
| 2003 | 10,090 | 151 | 105 |
| 2004 | 8,520 | 127 | 103 |
| 2005 | 9,590 | 143 | 102 |
| 2006 | 9,150 | 137 | 106 |
| 2007 | 9,070 | 135 | 105 |
| 2008 | 8,060 | 120 | 106 |
| 2009 | 6,890 | 103 | 97 |
| 2010 | 6,280 | 94 | 87 |
| 2011 | 6,460 | 96 | 84 |
| 2012 | 7,210 | 108 | 82 |
| 2013 | 7,720 | 115 | 85 |
| 2014 | 8,740 | 130 | 90 |
| 2015 | 8,630 | 129 | 95 |
| 2016 | 8,570 | 128 | 100 |
| 2017 | 8,660 | 129 | 104 |
| 2018 | 8,700 | 130 | 106 |
| 2019 | 9,950 | 148 | 107 |
| 2020 | 10,480 | 156 | 101 |
| 2021 | 8,450 | 126 | 101 |
| 2022 | 9,430 | 141 | 104 |
| 2023 | 10,100 | 151 | 106 |
| 2024 | 8,520 | 127 | 110 |
| 2025 | 10,720 | 160 | 113 |
Job counts are BLS OEWS survey estimates built from three years of samples, so moves of a few percent from one year to the next are within the survey's margin. Self-employed tradespeople are not counted. Areas with fewer than 3,000 jobs or a large sampling error are shown as a single figure rather than a trend.
Outlook for plumbers in Minnesota
Minnesota's labor market agency projects the number of plumbers in the state to change by +7.4% between 2024 and 2034, from 9,300 to 9,990, with about 850 openings a year. Nationally, BLS projects +6.8% over 2025-35. State counts include the self-employed and use a different base year, so they do not match the 10,720 counted by the BLS employer survey.
Source: Minnesota labor market information agency via Projections Central, 2024–2034 long-term projections (state projections page).
Union scale and prevailing wage for plumbers in Minnesota
On federally funded construction in Minnesota, contractors must pay plumbers at least the Davis-Bacon rate for the county. 0 of the 87 counties with a Building rate use a union contract rate (typical package — an hour including fringe); the rest use a survey rate (typical $71.29). The market median for the state is $45.39.
| County | Rate source | Base | Fringe | Total | Determination |
|---|---|---|---|---|---|
| Anoka | state SAMN2025-001 2025-12-22 | $63.84 | $33.26 | $97.10 | MN20260028 |
| Carver | state SAMN2025-001 2025-12-22 | $63.84 | $33.26 | $97.10 | MN20260036 |
| Chisago | state SAMN2025-001 2025-12-22 | $62.78 | $34.32 | $97.10 | MN20260039 |
| Dakota | state SAMN2025-001 2025-12-22 | $62.78 | $34.32 | $97.10 | MN20260045 |
| Goodhue | state SAMN2025-001 2025-12-22 | $62.78 | $34.32 | $97.10 | MN20260051 |
| Hennepin | state SAMN2025-001 2025-12-22 | $63.84 | $33.26 | $97.10 | MN20260053 |
| Isanti | state SAMN2025-001 2025-12-22 | $63.84 | $33.26 | $97.10 | MN20260056 |
| McLeod | state SAMN2025-001 2025-12-22 | $63.84 | $33.26 | $97.10 | MN20260072 |
| Mille Lacs | state SAMN2025-001 2025-12-22 | $63.84 | $33.26 | $97.10 | MN20260074 |
| Ramsey | state SAMN2025-001 2025-12-22 | $62.78 | $34.32 | $97.10 | MN20260088 |
| Scott | state SAMN2025-001 2025-12-22 | $63.84 | $33.26 | $97.10 | MN20260095 |
| Sherburne | state SAMN2025-001 2025-12-22 | $63.84 | $33.26 | $97.10 | MN20260096 |
| Washington | state SAMN2025-001 2025-12-22 | $62.78 | $34.32 | $97.10 | MN20260108 |
| Wright | state SAMN2025-001 2025-12-22 | $63.84 | $33.26 | $97.10 | MN20260112 |
| Benton | state SAMN2025-001 2025-12-22 | $56.91 | $32.21 | $89.12 | MN20260031 |
| Big Stone | state SAMN2025-001 2025-12-22 | $56.91 | $32.21 | $89.12 | MN20260032 |
| Chippewa | state SAMN2025-001 2025-12-22 | $56.91 | $32.21 | $89.12 | MN20260038 |
| Kandiyohi | state SAMN2025-001 2025-12-22 | $56.91 | $32.21 | $89.12 | MN20260060 |
| Meeker | state SAMN2025-001 2025-12-22 | $56.91 | $32.21 | $89.12 | MN20260073 |
| Morrison | state SAMN2025-001 2025-12-22 | $56.91 | $32.21 | $89.12 | MN20260075 |
| Pope | state SAMN2025-001 2025-12-22 | $56.91 | $32.21 | $89.12 | MN20260087 |
| Stearns | state SAMN2025-001 2025-12-22 | $56.91 | $32.21 | $89.12 | MN20260099 |
| Stevens | state SAMN2025-001 2025-12-22 | $56.91 | $32.21 | $89.12 | MN20260101 |
| Swift | state SAMN2025-001 2025-12-22 | $56.91 | $32.21 | $89.12 | MN20260102 |
| Todd | state SAMN2025-001 2025-12-22 | $56.91 | $32.21 | $89.12 | MN20260103 |
| Dodge | state SAMN2025-001 2025-12-22 | $54.91 | $33.58 | $88.49 | MN20260046 |
| Faribault | state SAMN2025-001 2025-12-22 | $54.91 | $33.58 | $88.49 | MN20260048 |
| Freeborn | state SAMN2025-001 2025-12-22 | $54.91 | $33.58 | $88.49 | MN20260050 |
| Houston | state SAMN2025-001 2025-12-22 | $54.91 | $33.58 | $88.49 | MN20260054 |
| Mower | state SAMN2025-001 2025-12-22 | $54.91 | $33.58 | $88.49 | MN20260076 |
| Olmsted | state SAMN2025-001 2025-12-22 | $54.91 | $33.58 | $88.49 | MN20260081 |
| Rice | state SAMN2025-001 2025-12-22 | $54.91 | $33.58 | $88.49 | MN20260092 |
| Steele | state SAMN2025-001 2025-12-22 | $54.91 | $33.58 | $88.49 | MN20260100 |
| Waseca | state SAMN2025-001 2025-12-22 | $54.91 | $33.58 | $88.49 | MN20260107 |
| Carlton | state SAMN2025-001 2025-12-22 | $55.59 | $27.56 | $83.15 | MN20260035 |
| Cook | state SAMN2025-001 2025-12-22 | $55.59 | $27.56 | $83.15 | MN20260042 |
| Kanabec | state SAMN2025-001 2025-12-22 | $55.59 | $27.56 | $83.15 | MN20260059 |
| Pine | state SAMN2025-001 2025-12-22 | $55.59 | $27.56 | $83.15 | MN20260084 |
| St. Louis | state SAMN2025-001 2025-12-22 | $55.59 | $27.56 | $83.15 | MN20260098 |
| Cass | state SAMN2025-001 2025-12-22 | $51.87 | $28.33 | $80.20 | MN20260037 |
| Itasca | state SAMN2025-001 2025-12-22 | $51.87 | $28.33 | $80.20 | MN20260057 |
| Lake | state SAMN2025-001 2025-12-22 | $51.87 | $28.33 | $80.20 | MN20260064 |
| Blue Earth | state SAMN2025-001 2025-12-22 | $42.12 | $29.17 | $71.29 | MN20260033 |
| Brown | state SAMN2025-001 2025-12-22 | $42.12 | $29.17 | $71.29 | MN20260034 |
| Jackson | state SAMN2025-001 2025-12-22 | $42.12 | $29.17 | $71.29 | MN20260058 |
| Le Sueur | state SAMN2025-001 2025-12-22 | $42.12 | $29.17 | $71.29 | MN20260066 |
| Lincoln | state SAMN2025-001 2025-12-22 | $42.12 | $29.17 | $71.29 | MN20260067 |
| Lyon | state SAMN2025-001 2025-12-22 | $42.12 | $29.17 | $71.29 | MN20260068 |
| Martin | state SAMN2025-001 2025-12-22 | $42.12 | $29.17 | $71.29 | MN20260071 |
| Nicollet | state SAMN2025-001 2025-12-22 | $42.12 | $29.17 | $71.29 | MN20260078 |
| Pipestone | state SAMN2025-001 2025-12-22 | $42.12 | $29.17 | $71.29 | MN20260085 |
| Redwood | state SAMN2025-001 2025-12-22 | $42.12 | $29.17 | $71.29 | MN20260090 |
| Renville | state SAMN2025-001 2025-12-22 | $42.12 | $29.17 | $71.29 | MN20260091 |
| Rock | state SAMN2025-001 2025-12-22 | $42.12 | $29.17 | $71.29 | MN20260093 |
| Sibley | state SAMN2025-001 2025-12-22 | $42.12 | $29.17 | $71.29 | MN20260097 |
| Watonwan | state SAMN2025-001 2025-12-22 | $42.12 | $29.17 | $71.29 | MN20260109 |
| Yellow Medicine | state SAMN2025-001 2025-12-22 | $42.12 | $29.17 | $71.29 | MN20260113 |
| Aitkin | state SAMN2025-001 2025-12-22 | $49.64 | $21.34 | $70.98 | MN20260027 |
| Becker | state SAMN2025-001 2025-12-22 | $49.64 | $21.34 | $70.98 | MN20260029 |
| Beltrami | state SAMN2025-001 2025-12-22 | $49.64 | $21.34 | $70.98 | MN20260030 |
| Clay | state SAMN2025-001 2025-12-22 | $49.64 | $21.34 | $70.98 | MN20260040 |
| Crow Wing | state SAMN2025-001 2025-12-22 | $49.64 | $21.34 | $70.98 | MN20260044 |
| Douglas | state SAMN2025-001 2025-12-22 | $49.64 | $21.34 | $70.98 | MN20260047 |
| Grant | state SAMN2025-001 2025-12-22 | $49.64 | $21.34 | $70.98 | MN20260052 |
| Hubbard | state SAMN2025-001 2025-12-22 | $49.64 | $21.34 | $70.98 | MN20260055 |
| Lake of the Woods | state SAMN2025-001 2025-12-22 | $49.64 | $21.34 | $70.98 | MN20260065 |
| Mahnomen | state SAMN2025-001 2025-12-22 | $49.64 | $21.34 | $70.98 | MN20260069 |
| Marshall | state SAMN2025-001 2025-12-22 | $49.64 | $21.34 | $70.98 | MN20260070 |
| Norman | state SAMN2025-001 2025-12-22 | $49.64 | $21.34 | $70.98 | MN20260080 |
| Otter Tail | state SAMN2025-001 2025-12-22 | $49.64 | $21.34 | $70.98 | MN20260082 |
| Polk | state SAMN2025-001 2025-12-22 | $49.64 | $21.34 | $70.98 | MN20260086 |
| Red Lake | state SAMN2025-001 2025-12-22 | $49.64 | $21.34 | $70.98 | MN20260089 |
| Traverse | state SAMN2025-001 2025-12-22 | $49.64 | $21.34 | $70.98 | MN20260104 |
| Wadena | state SAMN2025-001 2025-12-22 | $49.64 | $21.34 | $70.98 | MN20260106 |
| Wilkin | state SAMN2025-001 2025-12-22 | $49.64 | $21.34 | $70.98 | MN20260110 |
| Koochiching | state SAMN2025-001 2025-12-22 | $44.70 | $26.14 | $70.84 | MN20260062 |
| Fillmore | state SAMN2025-001 2025-12-22 | $44.11 | $19.50 | $63.61 | MN20260049 |
| Wabasha | state SAMN2025-001 2025-12-22 | $44.11 | $19.50 | $63.61 | MN20260105 |
| Winona | state SAMN2025-001 2025-12-22 | $44.11 | $19.50 | $63.61 | MN20260111 |
| Cottonwood | state SAMN2025-001 2025-12-22 | $42.50 | $14.81 | $57.31 | MN20260043 |
| Murray | state SAMN2025-001 2025-12-22 | $39.00 | $11.54 | $50.54 | MN20260077 |
| Clearwater | state SAMN2025-001 2025-12-22 | $41.65 | $7.10 | $48.75 | MN20260041 |
| Kittson | state SAMN2025-001 2025-12-22 | $36.50 | $8.76 | $45.26 | MN20260061 |
| Pennington | state SAMN2025-001 2025-12-22 | $36.50 | $8.76 | $45.26 | MN20260083 |
| Roseau | state SAMN2025-001 2025-12-22 | $36.50 | $8.76 | $45.26 | MN20260094 |
| Nobles | state SAMN2025-001 2025-12-22 | $35.75 | $7.73 | $43.48 | MN20260079 |
| Lac qui Parle | state SAMN2025-001 2025-12-22 | $30.00 | $9.72 | $39.72 | MN20260063 |
Building construction type, current revisions as of 2026-11-06. 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 plumbers), from the Quarterly Census of Employment and Wages, 2025 annual averages. Across the 78 counties that report both years, specialty trade contractor employment (all trades) went from 70,177 in 2015 to 87,254 in 2025, +24.3%.
| County | Establishments | Employees | Average annual pay | Avg weekly wage |
|---|---|---|---|---|
| Washington County | 69 | 797 | $132,763 | $2,553 |
| Ramsey County | 96 | 3,001 | $108,630 | $2,089 |
| Hennepin County | 232 | 5,935 | $104,030 | $2,001 |
| Scott County | 49 | 619 | $95,075 | $1,828 |
| Itasca County | 18 | 192 | $92,110 | $1,771 |
| Dakota County | 102 | 1,360 | $90,068 | $1,732 |
| Houston County | 5 | 58 | $87,827 | $1,689 |
| Benton County | 22 | 1,214 | $87,803 | $1,689 |
| Chisago County | 18 | 130 | $87,553 | $1,684 |
| Olmsted County | 40 | 964 | $84,715 | $1,629 |
| Stearns County | 55 | 694 | $82,442 | $1,585 |
| Anoka County | 124 | 1,058 | $81,822 | $1,574 |
| Sherburne County | 60 | 338 | $79,579 | $1,530 |
| Mower County | 12 | 130 | $79,544 | $1,530 |
| St. Louis County | 70 | 667 | $78,629 | $1,512 |
| Blue Earth County | 33 | 464 | $78,313 | $1,506 |
| Douglas County | 22 | 230 | $76,231 | $1,466 |
| Rice County | 25 | 246 | $75,927 | $1,460 |
| Carver County | 40 | 219 | $75,656 | $1,455 |
| Wright County | 75 | 524 | $75,432 | $1,451 |
| Beltrami County | 20 | 318 | $73,414 | $1,412 |
| Lyon County | 10 | 88 | $72,361 | $1,392 |
| Winona County | 17 | 217 | $70,871 | $1,363 |
| McLeod County | 15 | 113 | $68,345 | $1,314 |
| Freeborn County | 10 | 69 | $67,848 | $1,305 |
| Martin County | 6 | 63 | $67,312 | $1,294 |
| Rock County | 4 | 30 | $67,286 | $1,294 |
| Otter Tail County | 27 | 214 | $64,433 | $1,239 |
| Brown County | 13 | 125 | $62,181 | $1,196 |
| Waseca County | 9 | 55 | $61,597 | $1,185 |
| Mille Lacs County | 15 | 62 | $61,178 | $1,177 |
| Becker County | 24 | 122 | $60,952 | $1,172 |
| Meeker County | 9 | 43 | $59,591 | $1,146 |
| Polk County | 10 | 45 | $58,489 | $1,125 |
| Todd County | 10 | 33 | $56,999 | $1,096 |
| Le Sueur County | 15 | 37 | $56,129 | $1,079 |
| Fillmore County | 12 | 42 | $55,966 | $1,076 |
| Cass County | 16 | 44 | $55,851 | $1,074 |
| Pine County | 10 | 29 | $53,908 | $1,037 |
| Pennington County | 4 | 33 | $53,262 | $1,024 |
| Faribault County | 6 | 67 | $52,876 | $1,017 |
| Nicollet County | 10 | 24 | $52,517 | $1,010 |
| Wabasha County | 8 | 26 | $51,450 | $989 |
| Morrison County | 7 | 16 | $50,487 | $971 |
| Yellow Medicine County | 6 | 19 | $50,102 | $963 |
| Big Stone County | 5 | 21 | $50,034 | $962 |
| Dodge County | 6 | 20 | $50,031 | $962 |
| Sibley County | 5 | 21 | $49,898 | $960 |
| Swift County | 6 | 31 | $46,947 | $903 |
| Redwood County | 12 | 31 | $45,679 | $878 |
| Murray County | 6 | 20 | $42,527 | $818 |
| Jackson County | 3 | 15 | $39,024 | $750 |
| Pipestone County | 6 | 23 | $36,519 | $702 |
| Wadena County | 8 | 9 | $35,853 | $689 |
Keep comparing
Plumber pay in neighbouring states
Other trades in Minnesota
More on Minnesota
Questions this page answers
How much do plumbers make in Minnesota?
The median plumber in Minnesota earned $45.39 an hour ($94,410 a year) in May 2025, 48% above the national median of $30.67. The middle half earn $29.40–$52.29; the top 10% earn more than $58.20.
Where does Minnesota rank for plumber pay?
Minnesota ranks 4th of 51 states for plumber pay, with a median of $45.39 an hour, and 2nd after adjusting for Minnesota's cost of living (BEA price parity 98.6, US = 100).
What is the union plumber rate in Minnesota?
Davis-Bacon determinations do not list a plumber classification for most Minnesota counties, or the trade is not covered; the BLS wage figures above are the best available measure.
How many plumbers work in Minnesota?
BLS counted 10,720 plumbers in Minnesota in May 2025, 3.6 per 1,000 jobs (location quotient 1.21; 1.0 is the national average concentration).
Is plumber work growing in Minnesota?
The BLS employer survey count of plumbers in Minnesota went from 8,630 in 2015 to 10,720 in 2025, +24.2%, and +7.7% since 2019. Minnesota's labor market agency projects +7.4% growth for plumbers between 2024 and 2034, from 9,300 to 9,990 jobs.
How many plumber openings a year are there in Minnesota?
Minnesota projects about 850 openings a year for plumbers over 2024–2034, counting both new positions and replacements for people who retire or change occupation. Nationally BLS projects about 42,000 a year.
Sources and notes
- BLS Occupational Employment and Wage Statistics, May 2025, Minnesota and metro areas, SOC 47-2152. Job counts are survey estimates and exclude the self-employed.
- BLS Current Employment Statistics, state construction employment through 2026-09.
- BLS Quarterly Census of Employment and Wages, 2025 annual averages.
- BEA Regional Price Parities, 2024 (cost-of-living adjustment).
- SAM.gov Davis-Bacon wage determinations, current revisions as of 2026-11-06. Not the official determination.
- BLS Employment Projections, national, 2025-35.
- State projection: Minnesota labor market information agency via Projections Central, 2024–2034, fetched 2026-10-05.