Beancount.io LogoBeancount.io

Form 1099-R Box 7 Distribution Codes, Decoded

14 min readMike ThriftMike Thrift
Form 1099-R Box 7 Distribution Codes, Decoded

A single character in Box 7 of your Form 1099-R can mean the difference between a tax-free rollover and a 10% penalty on tens of thousands of dollars. That tiny letter or number tells the IRS — and your tax software — how to tax what came out of your retirement account. Get it wrong, and you may pay tax twice on the same dollar, miss a penalty exception you legitimately qualify for, or get a CP2000 notice 18 months later asking why you didn't report a "distribution" that was really a rollover.

Custodians and plan administrators code these forms based on what they know at the time. They don't always know your whole story — whether you're over 59½, whether you had separated from service, whether your Roth IRA crossed the five-year line, whether that loan offset was technically "qualified." Errors are common. Knowing what each code means, and how to fix it when it's wrong, is one of those quiet tax skills that pays for itself every January.

This guide decodes the codes you're most likely to see — 1, 2, 4, 7, G, H, M, and Q — and walks through how to spot a coding error before April 15.

What Form 1099-R Actually Reports

Form 1099-R reports distributions of $10 or more from retirement and annuity accounts. That includes:

  • 401(k), 403(b), and 457(b) employer plans
  • Traditional, Roth, SEP, and SIMPLE IRAs
  • Pensions and defined benefit payouts
  • Commercial annuities and insurance contracts
  • Disability payments from life insurance
  • Charitable gift annuities

The payer — your plan administrator, broker, or insurance company — sends one copy to you and one to the IRS. Box 1 shows the gross distribution. Box 2a shows the taxable portion. Box 4 shows federal tax withheld. And Box 7 holds the distribution code, the single most important field on the form for determining how the money is taxed.

Sometimes Box 7 has two characters. The IRS allows specific combinations — for example, "7D" means a normal distribution from a nonqualified annuity, and "1B" means an early Roth 401(k) distribution. The order matters: the numeric code generally goes first, with the letter as a modifier.

The Most Common Codes, Decoded

Code 7 — Normal Distribution

You were 59½ or older when the money left the account, and there's no exception or rollover involved. Code 7 is the default for retirees taking required minimum distributions, scheduled pension checks, or routine IRA withdrawals after 59½. The amount in Box 2a is taxable as ordinary income, but no 10% early-withdrawal penalty applies.

Watch out for: A Code 7 on a Roth IRA distribution does not automatically mean the distribution is tax-free. Roth IRAs use Code T or Q to signal qualified-distribution status. A "7" on a Roth IRA means you were over 59½, but the five-year rule and basis-recovery rules still need to be worked through on Form 8606.

Code 1 — Early Distribution, No Known Exception

You took money before 59½, and the payer has no way to verify that any exception applies. The full taxable amount is hit with ordinary income tax plus the 10% additional tax under IRC §72(t).

This is the most "defensive" code custodians use. Even if you genuinely qualify for an exception — medical expenses over 7.5% of AGI, higher education, first-time home purchase, qualified birth or adoption — the payer typically doesn't know about it and will report Code 1. The fix is on you: file Form 5329 with your return and use the proper exception code to back the penalty out.

Code 2 — Early Distribution, Exception Applies

You're under 59½, but the payer can verify an exception. This is the code you want when one of the following is true:

  • Rule of 55: You separated from your employer in or after the year you turned 55 and are taking distributions from that employer's qualified plan (not an IRA). Public-safety employees can use age 50.
  • SOSEPP / 72(t) payments: A series of substantially equal periodic payments based on your life expectancy.
  • IRS levy on the account
  • Qualified birth or adoption distributions up to $5,000 per child under SECURE Act
  • Qualified disaster, terminal illness, or domestic abuse distributions under SECURE 2.0

Code 2 means the 10% penalty does not apply. You still owe regular income tax on the taxable portion.

Code 4 — Death

This code is used for any distribution made to a beneficiary after the account owner has died, regardless of the beneficiary's age. There is no 10% penalty on a Code 4 distribution — death is its own exception. The taxable portion still flows to ordinary income.

If you inherited an IRA and rolled it into your own IRA as a spouse, the original 1099-R might show Code 4, while a subsequent distribution from your inherited (or transferred) account will use a code based on your age and circumstances. Spouse beneficiaries have unique flexibility; non-spouse beneficiaries are now generally bound by the SECURE Act 10-year rule.

Code G — Direct Rollover

The custodian sent the money directly to another qualified plan, 403(b), governmental 457(b), or traditional IRA. Box 1 will show the gross amount, but Box 2a should show $0 (or be blank) because nothing is taxable. The distribution is not subject to the 20% mandatory federal withholding that applies when you take cash from an employer plan.

Even though Code G means no tax is due, you still must report the rollover on your Form 1040. The gross distribution flows to line 5a (pensions) or 4a (IRAs), and you write "$0" or "Rollover" on the taxable line. Many taxpayers miss this and get an IRS letter the following year asking why a six-figure 1099-R wasn't reported.

Code H — Direct Rollover of a Roth Account to a Roth IRA

A direct rollover from a designated Roth 401(k) or Roth 403(b) account to a Roth IRA. Just like Code G, no tax is due, but the rollover still has to be reported on your tax return. Code H starts the five-year clock running on the receiving Roth IRA if it's your first.

Code M — Qualified Plan Loan Offset

You took a loan from your 401(k), then either separated from your employer or the plan was terminated, and the outstanding loan balance was "offset" against your account — meaning the plan zeroed out the loan by treating it as a distribution to you.

Before the Tax Cuts and Jobs Act, you had only 60 days to come up with the loan amount and roll it into an IRA to avoid tax and penalty. TCJA created the "qualified plan loan offset" (QPLO) category, which extends the rollover deadline to your tax-filing deadline plus extensions for the year of the offset. To qualify as a QPLO, the offset must be due to separation from service or plan termination, and the loan must have been in good standing.

A Code M on your 1099-R signals that the extended QPLO deadline may apply. If you roll the loan-offset amount (out of your own pocket) into an IRA by your tax deadline plus extensions, the offset is treated as a rollover and you owe no tax. Pair Code M with a 1 or 7 to indicate your age status.

Code Q — Qualified Roth Distribution

The custodian confirms the distribution meets the Roth qualified-distribution rules: the five-year holding period is satisfied, and the distribution is due to age 59½, death, or disability. Box 2a should be $0 because the distribution is entirely tax-free.

If you took money out of a Roth IRA that has been open more than five years and you're over 59½, this is the code you want. If the custodian doesn't know your full Roth history (especially common after a custodian transfer), they may default to Code T — "Roth distribution, exception applies, but holding period not verified by payer" — and you'll need to substantiate the five-year period yourself when filing.

Two-Character Code Combinations Worth Knowing

The IRS instructions allow specific code pairs. Some you may encounter:

  • 1B: Early distribution from a designated Roth account
  • 2B: Early Roth distribution with a verifiable exception
  • 7B: Normal Roth account distribution (not yet qualified by five-year rule)
  • 8J: Excess Roth IRA contributions returned (taxable in current year)
  • PJ: Excess Roth IRA contributions returned (taxable in prior year)
  • G4: Direct rollover initiated by a death beneficiary

A single 1099-R can have only one combination. If you took multiple types of distributions from the same account, the plan usually issues multiple 1099-Rs.

The Numbers Behind Why This Matters

The 10% additional tax under §72(t) sits on top of ordinary income tax. For someone in the 24% federal bracket withdrawing $50,000, the difference between Code 1 (early, no exception) and Code 2 (exception applies) is $5,000 — and that's before state income tax. Multiply across larger balances or higher brackets and a single miscoded form can cost a household more than a decent vacation.

The 20% mandatory withholding on plan distributions to participants is another sleeper. A $100,000 401(k) distribution gets $20,000 withheld at the source even if you intend to roll the whole thing into an IRA within 60 days. To complete the rollover, you'd need to come up with the missing $20,000 from other funds — or you'd owe income tax (and possibly penalty) on the shortfall. A properly executed direct rollover with Code G avoids the whole mess.

How to Read Your 1099-R in Three Minutes

When the form arrives, work through it in this order:

  1. Box 7 first. Identify the code and note any letter modifier. If you don't recognize it, look it up — even seasoned tax preparers occasionally have to.
  2. Compare Box 1 to Box 2a. If they differ, the payer is telling you part of the distribution is non-taxable (basis, rollover, or Roth qualified). If Box 2a is blank, the payer didn't compute it and you'll have to.
  3. Check the "Taxable amount not determined" box. If it's checked, the payer didn't try. You're responsible for computing the taxable portion on your return.
  4. Verify Box 4 (federal withholding) and Box 14 (state withholding). These are credits on your return; missing them means you'll over-pay or under-pay.
  5. Reconcile to your records. Pull the actual transaction history from the custodian. Was this a rollover, a hardship withdrawal, an RMD, or a return of excess contribution? Does the code match what really happened?

How to Spot a Coding Error

The most common red flags:

  • Code 1 when you were over 59½ the entire year. The custodian may have your date of birth wrong or used a default rule. Call them.
  • Code 1 when you separated from service at or after age 55. Rule of 55 should have produced Code 2, but the plan administrator must have known you separated.
  • Code 1 on a 72(t) SEPP distribution. Most IRA custodians do not code SOSEPP payments as Code 2 because they have no way to verify the series. You may need Form 5329 with exception code 02 to claim it.
  • Code 7 on what should have been a Code G direct rollover. This makes the entire distribution look taxable.
  • Code 4 with a non-zero Box 2a on an inherited Roth distribution that should have been qualified.
  • Missing Code Q on a Roth IRA distribution that legitimately satisfies the five-year rule and age 59½ — common after a custodian transfer.

Fixing a Wrong Code

You have two paths.

Path 1 — Get the custodian to issue a corrected 1099-R. Call the institution's tax-reporting department (not general customer service) and explain specifically what the correct code should be and why. Have your distribution paperwork and dates ready. If they agree, they'll issue a "CORRECTED" 1099-R with the same payer and recipient information and a check mark in the "Corrected" box at the top.

This is the cleaner path because the IRS database is updated to match. Aim to do this well before April 15, since corrected forms after that date can complicate filing.

Path 2 — Override on your own return. When the custodian refuses or can't help in time, you can still claim the correct treatment:

  • For penalty exceptions, file Form 5329 with the appropriate exception code on line 2.
  • For a rollover that wasn't coded as one, report the gross distribution on line 4a or 5a of Form 1040 and write "Rollover" next to the taxable amount on 4b or 5b, with $0 (or the non-rolled portion).
  • For a 1099-R you believe is materially wrong and the issuer won't correct, Form 4852 (Substitute for Form W-2 or 1099-R) lets you file with what you believe the correct figures are. Document everything — you may need it later.

Form 5329 exception codes worth remembering:

  • 01 — Separation from service after age 55 (qualified plans)
  • 02 — Substantially equal periodic payments under §72(t)
  • 03 — Total and permanent disability
  • 04 — Death of plan participant or IRA owner
  • 05 — Unreimbursed medical expenses above 7.5% of AGI
  • 06 — Qualified Domestic Relations Order (QDRO)
  • 08 — Higher education expenses
  • 09 — First-time home purchase (up to $10,000 lifetime, IRA only)
  • 12 — Other (see instructions; covers many SECURE 2.0 exceptions)

Where the Tax Software Often Goes Wrong

Consumer tax programs key heavily off Box 7. If you import a 1099-R with Code 1, the program assumes 10% penalty until you check a box or file Form 5329. If you import a Code G with non-zero Box 2a, the program will treat the difference as taxable — even though most direct rollovers should show $0 in 2a.

Two habits help:

  1. Always review every imported 1099-R. Don't trust the import to interpret Box 2a correctly, especially on rollovers and Roth distributions.
  2. Reconcile to Form 1040 lines 4a/4b and 5a/5b before filing. The "a" lines show gross; the "b" lines show taxable. They should differ by the amount of any rollover or non-taxable Roth distribution.

Special Situations to Watch

QDRO distributions to a former spouse. The plan should issue the 1099-R to the alternate payee (the ex-spouse who received the money), with Code 2 if they're under 59½. If the original employee-spouse receives the 1099-R for a QDRO payment that went to the ex, that's a coding error worth fixing.

Excess Roth IRA contributions returned with earnings. Watch for codes 8J or PJ. Only the earnings are taxable, but if the return happens after the tax-filing deadline, both the gross contribution and earnings may be miscoded.

Backdoor Roth conversions. A traditional-to-Roth conversion shows Code 2 (if under 59½ with the conversion exception) or Code 7 (if 59½+). The conversion is taxable to the extent of pre-tax dollars in your IRA aggregate — the pro-rata rule on Form 8606 determines the actual taxable amount, not Box 2a alone.

RMDs missed and corrected. A late RMD makeup distribution generally gets the normal code (7) for the year it's paid, not the year it was due. You may still owe the 25% missed-RMD excise tax (reduced from 50% under SECURE 2.0), which is calculated separately on Form 5329 Part IX.

Why Clean Record-Keeping Matters Year-Round

Most 1099-R errors aren't malicious — they reflect what the custodian could see at the time. If you've changed plan administrators, rolled IRAs between brokerages, or set up a 72(t) SEPP series, the new custodian may have no clue about the history that determines correct coding. The burden falls on you to maintain that history.

The taxpayers who handle these situations smoothly aren't the ones with the most sophisticated tax software — they're the ones who track every distribution, rollover, and basis adjustment in their own records. When the 1099-R arrives in January, they can cross-check it in minutes. When something looks wrong, they can produce a paper trail in hours instead of weeks.

That kind of discipline isn't glamorous, but it routinely saves four-figure penalties and prevents the silent compounding tragedy of paying tax twice on the same retirement dollar.

Keep Your Retirement Records Audit-Ready

As you take distributions, run rollovers, and navigate Roth conversions, the only person guaranteed to know your full retirement-account story is you — not your custodian, not the IRS. Beancount.io provides plain-text accounting that's transparent, version-controlled, and AI-ready, so every contribution, rollover, and distribution lives in records you actually own. Get started for free and bring the same clarity to your retirement tracking that the best tax professionals use.