w2 box 12 codesw2 box 12 explainedw-2 form box 12

W-2 Box 12 Codes Explained: What Every Code Means for Your Taxes

February 25, 2026

What Is W-2 Box 12?

Box 12 on your W-2 is a catch-all field that reports special types of compensation and benefits using letter codes. There are up to four Box 12 entries (labeled 12a, 12b, 12c, 12d), each with a letter code and dollar amount. Some codes reduce your taxable income; others are purely informational.

The Most Common W-2 Box 12 Codes

Code D — Traditional 401(k) Contributions

Pre-tax contributions to your employer's 401(k) plan. This amount was already excluded from Box 1 wages — you won't pay income tax on it now, but you will when you withdraw in retirement. The 2025 employee contribution limit is $23,500 (or $31,000 if age 50+).

Code E — 403(b) Contributions

Same as Code D but for 403(b) plans — used by schools, nonprofits, and hospitals instead of 401(k)s.

Code G — 457(b) Contributions

Deferrals to a government or non-profit deferred compensation plan. Like 401(k)/403(b), pre-tax and excluded from Box 1.

Code W — Employer HSA Contributions

Both employer and employee (payroll deduction) contributions to a Health Savings Account. This amount goes on Form 8889 and is deductible if you contributed directly; if it's employer-contributed, it's already tax-free.

Code DD — Employer-Sponsored Health Insurance Cost

The total cost of employer-sponsored health coverage (both employer and employee portions). This is informational only — it does not affect your taxes. It was added by the ACA for reporting purposes.

Code AA — Roth 401(k) Contributions

After-tax contributions to a Roth 401(k). Unlike Code D, Roth contributions are included in Box 1 wages — you already paid income tax on this money. Qualified withdrawals in retirement are tax-free.

Code BB — Roth 403(b) Contributions

Same as Code AA but for Roth 403(b) plans.

Code C — Taxable Cost of Group Life Insurance

If your employer provides group term life insurance coverage over $50,000, the cost of the excess coverage is taxable. This amount is already included in your Box 1 wages.

Code J — Non-Taxable Sick Pay

Sick pay paid by a third-party insurer that isn't subject to income tax. Informational — does not affect your return unless you also received taxable sick pay.

Code L — Substantiated Employee Business Expense Reimbursements

Reimbursements for business expenses under an accountable plan. These are non-taxable and not included in Box 1. Informational only.

Code P — Excludable Moving Expense Reimbursements

Moving expense reimbursements paid to active-duty military. Non-taxable for military only (civilian exclusion was eliminated in 2018).

Code R — Employer Contributions to Archer MSA

Contributions to a Medical Savings Account — an older predecessor to the HSA. Report on Form 8853.

Code S — SIMPLE IRA Contributions

Contributions to a SIMPLE IRA retirement plan. Pre-tax, excluded from Box 1.

Code T — Adoption Assistance

Employer-paid adoption assistance. May be partially excludable from income — report on Form 8839.

Code V — Income from Exercise of Non-Statutory Stock Options

Already included in Box 1, 3, and 5. This code is informational, helping you reconcile your W-2 with brokerage statements from stock option exercises.

Codes FF — Permitted Benefits Under Qualified Small Employer Health Reimbursement Arrangement (QSEHRA)

Amounts reimbursed under a QSEHRA — a health reimbursement arrangement for small employers. Informational; affects ACA marketplace premium tax credit eligibility.

Which Box 12 Codes Reduce Your Tax Bill?

These codes represent pre-tax benefits already excluded from Box 1 wages — they've already reduced your taxable income:

  • D (401k), E (403b), G (457b), S (SIMPLE IRA) — retirement contributions
  • W (HSA) — health savings
  • AA (Roth 401k), BB (Roth 403b) — you paid tax on these already but get tax-free growth

Extract W-2 Box 12 Data Automatically

Upload your W-2 to w2extractor.com to extract all Box 12 codes and amounts alongside every other W-2 field — structured JSON output ready for tax prep or integration.

Ready to automate document parsing?

Try W-2 Extractor free - 3 free parses, no credit card required.