DEEPCOMPS · LABOR-MARKET-LAB · v0.1 SOURCES BLS · BEA · O*NET · NCSBN LAST·SYNC 2026.05.04

Calculator widget — TODO: implement form + compute logic for salary-negotiation-range.

Data inputs: BLS OES May 2024 percentiles, BEA RPP 2024, BLS NAICS-segmented OES, Indeed/Payscale industry benchmarks, anchoring research (Tversky/Kahneman).

Primary keyword: salary negotiation calculator · Intent: commercial, informational, transactional.

How we calculate

Three-tier output uses BLS percentile baseline × state adjustment × experience modifier:

lowball     = BLS_P25 × state_adjustment × experience_modifier(years − 2)
target      = BLS_P50 × state_adjustment × experience_modifier(years)
aspirational = BLS_P75 × state_adjustment × experience_modifier(years + 2)

Where state_adjustment = state OES mean ÷ national OES mean for the SOC code (typically 0.85–1.20). Experience modifier: year 1 = 0.75, year 5 = 1.00, year 10 = 1.20, year 15 = 1.30, year 20+ = 1.35. Industry adjustment applied if candidate's industry is significantly above/below national mean for the SOC. Showing the formula lets candidates push back when recruiters cite 'our band caps at X' — they can ask which percentile that maps to.

The Three-Tier Anchor Method

Most salary-negotiation calculators output one number. That's not how negotiation actually works. You need three numbers: a lowball you'd accept reluctantly, a target you expect to receive, and an aspirational ask you open with. The spread between them is your negotiation room — usually 15–25% from lowball to aspirational.

TierDefinitionAnchor (typical)What it does
Lowball The minimum you'd accept; below this you walk away BLS P25 for your role + state Prevents the recruiter "is this in your range?" from costing you money
Target The number you reasonably expect to land BLS P50 + experience adjustment + state RPP factor Your default counter; what you'd be happy with
Aspirational The number you open with BLS P75 (or higher for senior + tech) Anchors the negotiation upward; you'll likely settle below this

The aspirational number isn't fantasy — it's the data-supported high end of your role's wage distribution. Glassdoor's "Know Your Worth" returns one number that is typically near the BLS median; SmartAsset, Indeed, and Payscale do similar. Opening with a one-number anchor at the median means you've already shown your hand at the middle of the range.

How the Three Numbers Are Computed

This calculator uses BLS Occupational Employment Statistics percentiles by SOC code, adjusted for state-of-employment Regional Price Parity, then layered with experience-band modifiers based on industry data.

lowball     = BLS_P25 × state_adjustment × experience_modifier(years − 2)
target      = BLS_P50 × state_adjustment × experience_modifier(years)
aspirational = BLS_P75 × state_adjustment × experience_modifier(years + 2)

Where:

  • state_adjustment = state-level OES mean ÷ national mean for the same SOC code (typically 0.85–1.20)
  • experience_modifier = empirically-derived bump factors by years (year 1 = 0.75, year 5 = 1.00, year 10 = 1.20, year 15 = 1.30, year 20+ = 1.35)
  • Industry adjustment applied if the candidate's industry is significantly above/below the SOC code's national mean (Software Publishing for SWE: +20%; State Government: −15%)

Glassdoor and similar tools don't publish their formula — opaque inputs make the output hard to defend in a real negotiation. Showing the formula lets you push back when a recruiter says "our band caps at X" — you can ask which percentile that is and how it compares to BLS published data.

Tactics: Using Three Numbers in a Real Conversation

Lowball (your floor)

Never say this number out loud. It is your private exit threshold. Common scripts that try to extract it:

  • "What's the minimum you'd accept?"
  • "What's your current salary?" (in states where this is legal — most U.S. states have salary-history bans)
  • "What were you making at your last job?"

The right response is to redirect to your target or aspirational number instead. Sample: "Based on the role and my [years] of experience, I'm looking at roles in the $X to $Y range, which aligns with BLS data for [role] in [state]." The lowball stays private.

Target (your default counter)

This is the number you'll land. Use it when the recruiter asks for a specific figure. If you're countering an offer, this is the counter; if you're stating your range, this is the bottom of your stated range.

Aspirational (your anchor)

This is the number you open with — when asked first or when stating a range. Anchoring research (Tversky, Kahneman) consistently shows the first number stated affects the final settlement. If you state a high anchor with credible justification, you'll generally land closer to your target than if you state your target as the anchor.

Industry-Specific Modifiers

The same SOC code pays differently across industries. Apply these adjustments to the BLS percentile baseline:

IndustrySoftware EngineerData ScientistRegistered NurseAccountant
Tech / Software Publishing+25%+30%+5%
Banks & Finance+10%+15%+12%
Pharma / Biotech+5%+10%+8%+8%
Healthcare−15%−10%baseline−5%
Manufacturing / Industrial−5%−5%−5%
Government (Federal GS)−20%−15%−5%−10%
State / Local Gov−25%−20%−10%−15%
Education (K-12 / University)−25%−25%−12%−18%
Non-profit−15%−15%−5%−15%

Industry adjustments derived from BLS OES NAICS-segmented filings + Indeed industry benchmarks 2024.

Beyond Base: Signing, Equity, Bonus

Salary negotiation usually focuses on base pay, but base is often the least-negotiable piece. The four other levers carry significant value and are more flexible.

  • Signing bonus ($5K–$50K typical at non-tech, $50K–$300K at FAANG). Often easier to negotiate than base because it's one-time. Often clawback-protected (forfeit if you leave within 12–24 months).
  • Equity / RSU at public tech companies — Levels.fyi-style total comp depends almost entirely on this. Negotiate as separate line item with explicit grant size. Many companies have lower equity floors than you'd expect.
  • Annual bonus target % — typically defined for level (10% mid-level, 20% senior, 30%+ exec). Often non-negotiable but worth pushing.
  • Relocation package ($5K–$30K typical; up to $80K for executive / international moves). Tax-equivalent value 1.3–1.5× cash because federal tax on relocation reimbursement was eliminated in 2018. Don't accept the default if you actually have moving costs.
  • Vacation / PTO — week or two of additional PTO is often easier to grant than equivalent salary. Calculate dollar value: 1 week of PTO ≈ 1.92% of salary.
  • Title — affects future negotiation power; sometimes worth more than 5–10% salary in 2-year time horizon.

Convert Offers to Real Take-Home Before Comparing

Two offers with the same gross are not equivalent if they're in different states. Always convert competing offers to real take-home using your real take-home calculator before deciding. A $200K San Francisco offer is roughly equivalent to a $145K Texas offer in real wage. Most candidates skip this conversion and overweight gross numbers.

Methodology & Data Sources

Wage percentile baseline: BLS Occupational Employment Statistics, May 2024 release. State adjustments: BLS state-level OES mean ÷ national mean. Industry modifiers: BLS NAICS-segmented OES + Indeed/Payscale industry benchmarks 2024. Real-wage conversion: BEA Regional Price Parities (2024). Anchoring research: classic findings from Tversky and Kahneman + recent meta-analyses on salary-negotiation outcome studies. Tactics framework: blended from "Never Split the Difference" (Voss), "Bargaining for Advantage" (Shell), and Hello Negotiate compensation-negotiation literature.

What this tool does not do: account for stock comp at private companies (use the RSU Calculator), benefits valuation (medical / dental / 401(k) match vary too widely), or candidate-specific factors (visa status, current offer in hand, walk-away cost). Use these outputs as the data-supported floor and ceiling of your negotiation, not as the entire input set.

FAQ

What's the difference between lowball, target, and aspirational salary numbers?
Lowball is your private floor — the minimum you'd accept; never said out loud. Target is the number you reasonably expect to land — what you'd be happy with. Aspirational is the number you open with — anchors the negotiation upward. Spread is typically 15–25% from lowball to aspirational. Most calculators output one number near the median, which means you've already shown your hand at the middle of the range.
How do I figure out my realistic salary range?
Three-step process. (1) Look up BLS OES percentiles for your role's SOC code at the state level — P25, P50, P75 give you the wage distribution. (2) Adjust for state Regional Price Parity if you're comparing across states. (3) Apply industry modifier — same SOC pays differently across industries (Software Publishing pays SWE +25% vs national mean; State Government pays −20%). The result is your data-supported range. Years of experience layer on top with empirical bumps.
Should I share my current salary in negotiation?
No, when legal — and most U.S. states have salary-history bans now (CA, NY, MA, IL, NJ, OR, CO, CT, DE, ME, MD, NC, NV, NM, OH, PA, VT, WA, and several cities). When asked, redirect to your target/aspirational range: 'Based on my [years] of experience and BLS data for [role] in [state], I'm looking at $X to $Y.' Volunteering current salary anchors the recruiter's offer to your current level rather than the market level.
What about asking for sign-on bonus, equity, PTO?
Base salary is often the least-negotiable piece. Five other levers carry significant value: signing bonus ($5K-$50K typical, up to $300K at FAANG; often easier than base because one-time); equity / RSU (negotiate as separate line with explicit grant size); annual bonus target % (often capped by level); relocation package ($5K-$30K, taxed-equivalent value 1.3-1.5× cash since the federal relocation-tax exclusion was eliminated in 2018); PTO (1 week ≈ 1.92% of salary equivalent value). Title is also worth pushing — affects future negotiation power for 2+ years.
How does industry affect salary range?
Significantly. The same SOC code can pay 60% differently across industries. For Software Engineer (15-1252): Software Publishing $165K mean, Web Search Portals $176K, Banks $135K, Healthcare $110K, State Gov $95K. For Data Scientist (15-2051): Software Publishing $150K, Insurance $130K, Healthcare $105K, State Gov $90K. Apply industry modifier to BLS national percentile baseline before negotiating — a software-engineer offer at a healthcare company should reasonably be lower than the FAANG comparable, and your range should reflect this.
How do I handle 'what's your salary expectation?' from a recruiter?
Two valid approaches. (1) Defer: 'I'd like to learn more about the role first — what's the band budgeted for this position?' This shifts disclosure burden to them. (2) State your aspirational anchor: 'Based on my [years] of [role] experience and BLS data for [state], I'm looking at roles in the $X to $Y range,' where X is your target and Y is your aspirational. Anchoring research consistently shows the first number stated affects final settlement; if you state a credible high anchor, you'll generally land closer to your target.
Should I always counter the first offer?
Almost always, yes — even if the first offer meets your target. Two reasons: (1) recruiters often have headroom budget reserved for negotiation, and not asking leaves it on the table; (2) accepting the first offer can signal lower confidence or weaker market sense, which may affect future increases. Reasonable counters: +5-10% on base for non-tech, +10-20% on total comp at FAANG (often via equity), or push for sign-on if base is firm. Counters should be data-supported (cite BLS, cite competitor offer, cite your range) — never just 'can you do better?'
How do I compare two offers in different cities?
Convert both to real take-home first using a calculator that adjusts for federal/state tax + FICA + BEA RPP. A $200K San Francisco offer is roughly equivalent to a $145K Texas offer in real wage. Most candidates compare gross numbers and overweight the higher-gross offer. Use Real Take-Home Pay Calculator for the conversion before deciding.
Can I negotiate after accepting an offer?
Generally no, with rare exceptions. Once you've accepted (in writing or verbally), the negotiation window has closed and reopening it damages the relationship. Exceptions: discovery of a competing offer with significantly better terms (rare to surface mid-acceptance), discovery of a misrepresentation in the offer (e.g., the actual role is significantly different from what was described), or unforeseeable life circumstances (medical, family). Don't accept until you've fully negotiated.
What's a reasonable counter on top of an initial offer?
Industry varies. Tech (FAANG, mid-tier): +10-20% on total comp is typical, often achieved through equity not base. Non-tech corporate: +5-10% on base, plus push for sign-on or PTO. Public sector / education: often capped by GS scale or pay band; counter typically caps at +3-5%. Startups: equity is more flexible than cash; push for 1.5-2× the equity offered before pushing on base. The counter should always be backed by data — cite BLS percentile + your experience + industry modifier — not just 'can you do better?'