Median vs Mean Salary: Why "Average" in San Francisco Is a Lie
Last updated · Statistics · Methodology
Most salary headlines quote the wrong number. "Average software engineer salary in San Francisco: $185,000" means the mean — and the mean is dramatically inflated by a small number of senior engineers at FAANG companies earning $500K+. The median (the actual middle of the distribution) is closer to $145,000. The gap between mean and median in tech-heavy markets can exceed 30 percent. This guide explains why this happens, when to use which metric, and how to read salary data without getting fooled.
Mean vs median: the basic difference
Mean (arithmetic average) is the sum of all values divided by the count. If 9 people earn $80,000 and 1 person earns $1,000,000, the mean is $172,000.
Median is the middle value when you sort the list. In the same example, the median is $80,000 — half the people earn less, half earn more.
The example shows the problem: the mean ($172,000) is misleading. Nine out of ten people in the group earn $80,000. The single $1M earner pulls the mean far above what is actually typical. The median ($80,000) accurately describes what a "typical" person earns.
This is why every reputable wage data source (BLS, Census, Glassdoor for mid-distribution) reports median first. Reports that lead with mean are usually trying to create a marketing impression of higher pay than reality.
The right-skew of salary distributions
Wages are not normally distributed (bell-shaped). They are right-skewed, with a long tail of high earners. A few extreme values pull the mean upward without moving the median. This is true for almost every occupation and location, but the gap is largest in:
- High-variance professions: finance, tech, sales, executives, lawyers in big firms
- Markets with concentrated wealth: SF Bay Area, Manhattan, Seattle, Boston
- Aggregated data: "all occupations" combines janitors and hedge fund managers
Examples of mean-vs-median gaps in 2024 BLS data:
- Software developers, San Francisco MSA: mean ~$182,000, median ~$148,000 (gap: 23%)
- Lawyers, NYC MSA: mean ~$210,000, median ~$165,000 (gap: 27%)
- All occupations, US national: mean ~$66,000, median ~$48,000 (gap: 38%)
- Cashiers (low variance): mean ~$28,500, median ~$28,000 (gap: 2%)
The smaller the gap, the more uniform the profession. A 30+ percent gap means the field has a long tail — and you need to know whether you are likely to be in that tail or not.
Why mean is sometimes the right metric
Mean is useful when you care about total dollars rather than typical experience. Three valid uses:
- Government revenue forecasting: total income tax collected depends on the sum of all wages, which is best estimated by mean × count.
- Total cost of a workforce: if you're staffing 50 positions in a city, your total payroll budget is closer to mean × 50 than median × 50.
- Investor analysis: total addressable market for products targeting "people earning $X+" is best estimated using mean and quantiles, not median alone.
For individuals comparing their own pay, planning a career move, or negotiating a salary, mean is almost always the wrong metric. The question "what does a software engineer in this city actually earn" is answered by the median, with quantiles (10th, 25th, 75th, 90th percentile) providing the full distribution.
Reading percentiles: the full distribution
The most informative wage report shows multiple percentiles, not just one summary number. BLS publishes:
- 10th percentile: entry-level or lowest-paid
- 25th percentile: early career
- 50th percentile (median): middle
- 75th percentile: experienced
- 90th percentile: top earners (just below the long tail)
For software developers in San Francisco MSA (BLS OEWS data), recent percentiles look approximately like:
- 10th percentile: $98,000
- 25th percentile: $122,000
- 50th (median): $148,000
- 75th percentile: $182,000
- 90th percentile: $215,000
Notice: the gap from 50th to 90th is much larger than from 10th to 50th. That's the right-skew. To know where you sit, find your own salary in this distribution and identify your percentile. If you are at the 60th percentile, you can credibly target the 75th in your next negotiation.
The negotiation rule
When you are negotiating a salary, three rules:
- Always ask for median + a percentile range, not the average. "What's the salary range for this role" is the right question, not "what's the average." You want to know the 50th, 75th, and 90th percentiles for the role and location.
- Anchor at the 75th percentile for experienced candidates. This is what experienced people in that role actually earn — and asking for it is not aggressive, it's normal.
- Never quote a national average for a local role. National averages disguise huge regional differences. A "national average software engineer salary" is meaningless for negotiating in any specific city.
Use our occupation pages for current BLS percentile data by metro, and our compare tool to see how two locations differ for the same role.
Frequently Asked Questions
What is the difference between mean and median salary?+
Mean is the arithmetic average — sum divided by count. Median is the middle value when salaries are sorted. Median is more accurate for typical pay because it is not distorted by a small number of high earners. Mean is inflated when the distribution has a long tail (most professions and most cities).
Which is higher, mean or median salary?+
Mean is almost always higher than median because wage distributions are right-skewed. The gap is small (under 5%) for low-variance occupations like cashiers, and very large (25-40%) for high-variance occupations like software development, finance, and law in major metros.
Why does BLS report both mean and median?+
Different uses. Mean is needed for total wage calculations (government revenue, total payroll). Median is more accurate for individual or typical pay. BLS publishes both so analysts and individuals can choose the right metric for their question.
What does the 75th percentile salary mean?+
The salary at which 75 percent of people in that role and location earn less, and 25 percent earn more. It represents experienced or senior employees in the field. If you are mid-career or above, the 75th percentile is a reasonable negotiation target.
Should I compare my salary to the mean or median?+
Always median. You want to know where you stand relative to a typical person in your role, not relative to a number inflated by a handful of executives. If you must compare to a single number, use median.
Why is the average software engineer salary in SF so high?+
Because a small number of senior engineers at top tech companies earn $400K-$700K+, pulling the mean upward. The median is closer to $145K-$155K, which represents a typical mid-level engineer. The mean reflects total comp, not typical pay.