What does your role pay, state by state?

What a typical worker in your role earns, broken down state by state. Pick your industry, then pick your role (or stay on the industry-wide view) and the map below shades each state by what the middle-paid worker in that role takes home each year.

Source: BLS Occupational Employment and Wage Statistics (OES). About a hundred occupations covered, grouped into six industries. Methodology details (sample design, top-coding, exclusions, cost-of-living) below.

Industry
Role

National headline

Median across 18 software & it roles, BLS OES 2025. Pick a specific role above to drill in.

$153,799
National median
$92,013
10th percentile

Median wage by state

Each state shaded by the median across software & it roles, deeper blue = higher pay. Hover for the value.

Drag to pan, double-click to reset.
State Median 10th %ile
California$195,768$116,635
Washington$187,878$113,622
New York$182,304$108,875
Massachusetts$175,690$114,961
District of Columbia$172,685$117,995
New Jersey$166,135$105,775
Maryland$161,093$101,483
Virginia$159,901$101,631
Colorado$157,433$107,427
Connecticut$152,408$97,773
Delaware$150,968$98,311
New Hampshire$149,017$95,123
North Carolina$148,853$91,087
Texas$148,584$91,951
Oregon$148,324$96,817
Illinois$146,889$90,151
Georgia$143,694$89,932
New Mexico$143,342$92,821
Utah$142,618$87,171
Minnesota$142,130$93,164
Arizona$141,711$89,142
Florida$140,340$85,884
Rhode Island$139,978$92,232
Pennsylvania$137,823$85,917
Vermont$136,614$82,017
Alabama$133,410$80,539
Ohio$132,047$85,214
Nevada$132,045$80,976
South Carolina$131,319$80,301
Idaho$129,816$80,139
Missouri$128,690$79,310
Michigan$128,625$83,929
Maine$126,300$81,970
Hawaii$126,195$82,810
Wisconsin$125,430$83,350
Kansas$125,273$79,542
Tennessee$123,556$79,790
West Virginia$120,180$66,953
Iowa$119,178$78,777
Nebraska$118,445$77,958
Indiana$118,081$74,025
Alaska$117,609$78,415
Wyoming$116,822$77,961
Kentucky$116,270$72,531
Montana$116,213$75,597
Oklahoma$114,512$73,348
Arkansas$113,316$69,752
South Dakota$112,144$73,471
North Dakota$111,416$74,090
Louisiana$107,666$67,371
Mississippi$102,885$61,911

Methodology

Wages come from the BLS Occupational Employment and Wage Statistics (OES, formally OEWS as of 2021) survey: a semi-annual establishment survey of ~1.2M establishments pooled over a three-year cycle, covering ~800 occupations across every US state and metropolitan area. We pull the annual cross-industry series for the occupations listed in the picker above (industry code 000000) and persist the median and 10th percentile annual wages per (occupation, area, year). The industry buckets and per-industry SOC rosters are curated in packages/shared/src/wages-industries.ts.

Survey scope and exclusions

OES surveys nonfarm wage-and-salary employees on establishment payrolls. It excludes the self-employed (~10% of US workers per BLS self-employment estimates), independent contractors (~7-8% per the BLS Contingent Worker Supplement), gig-economy workers (no clean BLS count), undocumented workers (not on UI payrolls so not in the OES frame), agricultural workers, and military. A Software Developer who leaves a payroll for freelance work disappears from this page even though their economic activity continues.

Top-coding and the upper tail

The 90th-percentile annual wage is top-coded at $239,200/year ($115.00/hr) for the 2024 release. Cells above the cap report exactly the cap value, so the true upper tail of high-paying occupations is understated. Occupations routinely at the cap include Software Developers (15-1252), Computer & Information Research Scientists (15-1221), Physicians (29-1215+), Surgeons (29-1241), and Chief Executives (11-1011). This page surfaces the median and 10th percentile only; when we add the 90th-percentile column back, the top-coding caveat will sit next to it.

Full-time-equivalent imputation

For occupations paid hourly, OES reports annual wages as hourly × 2080 hours (40 hrs/wk × 52 weeks). This is a full-time-equivalent imputation that overstates the annual income of typically part-time occupations (food service, retail, home health) and reads correctly for typically-full- time roles. Per-occupation hours data lives in BLS Current Population Survey supplements, not in OES.

Cell suppression

BLS suppresses cells with relative standard error above 50% or fewer than three reporting establishments, for confidentiality. Our DB stores null; the page renders a dash rather than a zero. Suppression rates are higher at smaller geographies and for occupations with low employment in that geography. The a_pct_rse column in the BLS bulk CSVs carries cell-level confidence intervals; we don't yet surface these.

Aggregation: weighted mean of medians

The "All [industry] (median)" aggregate computes, per area and per year, a population-weighted mean across the medians of every occupation in that industry, using OES employment counts (data type 01) as the per-SOC weight. A small high-paying SOC therefore counts proportionally to its share of the industry's headcount instead of equally with a giant low-paying one. The true population-weighted median requires iterating each SOC's underlying wage distribution, which OES does not expose; weighted-mean-of-medians is the standard practical approximation. Any area/year pair where the employment counts have not yet been ingested falls back to a plain median-of-medians so the page never blanks.

Cost-of-living

The "Nominal / Cost-of-living adjusted" toggle above the choropleth divides each state's median by its BEA Regional Price Parity (RPP), an annual index where the US average = 100. A $130k San Francisco median lands around $108k in cost-of-living-adjusted dollars (CA RPP ~120); an $80k Cleveland median lands around $89k (OH RPP ~90). The toggle only affects the choropleth and per-state table; the trend chart and per-role lookups stay nominal because BEA periodically rebases the RPP index (which would compound two moving reference points across years). RPP source: data.bls.gov-style BEA SARPP bulk release (annual, state level, since 2008).

Revisions

OES is annual; values typically publish around May of the following year and may be revised in the publication window. The ingest re-pulls weekly and overwrites in place via composite upsert, so revisions land without operator action. Historical OES is only available via BLS bulk CSV downloads (oesm<YY>all.zip); the public timeseries API returns the current release year only.

Series IDs

  • OEUN0000000000000<SOC>14 National annual median wage (data type 14)
  • OEUS<FIPS>00000000000<SOC>14 State annual median wage
  • …12 annual 10th percentile
  • …01 annual employment level (used as the per-SOC weight in industry aggregates)