The SECURE Act of 2019 introduced changes to required minimum distribution rules that most engines absorbed reasonably well. SECURE 2.0, signed in late 2022 with provisions phasing in across 2023–2033, made changes that broke essentially every production RMD engine we audited. This article is the working note for engineering teams whose product touches RMDs — the changes that matter, the bugs that ship when the engine is patched instead of rebuilt, and what a 2026-grade RMD engine has to do. For the conversion-strategy half of the same regime change, see the Roth conversion ladder under SECURE 2.0.
What SECURE 2.0 actually changed
The headline changes get the most attention; the operational changes cause more bugs. The full inventory:
| Pre-SECURE 2.0 | Post-SECURE 2.0 | |
|---|---|---|
| RMD start age | 72 (post-SECURE 1.0) | 73 (2023–2032), then 75 (2033+) |
| RMD penalty for missed distribution | 50% excise tax | 25%, reduced to 10% if corrected within 2 years |
| Roth 401(k) RMDs | Required from age 73 | No RMD during owner's lifetime (2024+) |
| QCD limit | $100,000 fixed | $108,000 in 2025; indexed annually |
| QCD to split-interest entities | Not allowed | Up to $54,000 lifetime to CRTs / CGAs (2025) |
| Surviving spouse election | Treat as own / treat as inherited | New election to be treated as the deceased — sometimes optimal |
| Inherited Roth IRAs | No RMD during 10-year window for non-spouse beneficiaries | Annual RMDs in years 1–9 if owner died after RBD (clarified 2024) |
| 529-to-Roth rollover | Not allowed | Up to $35,000 lifetime, with constraints (2024+) |
Most engines we audit handle the headline changes (start age, penalty rate) correctly. The bugs cluster around the operational ones — the QCD inflation indexing, the inherited Roth annual-RMD clarification, the surviving spouse election interaction with the new start ages.
Failure mode 1: the rolling effective age
SECURE 2.0 introduced a non-uniform start-age rule. Owners born in 1951–1959 have a start age of 73; owners born in 1960 or later have a start age of 75. The transition is a hard step at one specific birth year — there is no graduation period.
Most engines we audit hard-code "73" or have a single config flag for the start age. Both approaches break when 1960-born owners turn 75 in 2035 — a year that feels distant but that the engine projects into routinely on any retirement plan run today. A 2026-vintage retirement projection for a 65-year-old born in 1961 has to use a start age of 75, and the engine that uses 73 silently produces wrong RMD timing for the entire projection.
rmd_start_age = 73 if birth_year ≤ 1959 else 75- birth_year
- = Owner's birth year. The cutoff is the year, not the date.
- 73 / 75
- = Statutory ages; further changes are not currently scheduled but legislative risk exists.
Failure mode 2: the 10-year rule for inherited IRAs
The original SECURE Act eliminated the "stretch IRA" for most non-spouse beneficiaries, replacing it with a 10-year rule: the entire inherited IRA must be distributed within 10 years of the owner's death. The IRS proposed regulations in 2022 that introduced an additional layer most practitioners didn't expect: if the owner died on or after their required beginning date, the beneficiary must take annual RMDs in years 1–9 of the 10-year window AND empty the account by year 10.
The IRS waived enforcement of the annual RMD requirement for 2021–2024 (giving practitioners time to adjust) and finalized the rules in 2024 with effect from 2025. Engines that absorbed only the 10-year final-distribution rule and not the annual interim RMD rule are now producing wrong RMD calculations for every inherited IRA where the owner died after their RBD.
Failure mode 3: surviving spouse election
SECURE 2.0 added a third option for surviving spouses (in addition to the existing "treat as own" and "treat as inherited" options): election to be treated as the deceased owner. The election is sometimes optimal — for example, when the deceased had not yet reached RBD and the surviving spouse is significantly younger.
The optimal election depends on:
- Whether the deceased had reached RBD
- The age difference between deceased and surviving spouse
- The surviving spouse's own RMD start age (which depends on their own birth year, per failure mode 1)
- Whether the surviving spouse plans Roth conversions during the gap years
Engines that pick a single default election and don't model the alternative are producing suboptimal recommendations for surviving spouses — and the suboptimality compounds across the rest of the retirement projection.
Failure mode 4: QCD inflation indexing
Qualified charitable distributions had a fixed $100,000 limit since enactment in 2015. SECURE 2.0 indexed the limit to inflation starting in 2024. The 2025 limit is $108,000; 2026 will be higher. Engines that hard-code $100,000 are producing too-low QCD recommendations every year going forward.
The QCD limit interacts with several other RMD-adjacent calculations:
- Interaction 1RMD reductionQCD reduces the otherwise-required RMD up to the QCD amount. The reduction is in the year of the distribution and applies even if the QCD is greater than the RMD that year.
- Interaction 2AGI reductionQCD is excluded from AGI in addition to the standard deduction. This can move the household below NIIT thresholds, IRMAA brackets, and Social Security taxability thresholds.
- Interaction 3ACA premium subsidyLower AGI from QCDs preserves ACA premium subsidies for households between 65 and 65 (specifically: a household with a non-Medicare spouse). This interaction is entirely missed by engines that don't model ACA.
- Interaction 4Split-interest entity QCDSECURE 2.0 allows a one-time QCD up to $54,000 (2025) to a CRT or CGA. The CRT/CGA then makes payments to the donor. Engines that don't model this miss a meaningful planning option for charitably-inclined retirees.
The interactions are where the value of QCD modeling lives. An engine that just zeroes out the RMD up to the QCD limit is computing one of four effects.
What a 2026-grade engine has to do
A production-grade RMD engine in 2026 has the following invariants. We use this list as a procurement rubric for any wealth-tech product that claims RMD coverage.
2026 RMD engine invariants
- Compute start age per owner from birth year, not from a single config flag.
- Distinguish died-before-RBD from died-after-RBD for every inherited account in the household.
- Apply annual RMDs during the 10-year window when the owner died after RBD.
- Evaluate all three surviving-spouse elections and recommend rather than defaulting.
- Index QCD limits annually. Track the QCD limit in a refreshable table, not a constant.
- Model QCD interactions with NIIT, IRMAA, Social Security taxability, and ACA premium subsidies.
- Support split-interest entity QCDs (CRT, CGA) up to the lifetime cap.
- Handle Roth 401(k) RMD elimination for plans active on or after 2024.
- Track 529-to-Roth rollover eligibility and the $35,000 lifetime cap.
- Compute the reduced excise tax (10% if corrected within 2 years) for missed RMD scenarios.
The checklist is not exhaustive. SECURE 2.0 has provisions phasing in through 2033, and the IRS will continue issuing guidance through that period. The engine should be designed for ongoing change, not for a fixed rule set.
Why this matters for synthetic test data
A wealth-tech engine that touches RMDs needs test data that exercises every branch in the SECURE 2.0 logic tree. A test corpus where every household has owners born in 1955 (age 70 in 2025, RMD start age 73) tests one branch. The corpus that catches engine bugs has:
- Households with owners born in 1959 (start age 73)
- Households with owners born in 1960 (start age 75)
- Inherited accounts where the deceased died before RBD
- Inherited accounts where the deceased died after RBD
- Surviving spouses with each of the three election options as the optimal choice
- Households at or near the QCD limit, with charitable intent
- Households with Roth 401(k) balances active in 2024+
- Households executing 529-to-Roth rollovers
The corpus is meaningfully more complex than the pre-SECURE-2.0 version. Engines that haven't been retested against a SECURE 2.0-aware corpus are increasingly likely to be shipping bugs.
Key takeaways
- SECURE 2.0 changed RMD rules in ways that require engine rewrites, not patches. The non-uniform start age and inherited-Roth annual RMD requirements are the most commonly mis-handled.
- The start age is a function of birth year (73 for 1951–1959; 75 for 1960+). Engines using a single config flag are wrong for any owner born after 1959.
- The IRS finalized the inherited-IRA 10-year rule in 2024 with annual RMDs required in years 1–9 when the owner died after RBD. Engines that absorbed only the 10-year final rule are wrong.
- QCD limits are now inflation-indexed ($108,000 in 2025). Engines hard-coding $100,000 are off every year.
- The QCD interaction with NIIT, IRMAA, Social Security taxability, and ACA premium subsidies is where the planning value lives. Engines that just zero out RMDs up to QCD miss most of the benefit.
- Test data should exercise every SECURE 2.0 branch — different birth years, different RBD-status of inherited accounts, all three surviving-spouse elections, QCD edges, Roth 401(k) accounts, 529-to-Roth rollovers.