§ 03 Trade wages
Roofers: what they earn, metro by metro
Install and repair roof coverings, flashing and underlayment. 135,490 people work in this occupation nationwide. You hire them for roof replacement, leak repair and storm damage.
BLS OEWS May 2025 · SOC 47-2181
Roofers, United States
25th pct$22.24per hour
Median$26.65per hour
75th pct$31.44per hour
10th pct$18.01
90th pct$39.29
Mean$27.95
Workers135,490
Your multiplier: ×2.0Median wage × multiplier: $53/hr
OEWS reports what employers pay these workers per hour. A contractor’s bill also covers the business: insurance, licensing, vehicles, tools, office staff, warranty callbacks, unbilled travel time and profit. The wage is a floor for understanding a quote, never a price. You set the multiplier; we publish no typical markup because we have no citable source for one.What else is in a bill for this trade
- Crew size and dump fees for tear-off
- Fall-protection equipment and higher workers’ compensation rates
- Permits and inspections where required
BLS OEWS May 2025 · United States · mean RSE 0.6%Employee wages from the BLS employer survey. Not what a contractor bills.
| Metro | Median | 25th–75th | Workers | vs US |
|---|---|---|---|---|
| Worcester, MA | $50.61 | $28.54–$51.10 | 350 | +90% |
| Chicago-Naperville-Elgin, IL-IN | $39.47 | $28.73–$50.61 | 3,900 | +48% |
| Trenton-Princeton, NJ | $39.47 | $26.89–$45.35 | 140 | +48% |
| St. Cloud, MN | $38.10 | $27.86–$44.05 | 130 | +43% |
| Springfield, IL | $37.45 | $28.37–$47.68 | 270 | +41% |
| San Jose-Sunnyvale-Santa Clara, CA | $36.85 | $30.66–$39.49 | 1,660 | +38% |
| Peoria, IL | $36.83 | $26.36–$46.99 | 160 | +38% |
| New York-Newark-Jersey City, NY-NJ | $36.73 | $28.40–$47.48 | 3,100 | +38% |
| Springfield, MA | $36.68 | $30.44–$39.95 | 290 | +38% |
| Minneapolis-St. Paul-Bloomington, MN-WI | $36.25 | $27.34–$46.87 | 1,250 | +36% |
| San Francisco-Oakland-Fremont, CA | $35.74 | $29.86–$37.91 | 2,610 | +34% |
| Duluth, MN-WI | $35.03 | $28.52–$43.29 | 240 | +31% |
| Flint, MI | $34.02 | $22.00–$34.02 | 120 | +28% |
| Boston-Cambridge-Newton, MA-NH | $31.90 | $28.87–$37.61 | 1,120 | +20% |
| Anchorage, AK | $31.61 | $27.31–$38.75 | 230 | +19% |
| Rockford, IL | $31.30 | $23.18–$41.67 | 180 | +17% |
| Santa Rosa-Petaluma, CA | $30.78 | $29.84–$36.51 | 430 | +15% |
| Albany-Schenectady-Troy, NY | $30.73 | $28.75–$37.23 | 440 | +15% |
| Kiryas Joel-Poughkeepsie-Newburgh, NY | $30.65 | $24.21–$32.41 | 140 | +15% |
| Los Angeles-Long Beach-Anaheim, CA | $30.56 | $28.76–$35.74 | 5,480 | +15% |
| Detroit-Warren-Dearborn, MI | $30.48 | $23.60–$37.97 | 1,450 | +14% |
| Sacramento-Roseville-Folsom, CA | $30.44 | $28.59–$35.89 | 1,800 | +14% |
| San Luis Obispo-Paso Robles, CA | $30.30 | $28.71–$34.12 | 190 | +14% |
| Modesto, CA | $30.26 | $28.54–$35.26 | 290 | +14% |
| Oxnard-Thousand Oaks-Ventura, CA | $30.21 | $28.37–$35.66 | 430 | +13% |
| Buffalo-Cheektowaga, NY | $30.09 | $28.03–$36.28 | 570 | +13% |
| Fresno, CA | $30.00 | $28.20–$31.06 | 640 | +13% |
| South Bend-Mishawaka, IN-MI | $30.00 | $22.68–$37.71 | 200 | +13% |
| San Diego-Chula Vista-Carlsbad, CA | $29.90 | $28.47–$35.44 | 1,830 | +12% |
| Vallejo, CA | $29.85 | $29.48–$37.51 | 650 | +12% |
| Riverside-San Bernardino-Ontario, CA | $29.83 | $27.65–$34.60 | 2,480 | +12% |
| Stockton-Lodi, CA | $29.78 | $28.47–$35.31 | 240 | +12% |
| Appleton, WI | $29.75 | $23.42–$32.31 | 120 | +12% |
| Redding, CA | $29.66 | $25.10–$31.00 | 210 | +11% |
| Santa Cruz-Watsonville, CA | $29.64 | $27.47–$33.51 | 140 | +11% |
| Salinas, CA | $29.58 | $28.76–$35.68 | 240 | +11% |
| Syracuse, NY | $29.56 | $29.06–$35.80 | 270 | +11% |
| Santa Maria-Santa Barbara, CA | $29.51 | $24.93–$34.00 | 390 | +11% |
| Portland-Vancouver-Hillsboro, OR-WA | $29.43 | $24.33–$38.06 | 2,280 | +10% |
| Chico, CA | $29.38 | $27.80–$31.30 | 100 | +10% |
| Rochester, NY | $29.27 | $22.97–$33.38 | 540 | +10% |
| Madison, WI | $29.24 | $23.70–$33.39 | 270 | +10% |
| Bakersfield-Delano, CA | $29.15 | $27.63–$31.08 | 190 | +9% |
| Bend, OR | $28.84 | $24.50–$33.64 | 230 | +8% |
| Kennewick-Richland, WA | $28.73 | $24.61–$36.65 | 210 | +8% |
| Philadelphia-Camden-Wilmington, PA-NJ-DE-MD | $28.72 | $23.83–$34.93 | 1,530 | +8% |
| Bellingham, WA | $28.72 | $24.26–$37.17 | 440 | +8% |
| Bremerton-Silverdale-Port Orchard, WA | $28.59 | $23.88–$38.19 | 170 | +7% |
| Canton-Massillon, OH | $28.57 | $22.30–$33.98 | 140 | +7% |
| Kalamazoo-Portage, MI | $28.50 | $22.70–$35.93 | 110 | +7% |
| Urban Honolulu, HI | $28.47 | $22.71–$35.39 | 860 | +7% |
| St. Louis, MO-IL | $28.25 | $21.87–$37.84 | 1,110 | +6% |
| Spokane-Spokane Valley, WA | $28.23 | $23.34–$36.54 | 420 | +6% |
| Kansas City, MO-KS | $28.09 | $21.77–$36.10 | 880 | +5% |
| Washington-Arlington-Alexandria, DC-VA-MD-WV | $28.05 | $23.82–$35.51 | 1,940 | +5% |
| Elkhart-Goshen, IN | $28.03 | $22.14–$30.18 | 120 | +5% |
| Allentown-Bethlehem-Easton, PA-NJ | $27.95 | $23.45–$34.80 | 140 | +5% |
| Olympia-Lacey-Tumwater, WA | $27.84 | $23.13–$36.74 | 260 | +4% |
| Toledo, OH | $27.74 | $22.32–$30.86 | 230 | +4% |
| Manchester-Nashua, NH | $27.68 | $22.89–$32.09 | 110 | +4% |
| Yakima, WA | $27.24 | $26.89–$36.14 | 160 | +2% |
| Baltimore-Columbia-Towson, MD | $27.11 | $22.79–$32.98 | 890 | +2% |
| Boulder, CO | $26.99 | $23.08–$29.26 | 140 | +1% |
| Denver-Aurora-Centennial, CO | $26.84 | $23.52–$29.79 | 1,900 | +1% |
| Cleveland, OH | $26.77 | $22.38–$35.58 | 780 | 0% |
| Idaho Falls, ID | $26.77 | $19.28–$29.65 | 130 | 0% |
| Akron, OH | $26.28 | $22.86–$36.22 | 370 | -1% |
| York-Hanover, PA | $25.74 | $22.55–$30.72 | 200 | -3% |
| Salem, OR | $25.33 | $23.09–$30.18 | 390 | -5% |
| Lancaster, PA | $25.31 | $22.75–$28.94 | 370 | -5% |
| Pittsburgh, PA | $25.17 | $22.82–$29.62 | 770 | -6% |
| Reno, NV | $25.00 | $24.29–$31.07 | 660 | -6% |
| Ogden, UT | $24.86 | $21.64–$29.96 | 510 | -7% |
| Indianapolis-Carmel-Greenwood, IN | $24.80 | $21.49–$31.35 | 1,000 | -7% |
| Dayton-Kettering-Beavercreek, OH | $24.72 | $22.20–$29.78 | 320 | -7% |
| Lewiston-Auburn, ME | $24.69 | $23.50–$31.79 | 150 | -7% |
| Portland-South Portland, ME | $24.61 | $22.84–$29.30 | 140 | -8% |
| Raleigh-Cary, NC | $24.39 | $23.09–$27.94 | 580 | -8% |
| Albany, OR | $24.27 | $22.94–$28.68 | 160 | -9% |
| Erie, PA | $24.25 | $22.31–$27.94 | 140 | -9% |
| Reading, PA | $24.07 | $22.39–$30.19 | 110 | -10% |
| Greeley, CO | $24.01 | $22.87–$29.06 | 250 | -10% |
| Medford, OR | $24.01 | $22.08–$29.26 | 150 | -10% |
| Colorado Springs, CO | $23.96 | $22.81–$28.31 | 310 | -10% |
| Las Vegas-Henderson-North Las Vegas, NV | $23.94 | $23.06–$30.58 | 1,350 | -10% |
| Asheville, NC | $23.89 | $21.50–$26.29 | 110 | -10% |
| Grand Rapids-Wyoming-Kentwood, MI | $23.86 | $22.41–$30.24 | 380 | -10% |
| Scranton--Wilkes-Barre, PA | $23.86 | $22.15–$34.25 | 150 | -10% |
| Des Moines-West Des Moines, IA | $23.80 | $22.88–$30.62 | 280 | -11% |
| Columbus, OH | $23.76 | $22.33–$30.02 | 700 | -11% |
| Naples-Marco Island, FL | $23.76 | $22.00–$29.30 | 610 | -11% |
| Baton Rouge, LA | $23.70 | $21.03–$26.21 | 220 | -11% |
| Winston-Salem, NC | $23.69 | $22.18–$27.37 | 190 | -11% |
| Cincinnati, OH-KY-IN | $23.66 | $22.64–$30.74 | 770 | -11% |
| Sebastian-Vero Beach-West Vero Corridor, FL | $23.65 | $18.46–$28.36 | 450 | -11% |
| Louisville/Jefferson County, KY-IN | $23.64 | $21.77–$30.14 | 550 | -11% |
| Atlanta-Sandy Springs-Roswell, GA | $23.61 | $19.19–$26.97 | 1,440 | -11% |
| Greensboro-High Point, NC | $23.61 | $22.71–$26.64 | 230 | -11% |
| Waco, TX | $23.56 | $22.85–$29.52 | 200 | -12% |
| North Port-Bradenton-Sarasota, FL | $23.49 | $18.43–$29.41 | 1,990 | -12% |
| Fort Wayne, IN | $23.48 | $19.20–$29.78 | 270 | -12% |
| Wilmington, NC | $23.43 | $18.76–$24.20 | 170 | -12% |
| Fort Collins-Loveland, CO | $23.37 | $22.32–$28.83 | 150 | -12% |
| Shreveport-Bossier City, LA | $23.34 | $18.64–$24.87 | 100 | -12% |
| Charlotte-Concord-Gastonia, NC-SC | $23.28 | $21.73–$27.31 | 1,130 | -13% |
| Davenport-Moline-Rock Island, IA-IL | $23.20 | $22.33–$30.84 | 110 | -13% |
| Salt Lake City-Murray, UT | $23.18 | $21.94–$29.71 | 1,330 | -13% |
| Nashville-Davidson--Murfreesboro--Franklin, TN | $23.14 | $21.02–$26.93 | 650 | -13% |
| Bangor, ME | $23.14 | $22.59–$28.04 | 120 | -13% |
| Richmond, VA | $23.10 | $22.30–$27.58 | 330 | -13% |
| Miami-Fort Lauderdale-West Palm Beach, FL | $23.09 | $18.29–$25.06 | 5,290 | -13% |
| Eugene-Springfield, OR | $23.00 | $22.03–$28.83 | 280 | -14% |
| Cedar Rapids, IA | $23.00 | $22.42–$29.18 | 120 | -14% |
| Youngstown-Warren, OH | $22.99 | $21.42–$29.18 | 380 | -14% |
| Palm Bay-Melbourne-Titusville, FL | $22.97 | $18.56–$28.50 | 540 | -14% |
| Phoenix-Mesa-Chandler, AZ | $22.96 | $21.74–$28.80 | 2,700 | -14% |
| Port St. Lucie, FL | $22.88 | $21.25–$28.87 | 820 | -14% |
| Jacksonville, FL | $22.85 | $18.27–$28.35 | 1,400 | -14% |
| Topeka, KS | $22.79 | $22.69–$30.55 | 100 | -14% |
| Lincoln, NE | $22.77 | $19.06–$25.00 | 400 | -15% |
| Austin-Round Rock-San Marcos, TX | $22.76 | $19.14–$27.31 | 480 | -15% |
| Orlando-Kissimmee-Sanford, FL | $22.74 | $18.54–$28.59 | 2,650 | -15% |
| Fayetteville-Springdale-Rogers, AR | $22.70 | $18.38–$27.90 | 170 | -15% |
| Springfield, MO | $22.70 | $18.76–$28.21 | 160 | -15% |
| Tampa-St. Petersburg-Clearwater, FL | $22.68 | $18.16–$27.78 | 3,380 | -15% |
| Crestview-Fort Walton Beach-Destin, FL | $22.65 | $21.81–$27.84 | 160 | -15% |
| Dallas-Fort Worth-Arlington, TX | $22.59 | $18.54–$27.29 | 2,180 | -15% |
| Deltona-Daytona Beach-Ormond Beach, FL | $22.57 | $17.96–$29.25 | 580 | -15% |
| Cape Coral-Fort Myers, FL | $22.54 | $18.08–$24.80 | 1,900 | -15% |
| Lakeland-Winter Haven, FL | $22.47 | $18.57–$25.84 | 810 | -16% |
| Gainesville, FL | $22.43 | $17.54–$26.91 | 340 | -16% |
| Lexington-Fayette, KY | $22.42 | $21.57–$26.49 | 230 | -16% |
| Provo-Orem-Lehi, UT | $22.41 | $18.35–$29.91 | 280 | -16% |
| Birmingham, AL | $22.41 | $20.90–$27.09 | 260 | -16% |
| Omaha, NE-IA | $22.34 | $21.11–$27.33 | 870 | -16% |
| Memphis, TN-MS-AR | $22.34 | $19.79–$24.07 | 360 | -16% |
| Virginia Beach-Chesapeake-Norfolk, VA-NC | $22.34 | $18.92–$23.32 | 350 | -16% |
| Prescott Valley-Prescott, AZ | $22.13 | $18.27–$28.13 | 140 | -17% |
| Pensacola-Ferry Pass-Brent, FL | $22.11 | $18.31–$24.33 | 300 | -17% |
| Albuquerque, NM | $22.01 | $18.95–$27.96 | 710 | -17% |
| Wichita, KS | $22.00 | $18.81–$27.49 | 240 | -17% |
| Panama City-Panama City Beach, FL | $21.97 | $18.04–$24.02 | 160 | -18% |
| Mobile, AL | $21.90 | $18.90–$22.23 | 120 | -18% |
| Chattanooga, TN-GA | $21.89 | $18.45–$22.14 | 140 | -18% |
| Houston-Pasadena-The Woodlands, TX | $21.87 | $17.84–$24.37 | 1,230 | -18% |
| Ocala, FL | $21.70 | $17.98–$27.32 | 480 | -19% |
| Santa Fe, NM | $21.68 | $17.61–$23.34 | 140 | -19% |
| Knoxville, TN | $21.65 | $17.89–$22.80 | 440 | -19% |
| Columbia, SC | $21.47 | $18.24–$23.58 | 160 | -19% |
| Fort Smith, AR-OK | $21.27 | $17.80–$24.62 | 140 | -20% |
| Tucson, AZ | $21.17 | $18.07–$21.57 | 340 | -21% |
| San Antonio-New Braunfels, TX | $21.02 | $17.64–$23.70 | 350 | -21% |
| Spartanburg, SC | $20.70 | $18.36–$23.31 | 130 | -22% |
| San Juan-Bayamon-Caguas, PR | $11.59 | $11.17–$14.01 | 400 | -57% |
111 more metros have an estimate that BLS flags as less reliable (relative standard error over 5% or fewer than 100 workers); we leave those out.