Skip to content
Voiced Offer negotiation · federal wage data
Check my offer

Offer negotiation

Salary After Cost of Living: 48 US Software Markets, Ranked

The federal index says San Jose is 10% expensive. Its housing is 112% above average. What that gap does to software pay across 48 US markets, with the data.

By · Founder of Voiced. Co-founder of Mom.life and BabyBlog.

Published · 8 min read

Not legal or financial advice. Voiced prepares negotiation materials from published wage statistics. The content below describes negotiation patterns and language, not advice on your specific contract. For questions about the terms you're being offered — equity, non-competes, immigration status — talk to a qualified professional.
Two printed job offer letters on a sunlit desk with a calculator and a notepad showing a US map outline between them

San Jose has the most expensive housing in the United States. It runs at 211.9 on an index where the national average is 100, so more than double.

The same federal index says San Jose overall is 10.4% expensive.

Both numbers are published by the same agency for the same year, and the distance between them is why every cost-of-living calculator feels wrong to anyone actually paying Bay Area rent. Housing is one component of the overall index, averaged together with groceries, utilities, healthcare and services, and those barely move by geography. Average them all and the component that differs gets diluted until it nearly disappears.

That gap is not a San Jose curiosity. Across 387 US metro areas the overall price level runs from 83.6 to 115.6, a spread of about 1.4 to 1. Housing runs from 42.3 to 211.9. Five to one.

So I converted every salary in the federal wage survey into national-average dollars to see what a paycheck is actually worth once local prices come out of it, and the results cut in directions that surprised me.

What was measured

Two federal datasets, joined on the metro area.

The first is the Bureau of Labor Statistics wage survey, which publishes the 25th, 50th and 75th percentile of pay for each occupation in each metro area. The second is the Bureau of Economic Analysis Regional Price Parities, which measure, in the agency’s words, “the differences in price levels across states and metropolitan areas for a given year,” expressed as a percentage of the national level. San Jose sits at 110.4, meaning prices there run 10.4% above the national average. Austin sits at 98.1, 1.9% below it.

Dividing the first by the second converts every salary into national-average dollars — what the number would buy if you spent it at average US prices. That is the column this article ranks on. The full table covers 47,380 occupation-by-metro cells across 387 metro areas and 368 occupations, and it is free to download with the column reference under CC BY 4.0.

For the ranking below I used software developers, the largest well-paid occupation with markets in every region, and kept only the 48 metro areas employing at least 5,000 of them. Below that threshold the sample gets thin enough that a single large employer moves the median.

The expensive cities mostly stay ahead

Given all that, the first finding argues with the thing everyone says. The standard line is that a coastal salary is an illusion, that it evaporates the moment rent is due. Mostly, it does not.

San Jose pays a median of $213,110 against Austin’s $134,120, a gap of $78,990. In national-average dollars those become $192,994 and $136,765, and the gap becomes $56,229. Seventy-one percent of it survives. San Jose remains the highest-paying market in the country for this job by a distance, and no amount of price adjustment brings it back to the pack.

Austin does gain: its prices are below the national average, so the same paycheck stretches further and it climbs from ninth to eighth among the twelve largest markets. But the reordering is modest, not a reversal. Adjusting for prices dents the coastal premium. It does not delete it.

The full ranking

All 48 metro areas that employ at least 5,000 software developers, ordered by what the median buys at national-average prices. The housing column is the same index restricted to housing, and it is the one worth reading twice.

#MarketMedian payPrice levelHousingIn national-average dollars
1San Jose, CA$213,110110.4211.9$192,994
2San Francisco, CA$186,640115.6194.7$161,435
3Boulder, CO$164,560105.2157.0$156,423
4Boston, MA$166,090108.3148.4$153,409
5Seattle, WA$167,280111.1151.3$150,522
6New York, NY-NJ$166,830112.6148.6$148,210
7Portland, OR-WA$156,000105.4125.1$147,978
8San Diego, CA$163,270111.9179.3$145,924
9Washington, DC$154,930108.9151.1$142,289
10Los Angeles, CA$160,920113.6170.4$141,697
11Charlotte, NC$135,92097.397.6$139,623
12Durham, NC$135,62097.698.9$138,995
13Huntsville, AL$128,08093.177.9$137,614
14Austin, TX$134,12098.1120.4$136,765
15St. Louis, MO$129,03095.179.0$135,695
16San Antonio, TX$128,43094.794.6$135,595
17Raleigh, NC$132,77098.2103.5$135,263
18Kansas City, MO-KS$124,99092.586.6$135,062
19Richmond, VA$132,12097.999.1$135,012
20Madison, WI$130,63097.399.7$134,273
21Provo, UT$131,21098.2104.1$133,572
22Baltimore, MD$138,900104.5118.2$132,935
23Atlanta, GA$132,960100.1111.0$132,883
24Virginia Beach, VA$129,09097.999.8$131,804
25Palm Bay, FL$131,760100.0111.7$131,753
26Pittsburgh, PA$124,50094.772.0$131,508
27Nashville, TN$126,61096.3104.6$131,423
28Houston, TX$129,44098.6104.5$131,239
29Jacksonville, FL$130,33099.5109.8$131,006
30Sacramento, CA$139,640106.7130.2$130,908
31Detroit, MI$130,760100.394.7$130,371
32Denver, CO$137,610105.8146.9$130,088
33Philadelphia, PA$133,040102.6113.1$129,727
34Chicago, IL$134,380103.6112.0$129,717
35Tampa, FL$130,450100.9125.8$129,299
36Dallas-Fort Worth, TX$133,290103.1117.9$129,295
37Hartford, CT$132,520102.7110.2$128,978
38Salt Lake City, UT$129,600100.9123.3$128,485
39Providence, RI$130,690101.8103.9$128,413
40Columbus, OH$122,34095.587.9$128,146
41Orlando, FL$129,620101.4123.4$127,808
42Milwaukee, WI$123,73096.997.1$127,640
43Phoenix, AZ$131,750103.3121.2$127,521
44Cincinnati, OH$121,42095.487.6$127,315
45Minneapolis, MN$130,920104.8111.8$124,897
46Cleveland, OH$111,31093.979.4$118,512
47Miami, FL$132,650114.2155.6$116,202
48Indianapolis, IN$106,87095.788.9$111,677

The sharpest reversal in the table is Miami against Huntsville, Alabama. Miami pays software developers $4,570 more; in national-average dollars the Huntsville developer ends up $21,412 ahead. Denver pays $12,620 more than Kansas City and ends up $4,974 behind it. Miami pays more than Pittsburgh, Kansas City, St. Louis and Cleveland, and finishes 47th of 48. Huntsville, which pays less than every market in the top twenty by list price, finishes 13th. Seattle slips from third by list price to fifth, and Los Angeles from eighth to tenth.

The pattern is not “cheap places win.” Charlotte, Durham, Huntsville and Kansas City rise because their price levels are genuinely low while their software salaries are not far off the national middle. Miami falls because it charges coastal prices on a salary that is not coastal.

Smaller markets sit outside this table because the wage sample gets thin below 5,000 developers, but they are in the dataset. Omaha would land around $136,240 in national-average dollars, ahead of Denver, Chicago, Dallas and Miami. Las Vegas would land near $129,661.

Which of the two numbers applies to you

The index that says “San Jose is 10% expensive” and the lived experience that says “San Jose housing is double” are both correct. They are describing different things, and the housing column in the table above is there so you can read them separately.

Which one applies to you depends on a fact the data cannot see: whether you are about to start paying local market rent, or already own, or are moving in with family. For someone facing a new lease in a hot market, the all-items adjustment understates the hit. For someone whose housing costs are fixed, it overstates it. That is why the dataset ships housing as its own column instead of burying it inside a single cost-of-living score.

What this does not change

One thing worth stating precisely, because it gets argued about a lot.

Adjusting for local prices does not change how much pay varies inside a job. The gap between the 25th and 75th percentile in one occupation in one metro divides by the same price index at both ends, so the ratio comes out identical to the last decimal. The spread of an occupation is what tells you whether there is anything to negotiate at all — which jobs have room to negotiate is a question about the shape of the distribution, and cost of living leaves that shape untouched.

Local prices change what a number is worth to you. They do not change how much the market around you varies.

Four limits, stated plainly

The two sources are a year apart. The wage data is May 2025; the newest price parities are 2024. Price levels move slowly relative to the gaps measured here, so the direction of every finding holds, but the exact dollar figures carry that seam.

Price parities are spatial, not temporal. They compare places within one year. They say nothing about inflation, and a metro at 110 is not “10% more expensive than last year.”

The index is an average basket, not your budget. It assumes roughly average consumption. If your spending is unusually housing-heavy or unusually housing-light, your personal adjustment differs from the published one, sometimes by a lot.

Base pay only, and no taxes. The wage survey excludes equity, signing bonuses and annual bonuses, which are largest in exactly the markets that top this table — so the top of the ranking is understated relative to total compensation. State and local taxes are a separate layer the price index does not touch, and they run in the same direction as the ranking in Texas and Florida and against it in California and New York.

Using this in an actual conversation

The practical use is narrower than “move to Huntsville.”

If you are comparing two offers in two cities, convert both to the same dollars before you decide, and then look separately at housing, because that is the component that will differ most and the one an averaged index smooths over.

If you are negotiating a single offer, the price level of your city is not leverage. Nobody funds a raise because their employee’s metro is expensive; the range was set by the market for the role. What the ranking is good for is knowing whether the number in front of you is genuinely strong or only nominally strong, which changes how hard you are willing to push and what you are willing to trade for. When you get to the actual ask, how much to counter is a question about the role’s range, not the city’s prices.

And if you are considering a move for money, the gap you care about is the price-adjusted one, minus the housing difference you will personally face, minus the tax difference. This article closes the first of those three.

The full dataset, all 368 occupations across 387 metro areas with nominal pay, price parities, housing parities and price-adjusted figures, is free to download and reuse, alongside the pay-band table it was built next to.

Related negotiation moments

The same pressure shows up at other points in the offer conversation:

Questions people ask before countering

Does a high salary in an expensive city actually leave you better off?

Usually yes, and by more than people expect. San Jose pays software developers a median of $213,110 against Austin's $134,120. San Jose prices are 10.4% above the national average and Austin's are 1.9% below, so in national-average dollars the two become $192,994 and $136,765. The gap shrinks from $78,990 to $56,229, which means 71% of it survives the price adjustment.

Which city leaves software developers with the most after local prices?

San Jose, by a wide margin, at $192,994 in national-average dollars. San Francisco is second at $161,435 and Boulder third at $156,423. The order changes further down: Charlotte, Durham and Huntsville all finish ahead of Denver, Chicago and Dallas once prices are taken into account.

Why does Miami rank so badly?

Because it charges big-city prices on a mid-tier salary. Miami's median for software developers is $132,650, which is more than Pittsburgh, Kansas City or St. Louis pay. But Miami's overall price level is 14.2% above the national average and its housing prices are 55.6% above it, so the median lands at $116,202 in national-average dollars — 47th of the 48 markets measured.

Is cost of living really just one number?

No, and that is where the averages mislead. Across the 387 metro areas in this data the overall price level runs from 83.6 to 115.6, a spread of about 1.4x. Housing runs from 42.3 to 211.9, a spread of 5x. An all-items index dilutes housing with groceries, utilities and services, so it understates the difference that renters and buyers actually feel.

Does adjusting for cost of living change how much room there is to negotiate?

Not at all, and that can be shown rather than argued. The gap between the 25th and 75th percentile inside one occupation in one metro divides by the same price index at both ends, so the ratio is arithmetically identical before and after adjustment. Local prices change what an offer is worth to you; they do not change how much the market varies around it.

Does this include equity, bonuses or taxes?

None of the three. The federal wage survey measures straight-time gross pay, so equity and annual bonuses are outside it entirely, which matters most in the highest-paying markets. State and local taxes are a separate layer that the price index does not touch. Treat these figures as base pay in comparable dollars, not as take-home.

Sources and further reading