Home / Roofers / Iowa / Salary

OEWS counts employees only, so self-employed roofers are not included.
- 10th
- $17.82
- 25th
- $22.31
- Median
- $23.39
- 75th
- $29.50
- 90th
- $31.26
- 10th
- $37,070
- 25th
- $46,410
- Median
- $48,660
- 75th
- $61,370
- 90th
- $65,010
Which Iowa cities pay roofers the most?
Des Moines-West Des Moines has the highest median of the 4 metro areas below, $23.80 an hour; Sioux City has the lowest, $22.62.1
- Des Moines–West Des Moines$23.80
- Davenport–Moline$23.20
- Cedar Rapids$23.00
- Sioux City$22.62
Do roofers make $100,000 a year in Iowa?
Fewer than 10% do. The 90th percentile is $65,010 a year, so only the top tenth earns more than that.1
How much do new roofers make in Iowa?
The lowest-paid tenth of roofers in Iowa earned $17.82 an hour or less ($37,070 a year), and the lowest quarter earned $22.31 or less.1 OEWS does not report apprentice pay separately.
Are roofers in demand in Iowa?
Projections Central expects Iowa to go from 1,510 roofer jobs in 2024 to 1,630 in 2034, a change of 7.8%, with about 120 openings a year.3 The US projection is 5.9%.
| Area | Jobs 2024 | Jobs 2034 | Change | Openings a year |
|---|---|---|---|---|
| Iowa | 1,510 | 1,630 | 7.8% | 120 |
| United States | 166,700 | 176,500 | 5.9% | 12,700 |
How does roofer pay compare with other trades in Iowa?
Roofers rank fifth of the five trades on this site by median pay in Iowa. General contractors have the highest median, $37.75 an hour.1
| Trade | Median hourly | Median annual | Jobs |
|---|---|---|---|
| General Contractors | $37.75 | $78,510 | 9,660 |
| Plumbers | $30.72 | $63,890 | 5,730 |
| Electricians | $29.26 | $60,860 | 10,310 |
| HVAC Technicians | $29.17 | $60,680 | 3,840 |
| Roofers | $23.39 | $48,660 | 930 |
Where to train in Iowa
Sources
- BLS Occupational Employment and Wage Statistics, Iowa, May 2025 (bls.gov, May 2025)
- BLS OEWS national estimates: Roofers (47-2181), May 2025 (bls.gov, May 2025)
- Projections Central, long-term occupational projections 2024-2034 (projectionscentral.org, 2024-2034)