Moving $20K of Unused 529 Funds to a Roth IRA Takes 3 Years, Not One

SECURE 2.0 lets unused 529 funds roll into the beneficiary's Roth IRA — but the $35,000 lifetime cap shares room with the annual Roth contribution limit, so a $20,000 balance takes about 3 years to move, and a $50,000 balance leaves $15,000 permanently stuck.

⚠ Confirm eligibility first. This assumes the 529 account has already met the 15-year account-age requirement and the funds being rolled over have been in the account for at least 5 years — both yes/no eligibility facts to confirm with your 529 plan administrator, not something this calculator determines. Not tax advice.

A multi-year project, not a single transaction

We ran a common leftover-529 scenario through the calculator: $20,000 unused after the beneficiary's education is fully paid for, no prior rollovers, and a beneficiary earning enough to use the full annual Roth room. Under the $7,000 2025 annual Roth contribution limit, it takes 3 years to move the full $20,000 into the Roth IRA — the rollover shares the same annual cap as any other Roth contribution the beneficiary makes, so it can't happen in one shot no matter how large the 529 balance is.

Scale the leftover balance up to $50,000, and the math changes qualitatively, not just in timeline: the $35,000 lifetime cap per beneficiary means $15,000 can never reach the Roth IRA through this mechanism at all, regardless of how many years the family is willing to wait. That portion either stays in the 529 for a future beneficiary, or exits through a non-qualified withdrawal — earnings taxed as income plus a 10% penalty.

How the math works

Lifetime cap remaining = $35,000 − already rolled over. Total rollover target = min(unused 529 funds, lifetime cap remaining). Each year's actual rollover is capped by min(annual Roth limit − other Roth contributions planned, beneficiary's earned income) — the beneficiary needs earned income at least equal to the amount rolled over that year, the same requirement as any regular Roth contribution. Years to complete = total rollover target ÷ max rollover per year, rounded up.

Source: SECURE 2.0 Act of 2022, §126; IRS 2025 Roth IRA contribution limits ($7,000 under age 50, $8,000 age 50+).

Math runs locally. Inputs never leave your browser.Source on github.

Where this calculation doesn't apply

  • The 15-year account age or 5-year contribution-seasoning rule isn't met yet.Neither requirement is modeled here — they're eligibility gates to confirm with the plan administrator before any rollover is possible at all, regardless of what this calculator shows.
  • The beneficiary has little or no earned income.A full-time student with no job can't roll over more than their actual earned income for the year, which can make the "years to complete" estimate much longer than the dollar cap alone would suggest.
  • A future beneficiary change is possible.529 accounts can change beneficiaries to another family member — for a large leftover balance, that may be simpler than a multi-year Roth rollover project, especially if the $35,000 lifetime cap would strand a meaningful amount.
  • The 529 might still be needed for future education.Graduate school, a certificate program, or a future grandchild are all still-qualified uses — rolling everything to a Roth IRA forecloses those options for those specific dollars.

What to actually do

  1. Confirm with the 529 plan administrator that the 15-year account-age and 5-year contribution-seasoning requirements are actually met.
  2. Check the beneficiary's actual earned income for the year — it's a hard ceiling on that year's rollover, not just the annual Roth limit.
  3. Coordinate with any other Roth IRA contributions the beneficiary plans to make, since they share the same annual room.
  4. If the balance exceeds the $35,000 lifetime cap, consider whether a beneficiary change to another family member makes more sense for the excess.
  5. Talk to a tax professional before initiating the first rollover — the 529 plan and the receiving Roth IRA custodian both need to report it correctly.