Median pay for civil engineers runs from $47,070 in Mayaguez to $130,280 in San Jose-Sunnyvale-Santa Clara — a 2.77× range across 502 metropolitan areas. The national median of $100,840 sits inside that range but describes no particular market.
Ten per cent of civil engineers earn below $68,240 and ten per cent above $163,220 — a 2.39× band. The upside from median to 90th percentile is 62%, which is a normal amount of room for experience and specialisation to matter. An offer below the 25th percentile is worth questioning; one above the 75th is worth taking seriously.
7 of the ten best-paying metros for civil engineers are in CA. When one state dominates the top of the table like this, cost of living is doing part of the work but rarely all of it — state licensing rules, public-sector pay scales and the presence of a few large employers usually explain the rest. If you are comparing an offer in CA against one elsewhere, adjust for housing before concluding anything.
| Metropolitan area | Median | Hourly | LQ | Employed |
|---|---|---|---|---|
| San Jose-Sunnyvale-Santa Clara CA | $130,280 | $62.64 | 1.18 | 3,170 |
| San Francisco-Oakland-Fremont CA | $130,160 | $62.58 | 1.96 | 10,990 |
| Sacramento-Roseville-Folsom CA | $130,150 | $62.57 | 2.19 | 5,590 |
| Mankato MN | $128,220 | $61.65 | 0.39 | 50 |
| Redding CA | $126,000 | $60.58 | 2.22 | 380 |
| Alaska nonmetropolitan area | $124,010 | $59.62 | 1.19 | 310 |
| Napa CA | $123,440 | $59.35 | 1 | 180 |
| Walla Walla WA | $123,030 | $59.15 | 3.18 | 190 |
| Vallejo CA | $122,510 | $58.90 | 0.89 | 300 |
| Salinas CA | $122,160 | $58.73 | 0.58 | 250 |
| Kennewick-Richland WA | $121,370 | $58.35 | 2.06 | 630 |
| Yuba City CA | $119,990 | $57.69 | 3.84 | 460 |
| Santa Maria-Santa Barbara CA | $119,980 | $57.68 | 1.28 | 610 |
| Fresno CA | $119,720 | $57.56 | 1.11 | 1,250 |
| Santa Cruz-Watsonville CA | $118,050 | $56.76 | 0.91 | 210 |
| Eastern Sierra-Mother Lode Region of California nonmetropolitan area | $117,740 | $56.61 | 1.13 | 170 |
| Stockton-Lodi CA | $116,990 | $56.24 | 0.88 | 610 |
| Lower West Mississippi nonmetropolitan area | $116,770 | $56.14 | 2.28 | 430 |
| Seattle-Tacoma-Bellevue WA | $116,480 | $56.00 | 1.56 | 7,680 |
| Northern New Mexico nonmetropolitan area | $116,460 | $55.99 | 0.48 | 100 |
| Bremerton-Silverdale-Port Orchard WA | $116,210 | $55.87 | 1.34 | 300 |
| Salem OR | $115,480 | $55.52 | 1.07 | 480 |
| Riverside-San Bernardino-Ontario CA | $115,120 | $55.35 | 0.87 | 3,510 |
| East Central Illinois nonmetropolitan area | $114,900 | $55.24 | 0.5 | 170 |
| Arizona nonmetropolitan area | $114,340 | $54.97 | 0.46 | 110 |
| Metropolitan area | Median | Hourly | LQ | Employed |
|---|---|---|---|---|
| Mayaguez PR | $47,070 | $22.63 | 0.72 | 90 |
| Ponce PR | $51,470 | $24.75 | 0.47 | 70 |
| Aguadilla PR | $58,260 | $28.01 | 0.68 | 80 |
| Arecibo PR | $60,950 | $29.30 | 0.5 | 40 |
| San Juan-Bayamon-Caguas PR | $61,580 | $29.61 | 0.88 | 1,440 |
| Southern West Virginia nonmetropolitan area | $68,240 | $32.81 | 0.85 | 150 |
| Parkersburg-Vienna WV | $70,250 | $33.77 | 0.95 | 80 |
| Border Region of Texas nonmetropolitan area | $70,550 | $33.92 | 0.34 | 40 |
| Coastal Plains Region of Texas nonmetropolitan area | $71,810 | $34.52 | 0.68 | 240 |
| Southwest Missouri nonmetropolitan area | $72,330 | $34.78 | 0.23 | 40 |
| Metropolitan area | Median | Hourly | LQ | Employed |
|---|---|---|---|---|
| Carson City NV | $95,260 | $45.80 | 4.15 | 310 |
| Yuba City CA | $119,990 | $57.69 | 3.84 | 460 |
| Augusta-Richmond County GA-SC | $103,010 | $49.53 | 3.65 | 2,000 |
| Helena MT | $100,710 | $48.42 | 3.4 | 360 |
| Walla Walla WA | $123,030 | $59.15 | 3.18 | 190 |
| Olympia-Lacey-Tumwater WA | $108,240 | $52.04 | 2.78 | 860 |
| Fairbanks-College AK | $111,080 | $53.40 | 2.76 | 240 |
| Anchorage AK | $112,740 | $54.20 | 2.66 | 1,110 |
| Raleigh-Cary NC | $101,440 | $48.77 | 2.64 | 4,640 |
| San Luis Obispo-Paso Robles CA | $110,210 | $52.99 | 2.5 | 720 |
| Denver-Aurora-Centennial CO | $104,710 | $50.34 | 2.4 | 9,130 |
| Lower West Mississippi nonmetropolitan area | $116,770 | $56.14 | 2.28 | 430 |
| Metropolitan area | Median | Hourly | LQ | Employed |
|---|---|---|---|---|
| Los Angeles-Long Beach-Anaheim CA | $108,640 | $52.23 | 1.1 | 16,340 |
| New York-Newark-Jersey City NY-NJ | $107,330 | $51.60 | 0.69 | 15,590 |
| Houston-Pasadena-The Woodlands TX | $100,950 | $48.53 | 1.56 | 12,140 |
| San Francisco-Oakland-Fremont CA | $130,160 | $62.58 | 1.96 | 10,990 |
| Chicago-Naperville-Elgin IL-IN | $100,160 | $48.16 | 0.91 | 9,760 |
| Denver-Aurora-Centennial CO | $104,710 | $50.34 | 2.4 | 9,130 |
| Washington-Arlington-Alexandria DC-VA-MD-WV | $101,780 | $48.93 | 1.14 | 8,470 |
| Dallas-Fort Worth-Arlington TX | $96,920 | $46.60 | 0.84 | 8,010 |
| Boston-Cambridge-Newton MA-NH | $107,670 | $51.77 | 1.25 | 7,970 |
| Seattle-Tacoma-Bellevue WA | $116,480 | $56.00 | 1.56 | 7,680 |
| Miami-Fort Lauderdale-West Palm Beach FL | $83,750 | $40.26 | 1.03 | 6,850 |
| Atlanta-Sandy Springs-Roswell GA | $88,000 | $42.31 | 0.92 | 6,270 |
Figures come from the BLS Occupational Employment and Wage Statistics programme, May 2025 release, SOC code 17-2051. OEWS surveys employers, so it reports what is actually paid rather than what job advertisements claim, and it excludes the self-employed. Estimates cover 502 of 528 metropolitan areas — near-complete coverage, which means the ranges above are reliable rather than drawn from a handful of markets. Read the methodology.