From 9ebd9531db57197779431953ee1abc29efb00c01 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Tue, 24 Mar 2026 11:05:26 -0400 Subject: [PATCH 1/2] Add annual additions retirement limit parameter --- .../retirement_contributions/limit/401k.yaml | 2 +- .../limit/annual_additions.yaml | 25 +++++++++++++++++++ .../parameters/test_uprating_extensions.py | 22 ++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 policyengine_us/parameters/gov/irs/gross_income/retirement_contributions/limit/annual_additions.yaml diff --git a/policyengine_us/parameters/gov/irs/gross_income/retirement_contributions/limit/401k.yaml b/policyengine_us/parameters/gov/irs/gross_income/retirement_contributions/limit/401k.yaml index ced5eddcded..000c686dab2 100644 --- a/policyengine_us/parameters/gov/irs/gross_income/retirement_contributions/limit/401k.yaml +++ b/policyengine_us/parameters/gov/irs/gross_income/retirement_contributions/limit/401k.yaml @@ -7,6 +7,7 @@ values: 2023-01-01: 22_500 2024-01-01: 23_000 2025-01-01: 23_500 + 2026-01-01: 24_500 metadata: unit: currency-USD period: year @@ -22,4 +23,3 @@ metadata: # Inflation adjusted amounts - title: Cost-of-Living Adjustments for Retirement Items href: https://www.irs.gov/pub/irs-tege/cola-table.pdf#page=1 - diff --git a/policyengine_us/parameters/gov/irs/gross_income/retirement_contributions/limit/annual_additions.yaml b/policyengine_us/parameters/gov/irs/gross_income/retirement_contributions/limit/annual_additions.yaml new file mode 100644 index 00000000000..d2a9512c9d1 --- /dev/null +++ b/policyengine_us/parameters/gov/irs/gross_income/retirement_contributions/limit/annual_additions.yaml @@ -0,0 +1,25 @@ +description: The US limits annual additions to a defined contribution plan to this amount. +values: + 2018-01-01: 55_000 + 2019-01-01: 56_000 + 2020-01-01: 57_000 + 2021-01-01: 58_000 + 2022-01-01: 61_000 + 2023-01-01: 66_000 + 2024-01-01: 69_000 + 2025-01-01: 70_000 + 2026-01-01: 72_000 +metadata: + unit: currency-USD + period: year + label: defined contribution annual additions limit + uprating: + parameter: gov.irs.uprating + rounding: + type: downwards + interval: 1000 + references: + - title: 26 U.S. Code ยง 415 - Limitations on benefits and contributions under qualified plans + href: https://www.law.cornell.edu/uscode/text/26/415 + - title: Cost-of-Living Adjustments for Retirement Items + href: https://www.irs.gov/pub/irs-tege/cola-table.pdf#page=1 diff --git a/policyengine_us/tests/policy/baseline/parameters/test_uprating_extensions.py b/policyengine_us/tests/policy/baseline/parameters/test_uprating_extensions.py index 7a821e9b03d..cc9e8eed1a0 100644 --- a/policyengine_us/tests/policy/baseline/parameters/test_uprating_extensions.py +++ b/policyengine_us/tests/policy/baseline/parameters/test_uprating_extensions.py @@ -104,3 +104,25 @@ def test_cpi_relationships(): # Just verify both exist and are positive assert cpi_u > 0, f"CPI-U should be positive in {year}" assert c_cpi_u > 0, f"Chained CPI-U should be positive in {year}" + + +def test_retirement_contribution_limits_include_latest_explicit_irs_values(): + """Retirement contribution parameters should reflect the latest published IRS anchors.""" + from policyengine_us import Microsimulation + + sim = Microsimulation() + + p2025 = sim.tax_benefit_system.parameters("2025-01-01") + p2026 = sim.tax_benefit_system.parameters("2026-01-01") + p2027 = sim.tax_benefit_system.parameters("2027-01-01") + + limits2025 = p2025.gov.irs.gross_income.retirement_contributions.limit + limits2026 = p2026.gov.irs.gross_income.retirement_contributions.limit + limits2027 = p2027.gov.irs.gross_income.retirement_contributions.limit + + assert limits2025["401k"] == 23_500 + assert limits2026["401k"] == 24_500 + assert limits2026.annual_additions == 72_000 + + assert limits2027["401k"] >= limits2026["401k"] + assert limits2027.annual_additions >= limits2026.annual_additions From 71549545df1a2f3aca238b5abc2ef3f3c6aeb294 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Fri, 17 Apr 2026 13:22:21 -0400 Subject: [PATCH 2/2] Add changelog fragment for annual additions retirement limit --- changelog.d/annual-additions-limit.added.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog.d/annual-additions-limit.added.md diff --git a/changelog.d/annual-additions-limit.added.md b/changelog.d/annual-additions-limit.added.md new file mode 100644 index 00000000000..af60cace694 --- /dev/null +++ b/changelog.d/annual-additions-limit.added.md @@ -0,0 +1 @@ +Add the IRS annual additions retirement contribution limit parameter and update the 401(k) elective deferral limit to the published 2026 value.