2.4: Engineering by the Numbers
- Page ID
- 132072
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\( \newcommand{\dsum}{\displaystyle\sum\limits} \)
\( \newcommand{\dint}{\displaystyle\int\limits} \)
\( \newcommand{\dlim}{\displaystyle\lim\limits} \)
\( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)
( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\id}{\mathrm{id}}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\kernel}{\mathrm{null}\,}\)
\( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\)
\( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\)
\( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)
\( \newcommand{\vectorA}[1]{\vec{#1}} % arrow\)
\( \newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow\)
\( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vectorC}[1]{\textbf{#1}} \)
\( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)
\( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)
\( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\(\newcommand{\longvect}{\overrightarrow}\)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)2.4 Engineering by the Numbers — Reading the Data Critically
Engineering is, on average, a well-compensated profession. The U.S. Bureau of Labor Statistics reported that in May 2024, the median annual wage across all engineering occupations was about $97,310, compared to $49,500 for all U.S. occupations combined. Employment in engineering is projected to grow faster than the overall labor market through 2034, with roughly 186,000 openings per year, on average.
Broken down by discipline, the picture varies quite a bit:
| Discipline | Median Annual Wage (May 2024) | 2024–2034 Growth Outlook |
|---|---|---|
| Petroleum | $141,280 | Slower than average (1%) |
| Aerospace | $134,830 | Faster than average (6%) |
| Nuclear | $127,520 | Decline (–1%) |
| Chemical | $121,860 | About as fast as average (3%) |
| Electrical | $111,910 | Much faster than average (7%) |
| Bioengineering / Biomedical | $106,950 | Faster than average (5%) |
| Environmental | $104,170 | About as fast as average (4%) |
| Mechanical | $102,320 | Much faster than average (9%) |
| Industrial | $101,140 | Much faster than average (11%) |
| Civil | $99,590 | Faster than average (5%) |
| All engineers (combined) | $97,310 | Faster than average |
| All U.S. occupations (reference) | $49,500 | — |
The figures below show two different ways to read the same career data. The first figure compares median annual wages by discipline. The second figure compares field size by showing the number of engineers employed in each discipline. Both views matter: a discipline can have a high median wage but a relatively small job market.
This graph compares median annual wages across engineering disciplines and includes the all-U.S.-occupations median as a reference point.
This graph shows how many engineers work in each discipline. Larger fields usually provide more openings, more geographic flexibility, and more resilience to downturns in a single industry sector.
Why the highest-paying discipline is not automatically the best choice
A student looking at that table might reasonably think: pick petroleum, it pays the most. That instinct deserves some engineering reasoning.
A few things that first table doesn't tell you:
Field size matters. Petroleum engineering employs roughly 15,000 engineers nationally. Civil engineering employs over 370,000. If you study petroleum engineering and the industry contracts — as it has during several historical downturns — the job market gets crowded quickly. Large disciplines are more resilient to industry-specific shocks.
Growth matters more than current wage. Industrial engineering is projected to grow 11% over the next decade. Petroleum, 1%. That growth differential compounds over a 40-year career. A discipline that's growing fast tends to have more opportunity, more mobility, and more upward salary pressure.
Regional variation is huge. A civil engineer in San Francisco earns substantially more than a civil engineer in rural Oklahoma — but the San Francisco engineer also pays dramatically more for housing. National medians hide these swings.
Industry sector matters as much as discipline. A mechanical engineer at a semiconductor company and a mechanical engineer at a small-town HVAC contractor have the same degree but very different compensation trajectories. Industry choice affects pay as much as discipline choice.
Salary alone should not drive the decision. Over a long career, you will be much more productive — and much happier — working on problems you find interesting. That matters more than a 10% starting-salary delta, which tends to shrink as you gain experience.
Three common mistakes when interpreting engineering salary data:
- Confusing median with entry-level. The median is the middle of the whole career distribution. Entry-level salaries are typically 30–50% lower. A discipline with a $120,000 median probably starts new graduates around $70,000–$80,000.
- Ignoring cost of living. A $90,000 salary in Lancaster, CA buys a different lifestyle than a $90,000 salary in Manhattan. National numbers do not reflect regional reality.
- Assuming the data will stay the same. These tables reflect 2024. By the time you graduate in four years, the rankings will have shifted — probably not dramatically, but enough to matter.
Engineering reasoning applies to career decisions, not just technical ones: what is the data, what does it actually say, and what is it missing?

