The LCA Disclosure Field Reference: What Each Record Proves
You will read any employer's LCA records field by field, state what each proves, and name the coverage, wage, and timing biases that make the raw numbers lie.
You are looking at a competitor's visa filings and trying to read their roles, pay, and worksites off the raw records. This reference is for strategy, research, and talent-intelligence analysts who need to turn an employer's public Labor Condition Application (LCA) disclosure into a defensible read instead of a scraped median with no warnings. It defines every field in an Office of Foreign Labor Certification (OFLC) LCA disclosure record, states what each one proves, and flags where it systematically lies.
The LCA is a Department of Labor wage attestation an employer must certify before filing an H-1B, H-1B1, or E-3 petition. OFLC publishes it as case-level disclosure data every quarter. The data is genuinely useful - but only if you know what each field covers and, more importantly, what it quietly leaves out.
What an LCA disclosure file actually contains
An LCA disclosure release is three case-level Excel files per quarter, each shipping with its own record-layout PDF. The three components are LCA_Disclosure_Data (the main file), LCA_Appendix_A, and LCA_Worksites. Every record is one certified, denied, or withdrawn application - not one worker, and not one hire.
Start every analysis from the Program Record Layout. It lists each field title and a one-line description, and it is the only authoritative way to resolve a column header to its meaning. The fields below are the ones you will lean on.
| Field | What it proves | How it misleads |
|---|---|---|
| CASE_STATUS | Attestation outcome: Certified, Certified-Withdrawn, Denied, Withdrawn | A certified case is not a filed or approved petition |
| SOC_CODE / SOC_TITLE | The occupation class the role was filed under | Over-weighted to computer occupations (SOC 15-XXXX) |
| Wage from / to | The base cash wage floor offered | Base only; bonuses, equity, benefits excluded |
| Prevailing wage level | Which OES percentile tier the role was pegged to | Reflects the employer's role description, not the worker |
| TOTAL_WORKER_POSITIONS | Positions covered by this one application | One case can cover many positions; counts inflate |
| Worksite city / state | Where the work is attested to happen | "Multiple" and roving entries break geo analysis |
Three date fields - RECEIVED_DATE, DECISION_DATE, and ORIGINAL_CERT_DATE - let you place a filing in time and distinguish a fresh attestation from an amendment. VISA_CLASS separates H-1B from H-1B1 and E-3.
One omission dominates everything downstream: the employer's FEIN (Federal Employer Identification Number), the attorney's FEIN, and the attorney's state bar number are all excluded from the LCA file as personally identifiable information. There is no clean employer key. That single gap drives the methodology choices in the rest of this reference.
How to read the four prevailing wage levels
The prevailing wage level tells you which percentile of the Occupational Employment and Wage Statistics (OES) distribution the employer pegged the role to - and nothing about the worker's seniority. The currently effective 2005 methodology fixes four tiers by percentile.
| Level | Percentile (current) | Employer's role description |
|---|---|---|
| I (Entry) | 17th | Entry level |
| II (Qualified) | 34th | Qualified, experienced routine duties |
| III (Experienced) | 50th | Complex duties |
| IV (Fully Competent) | 67th | Fully competent, independent judgment |
The level is a legal floor the employer chooses by describing the role, not a measured credential of the person filling it. Filing at a lower level is cheaper and perfectly legal, which is why the distribution skews low. In FY2024, 63% of certified LCAs sat at Level I or II. Read that as a floor-setting behaviour, not as proof that the workforce is junior.
Two things make the level a moving target. The percentile tiers are set by rule, and the rule has been contested. A 2021 final rule would have raised them to 35, 53, 72, and 90; it was issued and then withdrawn. A 2025 proposed rule (NPRM) proposes 34, 52, 70, and 88 - roughly doubling the Level I floor.
| Level | Current (2005) | 2021 rule (withdrawn) | 2025 NPRM (proposed) |
|---|---|---|---|
| I (Entry) | 17th | 35th | 34th |
| II (Qualified) | 34th | 53rd | 52nd |
| III (Experienced) | 50th | 72nd | 70th |
| IV (Fully Competent) | 67th | 90th | 88th |
The practical consequence: a Level I wage read against today's rule means something different than the same label will mean if the NPRM takes effect. Always note which methodology was in force for the fiscal year of the file you are reading, and re-check the rule state before comparing filings across years.
Why the wage field understates real pay
The LCA offered-wage field is base cash wage only, and that is a legal design choice, not an accident. Under 20 CFR 655.731, benefits provided as compensation are attested on a separate basis, so they never land in the wage number.
What is excluded from the wage field:
- Cash bonuses
- Stock options and equity
- Paid vacation and holidays
- Health, life, and disability insurance
- Retirement and savings plans
The regulation requires these to be offered to the sponsored worker on the same basis as to US workers, but it keeps them out of the wage attestation. So the number you read is a floor on cash base pay, below real total compensation by whatever the firm adds in bonus and equity.
The gap is not trivial even before equity. The OEWS mean for equivalent occupations and geographies was $130,219, about $19,000 above the prevailing wage levels those roles were filed at. Layer bonuses and stock on top and the understatement widens most at exactly the firms where equity is largest. If you read the LCA wage as total comp and conclude "this competitor underpays," you have mistaken a legal floor for a paycheck.
The LCA wage is a floor on base cash, not a paycheck, and it lies loudest where equity runs deepest.
The eight-step read, from raw file to defensible number
Work the file in a fixed order so your conclusions carry the right caveats by construction. The whole procedure runs a few hours per employer once you have the files open.
Reading one employer's LCA records end to end
- Download the quarterly filePull the three LCA .xlsx files - Disclosure Data, Appendix A, and Worksites - plus the matching record layouts from the OFLC Performance page. Open the current fiscal-year quarter with its layout alongside.
- Filter to the target employerFilter by EMPLOYER_NAME, since there is no FEIN, and capture every legal-entity and subsidiary alias you can find in one view.
- Scope by statusKeep Certified and Certified-Withdrawn separately, exclude Denied and Withdrawn from headline counts, and document the split - certification is an attestation, not an approval.
- Map the rolesGroup by SOC_CODE and job title and build an occupation-mix table that flags the computer-occupation concentration.
- Read the wage fieldsRecord wage-from and wage-to, the prevailing wage, the PW level, and the OES source, treating every figure as base cash only. Produce a base-wage distribution with its level mix.
- Geolocate the workJoin the Worksites file and flag "multiple" or roving worksites and any headquarters-versus-site mismatch so each case maps to where work actually happens.
- Cross-check against the USCIS HubCompare the employer's LCA filing volume to its Hub first-decision approvals and quantify the LCA-to-approval gap for the same fiscal year.
- Reconcile to full headcountCompare the sponsored counts to the company's total workforce from an external profile index to estimate the sponsorship share.
One judgment call lives inside step two. Sources disagree on whether to dedupe by case or sum TOTAL_WORKER_POSITIONS. Both are defensible: dedupe by case when you want to count filing events, sum positions when you want an upper bound on sponsored roles. Pick one, state which, and keep it consistent across competitors you compare.
Turning an LCA file into a defensible read
- FilterIsolate the employer by name and alias, since there is no FEIN
- ScopeKeep certified cases; drop denied and withdrawn
- ReadMap SOC, levels, and base-only wages
- ReconcileCross-check the Hub and external headcount
LCA versus the Hub, Registration, and PERM
The LCA is one of four public H-1B-related datasets, and each answers a different question. Reaching for the wrong one is the most common structural error. The LCA is the DOL wage attestation; the USCIS Employer Data Hub is adjudication outcomes; Registration data is lottery volume; and PERM is the green-card labor certification.
| Source | Unit | Wages? | Employer ID | Outcome shown |
|---|---|---|---|---|
| LCA disclosure | Certified case | Base only | Name (no FEIN) | Attestation, not approval |
| USCIS Hub | Aggregated petitions | None | Last 4 of tax ID | First decision, approve or deny |
| Registration | Lottery entry | None | Employer name | Selected or not |
| PERM (ETA-9089) | Green-card case | Base plus conditions | FEIN included | Certified or denied |
The USCIS Hub reflects USCIS's first decision, with appeals and revocations excluded, aggregated by completion fiscal year, two-digit NAICS, tax ID, state, city, and ZIP. It covers FY2009 through FY2026 Q3, splits initial from continuing employment, and identifies employers by the last four digits of their tax ID. It carries no wages, so you use it to validate volume, never pay.
The gap between LCA filings and Hub decisions is the whole point of the cross-check. Microsoft filed 11,402 LCA approvals in FY2022, but USCIS total approvals and denials came to only 7,283. If you had counted LCAs as hires you would have overstated by more than half.
PERM solves the identity problem the LCA creates. The green-card labor certification on Form ETA-9089 - submitted through the FLAG system since June 1, 2023 - includes EMP_FEIN and EMP_NUM_PAYROLL, the total employees on payroll. When you need clean employer identity, anchor on PERM's FEIN and map the messy LCA names to it.
Registration data, the cap-season lottery volume, is worth watching for market context even though it names no wages. The eligible registration pool dropped from 758,994 in FY2024 to 470,342 in FY2025, and fell again to 343,981 for FY2026. In FY2025, USCIS selected 114,017 unique beneficiaries, about a 25.6% selection rate. A rival's sponsored hiring plan runs through that funnel, so the pool size tells you how hard sponsorship is becoming.
The FY2025 cap-season funnel
- 470,342Eligible registrations
FY2025 pool
- 114,017Unique beneficiaries selected
about 25.6% selection rate
Refolk closes the gap the LCA cannot: it returns the people, not the filings, so you can set LCA worksite concentration against a real headcount in plain English. Where the disclosure file sees only sponsored US roles, asking Refolk for the engineers at a named employer and metro gives you the denominator the attestation data structurally lacks.
Where the numbers lie, and how to catch them
The failure modes below are the most valuable part of this reference, because each one produces a confident-sounding wrong answer. For every one, there is a specific check.
Treating the LCA wage as total comp
False positive: "the competitor underpays." The wage field is base cash only; bonuses, equity, and benefits are attested separately under 655.731. Check: label the figure base-only and never compare it to a total-comp benchmark.
Counting filings as headcount
One LCA can cover multiple positions and many records are refiles or withdrawals, so case counts overstate hiring. Microsoft's 11,402 LCAs versus 7,283 USCIS decisions is the canonical gap. Check: reconcile to the Hub before reporting any count as hires.
Reading Level I as a junior org
The level reflects the employer's role description, not the worker's credentials, and the same title appears at any level. Check: inspect the SOC code and duties, not the level alone, and remember 63% of FY2024 cases filed at Level I or II.
Name matching without FEIN
The LCA has no FEIN, so subsidiaries and aliases either fragment one employer into several or merge distinct ones. Check: enumerate the legal-entity variants and cross-check identity against PERM's FEIN.
Mistaking certified for approved
A certified LCA is not a filed or approved petition. Check: the Hub's initial and continuing approvals tell you what was actually adjudicated.
Ignoring roving and multiple worksites
The HQ or filing address is not where the work happens, and remote or roving entries scramble geo analysis. Check: always join the Worksites file and flag "multiple" entries.
Extrapolating from a stale quarter
The newest file lags about one quarter, so the most recent hiring is simply absent. Check: note the fiscal year and quarter of the file and never trend-fit the latest partial quarter.
Generalizing from IT
The LCA over-represents computer occupations and omits non-degree and citizen roles entirely. Check: compare the sponsored share to full headcount before drawing org-wide conclusions.
That last warning is the biggest blind spot. Computer and Mathematical occupations (SOC 15-XXXX) consistently dominate LCA filings, with Healthcare Practitioners (SOC 29-XXXX) and Architecture and Engineering (SOC 17-XXXX) also high. If a rival's engineering is offshore, the LCA shows you none of it.
| Country | "Software Engineer" profiles | Top hub region | Share of two-country total |
|---|---|---|---|
| United States | 352,540 | San Francisco Bay Area | 37.7% |
| India | 581,842 | Bengaluru, Karnataka | 62.3% |
In Refolk's index of professional profiles, the India Software Engineer population of 581,842 is roughly 1.65x the US figure of 352,540. LCA captures only the US worksites, so the larger base - and any team a competitor runs there - is invisible to the filings entirely.
Before you call the read done
Run this checklist before you circulate a conclusion. Each item defends against one of the failure modes above.
LCA read verification
- Every wage figure is labelled base-only, with bonuses and equity flagged as excluded under 655.731
- Case counts are reconciled to USCIS Hub decisions, not reported as hires
- Certified and Certified-Withdrawn are kept separate from Denied and Withdrawn
- Employer identity is checked against PERM FEIN, with all name aliases enumerated
- Worksites file is joined and "multiple" or roving entries are flagged
- The fiscal year and quarter of the file is stated, with no trend fit on the latest partial quarter
- Sponsored counts are set against full headcount to estimate the sponsorship share
- Wage-level mix is read as a filing-floor choice, not as workforce seniority
When you hand the read to a stakeholder, carry the caveats with the number. A single sentence does it.
LCA figures for [Employer], FY20XX Q#: counts are certified attestations, not hires or approvals (reconcile to USCIS Hub). Wages are base cash only; bonuses, equity, and benefits are attested separately under 20 CFR 655.731. Coverage is US worksites and sponsored specialty occupations only, dominated by SOC 15-XXXX; it excludes citizen, green-card, non-degree, and offshore staff. File lags about one quarter.
Paste under any LCA number you report; swap the employer name and fiscal year.
Keeping the read current
Two things change under you: the data cadence and the rule state. The data refreshes quarterly and cumulatively on a fiscal year running October 1 through September 30, and the newest file lags roughly one quarter, so re-pull the OFLC Performance page each quarter and record which fiscal-year quarter you are reading. The USCIS Hub updates on the same quarterly rhythm.
The rule state changes less often but matters more, because it redefines what a wage level means. The 2005 percentiles (17, 34, 50, 67) are in force today, a 2021 rule that would have raised them was withdrawn, and a 2025 NPRM proposes 34, 52, 70, and 88. Before you compare filings across years, confirm which methodology applied to each year's file, because a Level I under the proposed rule is nearly double the floor it is today.
Finally, remember that the LCA answers only part of the question you are asking. It tells you the sponsored, US, specialty-occupation slice of a competitor's workforce, priced at a legal base floor. For the rest - total compensation, offshore teams, the citizen and green-card majority, and clean employer identity - you reconcile against the USCIS Hub, PERM's FEIN, and a profile index of the actual people. Asking directly for the engineers at a named employer and metro gives you the headcount denominator the attestation data was never built to show.
Try it on the search you came here for
Stop building boolean strings. Just describe the person.
Type one sentence. I plan the search, read GitHub, public LinkedIn and Crunchbase records, and the open web as it is right now, and hand back a ranked list with the reason next to every name.
01Describe them
One plain sentence. Role, city, stack, stage, whatever matters to you.
02I read the web live
GitHub, public LinkedIn and Crunchbase records, the open web. Not a database that went stale last quarter.
03You read the shortlist
Ranked, with the reasoning under every name. Open a profile, ask a follow-up, narrow it down.
- Staff backend engineers in NYC who shipped Rust in production
- Series A fintechs in SF under 50 people, growing headcount this year
- Maintainers of fast-growing Rust web frameworks on GitHub
- No boolean, no filters, no seat to buy. One box.
- Read at search time, so a profile updated yesterday counts today.
- Every step visible as it runs, every name with its reason.
500 free credits on sign-up. No card, no demo call. See real searches.