Guide · Income

How to read a W‑2 (every box, explained)

A W-2 is the most important piece of paper most people get all year, and almost no one reads past the first number. This is a box-by-box guide to what every box and cryptic Box 12 code means, why the wages on it don't match your salary, how to check it against your own pay stub, and what to do when it's wrong, because the IRS already has a copy and is matching it against your return.

19 min read · Updated 2026-06-24

A W-2 (its full name is the Wage and Tax Statement) is the form your employer sends every January reporting what they paid you last year and what they withheld. Your employer files a copy with the Social Security Administration, which passes the data to the IRS, so by the time you sit down to file, the government already knows what your W-2 says. Reading it isn't about curiosity; it's about catching an error before the IRS matches its copy against your return.

The good news is that a W-2 is far more readable than it looks, because every box falls into one of just three groups. Some boxes are identifiers (who you are, who your employer is). Some are wages (amounts you earned). Some are taxes withheld (amounts already paid to the government on your behalf). Once you know which group a box belongs to, the whole form stops being a wall of numbers. The single most useful habit is to never confuse a wage box with a tax box: Box 1 is income, Box 2 is the tax held back on that income, and reading them as the same thing is where most confusion starts.

The full box-by-box reference is right below. After it, we explain the question that trips up nearly everyone (why your wages don't match your salary), give you the complete Box 12 code list that most guides skip, and do the part no one teaches: checking that the form is actually right.

Every box, explained

Here is the whole form, grouped the way it actually works rather than in strict number order, so the identifiers, the wages, and the taxes each sit together. Federal boxes are numbered 1 through 14; the state and local boxes (15 through 20) repeat the same idea for wherever you owe state or city tax.

Hover or tap any box below to see what it means. These are the dozen boxes people ask about most; the full reference table follows.

Box aEmployee SSNcheck it
Your Social Security number. Check it digit by digit; an error here delays your refund.
Box bEmployer EIN
Your employer's nine-digit Employer Identification Number.
Box cEmployer
Your employer's legal name and address.
Box 1Wages, tips, other compcheck it
Federal taxable wages: gross pay minus pre-tax items like a traditional 401(k) and health premiums. Usually lower than your salary, and this is what flows to your 1040.
Box 2Federal income tax withheld
The federal income tax already held back over the year. This is tax, not income.
Box 3Social Security wages
Wages subject to the 6.2% Social Security tax, capped each year at the wage base. A 401(k) does not reduce this.
Box 4Social Security tax withheld
6.2% of Box 3. A blank or undersized Box 4 next to a full Box 3 is worth questioning.
Box 5Medicare wages and tips
Wages subject to the 1.45% Medicare tax. No cap, so for high earners this is the biggest wage box.
Box 6Medicare tax withheld
1.45% of Box 5, plus an extra 0.9% on wages over $200,000.
Box 12Coded items
Up to four lines, each a letter code plus an amount: your 401(k), HSA, Roth, and more. Use the searchable decoder below.
Box 13Checkboxes
Statutory employee, Retirement plan, and Third-party sick pay. Not dollar amounts. A checked Retirement plan box can limit an IRA deduction.
Box 15–17State wages & tax
Your state, state wages, and state income tax withheld. No-income-tax states like TX show wages with no state tax.
A sample W-2 for one employee. Your figures will differ, but every box means the same thing on every W-2, from any payroll provider.
Every box on a Form W-2, grouped into identifiers, wages, taxes withheld, and coded items.
BoxWhat it means
Identifiers (who, not how much)
Box a: SSNYour Social Security number. Check it digit by digit; an error here delays your refund.
Box b: EINYour employer's nine-digit Employer Identification Number (XX-XXXXXXX).
Box c: EmployerYour employer's legal name and address.
Box d: Control numberAn optional internal tracking number for the employer's payroll system. Often blank, and nothing for you to act on.
Boxes e / f: YouYour name and mailing address, as payroll has them. If your name doesn't match your Social Security card, get it fixed.
Box 15: State + state IDA two-letter state code and your employer's state tax ID. Worked in two states? You may see two rows.
Box 20: Locality nameThe name of any city, county, or school district that taxes your income (paired with Boxes 18 and 19).
Wages (amounts you earned)
Box 1: Wages, tips, other compYour federal taxable wages: gross pay minus pre-tax items like a traditional 401(k) and health premiums. This is the income figure that flows to your 1040, and it's usually lower than your salary.
Box 3: Social Security wagesWages subject to the 6.2% Social Security tax, capped each year at the wage base ($176,100 for 2025 and $184,500 for 2026, per the SSA). A 401(k) does NOT reduce this.
Box 5: Medicare wages and tipsWages subject to the 1.45% Medicare tax. No cap, so for high earners this is the biggest of the three wage boxes.
Box 7: Social Security tipsTips you reported that are subject to Social Security tax. Box 3 and Box 7 together stop at the wage base.
Box 8: Allocated tipsTips your employer assigned to you (certain food and beverage jobs). Not already in Boxes 1, 3, 5, or 7, so you may owe tax on them separately.
Box 10: Dependent care benefitsDependent-care money provided through work. Anything over the exclusion limit also shows up in Boxes 1, 3, and 5.
Box 11: Nonqualified plansDistributions from a nonqualified deferred-comp plan. Used by the SSA to reconcile your wages.
Box 16: State wagesWages taxable by the state in Box 15. Can differ from Box 1 because of state-specific rules.
Box 18: Local wagesWages taxable by a city, county, or school district, where local income taxes exist.
Taxes withheld (amounts already paid for you)
Box 2: Federal income tax withheldThe federal income tax your employer held back over the year, based on the W-4 you filed. This is tax, not income.
Box 4: Social Security tax withheld6.2% of Box 3. A blank or undersized Box 4 next to a full Box 3 is worth questioning.
Box 6: Medicare tax withheld1.45% of Box 5, plus an extra 0.9% on wages over $200,000 a year, which is why Box 6 can be more than 1.45% of Box 5 for high earners.
Box 17: State income taxState income tax withheld for the state in Box 15.
Box 19: Local income taxCity, county, or school-district income tax withheld.
Codes and checkboxes
Box 12: Coded itemsUp to four lines (12a–12d), each a letter code plus a dollar amount: your 401(k), HSA, Roth contributions, and more. The full decoder is below. The a/b/c/d are just the four slots, not codes.
Box 13: Three checkboxesStatutory employee, Retirement plan, and Third-party sick pay. Not dollar amounts. A checked 'Retirement plan' box can limit how much of an IRA contribution you can deduct.
Box 14: OtherYour employer's catch-all for things that don't fit elsewhere, with labels they invent themselves. See the Box 14 section below.

A few of these cause most of the questions. Box 1 is not your salary (the next section explains why). Boxes 2, 4, and 6 are taxes, not income. Box 13 is checkboxes, not dollars. And the two boxes that send people into a panic every spring, Box 12 code DD (the cost of your health coverage) and a big number in Box 14, are almost always informational and change nothing on your return. We'll get to both.

Why Box 1 isn't your salary (and why the wage boxes disagree)

This is the most-searched question about the W-2, and most guides answer it with a shrug. The real answer is a short chain of mechanics. Your W-2 has three different wage figures, in Boxes 1, 3, and 5, and they're usually three different numbers, none of which equals the salary you negotiated. That's not a mistake. It happens because federal income tax and the two FICA taxes (Social Security and Medicare) each subtract a different set of deductions before they land on a wage figure.

  • A traditional 401(k) or 403(b) contribution comes out before federal income tax, so it lowers Box 1. But it's still taxed for Social Security and Medicare, so it does not lower Box 3 or Box 5.
  • Pre-tax health, dental, and vision premiums (and FSA contributions), made through a Section 125 cafeteria plan, come out before all three taxes, so they lower Boxes 1, 3, and 5 alike.
  • The Social Security wage base caps Box 3. For 2025 the cap is $176,100; for 2026 it rises to $184,500, per the Social Security Administration. Earn more than that and Box 3 stops there. Box 5 (Medicare) has no cap at all, which is why, for a high earner, Box 5 is the largest number on the form.

Put real numbers on it. Say you earn $100,000, put $10,000 into a traditional 401(k), and pay $4,000 a year in pre-tax health premiums:

A worked example showing how a $100,000 salary becomes three different wage figures on a W-2.
LineAmountWhy
Your salary$100,000What you were paid. It appears in none of the wage boxes by itself.
− Traditional 401(k)−$10,000Lowers federal taxable wages, but not Social Security or Medicare wages.
− Pre-tax health premiums−$4,000A Section 125 deduction. Lowers all three wage boxes.
= Box 1 (federal taxable wages)$86,000Salary minus the 401(k) and the health premiums.
= Box 3 (Social Security wages)$96,000Salary minus only the health premiums; the 401(k) is still taxed for Social Security.
= Box 5 (Medicare wages)$96,000Same as Box 3 here, because income is under the Social Security cap and there's no extra add-back.

So a $100,000 salary becomes $86,000 in Box 1 and $96,000 in Boxes 3 and 5, and that's the form behaving correctly. Change the mix and the order changes: add a group-term life insurance benefit over $50,000 (Box 12 code C) and your taxable wages can rise above your cash salary, because that benefit is taxable even though it isn't cash you received. Earn above the Social Security cap and Box 3 freezes at the cap while Box 5 keeps climbing. There's no single rule for which box is biggest; there's only the mechanism. Once you know which deductions move which box, your W-2 explains itself.

The Box 12 code decoder

Box 12 is where most W-2 guides give up. They tell you it has codes and link you to the IRS. But Box 12 is where your retirement contributions, your HSA, and your health-coverage cost are reported, so it's worth knowing. Each line is a letter code and a dollar amount; the 12a, 12b, 12c, and 12d labels are just the four blank slots on the form, not codes. Here's the full list (the IRS skips the letters I, O, U, and X):

26 of 26
The complete Box 12 letter-code decoder, A through II.
CodeWhat it meansHow common
A / BUncollected Social Security/RRTA (A) or Medicare (B) tax on tips.Rare
CTaxable cost of group-term life insurance over $50,000. Already included in Boxes 1, 3, and 5.Taxable
DYour elective contributions to a traditional 401(k).Common
EYour elective contributions to a 403(b) (common at schools and nonprofits).Common
FContributions to a SEP (408(k)(6)) salary-reduction plan.Rare
GContributions to a 457(b) deferred-comp plan (common for government employees).Common
HContributions to a 501(c)(18)(D) plan.Rare
JNontaxable sick pay.Not taxable
K20% excise tax on excess golden-parachute payments.Rare
LSubstantiated employee business-expense reimbursements.Occasional
M / NUncollected Social Security (M) or Medicare (N) tax on group-term life over $50,000, for former employees.Rare
PExcludable moving-expense reimbursements paid to a member of the Armed Forces.Military
QNontaxable combat pay.Military
REmployer contributions to an Archer MSA.Rare
SYour contributions to a SIMPLE plan (408(p)).Common at small employers
TAdoption benefits.Occasional
VIncome from exercising nonstatutory stock options.Equity-comp jobs
WCombined employer and employee contributions to your HSA.Common
Y / ZDeferrals under a 409A nonqualified deferred-comp plan (Y); income from one that failed 409A rules (Z).Executives
AAYour designated Roth contributions to a 401(k).Common
BBYour designated Roth contributions to a 403(b).Occasional
DDThe total cost of your employer-sponsored health coverage. Informational only, NOT taxable, and nothing for you to do.Common
EEYour designated Roth contributions to a governmental 457(b).Government
FFPermitted benefits under a small-employer QSEHRA.Small employers
GG / HHIncome and deferrals from qualified equity grants under section 83(i).Rare
IIMedicaid waiver payments excluded from income under Notice 2014-7.Home-care providers

The handful you're most likely to see: D is your traditional 401(k). DD is the cost of your employer health plan and is informational only, so the large number next to it is nothing to worry about and nothing to enter anywhere. W is your HSA. AA is a Roth 401(k). C is group-term life over $50,000, which is the one code here that quietly raised your taxable wages. If your W-2 shows a code this guide lists differently than your tax software expects, the form is the authority; the IRS defines these, not the payroll company.

Box 14, the catch-all

Box 14 is the one box with no fixed meaning. The IRS labels it "Other" and lets your employer put almost anything in it, with a label they invent themselves. That's why two people can have completely different Box 14 entries and both be correct, and why a code in your Box 14 might not appear in any official list. It's an employer free-for-all, not a federal standard.

The entries people search for most:

  • S125, SEC125, or Cafe 125 is your Section 125 cafeteria-plan total: the pre-tax health and benefit premiums that were already excluded from Box 1. Informational; you don't deduct them again.
  • RSU is the value of vested restricted stock units, usually already folded into Box 1.
  • NYSDI, NYPFL, CASDI and similar are state disability or paid-family-leave contributions; the prefix is the state.
  • 414(h) is a public-employee retirement contribution. Union is union dues.

The rule for Box 14: if you can't tell what a code means, the only authority is the employer who wrote it, so ask payroll. In almost every case the amount is informational and doesn't change your return, but a few entries (certain state taxes) can matter when you itemize, which is worth a quick check with whoever prepares your taxes.

Check it against your pay stub

Here's the step almost no W-2 guide includes, and it's the most useful one: your W-2 should reconcile to your last pay stub of the year. The year-to-date (YTD) totals on that final stub are the same figures that become the boxes on the form. If you read your final pay stub alongside your W-2, you can catch an error before you file instead of trusting the form blind.

How the year-to-date totals on your final pay stub map to the boxes on your W-2.
On your final pay stub (YTD)Should equal, on your W-2
YTD federal taxable wagesBox 1
YTD Social Security wagesBox 3
YTD Social Security tax withheldBox 4
YTD Medicare wagesBox 5
YTD Medicare tax withheldBox 6
YTD federal income tax withheldBox 2
YTD state wages and taxBoxes 16 and 17

Run the comparison line by line. Box 1 won't equal your YTD gross, but it should equal your YTD gross minus the pre-tax deductions your stub itemizes (the 401(k) and the health premiums). The tax-withheld boxes (2, 4, and 6) should match your YTD withholding to the dollar. If a box doesn't tie out, that's your signal to raise it with payroll before April, not after. The hard part of this check is having every stub in one place and the running totals at hand, which is exactly the kind of thing software is good at: ask Granite what your year-to-date wages or withholding were and it sums them across the stubs you've dropped in, so the W-2 has something to be checked against.

What to do if it's wrong

W-2 errors happen, and because the IRS matches its copy to your return, an uncorrected one can hold up your refund or trigger a notice. The errors worth looking for: a wrong Social Security number or name, a Box 1 figure that doesn't reconcile to your stub, a blank Box 2 when your stubs clearly show federal tax was withheld, or a missing 401(k) amount in Box 12. The fix follows one path, set by the IRS:

  1. Tell your employer first. Most W-2 errors are fixed by the employer issuing a corrected form, called a Form W-2c (Corrected Wage and Tax Statement). A wrong name or SSN, in particular, just needs payroll to match it to your Social Security card.
  2. If it's still not fixed by the end of February, call the IRS at 800-829-1040. They'll send your employer a letter asking for a corrected W-2 within ten days, and they'll send you a Form 4852. Have your employer's name, address, and phone number ready, along with your dates of employment.
  3. File on time using Form 4852 if the corrected form still hasn't arrived. Form 4852 is the official substitute for a W-2; you estimate your wages and withholding from your final pay stub's year-to-date totals (another reason to keep that stub). If the real W-2c later shows different numbers, you amend your return with Form 1040-X.

The same path covers a W-2 that never shows up. Don't simply leave income off your return because the form is missing or wrong; the IRS has its own copy, and the mismatch is what causes problems.

Same form, different payroll system

One thing that throws people: your W-2 from ADP looks different from your spouse's from Gusto, which looks different again from one printed by Paychex or Workday or QuickBooks. It's tempting to think they're different documents. They're not. Form W-2 is a federal form with federally fixed box numbers, so Box 1 means the same thing on every one of them. What changes is only the wrapper: the layout, the portal you download it from, the order things are printed in, the labels in the free-form Box 14. The numbered boxes are identical in meaning no matter who generated the form.

This is exactly the problem Granite is built to solve by reading the document itself. It pulls the year, employer, wages, and tax withheld off any W-2, from any payroll provider, and normalizes them into the same fields, so a W-2 from a new job lines up next to last year's without you re-learning a new layout. Whether you read it yourself or let software read it, the lesson is the same: don't read the design, read the box number.

What changed for 2026

The W-2 is usually stable from year to year, but the form for 2026 wages (the one you'll receive in early 2027) has real changes, driven by the 2025 tax law informally called the One Big Beautiful Bill Act. If you're reading an older W-2, you won't see any of these, so don't go hunting for them:

  • Box 14 is split into 14a and 14b. The old "Other" content moves to 14a; 14b is new and reports a Treasury Tipped Occupation Code for tipped workers.
  • New Box 12 code TP reports the total cash tips you reported to your employer, tied to the new deduction for tip income.
  • New Box 12 code TT reports your qualified overtime compensation, tied to the new deduction for overtime pay.
  • New Box 12 code TA reports employer contributions to a so-called Trump account on your behalf.

These come straight from the IRS's instructions for the 2026 form. The codes you already know (D, DD, W, AA, and the rest) are unchanged; the new ones simply sit alongside them, and only on the 2026 and later forms.

Why to keep it (longer than you think)

After you file, a W-2 has two jobs, and the second one is the reason to keep it far longer than most people do. The first job is short-term: keep it with your tax records for at least the few years the IRS can audit a return. For how that fits with the rest of your paperwork, see how long to keep important documents.

The second job is for life. Your W-2 is your personal proof of the wages reported to Social Security, and the Social Security Administration calculates your future retirement and disability benefits from that lifetime earnings record. If the SSA's record is ever wrong, an old W-2 is one of the documents it accepts as proof to correct it, which is why it's worth holding onto decades after the tax year is closed. It's worth checking your earnings record now and then through a my Social Security account; if a year looks off, the W-2 for that year is your evidence.

A practical note on storage: a W-2 carries your full name, your income, and your entire Social Security number, so it's not a document to leave in an email inbox or a shared drive. Whatever you keep it in should be something you trust with that, which is why Granite encrypts every document at rest. None of this is tax advice, and the figures here are general guidance, not a verdict on your specific return. Granite reads and organizes the W-2 you already have, files it under the right year next to your other tax-season documents, and keeps it findable for as long as you need it; it isn't tax software and can't correct an error for you. If you're paid on a 1099 rather than a W-2, your income records look different; reading a 1099 form by form covers what each one means, and Granite for solo businesses is built for that.

FAQ

Reading a W-2, answered

Why is Box 1 on my W-2 lower than my salary?
Because Box 1 reports your federal taxable wages, not your gross pay, and certain pre-tax deductions are subtracted before it's calculated. The big ones are traditional 401(k) or 403(b) contributions, your share of health, dental, and vision premiums, and money you put into an FSA or HSA through payroll. Each of those comes out of your wages before federal income tax is figured, so Box 1 is your salary minus those amounts. It's not an error; it's the form working as designed.
Why don't Boxes 1, 3, and 5 match each other?
Because federal income tax and the two FICA taxes treat your deductions differently. A traditional 401(k) contribution lowers Box 1 (federal taxable wages) but is still taxed for Social Security and Medicare, so it does not lower Box 3 or Box 5. Pre-tax health premiums lower all three. And Box 3 (Social Security wages) is capped at the annual wage base while Box 5 (Medicare wages) has no cap. For a typical worker with a 401(k) and income under the cap, you'll usually see Box 1 lower than Box 3 and Box 5, with Box 3 and Box 5 equal. For a high earner over the cap, Box 5 is the largest of the three.
Should Box 1 and Box 5 be the same on my W-2?
Often they're different, and that's normal. Box 5 (Medicare wages) usually equals or exceeds Box 1 (federal taxable wages), because a traditional 401(k) contribution is subtracted from Box 1 but not from Box 5. If you have no pre-tax retirement contributions and no income above the Social Security wage cap, Box 1 and Box 5 can match. They'd only be equal by coincidence of your specific deductions, not by rule.
What does Code DD in Box 12 of my W-2 mean?
Code DD is the total cost of your employer-sponsored health coverage, combining what you and your employer paid. It is informational only. It is not taxable, it is not added to your income, and it does not change what you owe. The IRS requires it so the cost of employer health coverage is reported, but you don't do anything with it on your return. Seeing a large number next to DD alarms a lot of people every spring; it shouldn't.
What do the letter codes in Box 12 mean?
Box 12 uses letter codes (A through II) to report specific items that need their own line. The most common are D (your traditional 401(k) contributions), DD (the cost of your employer health coverage, informational only), W (HSA contributions), AA (Roth 401(k) contributions), and C (the taxable cost of group-term life insurance over $50,000). The 12a, 12b, 12c, and 12d labels are just the four blank slots on the form, not codes themselves. The full decoder is in this guide.
What does S125 (or Cafe 125) mean in Box 14 of my W-2?
S125, SEC125, or Cafe 125 in Box 14 refers to a Section 125 cafeteria plan, the IRS rule that lets your health, dental, and vision premiums (and FSA contributions) come out of your pay before tax. The number next to it is usually the total of those pre-tax benefit deductions for the year. It's informational: those amounts were already excluded from your taxable wages in Box 1, so you don't deduct them again. Box 14 is a free-form box, so different employers label the same thing differently.
My Box 2 (federal income tax withheld) is blank or $0. Is that an error?
Not necessarily. Box 2 is the federal income tax your employer withheld, and it can legitimately be zero if your earnings were low enough, or your W-4 claimed enough deductions, that no federal income tax needed to be held back. A blank Box 2 alongside normal wages in Box 1 is worth a second look, but it isn't automatically wrong. Compare it to the year-to-date federal withholding on your final pay stub; if the stub shows withholding and the W-2 shows none, ask your employer for a corrected form.
How do I check my W-2 against my last pay stub?
Pull your final pay stub of the year and compare its year-to-date (YTD) totals to the W-2 boxes. YTD federal taxable wages should match Box 1, YTD Social Security wages should match Box 3, YTD Medicare wages should match Box 5, and the YTD tax-withheld lines should match Boxes 2, 4, and 6. State wages and state tax map to Boxes 16 and 17. If any box doesn't tie to the stub, that's the flag to raise with payroll before you file.
When should I receive my W-2, and what if I don't?
Your employer must furnish your W-2 by January 31. If you don't have it by the end of January, contact your employer or payroll provider first. If you've done that and still don't have it by the end of February, call the IRS at 800-829-1040; they'll contact your employer and send you a Form 4852, which lets you file using your final pay stub's figures while you wait for the real form.

See it in Granite

Drop a W-2 into Granite and it reads every box for you, pulls out the year, employer, wages, and tax withheld, and files it under the right tax year, no tagging required.

granite.co · review extraction

Form W-2 · 2024

Wage and Tax Statement

1 / 1employer · Acme Corp

What this is

auto

W-2 from Acme Corp for tax year 2024.

Wages of $148,500 with $28,432 withheld. Filed under Tax 2024 alongside your 1099-NEC from Stripe.

  • EmployerAcme Corp
  • EIN12-3456789
  • Tax year2024
  • Wages (box 1)$148,500.00
  • Federal income tax withheld$28,432.00
  • StateTXlow conf.

Every correction makes Granite better for you specifically. Not everyone, just your archive.

Let Granite read your W-2 for you

Drop in a W-2 and Granite reads it, pulls out the year, employer, wages, and tax withheld, and files it into the right tax year automatically, alongside your 1099s and 1040. Ask it what you earned in any past year and get the answer with a citation. Free for your first 25 documents.