The strongest salary anchor is a number you can defend with public pay data for your occupation, adjusted for where you sit in that occupation's range. Pick that number before the first recruiter call, ask for the company's range before you say it out loud, and negotiate on level and total compensation rather than base salary alone.

This guide shows how to build that number from Bureau of Labor Statistics data, how to compare offers that mix base, bonus and equity, and what to say when there is no competing offer to point at.

What pay percentiles actually tell you

The BLS publishes three numbers per occupation that matter for negotiation: the 10th percentile, the median and the 90th percentile. For software developers, the BLS reports a May 2025 median annual wage of $135,980. The lowest 10 percent earned less than $82,460 and the highest 10 percent earned more than $214,670.

Read those carefully:

  • Median ($135,980): half of software developers in the survey earned more, half earned less. It is not an average, so a handful of very high earners does not pull it up.
  • 10th percentile ($82,460): one in ten earned less than this. This is roughly where entry-level roles in lower-paying markets and industries land.
  • 90th percentile ($214,670): one in ten earned more. This is senior and staff territory, usually in high-paying industries or metros.

That spread covers everyone: new graduates and 20-year veterans, small-town agencies and large software companies, every state. It is not a salary band for a single job. Its value is that it tells you what the realistic floor and ceiling look like, and it is collected by a federal survey rather than self-reported by users of a salary website.

The same BLS page breaks the median down by industry. Software developers working for software publishers had a median of $164,550, while those in manufacturing had a median of $136,330. Industry alone can move the middle of the market by tens of thousands of dollars, which is why you should look at the industry rows for your occupation, not just the headline figure.

Turning percentiles into your anchor

Place yourself in the range using evidence a hiring manager would accept. Three questions do most of the work:

  1. How much scope do you own? Leading projects, owning a system in production, mentoring others and being on call for critical services all push you above the median. Working on well-defined tickets under close supervision puts you below it.
  2. What industry and company type is this? Use the BLS industry medians for your occupation as a reference point.
  3. What does the posted range say? If the employer is covered by a pay transparency law (see below), its posted range is the most specific data you will get.

Here is how that looks for an information security analyst. The BLS figures for May 2025 are: 10th percentile below $75,090, median $129,180, 90th percentile above $199,850. Someone with a few years of hands-on incident response, who owns the detection tooling at their current employer, has a reasonable case for a number above the median. Someone moving into security from help desk work has a reasonable case for something between the 10th percentile and the median, and a weak case for anything above it.

Your anchor should be the number at the top of what you can defend, not the number you would accept. Write both down before any call: the anchor, and your walk-away figure. If you only know one of them, you will drift toward whatever the recruiter says first.

Base, bonus and equity

An offer has up to four money parts, and they are not worth the same.

Component What it is How much to trust it
Base salary Fixed annual pay Fully. This is the number future raises and many bonuses are calculated from.
Annual bonus Usually a target percentage of base Partly. Ask how the target is decided and what the actual payout was in recent years.
Sign-on bonus One-time cash at hiring Fully, once paid. Check whether you must repay it if you leave within a set period.
Equity Stock (RSUs) at public companies, options or shares at private ones Varies widely. Public company stock has a market price. Private company options may be worth a lot or nothing.

Know what the BLS number includes before you compare it with an offer. According to the BLS Occupational Employment and Wage Statistics program, its wage figures include base rates, commissions and production bonuses, but exclude nonproduction bonuses, stock bonuses and employer benefit costs. So the BLS median is closer to a base salary benchmark than a total compensation benchmark. A company paying near the median base with meaningful equity may beat a company paying above the median with none.

For equity, get these facts in writing before you weigh it:

  • Public company RSUs: the number of shares or dollar value of the grant, the vesting schedule, and whether there is a cliff before anything vests.
  • Private company options: the number of options, the strike price, the total number of shares outstanding (so you can work out your percentage), the vesting schedule, and how long you have to exercise after leaving.

If a company will not tell you the total shares outstanding, you cannot value the grant. Treat it as a lottery ticket and negotiate on cash.

Answering "what are your expectations?"

This question usually arrives in the first recruiter call. You have three workable answers, in order of preference.

Ask for their range first. "I'd like to understand the role and level better before I put a number on it. What range has been budgeted for this position?" Many recruiters will answer, and in several states the range should already be in the posting.

Give a range whose bottom is your real target. If your anchor is $150,000, say "Based on what I'm seeing for this level, I'm looking at $150,000 to $165,000 in base." The recruiter will hear the bottom number. Make sure the bottom number is one you would be happy with.

Tie it to the level. "It depends on the level. For a senior role with the scope we discussed, I'd expect to be in the upper part of your range." This works when you do not yet know whether they are hiring for mid-level or senior.

Avoid giving your current salary as the answer. It anchors the conversation on your past employer's pay rather than this job's market. In some states employers are not allowed to ask: California's Labor Code section 432.3 generally bars employers from seeking an applicant's salary history, and Colorado's Equal Pay for Equal Work Act prohibits employers from asking about or relying on pay history. Elsewhere, you can still decline politely: "I'd prefer to focus on the market rate for this role."

Pay transparency laws you can use

A growing number of states require employers to publish pay information in job postings. The details differ, so check the labor department for the state where the job is based. These are the rules as described on each state's official site:

State Who is covered What the posting must include
California Employers with 15 or more employees A pay scale: a good faith estimate of the salary or hourly range the employer reasonably expects to pay. Applicants can also request the pay scale.
Colorado Employers posting jobs (internal and public) Compensation, information about benefits, and how and when to apply.
Washington Employers with 15 or more employees A wage scale or salary range, a general description of benefits, and a general description of other compensation such as bonuses or stock options.
New York State Employers with four or more employees A compensation range (minimum and maximum), and a statement if the job is commission-based.
Illinois Employers with 15 or more employees, since January 1, 2025 The pay scale and a general description of benefits and other compensation.

Sources: Washington L&I, New York State DOL, Illinois DOL, plus the California and Colorado pages linked above. New York City also has its own pay transparency law.

Two practical uses. First, the posted range tells you where the company has already decided it can go, so anchor inside it, toward the top if your evidence supports it. Second, if a covered employer's range is suspiciously wide (say $80,000 to $250,000), ask which part of the range this level is expected to land in. That question is fair and usually gets a narrower answer.

Negotiating without a competing offer

You do not need another offer to negotiate. By the time a company makes an offer, it has spent weeks of interviewer time on you and has usually stopped working with its other candidates. Restarting the search costs more than most reasonable requests. That is your position, and it is a real one.

What works:

  • Ask once, specifically, with a reason. "I'm excited about this. Based on the scope we discussed and BLS data for this occupation in your industry, I was expecting a base closer to $158,000. Can you get there?" A specific number with a reason gets a more serious response than "Is there any flexibility?"
  • Negotiate level before salary. If you were interviewed for senior but offered mid-level, the level is worth more than any salary bump, because it sets your band for future raises.
  • Use the parts they can move. If base is capped by the band, ask about a sign-on bonus, more equity, an earlier compensation review, extra vacation, or a remote arrangement.
  • Let silence work. After you make your ask, stop talking. Do not add "but I'm flexible" in the same breath.

What does not work: inventing a competing offer (recruiters talk, and some will ask to see it), negotiating every item one at a time across five emails, or accepting verbally on the first call and then trying to reopen the terms.

Get the final offer in writing, including base, bonus target, equity details and start date, before you resign from your current job.

Before your next recruiter call

Open the role page for your occupation, note the 10th percentile, median and 90th percentile, and find the industry median closest to the company you are talking to. Write down your anchor and your walk-away number, and the two or three facts about your scope that justify the anchor. That page of notes is most of the preparation you need.