Roof replacement cost in Minnesota
Statewide estimate from BLS wages and BEA prices. Reviewed Nov 4, 2026.
- Statewide range (2,000 sq ft of roof)
- $7,600 – $14,900
- Per sq ft of roof
- $3.75 – $7.20
- before permit
- Versus US midpoint
- +21%
- US $9,300
- Metros covered
- 4
Minnesota prices for roof: $7,600 to $14,900 for 2,000 sq ft of roof, or $3.75 to $7.20 per sq ft of roof without the permit. The state midpoint is 21% above the national one. Local wages for roofers are $35.81 an hour.
Inside Minnesota, the metros we cover range from $9,900 (Rochester) to $11,400 (Minneapolis) at the midpoint. Pick your closest city in the table for a tighter number.
Estimate your roof replacement cost
Pick a size, a quality level and where you live. Prices update as you type.
Estimated cost for 2,000 sq ft of roof in Minnesota (statewide), standard level
$9,750 to $12,700
About $4.75 to $6.15 per sq ft of roof before permits. Labor is about 68% of the bill.
| Part | Low | High |
|---|---|---|
| Materials | $2,650 | $4,000 |
| Labor | $6,900 | $8,300 |
| Permits and fees | $220 | $370 |
| Total | $9,750 | $12,700 |
Cost breakdown for 2,000 sq ft of roof in Minnesota
| Part of the job | Low | Midpoint | High | Share |
|---|---|---|---|---|
| Materials | $1,600 | $3,300 | $5,050 | 30% |
| Labor | $5,850 | $7,600 | $9,350 | 68% |
| Permits and fees | $100 | $300 | $490 | 3% |
| Total | $7,600 | $11,200 | $14,900 | 100% |
When Minnesota weather lets you replace
Season matters for roof. For each Minnesota metro below we took NOAA's 1991-2020 monthly normals from the nearest suitable station and counted comfortable months for exterior installation.
Every Minnesota metro on the list has 7 comfortable months, though rainfall ranges from 28 inches a year in St. Cloud to 35 in Rochester.
We do not adjust prices by month, because we have no reliable published data on seasonal pricing. Timing is still worth raising when you collect bids.
| Metro | Jan avg low °F | Jul avg high °F | Precip (in/yr) | Comfortable months |
|---|---|---|---|---|
| Minneapolis | 8 | 83 | 34 | 7: April through October |
| Duluth | 2 | 78 | 31 | 7: April through October |
| Rochester | 7 | 80 | 35 | 7: April through October |
| St. Cloud | 3 | 82 | 28 | 7: April through October |
Other Minnesota jobs that often go with roof
The table prices neighboring jobs at their usual sizes using statewide Minnesota wages and prices. Against national midpoints, metal roof comes out highest (+17%) and attic insulation lowest (+5%), because each job leans on different trades.
| Project | Size | Range | vs. US |
|---|---|---|---|
| Metal roof | 2,000 sq ft of roof | $12,600 – $37,400 | +17% |
| Gutters | 160 linear ft | $1,450 – $4,600 | +10% |
| Vinyl siding | 2,100 sq ft of wall | $9,050 – $27,100 | +8% |
| Attic insulation | 1,000 sq ft | $1,050 – $4,200 | +5% |
Minnesota against its neighbors
Minnesota ranks 3 of 51 (the 50 states plus DC) for roof, where 1 is the most expensive. The costliest is New Jersey at $11,700 and the cheapest Oklahoma at $7,900, both for 2,000 sq ft of roof at the midpoint. Minnesota sits at $11,200. The five states closest by workforce center are listed below.
| State | Distance | Range | Midpoint | vs. here |
|---|---|---|---|---|
| Iowa | 240 miles away | $5,550 – $11,400 | $8,500 | −24% |
| Wisconsin | 260 miles away | $6,400 – $12,800 | $9,600 | −14% |
| North Dakota | 270 miles away | $6,350 – $12,700 | $9,550 | −15% |
| South Dakota | 290 miles away | $5,500 – $11,400 | $8,400 | −25% |
| Nebraska | 320 miles away | $5,400 – $11,200 | $8,300 | −26% |
Quality levels and sizes in Minnesota
The cited range is cut into three overlapping bands (basic, standard and premium) and scaled to statewide Minnesota wages and prices. The grid prices the same bands at 4 common sizes.
Basic
$7,600 to $10,500
3-tab shingles, single layer, simple roof
Standard
$9,750 to $12,700
Architectural shingles, standard pitch and tear-off
Premium
$11,900 to $14,900
Heavy architectural, steep or cut-up roof, decking repairs
| Size | Basic | Standard | Premium |
|---|---|---|---|
| small (1,200 sq ft of roof) | $4,600 – $6,400 | $5,950 – $7,750 | $7,300 – $9,100 |
| average (2,000 sq ft of roof) | $7,600 – $10,500 | $9,750 – $12,700 | $11,900 – $14,900 |
| large (2,800 sq ft of roof) | $10,600 – $14,600 | $13,600 – $17,600 | $16,600 – $20,600 |
| very large (3,600 sq ft of roof) | $13,600 – $18,700 | $17,400 – $22,500 | $21,200 – $26,300 |
Which Minnesota city is cheapest for roof?
2 of the 4 metros sit above the statewide midpoint of $11,200, and the top-to-bottom gap is 15%. Each row prices the default size with that metro's own BLS wages and BEA price levels, so the gap between rows is real local variation rather than a flat markup.
| Metro | Range (2,000 sq ft of roof) | Midpoint | vs. state |
|---|---|---|---|
| Minneapolis, MN | $7,700 – $15,200 | $11,400 | +2% |
| St. Cloud, MN | $7,750 – $15,000 | $11,400 | +2% |
| Duluth, MN | $7,400 – $14,400 | $10,900 | −3% |
| Rochester, MN | $6,650 – $13,200 | $9,900 | −12% |
Minnesota labor market for roof
Statewide wages come from BLS's state-level estimates, which blend big cities with small towns and rural areas. 2 trades drive the labor line for this job, and the weighted ratio against the national wage level is 1.33 for Minnesota.
For roofers (47-2181, weighted 85%) the local median is $35.81 an hour, which is 34% above the national $26.65. The middle half of them earn between $26.76 and $44.05 an hour. BLS counts 1,890 of them working in the state, 6.4 for every 10,000 jobs (US: 8.7), so the local bench is thinner than average.
Construction laborers (47-2061), 15% of the weighting: a median of $28.97 an hour, 28% above the US median of $22.66. The middle half of them earn between $23.28 and $38.32 an hour. About 28,530 work in the state. That is 96.7 per 10,000 jobs, compared with 70.5 nationally, which suggests plenty of local crews to bid.
A crew paid at the 75th percentile for roofers ($44.05 an hour) would add about $1,500 to the statewide midpoint; one at the 25th percentile ($26.76) would take off about $1,650. Use that as a rough guide to how far a bid can sit from our midpoint on wages alone.
BLS counts 2,949,820 jobs across Minnesota (May 2025), which is 1.9% of US employment.
| Trade | Weight | 25th pct | Median | 75th pct | US median | Ratio | Level used |
|---|---|---|---|---|---|---|---|
| Roofers (47-2181) | 85% | $26.76 | $35.81 | $44.05 | $26.65 | 1.34 | state |
| Construction laborers (47-2061) | 15% | $23.28 | $28.97 | $38.32 | $22.66 | 1.28 | state |
| Blended | 100% | 1.33 | |||||
Roof replacement: what moves the price in Minnesota
Shingle type
3-tab asphalt is $3-$5 per sq ft installed; architectural is $4-$6 (HomeGuide). Metal, tile and slate are separate projects with much higher ranges.
Roof area, not floor area
Pitch and complexity mean roof surface is larger than the house's footprint. A 1,500 sq ft ranch can have 1,800-2,200 sq ft of roof.
Tear-off and layers
Removing a second layer or rotted decking adds cost, and the contractor can only see decking damage after tear-off.
Tear-off
Removing the old roof is $1-$5 per sq ft depending on the material and number of layers (HomeGuide). Check that your quote includes it.
Permit
Roof replacement permits run $100-$500 depending on the location.
Get 3 local quotes
Tell us about the job and we will try to connect you with up to three local contractors for written quotes. It is free and you are under no obligation to hire. Your estimate of $9,750 to $12,700 for Minnesota is attached.
A detailed PDF report of this estimate, $9
The report lays out the roof replacement numbers for Minnesota line by line, with the local wage and price inputs, permit and timing notes, a quote comparison sheet and the full method. Save your estimate above, preview page 1 free, and unlock the full report for $9 one-time, or get every report with CostLocal Pro.
Roof replacement in Minnesota: your questions
+How much does it cost to replace a roof in Minnesota?
$7,600 to $14,900 for 2,000 sq ft of roof, using statewide wages and prices. Metro areas inside Minnesota can sit above or below that.
+Which city in Minnesota is cheapest for roof?
Rochester at about $9,900 (midpoint, 2,000 sq ft of roof). The priciest is Minneapolis at $11,400.
+Is roof cheaper in Minnesota than the US average?
It is 21% more expensive: $11,200 against $9,300 for 2,000 sq ft of roof at the midpoint.
+What share of the price is labor in Minnesota?
About 68% ($7,600). Materials are 30%. Statewide labor for this job is weighted 1.33x the national wage level.
+What do roofers earn in Minnesota?
The BLS statewide median is $35.81 an hour, against $26.65 for the US. The 25th to 75th percentile range is $26.76 to $44.05.
+Where does Minnesota rank for roof costs?
3rd most expensive of 51 (the 50 states plus DC) at the midpoint, $11,200 for 2,000 sq ft of roof. Rank 1 is the costliest.
+What do basic and premium roof work cost in Minnesota?
For 2,000 sq ft of roof, basic work runs $7,600 to $10,500 and premium work $11,900 to $14,900. Basic means: 3-tab shingles, single layer, simple roof. Premium means: heavy architectural, steep or cut-up roof, decking repairs.
+Does the season matter for roof in Minnesota?
Yes where winters or summers are hard. Of the Minnesota metros we cover, Minneapolis has the most comfortable months (7 of 12) based on NOAA 1991-2020 normals. Our prices do not change by month, so ask contractors whether they charge more or less in busy and slow seasons.
Roof replacement by city in Minnesota
Where these numbers come from
Base prices are national ranges from the sources below. We scale labor by local BLS wages, materials by BEA goods prices and permits by the BEA all-items price level. Full method on the methodology page.
- HomeGuide: How Much Does a Roof Replacement Cost? (2026) (accessed November 4, 2026)
- BLS Occupational Employment and Wage Statistics, May 2025
- BEA Regional Price Parities, 2024
- NOAA NCEI U.S. Climate Normals, 1991-2020
Note on derived figures: Materials = HomeGuide's asphalt shingle price of $80-$250 per roofing square (100 sq ft), i.e. $0.80-$2.50 per sq ft. The rest of the installed price covers roofer labor ($1.50-$3.00/sq ft), tear-off, disposal, underlayment and contractor overhead.