W-2 Box 12 Codes: What Every Code Means
February 25, 2026
What Is Box 12 on a W-2?
Box 12 on your W-2 form is a reporting section for various types of compensation and deductions that do not fit into the other numbered boxes. It uses letter codes (A through FF) to identify specific items. A single W-2 can have up to four Box 12 entries (labeled 12a, 12b, 12c, 12d).
Most people see Code D (401k) and Code DD (health insurance) on their W-2. Understanding what these codes mean helps you correctly enter them on your tax return and understand your benefits.
Most Common W-2 Box 12 Codes
Code D — 401(k) Contributions
The most common Box 12 code. Shows your elective deferrals to a traditional 401(k) plan. This amount is excluded from your Box 1 federal taxable wages but is still subject to Social Security and Medicare taxes. Use it to verify you did not exceed the $23,000 annual limit ($30,500 if 50+) in 2026.
Code DD — Cost of Employer-Sponsored Health Coverage
The total cost of employer-sponsored health insurance — both your contribution AND your employer's contribution. This is for informational purposes only; it does not affect your taxable income. Required reporting under the Affordable Care Act.
Code E — 403(b) Contributions
Elective deferrals to a 403(b) retirement plan (for employees of schools, nonprofits, and government). Same tax treatment as Code D.
Code G — 457(b) Contributions
Elective deferrals to a 457(b) deferred compensation plan (for state and local government employees). Not subject to the 10% early withdrawal penalty that applies to 401(k)s.
Code W — HSA Employer Contributions
Employer contributions to your Health Savings Account. Not included in your wages and not taxable to you. You report this on Form 8889.
Code AA — Roth 401(k) Contributions
Designated Roth contributions to a 401(k). Unlike Code D, these are post-tax — they are included in Box 1 taxable wages. Combined Code D + Code AA cannot exceed the annual 401(k) limit.
Code BB — Roth 403(b) Contributions
Designated Roth contributions to a 403(b). Same post-tax treatment as Code AA.
Code C — Taxable Cost of Group-Term Life Insurance Over $50,000
The imputed income from employer-provided life insurance exceeding $50,000. This is taxable and is included in your Box 1 wages even though you never received cash — it is added back here for reference.
Code L — Substantiated Employee Business Expense Reimbursements
Non-taxable reimbursements made under an accountable plan (employee provides receipts). The amount is excluded from Box 1 wages.
Code P — Excludable Moving Expense Reimbursements
Moving expense reimbursements for active-duty military personnel (the only remaining excludable moving expense after the 2017 Tax Cuts and Jobs Act).
Code S — SIMPLE IRA Contributions
Elective deferrals to a SIMPLE IRA retirement plan (for small businesses). The 2026 limit is $16,500 ($20,000 if 50+).
Code T — Adoption Assistance Benefits
Benefits under an employer's adoption assistance program. Excludable up to $17,280 per child in 2026.
Code V — Income from Exercise of Non-Statutory Stock Options
Spread from exercising non-statutory stock options. Included in Box 1 wages; the code helps you track the stock basis.
Codes FF, GG, HH
Newer codes added for QSEHRA (Qualified Small Employer HRA), income from nonqualified equity grants, and contributions to ABLE accounts. Less common but important for those they apply to.
Does Box 12 Affect Your Tax Return?
Depends on the code:
- Code D, E, G, S — Already excluded from Box 1. No action needed on your 1040 for the contribution itself, but verify limits were not exceeded.
- Code DD — Informational only. No action needed.
- Code W — Report on Form 8889 (HSA).
- Code AA, BB — Post-tax Roth contributions. Included in Box 1. No deduction.
- Code C — Already included in Box 1. No additional action needed.
Automatically Extract W-2 Box 12 Data
Processing W-2s at scale for tax preparation, income verification, or benefits analysis? W-2 Extractor reads all Box 12 codes automatically — extracting the letter code, dollar amount, and description for each entry. Handles all standard and multi-entry Box 12 formats. Try free, no account required.