From b19fb3e903d87e455e2257d5cb207389184d8dea Mon Sep 17 00:00:00 2001 From: David Trimmer Date: Wed, 14 Oct 2026 10:27:33 -0400 Subject: [PATCH 1/2] Update Social Security and SSI parameters for the 2027 COLA SSA announced a 3.6% COLA for 2027 on October 14, 2026. Record the 2026Q3 CPI-W average (328.746) as the 2027 SSA uprating index, the 2027 SSI federal payment amounts ($1,029 individual, $1,544 couple), the SSI student earned income exclusion ($2,500 monthly, $10,080 annual), and the official $192,300 contribution and benefit base. Derive the 2025 national average wage index from the official 2027 base instead of CBO's forecast. The uprating extensions then reproduce the announced 2027 quarter of coverage, earnings test exempt amounts and SGA amounts, which a new test pins. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01LqCGPgxDukji8Bhs57c5rH --- changelog.d/ssa-2027-cola.changed.md | 1 + .../gov/irs/payroll/social_security/cap.yaml | 6 ++- policyengine_us/parameters/gov/ssa/nawi.yaml | 6 ++- .../parameters/gov/ssa/ssi/amount/couple.yaml | 3 ++ .../gov/ssa/ssi/amount/individual.yaml | 3 ++ .../amount.yaml | 3 ++ .../cap.yaml | 3 ++ .../parameters/gov/ssa/uprating.yaml | 6 ++- .../parameters/test_uprating_extensions.py | 37 +++++++++++++++++++ 9 files changed, 63 insertions(+), 5 deletions(-) create mode 100644 changelog.d/ssa-2027-cola.changed.md diff --git a/changelog.d/ssa-2027-cola.changed.md b/changelog.d/ssa-2027-cola.changed.md new file mode 100644 index 00000000000..9aa688781a9 --- /dev/null +++ b/changelog.d/ssa-2027-cola.changed.md @@ -0,0 +1 @@ +Update Social Security and SSI parameters for the 2027 cost-of-living adjustment: the 2027 SSA CPI-W uprating index, SSI federal payment amounts, the SSI student earned income exclusion, the contribution and benefit base, and the 2025 national average wage index that sets the 2027 wage-indexed amounts. diff --git a/policyengine_us/parameters/gov/irs/payroll/social_security/cap.yaml b/policyengine_us/parameters/gov/irs/payroll/social_security/cap.yaml index a5e30e50148..28db185a1c4 100644 --- a/policyengine_us/parameters/gov/irs/payroll/social_security/cap.yaml +++ b/policyengine_us/parameters/gov/irs/payroll/social_security/cap.yaml @@ -58,10 +58,10 @@ values: 2023-01-01: 160_200 2024-01-01: 168_600 2025-01-01: 176_100 - # Official SSA determination. + # Official SSA determinations. 2026-01-01: 184_500 + 2027-01-01: 192_300 # CBO forecast. - 2027-01-01: 192_600 2028-01-01: 198_600 2029-01-01: 206_400 2030-01-01: 214_200 @@ -85,6 +85,8 @@ metadata: # Defines wages for FICA tax purposes as amounts from the benefit base. - title: Contribution And Benefit Base href: https://www.ssa.gov/oact/cola/cbb.html + - title: 2027 Cost-of-Living Adjustment (COLA) Fact Sheet + href: https://www.ssa.gov/news/en/cola/factsheets/2027.html - title: CBO Tax Parameters and Effective Marginal Tax Rates | Jan 2025 # 1. Tax Parameters. Row 161. href: https://www.cbo.gov/system/files/2025-01/53724-2025-01-Tax-Parameters.xlsx diff --git a/policyengine_us/parameters/gov/ssa/nawi.yaml b/policyengine_us/parameters/gov/ssa/nawi.yaml index 1cdec755b94..d4142e0edb9 100644 --- a/policyengine_us/parameters/gov/ssa/nawi.yaml +++ b/policyengine_us/parameters/gov/ssa/nawi.yaml @@ -82,8 +82,8 @@ values: # CBB(Y) is the Contribution and Benefit Base (payroll tax cap) for year Y. # NAWI(Y-2) is the National Average Wage Index for year Y-2. - # For 2025 NAWI, derived from CBO CBB(2027) = 192_600: 192_600 * (22_935.42 / 60_600) - 2025-01-01: 72_891.30 + # For 2025 NAWI, derived from the official SSA CBB(2027) = 192_300: 192_300 * (22_935.42 / 60_600) + 2025-01-01: 72_780.22 # For 2026 NAWI, derived from CBO CBB(2028) = 198_600: 198_600 * (22_935.42 / 60_600) 2026-01-01: 75_168.61 # For 2027 NAWI, derived from CBO CBB(2029) = 206_400: 206_400 * (22_935.42 / 60_600) @@ -115,3 +115,5 @@ metadata: reference: - title: Social Security National Average Wage Index href: https://www.ssa.gov/oact/cola/AWI.html#Series + - title: 2027 Cost-of-Living Adjustment (COLA) Fact Sheet + href: https://www.ssa.gov/news/en/cola/factsheets/2027.html diff --git a/policyengine_us/parameters/gov/ssa/ssi/amount/couple.yaml b/policyengine_us/parameters/gov/ssa/ssi/amount/couple.yaml index f92766064d1..91e34285c67 100644 --- a/policyengine_us/parameters/gov/ssa/ssi/amount/couple.yaml +++ b/policyengine_us/parameters/gov/ssa/ssi/amount/couple.yaml @@ -53,6 +53,7 @@ values: 2024-01-01: 1_415 2025-01-01: 1_450 2026-01-01: 1_491 + 2027-01-01: 1_544 metadata: label: Monthly maximum Federal SSI payment amounts for an eligible individual with an eligible spouse uprating: gov.ssa.uprating @@ -61,3 +62,5 @@ metadata: reference: - title: SSI Federal Payment Amounts href: https://www.ssa.gov/oact/cola/SSIamts.html + - title: 2027 Cost-of-Living Adjustment (COLA) Fact Sheet + href: https://www.ssa.gov/news/en/cola/factsheets/2027.html diff --git a/policyengine_us/parameters/gov/ssa/ssi/amount/individual.yaml b/policyengine_us/parameters/gov/ssa/ssi/amount/individual.yaml index d7388c56e36..9cd8809ac58 100644 --- a/policyengine_us/parameters/gov/ssa/ssi/amount/individual.yaml +++ b/policyengine_us/parameters/gov/ssa/ssi/amount/individual.yaml @@ -53,6 +53,7 @@ values: 2024-01-01: 943 2025-01-01: 967 2026-01-01: 994 + 2027-01-01: 1_029 metadata: label: Monthly maximum Federal SSI payment amounts for an eligible individual uprating: gov.ssa.uprating @@ -61,3 +62,5 @@ metadata: reference: - title: SSI Federal Payment Amounts href: https://www.ssa.gov/oact/cola/SSIamts.html + - title: 2027 Cost-of-Living Adjustment (COLA) Fact Sheet + href: https://www.ssa.gov/news/en/cola/factsheets/2027.html diff --git a/policyengine_us/parameters/gov/ssa/ssi/income/exclusions/blind_or_disabled_working_student/amount.yaml b/policyengine_us/parameters/gov/ssa/ssi/income/exclusions/blind_or_disabled_working_student/amount.yaml index 7a07b701727..ce92585ac24 100644 --- a/policyengine_us/parameters/gov/ssa/ssi/income/exclusions/blind_or_disabled_working_student/amount.yaml +++ b/policyengine_us/parameters/gov/ssa/ssi/income/exclusions/blind_or_disabled_working_student/amount.yaml @@ -25,6 +25,7 @@ values: 2024-01-01: 2_290 2025-01-01: 2_350 2026-01-01: 2_410 + 2027-01-01: 2_500 metadata: uprating: parameter: gov.ssa.uprating @@ -67,3 +68,5 @@ metadata: href: https://www.ssa.gov/OACT/ssir/SSI24/V_E_WorkIncentives.html - title: Student Earned Income Exclusion for SSI href: https://www.ssa.gov/oact/cola/studentEIE.html + - title: 2027 Cost-of-Living Adjustment (COLA) Fact Sheet + href: https://www.ssa.gov/news/en/cola/factsheets/2027.html diff --git a/policyengine_us/parameters/gov/ssa/ssi/income/exclusions/blind_or_disabled_working_student/cap.yaml b/policyengine_us/parameters/gov/ssa/ssi/income/exclusions/blind_or_disabled_working_student/cap.yaml index 1254da0a6e3..daac488481e 100644 --- a/policyengine_us/parameters/gov/ssa/ssi/income/exclusions/blind_or_disabled_working_student/cap.yaml +++ b/policyengine_us/parameters/gov/ssa/ssi/income/exclusions/blind_or_disabled_working_student/cap.yaml @@ -25,6 +25,7 @@ values: 2024-01-01: 9_230 2025-01-01: 9_460 2026-01-01: 9_730 + 2027-01-01: 10_080 metadata: uprating: parameter: gov.ssa.uprating @@ -67,3 +68,5 @@ metadata: href: https://www.ssa.gov/OACT/ssir/SSI24/V_E_WorkIncentives.html - title: Student Earned Income Exclusion for SSI href: https://www.ssa.gov/oact/cola/studentEIE.html + - title: 2027 Cost-of-Living Adjustment (COLA) Fact Sheet + href: https://www.ssa.gov/news/en/cola/factsheets/2027.html diff --git a/policyengine_us/parameters/gov/ssa/uprating.yaml b/policyengine_us/parameters/gov/ssa/uprating.yaml index c8940519456..1f20e9256d6 100644 --- a/policyengine_us/parameters/gov/ssa/uprating.yaml +++ b/policyengine_us/parameters/gov/ssa/uprating.yaml @@ -6,8 +6,8 @@ values: 2024-01-01: 301.236 # 2023Q3: (299.899 + 301.551 + 302.257) / 3 2025-01-01: 308.729 # 2024Q3: (308.501 + 308.640 + 309.046) / 3 2026-01-01: 317.265 # 2025Q3: (316.349 + 317.306 + 318.139) / 3 + 2027-01-01: 328.746 # 2026Q3: (327.104 + 328.481 + 330.654) / 3 # Forecasts from marrying CPI-W actuals with CBO's CPI-U forecast. - 2027-01-01: 326.149 # 2026Q3: 330.1 * 306.199 / 310.989 2028-01-01: 332.241 # 2027Q3: 337.3 * 306.199 / 310.989 2029-01-01: 339.431 # 2028Q3: 344.6 * 306.199 / 310.989 2030-01-01: 346.917 # 2029Q3: 352.2 * 306.199 / 310.989 @@ -24,5 +24,9 @@ metadata: reference: - title: Historical values href: https://www.ssa.gov/oact/cola/colaseries.html + - title: BLS CPI-W, U.S. city average, all items, not seasonally adjusted (CWUR0000SA0) + href: https://data.bls.gov/timeseries/CWUR0000SA0 + - title: 2027 Cost-of-Living Adjustment (COLA) Fact Sheet + href: https://www.ssa.gov/news/en/cola/factsheets/2027.html - title: CBO Economic Projections, February 2024. href: https://www.cbo.gov/publication/59710 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 1f26e51c99b..fb58348e905 100644 --- a/policyengine_us/tests/policy/baseline/parameters/test_uprating_extensions.py +++ b/policyengine_us/tests/policy/baseline/parameters/test_uprating_extensions.py @@ -337,6 +337,13 @@ def test_social_security_payroll_cap_formula_matches_known_values(): assert expected_2026_cap == 184_500 assert expected_2026_cap == payroll_cap("2026-01-01") + expected_2027_cap = round_social_security_payroll_cap( + payroll_cap("1994-01-01") * nawi("2025-01-01") / nawi("1992-01-01") + ) + + assert expected_2027_cap == 192_300 + assert expected_2027_cap == payroll_cap("2027-01-01") + def test_social_security_parameters_include_latest_official_2026_values(): """Test announced 2026 SSA values before forecasts resume.""" @@ -369,6 +376,36 @@ def test_social_security_parameters_include_latest_official_2026_values(): assert pia.thresholds[2] == 7_749 +def test_social_security_parameters_include_latest_official_2027_values(): + """Test announced 2027 SSA values, including those the extension derives from NAWI.""" + parameters = PARAMETERS + ssa = parameters.gov.ssa + social_security = ssa.social_security + + # 3.6% COLA: 2026Q3 CPI-W average over the 2025Q3 average. + assert ssa.uprating("2027-01-01") == 328.746 + assert round(ssa.uprating("2027-01-01") / ssa.uprating("2026-01-01") - 1, 3) == ( + 0.036 + ) + assert ssa.ssi.amount.individual("2027-01-01") == 1_029 + assert ssa.ssi.amount.couple("2027-01-01") == 1_544 + student = ssa.ssi.income.exclusions.blind_or_disabled_working_student + assert student.amount("2027-01-01") == 2_500 + assert student.cap("2027-01-01") == 10_080 + + assert parameters.gov.irs.payroll.social_security.cap("2027-01-01") == 192_300 + assert social_security.wage_base("2027-01-01") == 192_300 + assert social_security.quarters_of_coverage_threshold("2027-01-01") == 1_970 + assert social_security.earnings_test.exempt_amount_under_fra("2027-01-01") == ( + 25_560 + ) + assert social_security.earnings_test.exempt_amount_year_of_fra("2027-01-01") == ( + 67_920 + ) + assert ssa.sga.non_blind("2027-01-01") == 1_770 + assert ssa.sga.blind("2027-01-01") == 2_950 + + def test_social_security_wage_indexed_parameters_follow_statutory_rounding(): """Wage-indexed benefit parameters should use lagged NAWI and statutory rounding.""" parameters = PARAMETERS From 68333a45d102096836c155273e849588e81310e6 Mon Sep 17 00:00:00 2001 From: David Trimmer Date: Thu, 15 Oct 2026 11:56:31 -0400 Subject: [PATCH 2/2] Use SSA's published 2025 average wage index SSA published the 2025 national average wage index (72,800.33) with the 2027 COLA. It replaces the interim value backed out of the 2027 benefit base (72,780.22). The extension now reproduces the published 2027 PIA bend points ($1,340 and $8,077; the interim value gave $8,075), and the other 2027 wage-indexed amounts are unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) --- policyengine_us/parameters/gov/ssa/nawi.yaml | 3 +-- .../policy/baseline/parameters/test_uprating_extensions.py | 6 ++++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/policyengine_us/parameters/gov/ssa/nawi.yaml b/policyengine_us/parameters/gov/ssa/nawi.yaml index d4142e0edb9..dd71e24f276 100644 --- a/policyengine_us/parameters/gov/ssa/nawi.yaml +++ b/policyengine_us/parameters/gov/ssa/nawi.yaml @@ -74,6 +74,7 @@ values: 2022-01-01: 63_795.13 # NAWI(Y-2) for CBB(2024) 2023-01-01: 66_621.80 # NAWI(Y-2) for CBB(2025) 2024-01-01: 69_846.57 # NAWI(Y-2) for CBB(2026) + 2025-01-01: 72_800.33 # NAWI(Y-2) for CBB(2027); published 2026-10-14 # Back out NAWI from CBO's forecast of the payroll tax cap, in # parameters/gov/irs/payroll/social_security/cap.yaml # The formula to derive NAWI(Y-2) from CBB(Y) is: @@ -82,8 +83,6 @@ values: # CBB(Y) is the Contribution and Benefit Base (payroll tax cap) for year Y. # NAWI(Y-2) is the National Average Wage Index for year Y-2. - # For 2025 NAWI, derived from the official SSA CBB(2027) = 192_300: 192_300 * (22_935.42 / 60_600) - 2025-01-01: 72_780.22 # For 2026 NAWI, derived from CBO CBB(2028) = 198_600: 198_600 * (22_935.42 / 60_600) 2026-01-01: 75_168.61 # For 2027 NAWI, derived from CBO CBB(2029) = 206_400: 206_400 * (22_935.42 / 60_600) 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 fb58348e905..6ff5f115dee 100644 --- a/policyengine_us/tests/policy/baseline/parameters/test_uprating_extensions.py +++ b/policyengine_us/tests/policy/baseline/parameters/test_uprating_extensions.py @@ -405,6 +405,12 @@ def test_social_security_parameters_include_latest_official_2027_values(): assert ssa.sga.non_blind("2027-01-01") == 1_770 assert ssa.sga.blind("2027-01-01") == 2_950 + # SSA's published 2025 AWI sets the 2027 PIA bend points. + assert ssa.nawi("2025-01-01") == 72_800.33 + pia = social_security.pia.formula_factors("2027-01-01") + assert pia.thresholds[1] == 1_340 + assert pia.thresholds[2] == 8_077 + def test_social_security_wage_indexed_parameters_follow_statutory_rounding(): """Wage-indexed benefit parameters should use lagged NAWI and statutory rounding."""