From 035c5c9a143555e6c6ac7497a21486e77ad1d4ee Mon Sep 17 00:00:00 2001 From: PavelMakarchuk Date: Mon, 13 Jul 2026 09:56:40 -0400 Subject: [PATCH 1/2] Fix CT pension subtraction: 2024 phase-out brackets leaked into 2019-2023 The TY2024 phase-down brackets (PA 23-204) were defined only from 2024-01-01, resolving at earlier instants to their 2024 values. For 2019-2023 the subtraction was a hard cliff at $100,000 MFJ / $75,000 other; PE granted partial subtractions above it. Adds explicit 2019-01-01: 0 amounts and a taxsim #1077 integration test verified against TaxAct and the TAXSIM-35 binary. Fixes #9008 Co-Authored-By: Claude Fable 5 --- changelog_entry.yaml | 4 +++ .../pensions_or_annuity/joint.yaml | 8 ++++++ .../pensions_or_annuity/non_joint.yaml | 8 ++++++ .../gov/states/ct/tax/income/integration.yaml | 28 +++++++++++++++++++ 4 files changed, 48 insertions(+) create mode 100644 changelog_entry.yaml diff --git a/changelog_entry.yaml b/changelog_entry.yaml new file mode 100644 index 00000000000..1f52b7084d1 --- /dev/null +++ b/changelog_entry.yaml @@ -0,0 +1,4 @@ +- bump: patch + changes: + fixed: + - Connecticut pension and annuity subtraction no longer applies the 2024 phase-out rates in 2019-2023, when the subtraction ended at the AGI cliff. diff --git a/policyengine_us/parameters/gov/states/ct/tax/income/subtractions/pensions_or_annuity/joint.yaml b/policyengine_us/parameters/gov/states/ct/tax/income/subtractions/pensions_or_annuity/joint.yaml index 33a50efe194..d5a11485515 100644 --- a/policyengine_us/parameters/gov/states/ct/tax/income/subtractions/pensions_or_annuity/joint.yaml +++ b/policyengine_us/parameters/gov/states/ct/tax/income/subtractions/pensions_or_annuity/joint.yaml @@ -33,32 +33,40 @@ brackets: - threshold: 2024-01-01: 105_000 amount: + 2019-01-01: 0 2024-01-01: 0.7 - threshold: 2024-01-01: 110_000 amount: + 2019-01-01: 0 2024-01-01: 0.55 - threshold: 2024-01-01: 115_000 amount: + 2019-01-01: 0 2024-01-01: 0.4 - threshold: 2024-01-01: 120_000 amount: + 2019-01-01: 0 2024-01-01: 0.25 - threshold: 2024-01-01: 125_000 amount: + 2019-01-01: 0 2024-01-01: 0.1 - threshold: 2024-01-01: 130_000 amount: + 2019-01-01: 0 2024-01-01: 0.05 - threshold: 2024-01-01: 140_000 amount: + 2019-01-01: 0 2024-01-01: 0.025 - threshold: 2024-01-01: 150_000 amount: + 2019-01-01: 0 2024-01-01: 0 diff --git a/policyengine_us/parameters/gov/states/ct/tax/income/subtractions/pensions_or_annuity/non_joint.yaml b/policyengine_us/parameters/gov/states/ct/tax/income/subtractions/pensions_or_annuity/non_joint.yaml index 8bdf8f1446d..b28fbe31fd0 100644 --- a/policyengine_us/parameters/gov/states/ct/tax/income/subtractions/pensions_or_annuity/non_joint.yaml +++ b/policyengine_us/parameters/gov/states/ct/tax/income/subtractions/pensions_or_annuity/non_joint.yaml @@ -33,32 +33,40 @@ brackets: - threshold: 2024-01-01: 77_500 amount: + 2019-01-01: 0 2024-01-01: 0.7 - threshold: 2024-01-01: 80_000 amount: + 2019-01-01: 0 2024-01-01: 0.55 - threshold: 2024-01-01: 82_500 amount: + 2019-01-01: 0 2024-01-01: 0.4 - threshold: 2024-01-01: 85_000 amount: + 2019-01-01: 0 2024-01-01: 0.25 - threshold: 2024-01-01: 87_500 amount: + 2019-01-01: 0 2024-01-01: 0.1 - threshold: 2024-01-01: 90_000 amount: + 2019-01-01: 0 2024-01-01: 0.05 - threshold: 2024-01-01: 95_000 amount: + 2019-01-01: 0 2024-01-01: 0.025 - threshold: 2024-01-01: 100_000 amount: + 2019-01-01: 0 2024-01-01: 0 diff --git a/policyengine_us/tests/policy/baseline/gov/states/ct/tax/income/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/ct/tax/income/integration.yaml index 84b9e738aa8..e783648bcb3 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ct/tax/income/integration.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ct/tax/income/integration.yaml @@ -103,3 +103,31 @@ output: income_tax: -733 ct_income_tax: 2_415 +- name: CT 2021 joint filer with federal AGI above the 100k cliff gets no pension and annuity subtraction (taxsim 1077) + period: 2021 + absolute_error_margin: 2 + input: + people: + head: + age: 71 + taxable_private_pension_income: 46_772.66 + taxable_interest_income: 955.58 + social_security_retirement: 10_204.63 + spouse: + age: 69 + taxable_private_pension_income: 46_772.66 + taxable_interest_income: 955.58 + social_security_retirement: 10_204.63 + tax_units: + tax_unit: + members: [head, spouse] + households: + household: + members: [head, spouse] + state_code: CT + output: + adjusted_gross_income: 112_804 + ct_pension_annuity_subtraction: 0 + ct_social_security_benefit_adjustment: 12_246 + ct_agi: 100_559 + ct_income_tax: 4_671 From 9f62afbbaa3848028011f336579f4d2c92bbcd76 Mon Sep 17 00:00:00 2001 From: PavelMakarchuk Date: Mon, 13 Jul 2026 10:01:10 -0400 Subject: [PATCH 2/2] Use changelog.d fragment Co-Authored-By: Claude Fable 5 --- changelog.d/fixed/9008.md | 1 + changelog_entry.yaml | 4 ---- 2 files changed, 1 insertion(+), 4 deletions(-) create mode 100644 changelog.d/fixed/9008.md delete mode 100644 changelog_entry.yaml diff --git a/changelog.d/fixed/9008.md b/changelog.d/fixed/9008.md new file mode 100644 index 00000000000..cead5ebcbb3 --- /dev/null +++ b/changelog.d/fixed/9008.md @@ -0,0 +1 @@ +- Fixed the Connecticut pension and annuity subtraction to not apply the 2024 phase-out rates in 2019-2023, when the subtraction ended at the AGI cliff. diff --git a/changelog_entry.yaml b/changelog_entry.yaml deleted file mode 100644 index 1f52b7084d1..00000000000 --- a/changelog_entry.yaml +++ /dev/null @@ -1,4 +0,0 @@ -- bump: patch - changes: - fixed: - - Connecticut pension and annuity subtraction no longer applies the 2024 phase-out rates in 2019-2023, when the subtraction ended at the AGI cliff.