Include traditional IRA and 401(k)/403(b) distributions in state retirement exclusions across 20 states - #9423
Conversation
…rement exclusions across 20 states Fixes PolicyEngine#9005 by ensuring traditional IRA, 401(k), 403(b), SEP, and Keogh distributions are included in state retirement and pension income exclusions according to each state's statutory rules across 20 affected states: NY, DE, MO, MI, CT, IL, MS, SC, IA, NJ, WI, ME, CO, GA, OK, OH, ND, MD, RI, AR.
Program reviewBase repository: PolicyEngine/policyengine-us Source DocumentsCriticalC1 — Connecticut applies the pension percentage to IRA distributions instead of the statutory IRA phase-in (OPEN)
Should AddressA1 — [MAJOR — test coverage] The two 2023 source-list transitions are not tested on both sides of the effective date (OPEN)
A2 — [MAJOR — test coverage] Three changed Michigan calculation paths have no PR-added retirement-distribution regression case (OPEN)
A3 — [MAJOR — test coverage] The New Jersey case does not exercise the new gross-income inclusion or the resulting tax calculation (OPEN)
SuggestionsNone. Evidence Gaps
Notes
Validation SummaryExact detached head imported successfully. All 21 changed YAML files ran together: 175 passed with 1 warning in 12.64 seconds. The full 1,320-line diff was inspected; no partner contract test is changed. Focused microsimulation, Ruff, and the final bounded-runner status are unrecovered; see raw recovered test log. Source integrity: 1 official Connecticut statute HTML accepted, 0 rejected, 0 discarded derivatives. Timingsetup seconds: 335.00s; scope seconds: 95.00s; parallel review seconds: 1450.00s; policy role seconds: 1330.00s; code role seconds: 1476.00s; adjudication seconds: 66.00s; consolidation cleanup seconds: 26.00s; elapsed seconds: 1972.00s Review SeverityREQUEST_CHANGES. Open findings: 1 critical, 3 should address, 0 suggestions. |
…test coverage - Separate CT pension/annuity sources from IRA sources and apply statutory IRA phase-in percentage (C.G.S. § 12-701(a)(20)(B)(xxvii)-(xxx)) - Add 2022 vs 2023 transition boundary test cases for both CT and RI - Add regression tests exercising 401(k) and IRA distributions in MI expanded and tier-three retirement deduction branches - Add NJ gross income inclusion test and under-62 exclusion ineligible test
|
Thank you for the thorough and constructive review! All four findings have been addressed in commit fc60b36:
All 64 tests across the updated suites and all 630 partner contract tests pass cleanly. |
Fixes #9005
Summary
At the federal level, retirement account distributions (traditional IRAs, 401(k)s, 403(b)s, SEPs, and Keoghs) were split from
taxable_pension_incomeintotaxable_retirement_distributions(and individual component variables). State retirement and pension exclusions in PolicyEngine previously only referencedtaxable_pension_incomein most states, omitting traditional IRA, 401(k), and 403(b) distributions where state statutes allow them.A comprehensive audit of state retirement tax provisions across all 50 states was conducted. This PR updates all 20 affected states in accordance with statutory rules:
ny): Createdsources.yamlparameter containing pensions, traditional IRAs, 401(k), 403(b), SEP, and Keoghs; updatedny_pension_exclusionformula.de): Updatedincome_sources.yamlto include traditional IRAs, 401(k), 403(b), SEP, and Keoghs for the age 60+ pension exclusion.mo): Createdmo_private_pension_sources.yamlparameter; updatedmo_pension_and_ss_or_ssd_deduction_section_b.mi): Createdsources.yamlandprivate_retirement_sources.yaml; updated retirement benefit tier deduction formulas.ct): Createdsources.yamlincluding 401(k)/403(b) for all years and traditional IRAs for 2023+; updatedct_pension_annuity_subtraction.il): Addedtaxable_retirement_distributionstoparameters/.../base/subtractions.yaml.ms): Createdretirement_exemption_sources.yamland updatedms_retirement_income_exemption.sc): Createdsources.yamland updatedsc_retirement_deduction_indv.ia): Createdsources.yamland updatedia_pension_exclusion.nj): Createdsources.yamlfor pension/retirement exclusion; updated gross incomenon_negative_sources.yamlto include 401(k), 403(b), SEP, Keogh distributions.wi): Createdsources.yaml; updatedwi_retirement_income_subtractionandwi_retirement_income_exclusion_amount.me): Createdsources.yaml; updatedme_pension_income_deduction.co): Added 401(k), 403(b), SEP, Keogh distributions toparameters/.../pension/income_sources.yaml.ga): Added 401(k), 403(b), SEP, Keogh distributions toparameters/.../exclusions/retirement/sources.yaml.ok): Createdpension_sources.yamland updatedok_pension_subtraction.oh): Createdsources.yamland updatedoh_pension_based_retirement_income_credit.nd): Createdqualified_income_sources.yamland updatednd_mpc.md): Createdsources.yamlincluding employer retirement plans (401k, 403b) while preserving the statutory exclusion of IRAs (Md. Code Ann., Tax-Gen. § 10-209).ri): Createdsources.yamlincluding 401(k) and 403(b) distributions from 2023+ while preserving the statutory exclusion of IRAs (R.I. Gen. Laws § 44-30-12(c)(9)).ar): Createdemployment_sources.yamlfor employment-related retirement plans (401k, 403b, SEP, Keogh) while preserving the statutory age-59½ condition for IRA distributions (Ark. Code Ann. § 26-51-307).Testing & Quality Checks
tests/policy/baseline/partners/passed without breaking changes.make format(ruff formatandruff checkpassed cleanly).changelog.d/state-retirement-distributions.fixed.md.