IRS W-2 Box 12 Code AA Meaning: Roth 401(k) Contributions

Direct answer: irs w-2 box 12 code aa means you made designated Roth contributions to a 401(k) plan during the year. The money came from after-tax pay. It is already counted in your Box 1 wages. It does not lower your taxable income now. Qualified withdrawals in retirement come out tax-free.
Key Takeaways
- irs w-2 box 12 code aa = designated Roth contributions to a 401(k) plan, made with after-tax dollars.
- The Code AA amount stays in Box 1, Box 3, and Box 5. It does not lower any wage box.
- Code AA and Code D share one annual limit. Add them together before you compare to the limit.
- Code AA does not include employer matching contributions. It covers only your own Roth deferrals.
- You do not enter Code AA on a separate line of your tax return. Box 1 already includes it.
## irs w-2 box 12 code aa: Designated Roth 401(k) Contributions
The IRS General Instructions for Forms W-2 and W-3 define the code in plain terms: “Code AA — Designated Roth contributions under a section 401(k) plan.” That is the whole definition. Your employer reports the total you put into the Roth side of your 401(k) during the year.
Roth means after-tax. You paid income tax on this money before it went into the plan. That is the key difference from a traditional 401(k). The tax break comes later, not now.
Box 12 is the detail section of the W-2. It breaks out amounts that need separate tracking. The code tells the IRS what kind of money it is. The dollar amount next to the code is your total for the year.
If your W-2 also shows a Code D amount, read [IRS W-2 Box 12 Code D Meaning: 401(k) Elective Deferrals](https://bhcpatax.com/irs-w-2-box-12-code-d/) for the pre-tax side of the same plan.
## How Box 12 Works: Slots 12a to 12d
Box 12 has four slots: 12a, 12b, 12c, and 12d. The small letters are just slot labels. They are not part of the code. A Code AA entry means the same thing whether it sits in 12a or 12d.
Each slot holds one code and one dollar amount. Your employer fills the slots in order. If you have only one Box 12 entry, it lands in 12a. If you have three, they fill 12a, 12b, and 12c.
Do not confuse the slot letter with the code. “12a” is not a code. The code is the capital letter or letters next to the amount, such as AA, D, or DD.
Other common Box 12 entries include health coverage under [IRS W-2 Box 12 Code DD Meaning: Health Coverage Cost](https://bhcpatax.com/irs-w-2-box-12-code-dd/). That code reports a dollar amount too, but it is informational only and works very differently from Code AA.
A W-2 can hold up to four Box 12 entries. If you have more than four, the extra entries go on a second W-2 from the same employer. Add the Code AA amounts from both forms together to get your yearly total.
## Code AA vs. Code D: After-Tax vs. Pre-Tax
Code AA and Code D both report 401(k) contributions. The difference is when you pay tax on the money.
| Feature | Code AA (Roth) | Code D (pre-tax) |
|—|—|—|
| Tax timing | Tax paid now, before the money enters the plan | Tax deferred until withdrawal in retirement |
| Box 1 wages | Amount stays in Box 1 | Amount is removed from Box 1 |
| Boxes 3 and 5 | Amount stays in both boxes | Amount stays in both boxes |
| Deduction now | None — no deduction to claim | None to claim separately — already excluded from Box 1 |
| Qualified withdrawals | Tax-free, including earnings | Taxed as income when withdrawn |
| Annual limit | Shared with Code D | Shared with Code AA |
irs w-2 box 12 code aa: Designated Roth 401(k) Contributions
The IRS General Instructions for Forms W-2 and W-3 define the code in plain terms: “Code AA — Designated Roth contributions under a section 401(k) plan.” That is the whole definition. Your employer reports the total you put into the Roth side of your 401(k) during the year.
Roth means after-tax. You paid income tax on this money before it went into the plan. That is the key difference from a traditional 401(k). The tax break comes later, not now.
Box 12 is the detail section of the W-2. It breaks out amounts that need separate tracking. The code tells the IRS what kind of money it is. The dollar amount next to the code is your total for the year.
If your W-2 also shows a Code D amount, read IRS W-2 Box 12 Code D Meaning: 401(k) Elective Deferrals for the pre-tax side of the same plan.
How Box 12 Works: Slots 12a to 12d
Box 12 has four slots: 12a, 12b, 12c, and 12d. The small letters are just slot labels. They are not part of the code. A Code AA entry means the same thing whether it sits in 12a or 12d.
Each slot holds one code and one dollar amount. Your employer fills the slots in order. If you have only one Box 12 entry, it lands in 12a. If you have three, they fill 12a, 12b, and 12c.
Do not confuse the slot letter with the code. “12a” is not a code. The code is the capital letter or letters next to the amount, such as AA, D, or DD.
Other common Box 12 entries include health coverage under IRS W-2 Box 12 Code DD Meaning: Health Coverage Cost. That code reports a dollar amount too, but it is informational only and works very differently from Code AA.
A W-2 can hold up to four Box 12 entries. If you have more than four, the extra entries go on a second W-2 from the same employer. Add the Code AA amounts from both forms together to get your yearly total.
Code AA vs. Code D: After-Tax vs. Pre-Tax
Code AA and Code D both report 401(k) contributions. The difference is when you pay tax on the money.
| Feature | Code AA (Roth) | Code D (pre-tax) |
|---|---|---|
| Tax timing | Tax paid now, before the money enters the plan | Tax deferred until withdrawal in retirement |
| Box 1 wages | Amount stays in Box 1 | Amount is removed from Box 1 |
| Boxes 3 and 5 | Amount stays in both boxes | Amount stays in both boxes |
| Deduction now | None — no deduction to claim | None to claim separately — already excluded from Box 1 |
| Qualified withdrawals | Tax-free, including earnings | Taxed as income when withdrawn |
| Annual limit | Shared with Code D | Shared with Code AA |
| Check this | What it tells you |
|---|---|
| Is the Code AA amount in Box 1? | It should be. Roth money is after-tax, so Box 1 includes it in full. |
| Do you also have a Code D amount? | Add Code D and Code AA together. The sum must fit under one annual limit. |
| Does the amount match your pay stubs? | Add up the Roth 401(k) deductions on your final pay stub. It should match Code AA. |
| Did you change jobs this year? | Add Code AA from every W-2. The limit applies across all employers combined. |
## How Code AA Affects Boxes 1, 3, and 5
Here is a simple example. Suppose your gross pay for the year is $60,000. You put $5,000 into the Roth side of your 401(k). You made no pre-tax deferrals.
– **Box 1 (federal taxable wages): $60,000.** The $5,000 Roth contribution stays in Box 1. You already paid income tax on it.
– **Box 3 (Social Security wages): $60,000.** Roth contributions are still subject to Social Security tax.
– **Box 5 (Medicare wages): $60,000.** Roth contributions are still subject to Medicare tax.
– **Box 12 Code AA: $5,000.** This is the record of your Roth deferral.
Now compare that to a $5,000 pre-tax deferral under Code D. Box 1 would drop to $55,000. Boxes 3 and 5 would stay at $60,000. That Box 1 difference is the whole story of Roth versus pre-tax.
This is also why your Box 1 figure can look higher than you expect. If you contributed to a Roth 401(k), your taxable wages did not drop. Nothing is wrong. That is how Roth works.
Your W-2 Box 2 federal withholding is a separate matter. It flows to your tax transcript as [IRS Code 806: Credit for Withheld Taxes](https://bhcpatax.com/irs-code-806/). Code AA has nothing to do with withholding. When you file with this W-2, any refund the IRS issues posts to your transcript as [IRS Code 846: Refund Issued](https://bhcpatax.com/irs-code-846/).
## The Shared Limit: Code D Plus Code AA
Code AA and Code D share a single annual elective deferral limit. You cannot max out both separately. The IRS counts your pre-tax and Roth deferrals to the same plan type together.
For 2026, the base elective deferral limit is $24,500. If you are age 50 or older, an extra catch-up amount applies. The IRS adjusts these limits each year, so always check the limit for the year on your W-2.
Example: if you deferred $10,000 pre-tax (Code D) and $14,500 Roth (Code AA) in 2026, your total is $24,500. You are exactly at the limit. Neither amount alone broke the limit. Together, they hit it.
The limit applies across all employers. If you changed jobs mid-year and contributed at both jobs, add every Code D and Code AA amount from every W-2. An excess can happen even when each single W-2 looks fine.
If your total went over the limit, the excess must be corrected. In general, the excess plus its earnings must be withdrawn by April 15 of the following year. Do not ignore an excess. Talk to your plan administrator quickly, because the fix has a deadline.
## What Code AA Does NOT Mean
– **It does not mean you get a deduction.** Roth contributions are after-tax. There is no deduction to claim on your return for Code AA.
– **It does not include employer matching contributions.** Your employer’s match does not appear in Box 12 at all. Code AA covers only your own elective deferrals.
– **It does not mean your withdrawals are taxed.** Qualified Roth withdrawals are tax-free. That includes both your contributions and the earnings on them.
– **It does not mean you owe extra tax now.** The tax was already paid through payroll. Code AA itself adds no tax.
– **It does not mean you need a separate form.** You do not report Code AA on a separate line of Form 1040. Box 1 already includes the amount.
– **It does not cover Roth IRA contributions.** A Roth IRA is a personal account, not an employer plan. It never appears on a W-2.
The one thing Code AA does create is a record. It tracks your Roth basis — the total after-tax money you put in over the years. That record protects your qualified withdrawals from tax later.
## What To Do When You See Code AA
Follow these steps, in order:
1. **Confirm the amount against your pay stubs.** Add up the Roth 401(k) deductions on your final pay stub of the year. The total should match Code AA.
2. **Add Code D and Code AA together.** Check the sum against the annual limit for that year. Include amounts from every employer if you changed jobs.
3. **Confirm your Roth election.** If you meant to contribute pre-tax but see Code AA, your plan election may be set to Roth. Ask your plan administrator to confirm.
4. **Keep the W-2 with your tax records.** Code AA builds your Roth basis year by year. Future withdrawals may depend on this record.
5. **Check your wage transcript if anything looks off.** Pull it through the [IRS Get Transcript tool](https://www.irs.gov/individuals/get-transcript) and compare the wage figures to your W-2. If you are unsure how to read it, use [How to Read an IRS Account Transcript: Step-by-Step Guide](https://bhcpatax.com/how-to-read-irs-account-transcript/).
6. **Do not subtract Code AA on your return.** Box 1 already includes it. Subtracting it again would understate your income. Once your return is filed, you can follow [Tax Refund Status](https://bhcpatax.com/tax-refund-status/) to track any refund.
## When to Ask Your Employer or a Tax Professional
Contact your employer or plan administrator when:
– The Code AA amount does not match your pay stubs.
– You elected pre-tax deferrals but see only Code AA, or the reverse.
– Your combined Code D and Code AA total went over the annual limit.
– Code AA is missing even though you made Roth contributions all year.
– You received a corrected W-2 (W-2c) and the Code AA amount changed.
Talk to a tax professional when an excess deferral needs correcting, or when you are unsure whether a withdrawal counts as qualified. Qualified status depends on rules like the five-year rule and the age 59½ rule. A wrong withdrawal can make earnings taxable plus a possible penalty.
The official code list is in the [IRS General Instructions for Forms W-2 and W-3](https://www.irs.gov/instructions/iw2w3).
## Related Guides
– [IRS Transcript Codes: Complete List and Meanings](https://bhcpatax.com/irs-transcript-codes/)
– [IRS W-2 Box 12 Code DD Meaning: Health Coverage Cost](https://bhcpatax.com/irs-w-2-box-12-code-dd/)
– [IRS W-2 Box 12 Code D Meaning: 401(k) Elective Deferrals](https://bhcpatax.com/irs-w-2-box-12-code-d/)
– [How to Read an IRS Account Transcript: Step-by-Step Guide](https://bhcpatax.com/how-to-read-irs-account-transcript/)
## FAQ
### What does irs w-2 box 12 code aa mean?
It means you made designated Roth contributions to a 401(k) plan during the year. Per the IRS General Instructions for Forms W-2 and W-3, Code AA reports “Designated Roth contributions under a section 401(k) plan.” The money was after-tax, so it stays in your Box 1 wages.
### Does Code AA lower my taxable income?
No. Roth contributions do not lower Box 1. You paid income tax on the money before it entered the plan. The benefit comes in retirement, when qualified withdrawals come out tax-free.
### Do I need to report Code AA on my tax return?
No separate entry is needed. Box 1 already includes the Code AA amount. Do not subtract it again. The Box 12 entry exists so the IRS can track your Roth contributions against the annual limit.
### What is the difference between Code AA and Code D?
Code D is pre-tax. It lowers Box 1 now, and withdrawals are taxed later. Code AA is Roth. It leaves Box 1 unchanged now, and qualified withdrawals are tax-free later. Both share one annual elective deferral limit.
### Does Code AA include my employer’s matching contributions?
No. Code AA covers only your own elective Roth deferrals. Employer matching contributions are tracked separately by the plan and do not appear in Box 12.
### What happens if my Code D plus Code AA total goes over the limit?
The excess must generally be withdrawn, with its earnings, by April 15 of the following year. Contact your plan administrator right away. If the excess is not corrected on time, it can become taxable income and create extra paperwork.
**Disclaimer:** This post is general information only and is not tax advice. Every tax situation is different. For advice about your own W-2 or retirement plan, consult a qualified tax professional or contact the IRS directly.
—
How Code AA Affects Boxes 1, 3, and 5
Here is a simple example. Suppose your gross pay for the year is $60,000. You put $5,000 into the Roth side of your 401(k). You made no pre-tax deferrals.
- Box 1 (federal taxable wages): $60,000. The $5,000 Roth contribution stays in Box 1. You already paid income tax on it.
- Box 3 (Social Security wages): $60,000. Roth contributions are still subject to Social Security tax.
- Box 5 (Medicare wages): $60,000. Roth contributions are still subject to Medicare tax.
- Box 12 Code AA: $5,000. This is the record of your Roth deferral.
Now compare that to a $5,000 pre-tax deferral under Code D. Box 1 would drop to $55,000. Boxes 3 and 5 would stay at $60,000. That Box 1 difference is the whole story of Roth versus pre-tax.
This is also why your Box 1 figure can look higher than you expect. If you contributed to a Roth 401(k), your taxable wages did not drop. Nothing is wrong. That is how Roth works.
Your W-2 Box 2 federal withholding is a separate matter. It flows to your tax transcript as IRS Code 806: Credit for Withheld Taxes. Code AA has nothing to do with withholding. When you file with this W-2, any refund the IRS issues posts to your transcript as IRS Code 846: Refund Issued.
The Shared Limit: Code D Plus Code AA
Code AA and Code D share a single annual elective deferral limit. You cannot max out both separately. The IRS counts your pre-tax and Roth deferrals to the same plan type together.
For 2026, the base elective deferral limit is $24,500. If you are age 50 or older, an extra catch-up amount applies. The IRS adjusts these limits each year, so always check the limit for the year on your W-2.
Example: if you deferred $10,000 pre-tax (Code D) and $14,500 Roth (Code AA) in 2026, your total is $24,500. You are exactly at the limit. Neither amount alone broke the limit. Together, they hit it.
The limit applies across all employers. If you changed jobs mid-year and contributed at both jobs, add every Code D and Code AA amount from every W-2. An excess can happen even when each single W-2 looks fine.
If your total went over the limit, the excess must be corrected. In general, the excess plus its earnings must be withdrawn by April 15 of the following year. Do not ignore an excess. Talk to your plan administrator quickly, because the fix has a deadline.
What Code AA Does NOT Mean
- It does not mean you get a deduction. Roth contributions are after-tax. There is no deduction to claim on your return for Code AA.
- It does not include employer matching contributions. Your employer’s match does not appear in Box 12 at all. Code AA covers only your own elective deferrals.
- It does not mean your withdrawals are taxed. Qualified Roth withdrawals are tax-free. That includes both your contributions and the earnings on them.
- It does not mean you owe extra tax now. The tax was already paid through payroll. Code AA itself adds no tax.
- It does not mean you need a separate form. You do not report Code AA on a separate line of Form 1040. Box 1 already includes the amount.
- It does not cover Roth IRA contributions. A Roth IRA is a personal account, not an employer plan. It never appears on a W-2.
The one thing Code AA does create is a record. It tracks your Roth basis — the total after-tax money you put in over the years. That record protects your qualified withdrawals from tax later.
What To Do When You See Code AA
Follow these steps, in order:
- Confirm the amount against your pay stubs. Add up the Roth 401(k) deductions on your final pay stub of the year. The total should match Code AA.
- Add Code D and Code AA together. Check the sum against the annual limit for that year. Include amounts from every employer if you changed jobs.
- Confirm your Roth election. If you meant to contribute pre-tax but see Code AA, your plan election may be set to Roth. Ask your plan administrator to confirm.
- Keep the W-2 with your tax records. Code AA builds your Roth basis year by year. Future withdrawals may depend on this record.
- Check your wage transcript if anything looks off. Pull it through the IRS Get Transcript tool and compare the wage figures to your W-2. If you are unsure how to read it, use How to Read an IRS Account Transcript: Step-by-Step Guide.
- Do not subtract Code AA on your return. Box 1 already includes it. Subtracting it again would understate your income. Once your return is filed, you can follow Tax Refund Status to track any refund.
When to Ask Your Employer or a Tax Professional
Contact your employer or plan administrator when:
- The Code AA amount does not match your pay stubs.
- You elected pre-tax deferrals but see only Code AA, or the reverse.
- Your combined Code D and Code AA total went over the annual limit.
- Code AA is missing even though you made Roth contributions all year.
- You received a corrected W-2 (W-2c) and the Code AA amount changed.
Talk to a tax professional when an excess deferral needs correcting, or when you are unsure whether a withdrawal counts as qualified. Qualified status depends on rules like the five-year rule and the age 59½ rule. A wrong withdrawal can make earnings taxable plus a possible penalty.
The official code list is in the IRS General Instructions for Forms W-2 and W-3.
Related Guides
- IRS Transcript Codes: Complete List and Meanings
- IRS W-2 Box 12 Code DD Meaning: Health Coverage Cost
- IRS W-2 Box 12 Code D Meaning: 401(k) Elective Deferrals
- How to Read an IRS Account Transcript: Step-by-Step Guide
FAQ
What does irs w-2 box 12 code aa mean?
It means you made designated Roth contributions to a 401(k) plan during the year. Per the IRS General Instructions for Forms W-2 and W-3, Code AA reports “Designated Roth contributions under a section 401(k) plan.” The money was after-tax, so it stays in your Box 1 wages.
Does Code AA lower my taxable income?
No. Roth contributions do not lower Box 1. You paid income tax on the money before it entered the plan. The benefit comes in retirement, when qualified withdrawals come out tax-free.
Do I need to report Code AA on my tax return?
No separate entry is needed. Box 1 already includes the Code AA amount. Do not subtract it again. The Box 12 entry exists so the IRS can track your Roth contributions against the annual limit.
What is the difference between Code AA and Code D?
Code D is pre-tax. It lowers Box 1 now, and withdrawals are taxed later. Code AA is Roth. It leaves Box 1 unchanged now, and qualified withdrawals are tax-free later. Both share one annual elective deferral limit.
Does Code AA include my employer’s matching contributions?
No. Code AA covers only your own elective Roth deferrals. Employer matching contributions are tracked separately by the plan and do not appear in Box 12.
What happens if my Code D plus Code AA total goes over the limit?
The excess must generally be withdrawn, with its earnings, by April 15 of the following year. Contact your plan administrator right away. If the excess is not corrected on time, it can become taxable income and create extra paperwork.
Disclaimer: This post is general information only and is not tax advice. Every tax situation is different. For advice about your own W-2 or retirement plan, consult a qualified tax professional or contact the IRS directly.