Guide
How to Spot Inflated Job Titles When Comparing Pay Across Companies
Last reviewed: August 2026
Title inflation is not a conspiracy. It is a byproduct of companies building internal leveling systems with no obligation to match anyone else's vocabulary. The result: a candidate who moves from a "Senior Software Engineer" at a mid-size firm to an "Engineer II" at a large tech company may be taking a lateral move, a step up, or a step down — and the title alone tells you nothing. The only way to cut through the noise is to map both roles to the same Bureau of Labor Statistics Standard Occupational Classification (SOC) code and compare pay at the percentile level.
Why Job Titles Diverge Across Companies
The BLS Occupational Employment and Wage Statistics (OEWS) program does not track "Senior Engineer" or "Engineer II" as distinct categories. It tracks SOC 15-1252, "Software Developers," and SOC 15-1251, "Computer Programmers," among others. Every company's internal title — whether it reads "Staff Engineer," "L5," or "Senior Member of Technical Staff" — gets mapped to one of these codes when the BLS collects payroll data from employers.
That mapping is the key insight. Two jobs with different titles but the same SOC code draw from the same labor market. A company calling a role "Senior Engineer" and another calling the equivalent role "Engineer III" are both drawing from the same SOC 15-1252 population. The percentile distribution the BLS publishes for that code reflects the full range of what employers actually pay for that work — not what they choose to call it.
ONET, which is maintained by the Department of Labor and linked to the same SOC taxonomy, publishes task and skill profiles for each code. Cross-referencing the job description against the ONET profile for a candidate SOC code is a fast way to confirm you have the right mapping before you pull any wage figures.
The Mechanics of a Title-Adjusted Pay Comparison
Here is the process in four steps.
Step 1: Strip the title, read the job description
Ignore the title entirely. Read the posted responsibilities and required skills. Ask: what does this person actually do day-to-day? A role titled "Senior Data Analyst" that involves building and maintaining production ML pipelines is almost certainly SOC 15-2051 (Data Scientists) or SOC 15-1244 (Network and Computer Systems Administrators), not SOC 13-2011 (Accountants and Auditors), regardless of the word "analyst" in the title.
Step 2: Match to a SOC code using O*NET
Search O*NET OnLine for the tasks described in the posting. O*NET provides a "Related Occupations" feature and a keyword search that returns ranked SOC matches. Pick the code whose task list most closely matches what the job requires. Note the six-digit SOC code — you will use it in every subsequent step.
Step 3: Pull the BLS OEWS percentile distribution for that SOC code
The OEWS program publishes annual wage estimates at the 10th, 25th, 50th, 75th, and 90th percentiles for each SOC code at the national level and for most metropolitan statistical areas (MSAs). The figures below come from the BLS OEWS May 2025 release.
For SOC 15-1252 (Software Developers) in the San Jose-Sunnyvale-Santa Clara, CA MSA (BLS MSA code 41940), the May 2025 OEWS estimates are:
- 10th percentile: $112,430
- 25th percentile: $142,180
- 50th percentile: $176,490
- 75th percentile: $218,060
- 90th percentile: $250,000 (BLS top-codes at $250,000)
Source: BLS OEWS, May 2025, SOC 15-1252, MSA 41940.
Those figures are what the labor market pays for software development work in that geography — independent of whether a company calls the role "Senior," "Staff," or "L4."
Step 4: Locate each offer on the same percentile scale
Once both offers are mapped to the same SOC code and metro, you can place each on the distribution. An offer of $155,000 for a role titled "Engineer II" and an offer of $168,000 for a role titled "Senior Engineer" — both in San Jose, both mapped to SOC 15-1252 — sit at roughly the 37th and 44th percentiles respectively of the May 2025 OEWS distribution. The title difference is about seven percentile points of real pay, not a full level jump. Without the SOC mapping, the title "Senior" might have led you to anchor $13,000 higher than the data supports.
The Occupation Comparison tool lets you put two or three SOC codes side by side and see their full percentile distributions in the same metro from the same BLS OEWS release — which is useful when a job straddles two plausible SOC codes and you need to see whether the pay ranges even diverge meaningfully.
A Worked Example: "Data Analyst" vs. "Business Intelligence Engineer"
Consider two offers in the Seattle-Tacoma-Bellevue, WA MSA (BLS MSA code 42660), May 2025 OEWS:
Offer A — Title: "Senior Data Analyst," salary: $105,000. The job description centers on SQL queries, dashboard maintenance, and monthly reporting. This maps cleanly to SOC 15-2041 (Statisticians) or more likely SOC 15-1243 (Database Architects) — but read carefully. If the primary output is business reports rather than database schema design, the closer match is SOC 13-1161 (Market Research Analysts and Marketing Specialists), which carries a 50th-percentile wage of $74,480 in Seattle (BLS OEWS, May 2025, SOC 13-1161, MSA 42660). At $105,000, this offer sits above the 75th percentile for that code.
Offer B — Title: "Business Intelligence Engineer I," salary: $118,000. The description covers building ETL pipelines, maintaining a data warehouse, and writing production-grade Python. This maps to SOC 15-1243 (Database Architects), which has a 50th-percentile wage of $131,580 in Seattle (BLS OEWS, May 2025, SOC 15-1243, MSA 42660). At $118,000, this offer sits below the 50th percentile — despite the more technical title and higher nominal salary.
The title "Engineer" implied seniority and market-rate pay. The SOC mapping revealed the opposite: the "Senior Analyst" offer is relatively stronger against its labor market than the "Engineer I" offer is against its own.
This is the core problem title inflation creates. If you had negotiated Offer B using Offer A's title as a benchmark, you would have anchored to the wrong market. For more on using BLS percentiles as a negotiation anchor rather than self-reported salary surveys, see why your salary negotiation should start with BLS data, not Glassdoor.
Limitations to Keep in Mind
BLS OEWS wage data is collected from employer payroll records via a probability-based survey, not self-reported by workers. That makes it more reliable than crowd-sourced platforms for establishing a market floor. But it has its own constraints: the survey vintage matters (May 2025 figures reflect payroll periods in late 2024 and early 2025), and the MSA definitions the BLS uses may bundle geographies you would not intuitively group together. Before relying on a metro-level figure, confirm the MSA boundaries cover the actual job location — the metro area trap guide covers this in detail.
SOC codes also aggregate broadly. SOC 15-1252 includes developers working in embedded systems and those building consumer web apps. If a role is highly specialized, the 50th-percentile figure for the broad code may understate or overstate the relevant market. Use the percentile range — not just the median — and treat the distribution as a range of plausible values, not a single correct answer.
Frequently Asked Questions
How do I find the right SOC code for a job posting?
Start with ONET OnLine at onetonline.org, which is maintained by the Department of Labor. Use the keyword search or the "Find Occupations" feature to match the tasks in the job description to a ranked list of SOC codes. The ONET task list for each code is detailed enough that a close match is usually apparent within a few minutes of reading.
Can I use this method for non-technical roles?
Yes. The SOC taxonomy covers all U.S. occupations, including management, healthcare, finance, and trades. Title inflation is common in sales ("Account Executive" vs. "Senior Account Manager"), marketing ("Growth Lead" vs. "Marketing Manager"), and operations roles. The same four-step process applies: strip the title, match to a SOC code via O*NET, pull the OEWS percentile distribution for the relevant MSA, and locate the offer on the scale.
What if two offers are in different cities?
Map both to the same SOC code, then pull the OEWS percentile distribution for each city's MSA separately. A $130,000 offer in Austin and a $155,000 offer in San Francisco may sit at very different percentiles within their respective markets. If you want to go further and adjust for purchasing power, the BEA's Regional Price Parities provide an official price index by state — though note that RPPs are state-level, not MSA-level, so they are an approximation when comparing specific metros.
Does BLS OEWS capture total compensation, including equity and bonuses?
No. OEWS wage figures reflect straight-time hourly wages and annual salaries as reported by employers. They exclude equity, bonuses, overtime, and benefits. For roles where variable compensation is a large share of total pay — particularly in tech and finance — the base salary percentile is a floor, not a ceiling. Treat the OEWS figure as the cash-wage benchmark and evaluate equity and bonus terms separately.
How often does BLS update OEWS data?
The BLS publishes OEWS estimates once per year, typically in late March or early April, covering a reference period of the prior May. The figures cited in this guide are from the May 2025 release, published in spring 2026. Always confirm which release you are reading before citing a figure in a negotiation — the release year is labeled on every BLS OEWS data page.
This guide is for informational purposes only and does not constitute professional career, legal, or financial advice. Last reviewed: August 2026.
Informational only, not professional or financial advice.