Software engineer salary research gets messy because the same label can describe an entry-level developer, a senior platform owner, or a manager with a different pay structure. Before you compare numbers, decide what question you are answering: an occupation wage, a base-salary benchmark, or the full value of an offer.
The May 2025 OEWS estimate gives a useful national anchor for Software Developers (SOC 15-1252): a $135,980 median annual wage, a $148,100 mean, and a 10th-to-90th percentile range of $82,460 to $214,670. These are the latest official wage estimates available as of August 28, 2026, not 2026 wage observations. They are wages, not guaranteed base salary, bonus, equity, or benefits. Use the sections below to match role, level, location, employer, and compensation type before setting a range.
How Much Do Software Engineers Make in the United States?
A compact national benchmark, using the latest official occupation wages.
| Measure | Annual | Hourly | What it means |
|---|---|---|---|
| 10th percentile | $82,460 | $39.64 | 10% of measured wages are at or below this value |
| 25th percentile | $105,210 | $50.58 | Lower quartile of the wage distribution |
| Median (50th) | $135,980 | $65.38 | Middle of the distribution; half earn less, half more |
| Mean (average) | $148,100 | $71.20 | Arithmetic average; can be pulled up by high earners |
| 75th percentile | $171,980 | $82.68 | Upper quartile of the distribution |
| 90th percentile | $214,670 | $103.21 | 90% of measured wages are at or below this value |
Source note: BLS May 2025 OEWS tables and the OEWS technical notes cover Software Developers (SOC 15-1252). The survey-wide sample is used; occupation-cell n is not published. Annual means use 2,080 hours. These figures are wages, not company-specific total compensation.
Why headline the median? The median marks the middle of the measured wage distribution and resists distortion from a high-income tail better than the mean. Use the mean for budget or labor-cost modeling when appropriate, but for personal benchmarking, the median avoids overstating typical pay.

What Counts as a Software Engineer in Salary Data?
For national wage benchmarking, Software Engineer commonly maps to SOC 15-1252 Software Developers when the actual responsibilities match software design and development work. The O*NET occupation summary includes reported titles such as Software Engineer, Software Development Engineer, Application Developer, Software Architect, and some DevOps Engineer roles when the core work is designing, building, and maintaining software systems. A reported title is a crosswalk clue, not proof. Verify responsibilities.
Use this quick sorting table:
| Usually within the role family | Check the responsibilities | Keep separate |
|---|---|---|
| Software Engineer / Software Developer | DevOps Engineer (if primarily platform automation for software delivery) | Software Quality Assurance Analysts and Testers |
| Software Development Engineer (SDE) | Site Reliability Engineer (SRE): include only if major share is software development, not primarily operations | Web Developers |
| Application Developer | Machine Learning Engineer (include if the work is primarily software productization) | Web and Digital Interface Designers |
| Software Architect (IC) | Data Engineer (include if product-focused software development dominates) | Computer Programmers |
| Platform Engineer (product engineering) | "Full stack" roles (verify the balance of product software work) | Computer Hardware Engineers |
| Lead vs. Manager: managers belong on a management track | Engineering Managers |
Occupation and Level Gate: Before comparing numbers, match 1) core responsibilities and role family, 2) individual-contributor or manager track, 3) scope and ownership, 4) evidence of level (impact, autonomy, design ownership, not just years), and 5) work location and remote pay policy. This is a salary-research crosswalk, not a legal or HR classification.
The Full Wage Distribution, Not a Fake Career Ladder
Think of percentiles as distribution markers, not levels:
- A percentile tells you what share of measured wages are at or below a value.
- Percentiles combine many locations, industries, employers, and career stages.
- OEWS doesn't identify years of experience, company level, remote status, base versus bonus, or equity.
Guardrails you should keep in view:
- Don't label the 10th percentile "entry level" or the 90th "senior." OEWS doesn't publish that mapping.
- A new grad in a high-paying metro can land above a national percentile that includes experienced workers elsewhere.
- A senior title at a lower-paying employer can sit below a national upper percentile.
Why Software Engineer Salary Websites Disagree
Use the Salary Source Normalization Matrix to compare apples to apples.
| Source type | Typical metric | Sample and time questions | Best use | Main limitation |
|---|---|---|---|---|
| BLS/O*NET occupation wage estimate | Annual wage distribution, median, mean | OEWS panel dates; occupation-cell n not published; May 2025 reference period | Reliable occupation-wide wage anchor; national/state/metro | Lacks level, bonus/equity breakdown, company size, remote status |
| Self-reported salary profile database | Base-only average or ranges | Who submitted? Which period? How verified? | Directional base-salary check | Sample bias; unclear observation window |
| Anonymous employee salary database | Base, cash, sometimes equity | Level normalization, time bounds, and verification vary | Company-level direction when definitions are disclosed | Inconsistent level mapping; mixed compensation definitions |
| Recruiter starting-salary guide | Base salary ranges | Survey method; time of collection; job-family fit | Hiring-window snapshot; entry to mid IC base | Often excludes equity; can lag market or be regional |
| Company-and-level total-compensation database | Base, bonus, equity by level | Level taxonomy, sample freshness, vest schedules | Total-comp view by company and level | Can overrepresent large tech; needs clear period and sample |
| Posted salary range | Base (sometimes total range) | Posting date; location; level; eligibility | The actual opening's constraints at that moment | Not a market percentile; may omit bonus/equity; broad bands |
Data Quality Labels:
- A: Original source discloses sample, reference period, metric, occupation, and method.
- B: Useful self-reported source with sample and update date, but incomplete collection window or controls.
- C: Source does not clearly disclose sample, observation period, or metric. Use only as a directional lead.
Conflict example: One page shows an occupation's median wage (A), another shows base salary averages from self-reports (B), and a third shows base+stock total compensation at a specific company level (B). These are not competing "answers" until occupation, level, geography, time, statistic, and compensation type match.

Base Salary vs Total Compensation
Definitions in plain English:
- Base salary: Your recurring cash pay before bonuses.
- Target cash bonus: A percentage or amount that may pay below, at, or above target based on performance.
- Guaranteed bonus: A committed cash amount (e.g., role-based stipend or guaranteed minimum).
- Signing bonus: One-time cash paid for accepting an offer, often with a repayment clause if you leave early.
- Restricted stock units (RSUs): Equity grants that vest over time; the annual vested value depends on share price and vest schedule.
- Stock options: The right to buy shares at a strike price; realizable value depends on future price minus strike and exercise cost.
- Refresh grants: Additional equity granted later; not guaranteed unless documented.
- Benefits: Health insurance, retirement match, leave, etc. Treat as qualitative or documented dollar value.
- Total compensation: The sum of base, expected bonus, and equity value for a period, plus one-time items when relevant.
Two working formulas:
Year 1 total = base + expected Year 1 bonus + signing bonus + Year 1 vested equity + other guaranteed pay
Steady-state annual total = base + expected recurring bonus + annual vested equity + recurring guaranteed pay
Use the actual vest schedule. A front-loaded plan (e.g., 25/25/25/25 vs 10/20/30/40) changes Year-1 and Year-2 outcomes materially. Don't treat grant value ÷ 4 as truth.
Illustrative comparison (fictional numbers; for method only):
Offer A: Base $170,000; target bonus 10% ($17,000 expected); RSUs grant $160,000 over 4 years, vest 25/25/25/25; no sign-on.
Year 1 vested equity = 160,000 × 25% = $40,000 (assuming price equals grant valuation for illustration). Year 1 total = $170,000 + $17,000 + $0 + $40,000 = $227,000. Steady-state annual total (post-cliff) = $170,000 + $17,000 + $40,000 = $227,000.
Offer B: Base $155,000; target bonus 10% ($15,500 expected); signing bonus $25,000 (one-time, with 12-month clawback); RSUs $240,000 over 4 years, vest 10/20/30/40.
Year 1 vested equity = 240,000 × 10% = $24,000. Year 1 total = $155,000 + $15,500 + $25,000 + $24,000 = $219,500. Steady-state annual total (Year 3 example) = $155,000 + $15,500 + (240,000 × 30% = $72,000) = $242,500.
Interpretation: Offer A leads Year 1; Offer B leads at steady state if equity holds. Benefits are separate unless the employer provides a comparable dollar value.

Software Engineer Salary by Experience and Level
Limitation first: the approved official US OEWS tables don't cleanly map wages to entry, mid-level, senior, or staff titles for software engineers. No national, level-by-level table in the approved source bank simultaneously discloses observation period, sample, level definitions, geography, and a single compensation metric.
Level-alignment guide (scope signals, not legal definitions):
| Label | Common scope signals | Evidence to verify | Salary-source requirement |
|---|---|---|---|
| Entry / Junior | Bounded tasks, close review, learning the system | Interview signals, project history, code ownership | Use compatible base-salary sources for entry IC bands or posted ranges for junior levels |
| Mid-level | Independent delivery; owns a feature/service; on-call follow-through | Production ownership, incident history | Company or region base benchmarks; posted ranges at matching level |
| Senior | System design; ambiguity; cross-team influence; mentors others | Design docs, architecture reviews, leading incidents | Company-level base+equity sources with level taxonomy; posted ranges |
| Staff / Principal | Multi-team technical direction; architecture; long-horizon risk | Org-level design and impact evidence | Specific company-and-level total comp sources; posted bands for staff/principal |
How to find a level-specific benchmark: match role family, actual scope, the governing location (state/metro or employer remote band), employer segment, and compensation type. Don't treat the word junior, senior, lead, staff, or principal as an automatic salary ladder.
Software Engineer Salary by State and Metro
Approved nominal median wages (May 2025), using the O*NET local wage data. Differences are relative to the US median of $135,980.
| Location | May 2025 annual median | Difference from US median | What the figure doesn't include |
|---|---|---|---|
| United States | $135,980 | Cost of living, taxes, equity, bonus, or employer pay policy | |
| California | $174,410 | +$38,430 | COL, taxes, within-state metro variance, remote bands |
| Washington | $166,540 | +$30,560 | Same exclusions; Seattle vs. elsewhere differences |
| New York (state) | $166,180 | +$30,200 | NYC vs. upstate differences |
| Texas | $132,150 | -$3,830 | Metro variance (Austin vs. others), equity mix |
| San Jose-Sunnyvale-Santa Clara | $213,110 | +$77,130 | Housing, taxes, commute, equity volatility |
| San Francisco-Oakland-Fremont | $186,640 | +$50,660 | Same exclusions; posted company bands override |
| Los Angeles-Long Beach-Anaheim | $160,920 | +$24,940 | Intra-metro variance, remote policy |
| San Diego-Chula Vista-Carlsbad | $163,270 | +$27,290 | Same exclusions |
| Seattle-Tacoma-Bellevue | $167,280 | +$31,300 | Same exclusions |
| New York-Newark-Jersey City | $166,830 | +$30,850 | Same exclusions |
| Austin-Round Rock-San Marcos | $134,120 | -$1,860 | Equity mix, company segment |
| Dallas-Fort Worth-Arlington | $133,290 | -$2,690 | Same exclusions |
| Houston-Pasadena-The Woodlands | $129,440 | -$6,540 | Same exclusions |
Guardrails: 1) These are nominal, pretax wages. 2) They're not adjusted for housing costs, taxes, or transportation. 3) State figures hide major metro differences. 4) A remote employer may apply its own geographic pay bands or office policy, which can replace a state or metro anchor for your role.
Location Ladder: Start with the national occupation anchor, then state benchmark, then metro benchmark, then employer's posted range, then employer's remote geo-band or office policy. The more specific, compatible source replaces (not averages with) the broader one.

How Industry, Employer Type, and Specialization Change Pay
Approved industry medians for Software Developers (some of the top industries in which software developers worked), from the BLS Occupational Outlook Handbook:
- Software publishers: $164,550 (median)
- Manufacturing: $136,330 (median)
- Management of companies and enterprises: $135,680 (median)
- Finance and insurance: $135,460 (median)
- Computer systems design and related services: $132,050 (median)
Non-numeric offer drivers to weigh:
- Public vs. private-company equity (liquidity risk, strike price, exercise cost)
- Early-stage startup cash constraints and option risk
- On-call burden and production responsibility
- Security clearance or regulated-domain constraints
- Scarce specialization (e.g., compiler, low-latency, infra reliability)
- Revenue ownership, platform scope, and business-critical systems
- Company compensation philosophy and geographic bands
How to research pay at a specific company: match the company's level taxonomy and location to your role; capture the posting date; split base, bonus, and stock; record the sample and timestamp; and reject any figure that can't be tied to a comparable level, location, and period. Don't build a leaderboard without fully compatible sources.
Build Your Personal Software Engineer Salary Benchmark
Turn this into a six-step workflow:
- Choose the correct occupation and role family.
- Calibrate actual scope and level.
- Select the state, metro, or employer remote band that actually governs pay.
- Identify employer type and compensation philosophy.
- Separate base, recurring cash, equity, and one-time pay.
- Grade every source and discard incompatible comparisons.
Before you turn scope into a level claim, use the software engineer resume guide to organize ownership, constraints, and outcomes as evidence. Then map that evidence to a salary range rather than treating years or title as the benchmark.
Personal Benchmark Card template:
Target role family: Individual contributor or manager: Scope and level evidence: Work location and employer pay location: Employer segment: Base-salary benchmark range: Recurring cash benchmark: Equity benchmark or unknown: Reference period: Source quality: Target range: Acceptable range: Walk-away point:
How to form a range:
- Start with a compatible official occupation + geography anchor.
- Replace broad data with specific data when definitions remain compatible.
- Use transparent self-reported data as a secondary check, not the anchor.
- Treat the employer's posted range as evidence for that opening.
- Don't average base salary with total compensation, or national wages with one company's stock-heavy package.
When sources conflict: find the mismatched field (occupation, level, geography, time, metric, compensation type). Remove the incompatible source and present a range, not false precision.

Compare a Job Offer Without Letting Equity Hide the Math
Offer Comparison Worksheet (fill with your numbers; "fictional" labels indicate illustration only):
| Component | Year 1 | Year 2 | Steady-state annual | Guaranteed, at risk, or conditional | Notes |
|---|---|---|---|---|---|
| Base salary | Guaranteed | ||||
| Target bonus | At risk (performance) | May pay <, =, or > target | |||
| Signing bonus | One-time; conditional if clawback | Check repayment terms | |||
| Vested RSUs / options | Conditional (market, vest) | Use actual vest schedule | |||
| Refresh grants | Conditional unless documented | Don't assume without evidence | |||
| Other guaranteed cash | Guaranteed | e.g., location stipends | |||
| Benefits (documented $) | Varies | Only include if truly comparable | |||
| Clawbacks / conditions | e.g., sign-on clawback window |
Notes: A signing bonus often has a repayment clause. A target bonus isn't guaranteed. RSUs should follow the actual vest schedule; private-company options require strike price, exercise cost, tax, dilution, and liquidity analysis. Refreshers shouldn't be assumed unless documented or supported by a high-quality employer-specific source. Four-year totals can hide a weak Year 2 or post-cliff package; check Year 1, Year 2, steady state, and four-year totals separately. You can compare the full job offer across components rather than compressing it into one number.
Turn the Benchmark Into a Salary Negotiation Range
Definitions:
- Target: The supported outcome you will request.
- Acceptable range: Outcomes that still make the role worthwhile.
- Walk-away point: The minimum package or conditions below which you decline.
Posted-range math to locate the offer within the posting:
Range position = (offer base − posted minimum) / (posted maximum − posted minimum)
Interpretation: 0 is the posted floor, 0.5 the midpoint, 1 the posted ceiling. This is not a market percentile and does not prove where you should land.
Negotiation flow:
- Confirm role, level, location, and compensation components.
- State the compatible benchmark range and why it applies.
- Make a specific request.
- Ask whether base, sign-on, bonus, equity, level, start date, or review timing can move.
Internal links to help you execute:
- Set a defensible desired salary range
- Compare the full job offer
- Ask about level and compensation
- Compare occupation and location salary data
- Address pay compression

Annual, Monthly, Biweekly, and Hourly Conversions
Simple, transparent conversions:
Monthly base = annual base ÷ 12 Biweekly base = annual base ÷ 26 Weekly base = annual base ÷ 52 Hourly equivalent = annual base ÷ 2,080
Note: 2,080 hours assumes 40 hours per week for 52 weeks. It's a comparison convention, not a claim about your actual hours. Do not include equity, signing bonuses, or other one-time pay in a recurring hourly base rate. For a worked conversion example, see 60k a year is how much an hour.
Sources and Methodology
The national, state, metro, and industry figures above use the May 2025 Occupational Employment and Wage Statistics reference period. The primary sources are the BLS national OEWS table, BLS OEWS technical notes, O*NET local wage data for SOC 15-1252, the O*NET Software Developers occupation summary, and the BLS Occupational Outlook Handbook entry for Software Developers.
These are nominal, pretax occupation wages for the source populations and period. They are not a national software engineer level ladder, take-home pay estimate, cost-of-living adjustment, remote pay band, or equity-inclusive total compensation model. Match the source's occupation, geography, reference period, metric, and compensation definition before using a number in a personal decision.






