wagelevels

Wage year 2026-27

Methodology

What the numbers are, where each one comes from, how the 60 occupations and 40 areas were picked, and the places this site is weaker than it looks.

Where the wage figures come from

Every Level I to IV figure on this site is read from ALC_Export.csv, one of the files inside OFLC_Wages_2026-27.zip, published by the Department of Labor's Office of Foreign Labor Certification. It covers wage year 2026-27, which runs July 1, 2026 to June 30, 2027.

The file carries 449,440 rows, one for every combination of 530 areas of intended employment and 848 2018 SOC occupation codes. Each row holds four wage levels and a mean. Nothing is modelled, smoothed or blended. If a figure appears on this site, it appears in that row, or it's arithmetic on that row that's described below.

ALC_Export.csv, OFLC_Wages_2026-27.zip, wage year July 1, 2026 to June 30, 2027.

Annualization

OFLC publishes hourly. Annual figures on this site are hourly x 2,080, which is 52 weeks at 40 hours and the same convention DOL uses on its own wage results page. There's no rounding before the multiplication and the product is rounded to the dollar.

Worked, so you can check it: Software Developers in New York-Newark-Jersey City, NY-NJ at Level II is $66.21 an hour in the file. That times 2,080 is $137,717 a year.

LevelHourlyAnnual
Level I$52.81$109,845
Level II$66.21$137,717
Level III$79.61$165,589
Level IV$93.01$193,461

Software Developers (15-1252), New York-Newark-Jersey City, NY-NJ. ALC_Export.csv, OFLC_Wages_2026-27.zip, wage year July 1, 2026 to June 30, 2027.

How the 60 occupations were selected

They weren't chosen. They're the top 60 SOC codes by certified H-1B filing volume in the FY2025 Q1 to Q4 Labor Condition Application disclosure data. That's 103,285 filings analysed: every record in the disclosure workbook with a case status of Certified and a visa class of H-1B, counted by SOC code and ranked.

The rule is reproducible. Run the same filter on the same workbook and you get the same 60. Withdrawn, denied and certified-withdrawn cases are excluded, and so are H-1B1 and E-3 filings, because mixing visa classes would change the ranking without making it more accurate.

How the 40 areas were selected, and the limit on it

Same principle, weaker input. Areas are ranked by certified filing count, but the only field in the disclosure data that joins to the OFLC geography file is the worksite county, and county is populated on a minority of records.

Read this before citing the area rankingOf the 103,285 certified filings, only 10,792 carry a county that resolves to an OFLC area. That's 10.4% of the filings. The area ranking is built from that subsample, not from the full set. It matches the metro order every practitioner would expect, which is reassuring and isn't proof. Treat the ordering as indicative and the wage figures on each area page as exact, because those come from the wage file rather than the ranking.

County names are normalised before the join: the trailing words County, Parish, Borough and Census Area are stripped and the match is on name plus state. Records whose county doesn't resolve are dropped rather than guessed at, which is part of why the matched share is what it is.

Filing counts from the DOL Labor Condition Application disclosure data, FY2025 Q1 to Q4. Area definitions from Geography.csv, OFLC_Wages_2026-27.zip, wage year 2026-27.

Why occupation-by-area pages only exist where GeoLvl is 1

Every row in ALC_Export.csv carries a GeoLvl field. GeoLvl 1 means the wage was surveyed for that area. GeoLvl 2, 3 and 4 mean it was imputed from a broader geography, so the number you're reading is a state or national figure wearing a metro's name.

That's not rare. 192,397 of the 449,440 rows in the file are GeoLvl 1. The other 257,043 rows, 57.2% of the file, are imputed from a broader geography.

Cells in ALC_Export.csvRowsShare
GeoLvl 1, surveyed for the area192,39742.8%
GeoLvl 2 to 4, imputed from a broader geography257,04357.2%

GeoLvl counted across all 449,440 rows. ALC_Export.csv, OFLC_Wages_2026-27.zip, wage year July 1, 2026 to June 30, 2027.

So an occupation-by-area page is built only where the cell is GeoLvl 1. There are 220 of them. A page for an imputed cell would restate the broader figure under a local heading, and a reader would reasonably take it for a local number. The calculator still shows imputed cells, because withholding the figure would be worse, but it labels them as imputed at the point of the number rather than in a footnote.

The wage level worksheet, and why it says unverified

The level is the part that isn't in the file. The file gives four wage figures. Which one binds depends on the job as the employer describes it, and that determination runs through DOL ETA Prevailing Wage Determination Policy Guidance, Nonagricultural Immigration Programs, revised November 2009.

This site models it in five steps: a Level I starting point, then one step up each for experience beyond what the occupation's O*NET Job Zone treats as ordinary, education beyond the usual entry level for the occupation, special skills or other requirements beyond the norm, and supervisory duties that aren't already inherent to the occupation. The steps are added and the total is capped at four.

What would have to happen for that flag to change: the guidance document gets read in full, each of the five steps gets reconciled against the text it claims to implement, a fixture test gets written per step using the worked examples DOL publishes in its own guidance, and the reconciliation gets recorded on this page with the revision date of the document it was checked against. Only then does true flip to true. Until all four are done it stays false.

The honest position while it's false is still worth something. The inputs and the arithmetic are both visible, so a professional can check the reasoning instead of trusting an unexplained answer. A number with no working shown isn't safer, it's just harder to catch.

What each source file contributes

FileContributes
ALC_Export.csvLevels I to IV, the mean, and GeoLvl, per area and SOC
Geography.csvArea codes, area names, and the counties each area covers
oes_soc_occs.csvSOC titles and the occupation descriptions
Appendix A workbookJob Zone and usual entry education per SOC, plus whether the SOC is on the professional-occupation list
LCA disclosure workbookCertified filing counts, the level mix per occupation, and the median offered wage

Full publisher, cadence and license detail for each file is on sources. ALC_Export.csv, OFLC_Wages_2026-27.zip, wage year July 1, 2026 to June 30, 2027.

Known limits

  1. The worksheet is unverified. Section 6 above says what that means and what would change it.
  2. The area ranking rests on 10.4% of certified filings, because county is the only joinable geography field and it's mostly blank.
  3. County-name joins are known to fail on Louisiana parishes, Alaska boroughs and census areas, Virginia independent cities, and Puerto Rico municipios. Failed joins are dropped, so those places are under-counted in the ranking rather than wrongly placed.
  4. Filing volume is a proxy for what a reader wants to look up. It isn't a measure of anything else, and a high-volume occupation isn't a better-paying or easier-approving one.
  5. Median offered wage per occupation comes from what employers wrote on certified filings. It describes what was offered, not what the law requires, and the two aren't the same number.

What this page is not

None of this is a wage determination. Only the Department of Labor issues those, through the National Prevailing Wage Center. Before relying on a figure in a filing, check it in the FLAG system against your own worksite and SOC. The disclaimer states the rest of it.