Win· Before you ask
How much do civil engineers make?
- Median
- $100,840/year
- Mean
- $108,670/year
Not one number. Five.
What civil engineers in the U.S. earn, from low to high.
Best-paying cities.
The same job pays more in some places.
- 1San Jose, CA$130k
- 2Seattle, WA$116k
- 3Denver, CO$105k
- 4Pittsburgh, PA$101k
- 5Austin, TX$100k
- 6Chicago, IL$100k
- 7Kansas City, MO$99k
- 8Phoenix, AZ$90k
- 9Atlanta, GA$88k
- 10Miami, FL$84k
Thinking of moving?
Put two places side by side for this job.
Three ways to use it.
Civil Engineers wage guide
Use the published range, job count, place pattern, and survey limits as separate facts. The guide stays tied to SOC 17-2051 and the May 2025 BLS release.
What the national Civil Engineers median says
The May 2025 BLS OEWS estimate puts the U.S. median for Civil Engineers at $100,840 per year. Median means the middle. Half of the wage values used for this estimate fall below that point. Half fall above it. The median is not one worker's pay. It is not a job offer. It is one clear mark for the middle of a broad national pay range.
BLS also lists 367,840 wage and salary jobs for Civil Engineers. That count covers jobs in the survey's scope. It does not count open job ads. It also leaves out people who work for themselves. The wage and job counts share the same May 2025 reference point, so they can be read together without mixing time periods.
The Civil Engineers mean of $108,670 per year is 7.8% above the $100,840 median on the same published median. Mean means BLS adds the wage values and divides the total by the number of jobs behind the estimate. A gap between mean and median shows that the shape is not even. It does not explain the cause of the gap.
The fields that make SOC 17-2051 its own page
BLS names this record Civil Engineers and gives it SOC 17-2051. The two-part code is the stable key for this page. A role with a close name keeps a different code, wage row, job count, and area pattern. WageScope never joins two SOC records because their words sound alike.
For SOC 17-2051, the U.S. row reports 367,840 wage and salary jobs. Its annual median is $100,840 per year. Its matching mean is $108,670 per year. These facts come from one national row and one May 2025 release.
SOC 17-2051 appears in 53 state or territory rows. It also has 375 metro rows and 133 nonmetro rows. A missing local row stays missing. We do not fill it with U.S. data or data for a similar job code.
- SOC 17-2051 10th percentile: $68,240 per year.
- SOC 17-2051 25th percentile: $79,930 per year.
- SOC 17-2051 median: $100,840 per year.
- SOC 17-2051 75th percentile: $129,680 per year.
- SOC 17-2051 90th percentile: $163,220 per year.
- SOC 17-2051 employment RSE: 1%. Mean-wage RSE: 0.9%.
- SOC 17-2051 has no national suppression mark in the fields shown on this page.
Read the Civil Engineers wage ladder from low to high
The 10th percentile is $68,240 per year. The 25th percentile is $79,930 per year. The median is $100,840 per year. The 75th percentile is $129,680 per year. The 90th percentile is $163,220 per year. Each point marks a place in the same national wage spread.
A percentile is a rank point. It is not a career step. For example, the 10th percentile means 10% of wage values are at or below that mark. It does not mean a new worker starts there. The 90th percentile means 90% are at or below that mark. It does not mean a worker can reach it after a set number of years.
The middle half runs from $79,930 to $129,680 per year. That span is $49,750. The full 10th-to-90th span is $94,980. These spans show why one median cannot stand in for every Civil Engineers job.
What the gaps around the Civil Engineers median show
The median is 47.8% above the 10th percentile. The 90th percentile is 61.9% above the median. The two sides do not have to match. A wider upper side can pull the mean up. A wider lower side can pull it down. The data shows the shape, but not the reason for that shape.
The 25th-to-median step is $20,910 per year. The median-to-75th step is $28,840 per year. These two steps give a closer look at the middle half. They are often more useful than a single top-to-bottom gap because they keep the center in view.
Use this ladder as a fact check when you read a job post. A posted range can sit below, near, or above these BLS marks. That does not make the post wrong. A job may differ by place, hours, level, field, employer, or work rules. Keep the posted range tied to that listing. Keep the BLS range tied to the whole occupation.
Metro areas with the highest published Civil Engineers medians
WageScope found 373 metro rows with the same published annual median for Civil Engineers. It sorts only those rows. It does not fill a blank row. It does not turn a blank into zero. The first six rows below have the highest published medians in this release. The list is a wage rank, not a rank of places to live or work.
The first row is San Jose-Sunnyvale-Santa Clara, CA, at $130,280 per year. The middle metro row by published pay is Milwaukee-Waukesha, WI, at $96,190 per year. That middle metro mark gives one more check on how far the top rows sit from a common place in the set.
These are nominal wages. Nominal means the dollar amount shown in the source. This list does not adjust for local price levels. It also does not tell us how many openings an area has now. Use a local page to see price-level context when an exact BEA row exists. Use the separate job block to inspect current employer-title matches.
- 1. San Jose-Sunnyvale-Santa Clara, CA has a Civil Engineers median of $130,280 per year, or $29,440 above the U.S. Civil Engineers median. BLS lists 3,170 jobs there, against 367,840 across the U.S. The local location quotient is 1.18.
- 2. San Francisco-Oakland-Fremont, CA has a Civil Engineers median of $130,160 per year, or $29,320 above the U.S. Civil Engineers median. BLS lists 10,990 jobs there, against 367,840 across the U.S. The local location quotient is 1.96.
- 3. Sacramento-Roseville-Folsom, CA has a Civil Engineers median of $130,150 per year, or $29,310 above the U.S. Civil Engineers median. BLS lists 5,590 jobs there, against 367,840 across the U.S. The local location quotient is 2.19.
- 4. Mankato, MN has a Civil Engineers median of $128,220 per year, or $27,380 above the U.S. Civil Engineers median. BLS lists 50 jobs there, against 367,840 across the U.S. The local location quotient is 0.39.
- 5. Redding, CA has a Civil Engineers median of $126,000 per year, or $25,160 above the U.S. Civil Engineers median. BLS lists 380 jobs there, against 367,840 across the U.S. The local location quotient is 2.22.
- 6. Napa, CA has a Civil Engineers median of $123,440 per year, or $22,600 above the U.S. Civil Engineers median. BLS lists 180 jobs there, against 367,840 across the U.S. The local location quotient is 1.
Metro areas with the largest Civil Engineers job estimates
A large wage can appear in a small job market. A large job market can have a lower wage. That is why WageScope keeps pay and job count in separate views. The six rows below have the largest published employment estimates for Civil Engineers among metro rows in this release. Employment means the number of wage and salary jobs in scope. It does not mean open roles.
Los Angeles-Long Beach-Anaheim, CA has the largest listed metro estimate in this set, at 16,340 jobs. Its median is $108,640 per year. Compare that with San Jose-Sunnyvale-Santa Clara, CA, which leads the published median list. The leaders may match, or they may not. Each list answers a different question.
Job count can help you see the scale of a local labor market. It cannot show churn, new hiring, job quality, remote work, or the chance that one person will get hired. Current listings add a second view, but they are a dated sample of posts. WageScope never turns the listing count into a demand score.
- 1. Los Angeles-Long Beach-Anaheim, CA has 16,340 estimated Civil Engineers jobs. That is 4.4% of the U.S. estimate of 367,840 jobs. Its median is $108,640 per year, or $7,800 above the U.S. Civil Engineers median. Its location quotient is 1.1.
- 2. New York-Newark-Jersey City, NY-NJ has 15,590 estimated Civil Engineers jobs. That is 4.2% of the U.S. estimate of 367,840 jobs. Its median is $107,330 per year, or $6,490 above the U.S. Civil Engineers median. Its location quotient is 0.69.
- 3. Houston-Pasadena-The Woodlands, TX has 12,140 estimated Civil Engineers jobs. That is 3.3% of the U.S. estimate of 367,840 jobs. Its median is $100,950 per year, or $110 above the U.S. Civil Engineers median. Its location quotient is 1.56.
- 4. San Francisco-Oakland-Fremont, CA has 10,990 estimated Civil Engineers jobs. That is 3.0% of the U.S. estimate of 367,840 jobs. Its median is $130,160 per year, or $29,320 above the U.S. Civil Engineers median. Its location quotient is 1.96.
- 5. Chicago-Naperville-Elgin, IL-IN has 9,760 estimated Civil Engineers jobs. That is 2.7% of the U.S. estimate of 367,840 jobs. Its median is $100,160 per year, or $680 below the U.S. Civil Engineers median. Its location quotient is 0.91.
- 6. Denver-Aurora-Centennial, CO has 9,130 estimated Civil Engineers jobs. That is 2.5% of the U.S. estimate of 367,840 jobs. Its median is $104,710 per year, or $3,870 above the U.S. Civil Engineers median. Its location quotient is 2.4.
Where Civil Engineers has a larger share of local jobs
Location quotient is a share check. A value of 1 means the role has the same share of local jobs as it has across the nation. A value above 1 means the local share is larger. A value below 1 means the local share is smaller. It is not a count. It is not a wage. It does not say that a place is growing.
Carson City, NV has the highest published location quotient in this bounded metro set, at 4.15. The same row lists 310 jobs and a median of $95,260 per year. Reading all three values keeps a high share from being mistaken for a large market or high pay.
A small area can have a high location quotient because the role makes up a large part of a small local job base. A large area can have many workers and a lower quotient. Use the quotient to ask where the role is common in the mix. Use employment to ask how many jobs BLS estimated. Use the wage fields to ask what the published pay range looks like.
- 1. Carson City, NV has a Civil Engineers location quotient of 4.15. BLS lists 310 jobs and a median of $95,260 per year, or $5,580 below the U.S. Civil Engineers median. The U.S. job estimate is 367,840.
- 2. Yuba City, CA has a Civil Engineers location quotient of 3.84. BLS lists 460 jobs and a median of $119,990 per year, or $19,150 above the U.S. Civil Engineers median. The U.S. job estimate is 367,840.
- 3. Augusta-Richmond County, GA-SC has a Civil Engineers location quotient of 3.65. BLS lists 2,000 jobs and a median of $103,010 per year, or $2,170 above the U.S. Civil Engineers median. The U.S. job estimate is 367,840.
- 4. Helena, MT has a Civil Engineers location quotient of 3.4. BLS lists 360 jobs and a median of $100,710 per year, or $130 below the U.S. Civil Engineers median. The U.S. job estimate is 367,840.
- 5. Walla Walla, WA has a Civil Engineers location quotient of 3.18. BLS lists 190 jobs and a median of $123,030 per year, or $22,190 above the U.S. Civil Engineers median. The U.S. job estimate is 367,840.
- 6. Olympia-Lacey-Tumwater, WA has a Civil Engineers location quotient of 2.78. BLS lists 860 jobs and a median of $108,240 per year, or $7,400 above the U.S. Civil Engineers median. The U.S. job estimate is 367,840.
How Civil Engineers sits in Architecture and Engineering
Civil Engineers is SOC 17-2051. BLS places it in the Architecture and Engineering major group. Among 36 detailed roles in that group with a published annual median, Civil Engineers ranks 17 of 36 by median. This is a pay rank inside one source family. It is not a rank of skill, value, status, or career fit.
The closest same-family medians help set a fair peer frame. They do not claim that the work is the same. Official SOC titles can cover different tasks and settings. WageScope uses the family only because BLS publishes that link. It does not infer a career move, a skill match, or a hiring path from the wage gap.
Use these peer rows to spot whether the $100,840 median sits near many family roles or far from them. Then open a role's own page before using its number. Each role has a different code, job count, wage spread, and place pattern. One family label does not erase those facts.
- 1. Architects, Except Landscape and Naval, SOC 17-1011, has a U.S. median of $99,280 per year. Its gap from Civil Engineers is $1,560 per year.
- 2. Industrial Engineers, SOC 17-2112, has a U.S. median of $102,440 per year. Its gap from Civil Engineers is $1,600 per year.
- 3. Agricultural Engineers, SOC 17-2021, has a U.S. median of $98,590 per year. Its gap from Civil Engineers is $2,250 per year.
- 4. Mechanical Engineers, SOC 17-2141, has a U.S. median of $104,110 per year. Its gap from Civil Engineers is $3,270 per year.
- 5. Mining and Geological Engineers, Including Mining Safety Engineers, SOC 17-2151, has a U.S. median of $106,220 per year. Its gap from Civil Engineers is $5,380 per year.
- 6. Environmental Engineers, SOC 17-2081, has a U.S. median of $107,110 per year. Its gap from Civil Engineers is $6,270 per year.
How much care to use with the Civil Engineers estimate
The relative standard error for the job count is 1%. For the mean wage it is 0.9%. This measure, called RSE, shows survey precision. A smaller RSE often means less uncertainty from the sample. It does not tell you whether one person's pay is right or wrong.
The employment RSE applies to the 367,840 job estimate. The mean-wage RSE applies to the published mean of $108,670 per year. These fields do not give a matching RSE for the median or each percentile. WageScope shows the fields BLS published and does not move one RSE to another measure.
Survey values can change when BLS changes its methods, sample, models, or source year. That is why we show May 2025 on this page. Before we use a new release, we check its files, rows, and pages. A changed number is only a correction if the source calls it one.
A simple way to compare Civil Engineers across places
First, compare the same wage metric. Use annual with annual or hourly with hourly. Next, check the source date. Keep May 2025 BLS rows together. Then read employment and location quotient beside pay. This stops a high median from standing in for market size or local share. Last, add BEA price-level context only when the exact place has an approved row.
A state, metro, and nonmetro area are not the same kind of map. Do not rank them in one list without saying so. WageScope groups like with like. It also keeps a national row as a broad bench mark. A local page can show the local row, its state row when that link is exact, and the U.S. row without blending them.
If a value is blank, keep it blank. If BLS marks a top code, read it as a lower bound. Do not fill a blank from a nearby place. Do not turn a wage gap into a claim about taxes, hours, benefits, work rules, or a household budget. Those facts are not in the OEWS row.
Move from Civil Engineers wage data to one real listing
The job block on this page uses a strict employer-title match for Civil Engineers. It may show fewer rows than the full MeritLog job search. That is on purpose. A false negative is safer here than a job card for a different role. Each card keeps its employer, place, source, and seen date. The cards do not change the BLS wage data.
Open one listing and read its own pay, work place, level, and needs. Compare its posted range with the BLS spread only as context. A posted range is set by an employer for one role. The BLS range is a survey view across many jobs. Neither source proves that a person is fit for the work.
When you tailor a résumé, use work facts you can back up. Do not turn $100,840 into a skill or result. Do not copy a BLS job count into your work history. MeritLog can help shape confirmed experience for a chosen listing. The wage page stays public and read only. It does not save a job or create a résumé on page load.
What this Civil Engineers page does not claim
This page does not say what one Civil Engineers worker earns. It does not promise that a job pays the median. It does not state a starting wage. It does not explain why the mean and median differ. It does not add benefits, tips, stock, bonus pay, taxes, or work hours unless BLS includes them in the published wage measure.
The page does not count people who work for themselves. It does not turn 367,840 into current openings. It does not read private MeritLog jobs or Career Memory. MeritLog does not use the page to build a private career profile. While public analytics are on, GA4, Ahrefs, and Meta may get this page's URL. Use Your Privacy Choices or Global Privacy Control to turn that off. The page does not send its text to a model.
The best use is narrow and clear. Read the May 2025 BLS wage range. Check how the role changes by place. Add the separate 2024 BEA price level when an exact row exists. Inspect a dated employer-title match. Then make a résumé choice from facts you have confirmed. Keep each source tied to the question it can answer.