reelgorithm.py

The biggest salary is not the best-paid job

We took the federal wage file for 135 US metros and measured what a data scientist earns against the all-jobs median of the same metro. San Jose pays more than anywhere in America and finishes 50th. Charlotte pays 2.68× its own median wage and finishes first — in both years, taken separately.

Every “best city for data scientists” list is a sorted column of salaries, and a sorted column of salaries mostly tells you where housing is expensive. San Jose leads it every year. That is not a finding about the job; it is a finding about the Bay Area.

So we asked a different question, with a denominator in it: in which metro is a data scientist worth the most relative to everyone else who lives there?

The trick is that you do not need a cost-of-living index

The obvious way to fix a salary comparison is to deflate every wage by a regional price index. It is also the step where these analyses usually go wrong — the price indices are published on a different schedule to the wages, on different geographies, and bridging the two introduces more error than it removes.

You can skip it entirely. Divide a metro’s data-science median by that same metro’s all-jobs median and both numbers are already denominated in the same local prices. The price level cancels. No index, no vintage mismatch, no bridge.

What comes out is not “how much can I earn”. It is how far above your neighbours does this job put you, which is closer to what people actually mean when they ask where a job is worth the most.

Which disqualifies the leader

San Jose’s data-science median is $173,160 — first in the country. Its all-jobs median is $82,470, also close to the highest in the country. The ratio is 2.10×, which is above average and nothing like first.

It lands 50th of 135. A 49-place fall, and nothing about the underlying wage changed — only the question did.

The answer

Charlotte–Concord–Gastonia, NC–SC. A data-science median of $131,110 against a local all-jobs median of $48,880: 2.68×.

The mechanism is not mysterious once you see the two numbers next to each other. Charlotte is a banking centre sitting in a normal Southern metro. The numerator is a finance-sector data salary; the denominator is not a finance-sector cost of living.

Charlotte is first on the two-year mean (2.73×) and first in each year taken alone — 2.79× in 2023, 2.68× in 2024 — on a cell of 3,870 data scientists with a 1.5% relative standard error. It is not a small-sample flicker.

The size of it

The median metro pays a data scientist 2.02× its own median wage — almost exactly double. Only three of the 135 clear 2.5×. So Charlotte is not winning a crowded race by a nose; the distribution is tight and it is outside it.

Year-over-year rank stability across the 135 is Spearman ρ = 0.750, which is high enough that the ordering is a real feature of the labour market rather than sampling noise, and low enough that you should not read much into a ten-place difference in the middle.

The part that argues against us

Three things worth knowing before you quote any of this.

It is a ratio of medians, not of the same people’s pay. It says what the job is worth against the local wage base. It does not say what your raise would be for moving, and anyone who tells you it does is over-reading it.

The wage file is May 2024, published in 2026. Where a regional price index appears anywhere in the working it is a year behind the wages, and it is labelled as such — which is part of why the headline measure avoids needing one.

17 metros are excluded because they only clear the reporting threshold in one of the two years. That rule was fixed before we looked at the answers, which matters here: Idaho Falls would lead the table on its single year of data. It is in the file, listed separately, so you can disagree with the rule and re-run it.

Get the data

All 135 ranked metros with every input — employment, median, mean, p90, relative standard error, location quotient, both years’ premium — plus the 17 excluded metros and the full methodology. Free, no email required.

Open the data kit

Source: US Bureau of Labor Statistics, Occupational Employment and Wage Statistics, May 2024 metropolitan file (SOC 15-2051, Data Scientists) and the same file’s all-occupations median. Analysis and figures: reelgorithm.py.