Methodology

Where the numbers come from and how they are calculated.

Data source

The U.S. Department of Labor, Office of Foreign Labor Certification (OFLC), publishes Labor Condition Application (LCA) disclosure files each quarter. Wage Record uses the files for FY2020–FY2026. FY2026 covers Q1–Q3 only. Fiscal year and quarter come from each filing's decision date; filings that appear in more than one file are counted once, by case number.

Which filings are included

Only filings with visa class H-1B and case status Certified are used. Withdrawn, denied and "certified–withdrawn" filings, and H-1B1 and E-3 filings, are left out. That leaves 3,506,152 filings.

Annual salary

Each filing states a wage and a unit of pay. Wage Record uses the lower bound of the stated wage (when a range is given) and converts it to a yearly figure:

Unit of payMultiplied by
Year1
Month12
Bi-weekly26
Week52
Hour2,080

Unit corrections. Some filings state a yearly amount with the wrong unit, for example $120,000 "per hour". When the converted figure is above $1 million, the unit is not "Year" and the stated amount is between $15,000 and $2 million, the stated amount is treated as yearly. Salaries that still fall outside $15,000–$2 million are left out of the figures.

Job groups (SOC codes)

Jobs are grouped by the Standard Occupational Classification (SOC) code on the filing, not by the free-text job title. Filings up to about fiscal year 2022 mostly use the 2010 SOC codes; later filings use the 2018 codes. To compare years, older codes are converted to 2018 codes: when the same employer filed the same job title under a 2018 code, that code is used; otherwise the 2018 code most such filings moved to is used. Page names such as "Software Engineer" are the most common job title in that code, and "Also listed as" lists other names for the same job. Catch-all "All Other" codes where no single title reaches 30% of filings are not indexed.

Job title pages

Some common job titles span several occupation codes, for example DevOps Engineer or Full Stack Developer. These pages group filings by job title instead of code: a filing is included when its title matches the title group (for example "senior devops engineer" or "azure devops engineer"), and manager and director titles are left out of developer and engineer groups. Each filing belongs to at most one title group. Where an occupation page already uses the same name, only the occupation page is shown.

Other sources

Prevailing wage

Each filing also states the prevailing wage: the Department of Labor benchmark for the occupation and work location at the selected wage level (I–IV), which is the minimum the employer must pay. Wage Record converts it to a yearly figure with the same unit conversion and unit corrections as the offered salary.

On job-and-city pages, "Minimum H-1B salary by level" shows the prevailing wage stated most often for each level, next to the median offered salary at that level, for levels with at least 10 filings in the latest two fiscal years. Within one metro area the prevailing wage can differ by county and by wage source, so the most common amount is a guide, not the rule for every worksite.

On employer pages, "Pay vs. prevailing wage" compares each filing's offered salary with its own prevailing wage. The median difference is the median of (offered salary ÷ prevailing wage − 1) across the employer's filings. A filing counts as "at exactly the prevailing wage" when the offered salary is within 0.1% of it. Filing at the prevailing wage is common and does not by itself indicate low pay: at higher levels and in high-cost areas the prevailing wage is itself high.

Cities

Work locations are grouped into metro areas using the U.S. Census Bureau's core-based statistical area (CBSA) delineations. About 5% of filings cannot be placed in a metro area; they still count in job and employer totals.

Latest two fiscal years

Medians, percentiles, level and city breakdowns on every page use the latest two fiscal years, currently FY2025–FY2026, so that figures reflect current pay. The "Salary by year" charts use every year since FY2020 and appear only where at least three years have 10 or more filings.

At least 10 filings

A page, a median or a breakdown row is shown only when it rests on at least 10 filings. Smaller groups are counted but not given a salary figure.

What these numbers are not

Base salary, not a visa approval. The figures are the base salaries employers stated on LCA filings. They do not include bonus, stock or benefits. A certified LCA is a step before the H-1B petition: it does not mean a visa was approved, that the person was hired, or that this exact salary was paid.