From 316e7832a180a99c0cf8476ec95573cdacb7ed98 Mon Sep 17 00:00:00 2001 From: Deepak Jindal Date: Tue, 8 Sep 2026 16:25:07 -0700 Subject: [PATCH 1/4] Include state tax refund income in federal gross income and exclude in conforming states (#9122) --- ...fix-9122-salt-refund-gross-income.fixed.md | 1 + .../gov/irs/gross_income/sources.yaml | 2 + .../tax/income/subtractions/subtractions.yaml | 3 ++ .../ca/tax/income/agi/subtractions.yaml | 1 + .../tax/income/subtractions/subtractions.yaml | 4 +- .../tax/income/subtractions/subtractions.yaml | 1 + .../dc/tax/income/subtractions/sources.yaml | 1 + .../tax/income/subtractions/subtractions.yaml | 2 + .../tax/income/subtractions/subtractions.yaml | 4 ++ .../tax/income/subtractions/subtractions.yaml | 2 + .../income/taxable_income/subtractions.yaml | 2 + .../il/tax/income/base/subtractions.yaml | 1 + .../in/tax/income/deductions/deductions.yaml | 10 ++--- .../states/ky/tax/income/subtractions.yaml | 2 +- .../tax/income/agi/subtractions/sources.yaml | 2 + .../states/mi/tax/income/subtractions.yaml | 2 + .../mn/tax/income/subtractions/sources.yaml | 3 +- .../nc/tax/income/deductions/deductions.yaml | 3 +- .../taxable_income/subtractions/sources.yaml | 3 ++ .../income/agi/subtractions/subtractions.yaml | 2 + .../tax/income/agi/subtractions/sources.yaml | 1 + .../oh/tax/income/deductions/deductions.yaml | 1 + .../income/agi/subtractions/subtractions.yaml | 1 + .../tax/income/subtractions/subtractions.yaml | 1 + .../tax/income/nontaxable_income_sources.yaml | 1 + .../income/agi/subtractions/subtractions.yaml | 2 + .../tax/income/subtractions/subtractions.yaml | 1 + .../vt/tax/income/agi/subtractions.yaml | 1 + .../wi/tax/income/subtractions/sources.yaml | 2 + .../baseline/gov/irs/irs_gross_income.yaml | 22 +++++++++ .../gov/irs/salt_refund_integration.yaml | 45 +++++++++++++++++++ .../gov/local/tax/salt_refund_last_year.py | 3 ++ .../income/person/misc/salt_refund_income.py | 2 + 33 files changed, 124 insertions(+), 10 deletions(-) create mode 100644 changelog.d/fix-9122-salt-refund-gross-income.fixed.md create mode 100644 policyengine_us/tests/policy/baseline/gov/irs/salt_refund_integration.yaml diff --git a/changelog.d/fix-9122-salt-refund-gross-income.fixed.md b/changelog.d/fix-9122-salt-refund-gross-income.fixed.md new file mode 100644 index 00000000000..75c2e4ebc26 --- /dev/null +++ b/changelog.d/fix-9122-salt-refund-gross-income.fixed.md @@ -0,0 +1 @@ +Include state and local tax refund income (`salt_refund_income`) in federal gross income and subtract/deduct it in conforming states. diff --git a/policyengine_us/parameters/gov/irs/gross_income/sources.yaml b/policyengine_us/parameters/gov/irs/gross_income/sources.yaml index 67414c32b04..4befdfb34ed 100644 --- a/policyengine_us/parameters/gov/irs/gross_income/sources.yaml +++ b/policyengine_us/parameters/gov/irs/gross_income/sources.yaml @@ -30,6 +30,8 @@ values: - ak_permanent_fund_dividend # Alimony from divorces executed before the TCJA cutoff (Schedule 1 line 2a). - taxable_alimony_income + # State and local income tax refunds (Schedule 1 line 1). + - salt_refund_income metadata: unit: list diff --git a/policyengine_us/parameters/gov/states/az/tax/income/subtractions/subtractions.yaml b/policyengine_us/parameters/gov/states/az/tax/income/subtractions/subtractions.yaml index 7d6ed6e5b67..2f6b800c1cb 100644 --- a/policyengine_us/parameters/gov/states/az/tax/income/subtractions/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/az/tax/income/subtractions/subtractions.yaml @@ -11,6 +11,7 @@ values: - az_529a_able_account_subtraction # Line 34b - az_adoption_expense_subtraction # Other subtractions - Item D - az_families_tax_rebate_subtraction # Line 36, Item U + - salt_refund_income # Line 27 2025-01-01: - us_govt_interest # Line 28 - az_public_pension_exclusion # Line 29a @@ -27,6 +28,7 @@ values: - overtime_income_deduction # MCTCP worksheet Line 3 (Sch 1-A Line 21) - auto_loan_interest_deduction # MCTCP worksheet Line 4 (Sch 1-A Line 30) - additional_senior_deduction # MCTCP worksheet Line 5 (Sch 1-A Line 37) + - salt_refund_income # Line 27 # HB 4168 (2026): auto loan interest sunsets after TY2025 (43-1022(36)); # adds child & dependent care and IRC 530A distribution subtractions. 2026-01-01: @@ -45,6 +47,7 @@ values: - additional_senior_deduction # 43-1022(35) - az_dependent_care_expense_subtraction # 43-1022(34) - az_530a_distribution_subtraction # 43-1022(33) + - salt_refund_income # Line 27 metadata: unit: list period: year diff --git a/policyengine_us/parameters/gov/states/ca/tax/income/agi/subtractions.yaml b/policyengine_us/parameters/gov/states/ca/tax/income/agi/subtractions.yaml index a303c825faa..afe1c819140 100644 --- a/policyengine_us/parameters/gov/states/ca/tax/income/agi/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/ca/tax/income/agi/subtractions.yaml @@ -4,6 +4,7 @@ values: - taxable_social_security - taxable_unemployment_compensation - us_govt_interest + - salt_refund_income metadata: reference: diff --git a/policyengine_us/parameters/gov/states/co/tax/income/subtractions/subtractions.yaml b/policyengine_us/parameters/gov/states/co/tax/income/subtractions/subtractions.yaml index f32b457a009..2cc3f508e6a 100644 --- a/policyengine_us/parameters/gov/states/co/tax/income/subtractions/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/co/tax/income/subtractions/subtractions.yaml @@ -1,7 +1,7 @@ description: Colorado counts these sources as subtractions. values: 2021-01-01: - # salt_refund_income + - salt_refund_income - us_govt_interest - co_pension_subtraction - co_military_retirement_subtraction @@ -20,7 +20,7 @@ values: # Carryforward Subtractions Allowed Under HB21-1002 2023-01-01: - # salt_refund_income + - salt_refund_income - us_govt_interest - co_pension_subtraction - co_military_retirement_subtraction diff --git a/policyengine_us/parameters/gov/states/ct/tax/income/subtractions/subtractions.yaml b/policyengine_us/parameters/gov/states/ct/tax/income/subtractions/subtractions.yaml index 8223725a737..aea3a9f1f80 100644 --- a/policyengine_us/parameters/gov/states/ct/tax/income/subtractions/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/ct/tax/income/subtractions/subtractions.yaml @@ -5,6 +5,7 @@ values: - ct_social_security_benefit_adjustment #ln 41 - military_retirement_pay #ln 44 - ct_pension_annuity_subtraction #ln 48b + - salt_refund_income #ln 38 metadata: unit: list diff --git a/policyengine_us/parameters/gov/states/dc/tax/income/subtractions/sources.yaml b/policyengine_us/parameters/gov/states/dc/tax/income/subtractions/sources.yaml index 5395562d7ea..8ba9d6dafad 100644 --- a/policyengine_us/parameters/gov/states/dc/tax/income/subtractions/sources.yaml +++ b/policyengine_us/parameters/gov/states/dc/tax/income/subtractions/sources.yaml @@ -20,3 +20,4 @@ values: - dc_disabled_exclusion_subtraction - dc_disability_exclusion - us_govt_interest_person + - salt_refund_income diff --git a/policyengine_us/parameters/gov/states/de/tax/income/subtractions/subtractions.yaml b/policyengine_us/parameters/gov/states/de/tax/income/subtractions/subtractions.yaml index a7c668bd39d..3658de8697e 100644 --- a/policyengine_us/parameters/gov/states/de/tax/income/subtractions/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/de/tax/income/subtractions/subtractions.yaml @@ -8,6 +8,7 @@ values: # to the extent included in federal AGI, is excluded under # 30 Del. C. § 1106(b)(10) (HB 65 of 2021; HB 285 of 2022). - taxable_unemployment_compensation # (10) + - salt_refund_income # (1) # The elderly or disabled income exclusion is computed separately # - de_elderly_or_disabled_income_exclusion # (2) 2022-01-01: @@ -15,6 +16,7 @@ values: - taxable_social_security # (4) - us_govt_interest_person - de_529_plan_subtraction # HB 145 + - salt_refund_income # (1) metadata: unit: list diff --git a/policyengine_us/parameters/gov/states/ga/tax/income/subtractions/subtractions.yaml b/policyengine_us/parameters/gov/states/ga/tax/income/subtractions/subtractions.yaml index 3a03a2a6dcd..582fe4cd4bf 100644 --- a/policyengine_us/parameters/gov/states/ga/tax/income/subtractions/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/ga/tax/income/subtractions/subtractions.yaml @@ -10,12 +10,14 @@ values: - ga_retirement_exclusion - taxable_social_security - ga_investment_in_529_plan_deduction + - salt_refund_income 2022-01-01: - us_govt_interest - ga_retirement_exclusion - ga_military_retirement_exclusion - taxable_social_security - ga_investment_in_529_plan_deduction + - salt_refund_income 2026-01-01: - us_govt_interest - ga_retirement_exclusion @@ -24,12 +26,14 @@ values: - ga_investment_in_529_plan_deduction - ga_qualified_overtime_exclusion - ga_cash_tip_exclusion + - salt_refund_income 2029-01-01: - us_govt_interest - ga_retirement_exclusion - ga_military_retirement_exclusion - taxable_social_security - ga_investment_in_529_plan_deduction + - salt_refund_income metadata: unit: list diff --git a/policyengine_us/parameters/gov/states/hi/tax/income/subtractions/subtractions.yaml b/policyengine_us/parameters/gov/states/hi/tax/income/subtractions/subtractions.yaml index 241ecdea1a0..ef118b0fa62 100644 --- a/policyengine_us/parameters/gov/states/hi/tax/income/subtractions/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/hi/tax/income/subtractions/subtractions.yaml @@ -6,12 +6,14 @@ values: - hi_military_pay_exclusion # Line 15 - us_govt_interest # Line 18 - student_loan_interest_ald # Line 18 + - salt_refund_income # Line 8 2025-01-01: - taxable_pension_income # Line 13 - taxable_social_security # Line 14 - hi_military_pay_exclusion # Line 15 - us_govt_interest # Line 18 - hi_student_loan_interest_subtraction # Line 18 + - salt_refund_income # Line 8 metadata: diff --git a/policyengine_us/parameters/gov/states/ia/tax/income/taxable_income/subtractions.yaml b/policyengine_us/parameters/gov/states/ia/tax/income/taxable_income/subtractions.yaml index a4e6efa99de..e54e17535aa 100644 --- a/policyengine_us/parameters/gov/states/ia/tax/income/taxable_income/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/ia/tax/income/taxable_income/subtractions.yaml @@ -15,6 +15,7 @@ values: # Iowa Health Insurance Deduction # Iowa capital gains deduction - ia_529_plan_subtraction + - salt_refund_income 2024-01-01: # military_retirement_pay added in 2024. # Line 1B - us_govt_interest @@ -32,6 +33,7 @@ values: # Iowa Health Insurance Deduction # Iowa capital gains deduction - ia_529_plan_subtraction + - salt_refund_income metadata: unit: list diff --git a/policyengine_us/parameters/gov/states/il/tax/income/base/subtractions.yaml b/policyengine_us/parameters/gov/states/il/tax/income/base/subtractions.yaml index 874ec8ffd67..46cee2e697a 100644 --- a/policyengine_us/parameters/gov/states/il/tax/income/base/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/il/tax/income/base/subtractions.yaml @@ -6,6 +6,7 @@ values: - taxable_pension_income - il_schedule_m_subtractions - il_529_plan_subtraction + - salt_refund_income metadata: unit: list period: year diff --git a/policyengine_us/parameters/gov/states/in/tax/income/deductions/deductions.yaml b/policyengine_us/parameters/gov/states/in/tax/income/deductions/deductions.yaml index f3f466bc88f..eb73d62517c 100644 --- a/policyengine_us/parameters/gov/states/in/tax/income/deductions/deductions.yaml +++ b/policyengine_us/parameters/gov/states/in/tax/income/deductions/deductions.yaml @@ -3,7 +3,7 @@ values: 2021-01-01: - in_renters_deduction - in_homeowners_property_tax_deduction - - salt_refund_last_year + - salt_refund_income - us_govt_interest - tax_unit_taxable_social_security # includes railroad retirement benefits - in_military_service_deduction @@ -18,7 +18,7 @@ values: # IC 6-1.1 - in_homeowners_property_tax_deduction # IC 6-3.1-19-1 - - salt_refund_last_year + - salt_refund_income # IC 6-8-5-1 - us_govt_interest # US Code 26-A-1-B-II-§86 @@ -42,7 +42,7 @@ values: # IC 6-1.1 - in_homeowners_property_tax_deduction # IC 6-3.1-19-1 - - salt_refund_last_year + - salt_refund_income # IC 6-8-5-1 - us_govt_interest # US Code 26-A-1-B-II-§86 @@ -68,7 +68,7 @@ values: # IC 6-1.1 - in_homeowners_property_tax_deduction # IC 6-3.1-19-1 - - salt_refund_last_year + - salt_refund_income # IC 6-8-5-1 - us_govt_interest # US Code 26-A-1-B-II-§86 @@ -100,7 +100,7 @@ values: # IC 6-1.1 - in_homeowners_property_tax_deduction # IC 6-3.1-19-1 - - salt_refund_last_year + - salt_refund_income # IC 6-8-5-1 - us_govt_interest # US Code 26-A-1-B-II-§86 diff --git a/policyengine_us/parameters/gov/states/ky/tax/income/subtractions.yaml b/policyengine_us/parameters/gov/states/ky/tax/income/subtractions.yaml index eb71b73fff1..6349a40aef9 100644 --- a/policyengine_us/parameters/gov/states/ky/tax/income/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/ky/tax/income/subtractions.yaml @@ -1,7 +1,7 @@ description: Kentucky subtracts these sources from adjusted gross income. values: 2021-01-01: - # - Kentucky income tax refund + - salt_refund_income - us_govt_interest_person - ky_pension_income_exclusion - taxable_social_security diff --git a/policyengine_us/parameters/gov/states/md/tax/income/agi/subtractions/sources.yaml b/policyengine_us/parameters/gov/states/md/tax/income/agi/subtractions/sources.yaml index 80b915359b9..8e8203b724c 100644 --- a/policyengine_us/parameters/gov/states/md/tax/income/agi/subtractions/sources.yaml +++ b/policyengine_us/parameters/gov/states/md/tax/income/agi/subtractions/sources.yaml @@ -8,6 +8,7 @@ values: - md_two_income_subtraction - md_military_retirement_subtraction - md_529_deduction + - salt_refund_income 2022-01-01: - us_govt_interest - md_dependent_care_subtraction @@ -17,6 +18,7 @@ values: - md_hundred_year_subtraction - md_military_retirement_subtraction - md_529_deduction + - salt_refund_income metadata: reference: diff --git a/policyengine_us/parameters/gov/states/mi/tax/income/subtractions.yaml b/policyengine_us/parameters/gov/states/mi/tax/income/subtractions.yaml index e04563d8cef..bcba6cad811 100644 --- a/policyengine_us/parameters/gov/states/mi/tax/income/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/mi/tax/income/subtractions.yaml @@ -10,6 +10,7 @@ values: - mi_pension_benefit # Line 26 - mi_interest_dividends_capital_gains_deduction # Line 27 - mi_529_deduction + - salt_refund_income # Line 16 2026-01-01: - us_govt_interest # Line 10 - military_retirement_pay # Line 11 @@ -22,6 +23,7 @@ values: - mi_529_deduction - mi_qualified_tips_deduction # Qualified tips (PA 24 of 2025), TY2026-2028 - mi_qualified_overtime_deduction # Qualified overtime compensation (PA 24 of 2025), TY2026-2028 + - salt_refund_income # Line 16 metadata: unit: list label: Michigan taxable income subtraction sources diff --git a/policyengine_us/parameters/gov/states/mn/tax/income/subtractions/sources.yaml b/policyengine_us/parameters/gov/states/mn/tax/income/subtractions/sources.yaml index 16e3d2bc7f4..d1e0ed52ac5 100644 --- a/policyengine_us/parameters/gov/states/mn/tax/income/subtractions/sources.yaml +++ b/policyengine_us/parameters/gov/states/mn/tax/income/subtractions/sources.yaml @@ -13,7 +13,7 @@ values: - mn_military_pension_subtraction - mn_active_duty_military_pay_subtraction - mn_529_contribution_subtraction - + - salt_refund_income 2023-01-01: - mn_charity_subtraction - mn_social_security_subtraction @@ -24,6 +24,7 @@ values: - mn_military_pension_subtraction - mn_active_duty_military_pay_subtraction - mn_529_contribution_subtraction + - salt_refund_income metadata: diff --git a/policyengine_us/parameters/gov/states/nc/tax/income/deductions/deductions.yaml b/policyengine_us/parameters/gov/states/nc/tax/income/deductions/deductions.yaml index f71e382f71b..8cfaf828e62 100644 --- a/policyengine_us/parameters/gov/states/nc/tax/income/deductions/deductions.yaml +++ b/policyengine_us/parameters/gov/states/nc/tax/income/deductions/deductions.yaml @@ -5,13 +5,14 @@ values: - nc_standard_or_itemized_deductions - nc_child_deduction - taxable_social_security - + - salt_refund_income 2022-01-01: - us_govt_interest - nc_standard_or_itemized_deductions - nc_child_deduction - taxable_social_security - nc_military_retirement_deduction + - salt_refund_income metadata: unit: list diff --git a/policyengine_us/parameters/gov/states/nd/tax/income/taxable_income/subtractions/sources.yaml b/policyengine_us/parameters/gov/states/nd/tax/income/taxable_income/subtractions/sources.yaml index b4baa1b3a2c..82e97ff82bd 100644 --- a/policyengine_us/parameters/gov/states/nd/tax/income/taxable_income/subtractions/sources.yaml +++ b/policyengine_us/parameters/gov/states/nd/tax/income/taxable_income/subtractions/sources.yaml @@ -8,6 +8,7 @@ values: - military_retirement_pay - nd_529_deduction - nd_stillborn_subtraction + - salt_refund_income 2022-01-01: - us_govt_interest @@ -17,6 +18,7 @@ values: - military_retirement_pay - nd_529_deduction - nd_stillborn_subtraction + - salt_refund_income 2023-01-01: - us_govt_interest @@ -27,6 +29,7 @@ values: - military_service_income # military pay exclusion - nd_529_deduction - nd_stillborn_subtraction + - salt_refund_income metadata: unit: list diff --git a/policyengine_us/parameters/gov/states/ne/tax/income/agi/subtractions/subtractions.yaml b/policyengine_us/parameters/gov/states/ne/tax/income/agi/subtractions/subtractions.yaml index 9c88db88a35..8f595d11bd8 100644 --- a/policyengine_us/parameters/gov/states/ne/tax/income/agi/subtractions/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/ne/tax/income/agi/subtractions/subtractions.yaml @@ -5,12 +5,14 @@ values: - ne_military_retirement_subtraction - us_govt_interest - ne_529_deduction + - salt_refund_income 2024-01-01: - ne_social_security_subtraction - taxable_public_pension_income - ne_military_retirement_subtraction - us_govt_interest - ne_529_deduction + - salt_refund_income metadata: unit: list diff --git a/policyengine_us/parameters/gov/states/ny/tax/income/agi/subtractions/sources.yaml b/policyengine_us/parameters/gov/states/ny/tax/income/agi/subtractions/sources.yaml index 46a25ae3d0b..17d32063f16 100644 --- a/policyengine_us/parameters/gov/states/ny/tax/income/agi/subtractions/sources.yaml +++ b/policyengine_us/parameters/gov/states/ny/tax/income/agi/subtractions/sources.yaml @@ -5,6 +5,7 @@ values: - us_govt_interest - investment_in_529_plan - ny_pension_exclusion + - salt_refund_income metadata: unit: currency-USD period: year diff --git a/policyengine_us/parameters/gov/states/oh/tax/income/deductions/deductions.yaml b/policyengine_us/parameters/gov/states/oh/tax/income/deductions/deductions.yaml index 67bc1c98eba..80af64bd48d 100644 --- a/policyengine_us/parameters/gov/states/oh/tax/income/deductions/deductions.yaml +++ b/policyengine_us/parameters/gov/states/oh/tax/income/deductions/deductions.yaml @@ -10,6 +10,7 @@ values: - disability_benefits - oh_unreimbursed_medical_care_expense_deduction_person - us_govt_interest_person + - salt_refund_income metadata: unit: list diff --git a/policyengine_us/parameters/gov/states/ok/tax/income/agi/subtractions/subtractions.yaml b/policyengine_us/parameters/gov/states/ok/tax/income/agi/subtractions/subtractions.yaml index beb97fef8a4..69909c8876a 100644 --- a/policyengine_us/parameters/gov/states/ok/tax/income/agi/subtractions/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/ok/tax/income/agi/subtractions/subtractions.yaml @@ -6,6 +6,7 @@ values: - ok_pension_subtraction - ok_military_retirement_exclusion - ok_529_plan_deduction + - salt_refund_income metadata: unit: list diff --git a/policyengine_us/parameters/gov/states/or/tax/income/subtractions/subtractions.yaml b/policyengine_us/parameters/gov/states/or/tax/income/subtractions/subtractions.yaml index e92f0e32982..a01f09a277f 100644 --- a/policyengine_us/parameters/gov/states/or/tax/income/subtractions/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/or/tax/income/subtractions/subtractions.yaml @@ -21,3 +21,4 @@ values: - or_federal_tax_liability_subtraction - taxable_social_security - us_govt_interest + - salt_refund_income diff --git a/policyengine_us/parameters/gov/states/pa/tax/income/nontaxable_income_sources.yaml b/policyengine_us/parameters/gov/states/pa/tax/income/nontaxable_income_sources.yaml index 6c9a44fc4f8..2df2dc4da7b 100644 --- a/policyengine_us/parameters/gov/states/pa/tax/income/nontaxable_income_sources.yaml +++ b/policyengine_us/parameters/gov/states/pa/tax/income/nontaxable_income_sources.yaml @@ -7,6 +7,7 @@ values: - taxable_unemployment_compensation - taxable_social_security - us_govt_interest + - salt_refund_income metadata: unit: currency-USD label: PA nontaxable income sources diff --git a/policyengine_us/parameters/gov/states/ri/tax/income/agi/subtractions/subtractions.yaml b/policyengine_us/parameters/gov/states/ri/tax/income/agi/subtractions/subtractions.yaml index 702508f7f68..a29bcd714ea 100644 --- a/policyengine_us/parameters/gov/states/ri/tax/income/agi/subtractions/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/ri/tax/income/agi/subtractions/subtractions.yaml @@ -6,6 +6,7 @@ values: - ri_tuition_saving_program_contribution_subtraction - ri_retirement_income_subtraction - us_govt_interest + - salt_refund_income 2023-01-01: - ri_social_security_modification @@ -13,6 +14,7 @@ values: - ri_retirement_income_subtraction - us_govt_interest - military_retirement_pay + - salt_refund_income metadata: unit: list diff --git a/policyengine_us/parameters/gov/states/va/tax/income/subtractions/subtractions.yaml b/policyengine_us/parameters/gov/states/va/tax/income/subtractions/subtractions.yaml index 72db59b04dc..34d998a4796 100644 --- a/policyengine_us/parameters/gov/states/va/tax/income/subtractions/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/va/tax/income/subtractions/subtractions.yaml @@ -14,6 +14,7 @@ values: - va_529_plan_deduction_person # Certification Number 34 - va_age_deduction_person # Certification Number 4 - taxable_social_security # Certification Number 5 + - salt_refund_income # Certification Number 00 metadata: diff --git a/policyengine_us/parameters/gov/states/vt/tax/income/agi/subtractions.yaml b/policyengine_us/parameters/gov/states/vt/tax/income/agi/subtractions.yaml index ae362a43029..720da356559 100644 --- a/policyengine_us/parameters/gov/states/vt/tax/income/agi/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/vt/tax/income/agi/subtractions.yaml @@ -6,6 +6,7 @@ values: - student_loan_interest - vt_capital_gains_exclusion - vt_retirement_income_exemption + - salt_refund_income metadata: unit: list label: Vermont subtractions diff --git a/policyengine_us/parameters/gov/states/wi/tax/income/subtractions/sources.yaml b/policyengine_us/parameters/gov/states/wi/tax/income/subtractions/sources.yaml index 16ecd2b968e..9f9d8a3984c 100644 --- a/policyengine_us/parameters/gov/states/wi/tax/income/subtractions/sources.yaml +++ b/policyengine_us/parameters/gov/states/wi/tax/income/subtractions/sources.yaml @@ -8,6 +8,7 @@ values: - wi_retirement_income_subtraction - us_govt_interest - wi_529_plan_deduction + - salt_refund_income 2022-01-01: - wi_unemployment_compensation_subtraction - tax_unit_taxable_social_security @@ -15,6 +16,7 @@ values: - wi_retirement_income_subtraction - us_govt_interest - wi_529_plan_deduction + - salt_refund_income metadata: unit: list diff --git a/policyengine_us/tests/policy/baseline/gov/irs/irs_gross_income.yaml b/policyengine_us/tests/policy/baseline/gov/irs/irs_gross_income.yaml index 66ab14a9b70..5e241bbd3ee 100644 --- a/policyengine_us/tests/policy/baseline/gov/irs/irs_gross_income.yaml +++ b/policyengine_us/tests/policy/baseline/gov/irs/irs_gross_income.yaml @@ -72,3 +72,25 @@ non_sch_d_capital_gains: 5_000 output: irs_gross_income: 5_000 + +- name: IRS gross income includes state and local tax refund income. + period: 2024 + input: + salt_refund_income: 1_000 + output: + irs_gross_income: 1_000 + +- name: IRS gross income excludes dependent state and local tax refund income. + period: 2024 + input: + people: + parent: + is_tax_unit_head: true + child: + is_tax_unit_dependent: true + salt_refund_income: 500 + tax_units: + tax_unit: + members: [parent, child] + output: + irs_gross_income: [0, 0] diff --git a/policyengine_us/tests/policy/baseline/gov/irs/salt_refund_integration.yaml b/policyengine_us/tests/policy/baseline/gov/irs/salt_refund_integration.yaml new file mode 100644 index 00000000000..c1025674dfd --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/irs/salt_refund_integration.yaml @@ -0,0 +1,45 @@ +- name: Federal AGI includes state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + output: + adjusted_gross_income: 52_000 + +- name: California subtracts state and local tax refund income from AGI + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: CA + output: + adjusted_gross_income: 52_000 + ca_agi: 50_000 + +- name: Utah subtracts state and local tax refund income from taxable income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: UT + output: + ut_state_tax_refund: 2_000 + +- name: Idaho subtracts state and local tax refund income from AGI + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: ID + output: + adjusted_gross_income: 52_000 + id_agi: 50_000 + +- name: Indiana includes state and local tax refund income in deductions + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: IN + output: + in_deductions: 2_000 diff --git a/policyengine_us/variables/gov/local/tax/salt_refund_last_year.py b/policyengine_us/variables/gov/local/tax/salt_refund_last_year.py index 44384f05896..953b384d5ad 100644 --- a/policyengine_us/variables/gov/local/tax/salt_refund_last_year.py +++ b/policyengine_us/variables/gov/local/tax/salt_refund_last_year.py @@ -6,4 +6,7 @@ class salt_refund_last_year(Variable): entity = TaxUnit label = "SALT refund last year" unit = USD + documentation = "Total state and local tax refund income for the tax unit." definition_period = YEAR + + adds = ["salt_refund_income"] diff --git a/policyengine_us/variables/household/income/person/misc/salt_refund_income.py b/policyengine_us/variables/household/income/person/misc/salt_refund_income.py index 86838ef4f94..ab5472e9d77 100644 --- a/policyengine_us/variables/household/income/person/misc/salt_refund_income.py +++ b/policyengine_us/variables/household/income/person/misc/salt_refund_income.py @@ -7,3 +7,5 @@ class salt_refund_income(Variable): label = "State and local tax refund income" unit = USD definition_period = YEAR + documentation = "Taxable state and local income tax refunds, credits, or offsets reported on Form 1040, Schedule 1, line 1." + reference = "https://www.law.cornell.edu/uscode/text/26/111" From 5581f5be1ae7d3cd3fbd26b325a98acc69f65775 Mon Sep 17 00:00:00 2001 From: Deepak Jindal Date: Wed, 9 Sep 2026 11:15:04 -0700 Subject: [PATCH 2/4] Standardize state refund inputs on salt_refund_income, add comprehensive state tests, and align documentation --- ...fix-9122-salt-refund-gross-income.fixed.md | 2 +- .../gov/irs/gross_income/sources.yaml | 2 +- .../gov/irs/salt_refund_integration.yaml | 227 ++++++++++++++++++ .../taxable_income/ut_taxable_income.yaml | 2 +- .../gov/local/tax/salt_refund_last_year.py | 6 +- .../taxable_income/ut_state_tax_refund.py | 2 +- 6 files changed, 236 insertions(+), 5 deletions(-) diff --git a/changelog.d/fix-9122-salt-refund-gross-income.fixed.md b/changelog.d/fix-9122-salt-refund-gross-income.fixed.md index 75c2e4ebc26..e818b3bd4d7 100644 --- a/changelog.d/fix-9122-salt-refund-gross-income.fixed.md +++ b/changelog.d/fix-9122-salt-refund-gross-income.fixed.md @@ -1 +1 @@ -Include state and local tax refund income (`salt_refund_income`) in federal gross income and subtract/deduct it in conforming states. +Include state and local tax refund income (`salt_refund_income`) in federal gross income and subtract/deduct it in conforming states. Standardize state refund inputs on canonical `salt_refund_income` and deprecate `salt_refund_last_year`. diff --git a/policyengine_us/parameters/gov/irs/gross_income/sources.yaml b/policyengine_us/parameters/gov/irs/gross_income/sources.yaml index 4befdfb34ed..67fd7eff47b 100644 --- a/policyengine_us/parameters/gov/irs/gross_income/sources.yaml +++ b/policyengine_us/parameters/gov/irs/gross_income/sources.yaml @@ -30,7 +30,7 @@ values: - ak_permanent_fund_dividend # Alimony from divorces executed before the TCJA cutoff (Schedule 1 line 2a). - taxable_alimony_income - # State and local income tax refunds (Schedule 1 line 1). + # Taxable state and local income tax refunds (Schedule 1 line 1 / IRC § 111). - salt_refund_income metadata: diff --git a/policyengine_us/tests/policy/baseline/gov/irs/salt_refund_integration.yaml b/policyengine_us/tests/policy/baseline/gov/irs/salt_refund_integration.yaml index c1025674dfd..63f2803e7db 100644 --- a/policyengine_us/tests/policy/baseline/gov/irs/salt_refund_integration.yaml +++ b/policyengine_us/tests/policy/baseline/gov/irs/salt_refund_integration.yaml @@ -43,3 +43,230 @@ state_code: IN output: in_deductions: 2_000 + +- name: Arizona subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: AZ + output: + az_subtractions: 2_000 + +- name: Colorado subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: CO + output: + co_subtractions: 2_000 + +- name: Connecticut subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: CT + output: + ct_agi_subtractions: 2_000 + +- name: District of Columbia subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: DC + output: + dc_income_subtractions: 2_000 + +- name: Delaware subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: DE + output: + de_subtractions: 2_000 + +- name: Georgia subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: GA + output: + ga_subtractions: 2_000 + +- name: Hawaii subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: HI + output: + hi_subtractions: 2_000 + +- name: Iowa subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: IA + output: + ia_subtractions_consolidated: 2_000 + +- name: Illinois subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: IL + output: + il_base_income_subtractions: 2_000 + +- name: Kentucky subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: KY + output: + ky_subtractions: 2_000 + +- name: Maryland subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: MD + output: + md_total_subtractions: 2_000 + +- name: Michigan subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: MI + output: + mi_subtractions: 2_000 + +- name: Minnesota subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: MN + output: + mn_subtractions: 2_000 + +- name: North Carolina deductions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + nc_standard_or_itemized_deductions: 0 + state_code: NC + output: + nc_deductions: 2_000 + +- name: North Dakota subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: ND + output: + nd_subtractions: 2_000 + +- name: Nebraska subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: NE + output: + ne_agi_subtractions: 2_000 + +- name: New York subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: NY + output: + ny_agi_subtractions: 2_000 + +- name: Ohio deductions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: OH + output: + oh_deductions: 2_000 + +- name: Oklahoma subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: OK + output: + ok_agi_subtractions: 2_000 + +- name: Oregon subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + or_federal_tax_liability_subtraction: 0 + state_code: OR + output: + or_income_subtractions: 2_000 + +- name: Pennsylvania nontaxable income includes state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: PA + output: + pa_total_taxable_income: 50_000 + +- name: Rhode Island subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: RI + output: + ri_subtractions: 2_000 + +- name: Virginia subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: VA + output: + va_subtractions: 2_000 + +- name: Vermont subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: VT + output: + vt_subtractions: 2_000 + +- name: Wisconsin subtractions include state and local tax refund income + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: WI + output: + wi_income_subtractions: 2_000 diff --git a/policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/taxable_income/ut_taxable_income.yaml b/policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/taxable_income/ut_taxable_income.yaml index 2336a463dd1..cad4a7ead37 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/taxable_income/ut_taxable_income.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/taxable_income/ut_taxable_income.yaml @@ -2,7 +2,7 @@ period: 2021 absolute_error_margin: 0 input: - salt_refund_last_year: 1_000 + salt_refund_income: 1_000 ut_subtractions: 500 ut_total_income: 40_000 state_code: UT diff --git a/policyengine_us/variables/gov/local/tax/salt_refund_last_year.py b/policyengine_us/variables/gov/local/tax/salt_refund_last_year.py index 953b384d5ad..7e8a8a80258 100644 --- a/policyengine_us/variables/gov/local/tax/salt_refund_last_year.py +++ b/policyengine_us/variables/gov/local/tax/salt_refund_last_year.py @@ -6,7 +6,11 @@ class salt_refund_last_year(Variable): entity = TaxUnit label = "SALT refund last year" unit = USD - documentation = "Total state and local tax refund income for the tax unit." definition_period = YEAR + documentation = ( + "[DEPRECATED] Use salt_refund_income instead. Taxable state and local" + " tax refund income for the tax unit (Form 1040, Schedule 1, line 1 /" + " IRC § 111)." + ) adds = ["salt_refund_income"] diff --git a/policyengine_us/variables/gov/states/ut/tax/income/taxable_income/ut_state_tax_refund.py b/policyengine_us/variables/gov/states/ut/tax/income/taxable_income/ut_state_tax_refund.py index 724053e4ad5..08ddbb5669a 100644 --- a/policyengine_us/variables/gov/states/ut/tax/income/taxable_income/ut_state_tax_refund.py +++ b/policyengine_us/variables/gov/states/ut/tax/income/taxable_income/ut_state_tax_refund.py @@ -10,4 +10,4 @@ class ut_state_tax_refund(Variable): definition_period = YEAR defined_for = StateCode.UT - adds = ["salt_refund_last_year"] + adds = ["salt_refund_income"] From 56d7361c313da9c500f86307836976062e70e799 Mon Sep 17 00:00:00 2001 From: Deepak Jindal Date: Mon, 14 Sep 2026 15:48:22 -0700 Subject: [PATCH 3/4] =?UTF-8?q?Add=20statutory=20citations=20for=20NY,=20I?= =?UTF-8?q?N,=20UT=20and=20IRC=20=C2=A7=20111=20in=20gross=20income=20sour?= =?UTF-8?q?ces?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../parameters/gov/irs/gross_income/sources.yaml | 2 ++ .../gov/states/in/tax/income/deductions/deductions.yaml | 8 ++++---- .../states/ny/tax/income/agi/subtractions/sources.yaml | 4 ++++ .../ut/tax/income/taxable_income/ut_state_tax_refund.py | 1 + 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/policyengine_us/parameters/gov/irs/gross_income/sources.yaml b/policyengine_us/parameters/gov/irs/gross_income/sources.yaml index 67fd7eff47b..9187d3c695f 100644 --- a/policyengine_us/parameters/gov/irs/gross_income/sources.yaml +++ b/policyengine_us/parameters/gov/irs/gross_income/sources.yaml @@ -40,3 +40,5 @@ metadata: reference: - title: 26 U.S. Code § 61 - Gross income defined href: https://www.law.cornell.edu/uscode/text/26/61 + - title: 26 U.S. Code § 111 - Recovery of tax benefit items + href: https://www.law.cornell.edu/uscode/text/26/111 diff --git a/policyengine_us/parameters/gov/states/in/tax/income/deductions/deductions.yaml b/policyengine_us/parameters/gov/states/in/tax/income/deductions/deductions.yaml index eb73d62517c..8df8a7ce959 100644 --- a/policyengine_us/parameters/gov/states/in/tax/income/deductions/deductions.yaml +++ b/policyengine_us/parameters/gov/states/in/tax/income/deductions/deductions.yaml @@ -17,7 +17,7 @@ values: - in_renters_deduction # IC 6-1.1 - in_homeowners_property_tax_deduction - # IC 6-3.1-19-1 + # IC 6-3-1-3.5(a)(1) - salt_refund_income # IC 6-8-5-1 - us_govt_interest @@ -41,7 +41,7 @@ values: - in_renters_deduction # IC 6-1.1 - in_homeowners_property_tax_deduction - # IC 6-3.1-19-1 + # IC 6-3-1-3.5(a)(1) - salt_refund_income # IC 6-8-5-1 - us_govt_interest @@ -67,7 +67,7 @@ values: - in_renters_deduction # IC 6-1.1 - in_homeowners_property_tax_deduction - # IC 6-3.1-19-1 + # IC 6-3-1-3.5(a)(1) - salt_refund_income # IC 6-8-5-1 - us_govt_interest @@ -99,7 +99,7 @@ values: - in_renters_deduction # IC 6-1.1 - in_homeowners_property_tax_deduction - # IC 6-3.1-19-1 + # IC 6-3-1-3.5(a)(1) - salt_refund_income # IC 6-8-5-1 - us_govt_interest diff --git a/policyengine_us/parameters/gov/states/ny/tax/income/agi/subtractions/sources.yaml b/policyengine_us/parameters/gov/states/ny/tax/income/agi/subtractions/sources.yaml index 17d32063f16..edcd3dc5a70 100644 --- a/policyengine_us/parameters/gov/states/ny/tax/income/agi/subtractions/sources.yaml +++ b/policyengine_us/parameters/gov/states/ny/tax/income/agi/subtractions/sources.yaml @@ -15,5 +15,9 @@ metadata: href: https://www.tax.ny.gov/pdf/2023/printable-pdfs/inc/it201i-2023.pdf#page=12 - title: 2024 NY Form IT-201 Instructions Line 29 href: https://www.tax.ny.gov/pdf/2024/inc/it201i_2024.pdf#page=9 + - title: 2024 NY Form IT-201 Instructions Line 24 (State and local income tax refunds) + href: https://www.tax.ny.gov/pdf/2024/inc/it201i_2024.pdf#page=14 + - title: N.Y. Tax Law § 612(c)(7) + href: https://casetext.com/statute/consolidated-laws-of-new-york/chapter-tax/article-22-personal-income-tax/part-ii-residents/section-612-new-york-adjusted-gross-income-of-a-resident-individual - title: N.Y. Comp. Codes R. & Regs. tit. 20 § 112.3 href: https://casetext.com/regulation/new-york-codes-rules-and-regulations/title-20-department-of-taxation-and-finance/chapter-ii-income-taxes-and-estate-taxes/subchapter-a-new-york-state-personal-income-tax-under-article-22-of-the-tax-law/article-2-residents/part-112-new-york-adjusted-gross-income-of-a-resident-individual/section-1123-modifications-reducing-federal-adjusted-gross-income diff --git a/policyengine_us/variables/gov/states/ut/tax/income/taxable_income/ut_state_tax_refund.py b/policyengine_us/variables/gov/states/ut/tax/income/taxable_income/ut_state_tax_refund.py index 08ddbb5669a..b32c69d48a2 100644 --- a/policyengine_us/variables/gov/states/ut/tax/income/taxable_income/ut_state_tax_refund.py +++ b/policyengine_us/variables/gov/states/ut/tax/income/taxable_income/ut_state_tax_refund.py @@ -7,6 +7,7 @@ class ut_state_tax_refund(Variable): label = "Utah state tax refund" unit = USD documentation = "Form TC-40, line 7" + reference = "https://tax.utah.gov/forms/current/tc-40.pdf" definition_period = YEAR defined_for = StateCode.UT From 5d3d1312fd032c6134c360bfff7eb5b20311b244 Mon Sep 17 00:00:00 2001 From: Deepak Jindal Date: Mon, 14 Sep 2026 21:15:24 -0700 Subject: [PATCH 4/4] Address review feedback on PR #9422: state conformity, federal base offsets, and test overhaul - Remove salt_refund_income from non-conforming states (AZ, ND, IA, RI, HI, GA) - Add state refund subtractions/exclusions for federal-AGI states (MA, KS, ME, MO, MT, NM) - Remove deprecated salt_refund_last_year variable and add changelog fragment - Correct citations and comments for NY, IN, VA, and DE - Overhaul salt_refund_integration.yaml with Case N naming, end-to-end base assertions, and non-conforming state tests --- ...fix-9122-salt-refund-gross-income.fixed.md | 2 +- ...x-9122-salt-refund-gross-income.removed.md | 1 + .../tax/income/subtractions/subtractions.yaml | 3 - .../tax/income/subtractions/subtractions.yaml | 4 +- .../tax/income/subtractions/subtractions.yaml | 4 - .../tax/income/subtractions/subtractions.yaml | 2 - .../income/taxable_income/subtractions.yaml | 2 - .../in/tax/income/deductions/deductions.yaml | 8 +- .../income/subtractions/agi_subtractions.yaml | 2 + .../tax/income/subtractions/subtractions.yaml | 3 + .../taxable_income/subtractions/sources.yaml | 3 - .../other_deductions_and_exemptions.yaml | 1 + .../tax/income/agi/subtractions/sources.yaml | 8 +- .../income/agi/subtractions/subtractions.yaml | 2 - .../tax/income/subtractions/subtractions.yaml | 2 +- .../gov/irs/salt_refund_integration.yaml | 268 +++++++++++++----- .../gov/local/tax/salt_refund_last_year.py | 16 -- .../ks/tax/income/ks_agi_subtractions.py | 4 +- .../income/gross_income/ma_gross_income.py | 6 +- .../me_agi_subtractions.py | 1 + 20 files changed, 227 insertions(+), 115 deletions(-) create mode 100644 changelog.d/fix-9122-salt-refund-gross-income.removed.md delete mode 100644 policyengine_us/variables/gov/local/tax/salt_refund_last_year.py diff --git a/changelog.d/fix-9122-salt-refund-gross-income.fixed.md b/changelog.d/fix-9122-salt-refund-gross-income.fixed.md index e818b3bd4d7..75c2e4ebc26 100644 --- a/changelog.d/fix-9122-salt-refund-gross-income.fixed.md +++ b/changelog.d/fix-9122-salt-refund-gross-income.fixed.md @@ -1 +1 @@ -Include state and local tax refund income (`salt_refund_income`) in federal gross income and subtract/deduct it in conforming states. Standardize state refund inputs on canonical `salt_refund_income` and deprecate `salt_refund_last_year`. +Include state and local tax refund income (`salt_refund_income`) in federal gross income and subtract/deduct it in conforming states. diff --git a/changelog.d/fix-9122-salt-refund-gross-income.removed.md b/changelog.d/fix-9122-salt-refund-gross-income.removed.md new file mode 100644 index 00000000000..dbe71c44fff --- /dev/null +++ b/changelog.d/fix-9122-salt-refund-gross-income.removed.md @@ -0,0 +1 @@ +Remove deprecated `salt_refund_last_year` in favor of canonical person-level `salt_refund_income`. diff --git a/policyengine_us/parameters/gov/states/az/tax/income/subtractions/subtractions.yaml b/policyengine_us/parameters/gov/states/az/tax/income/subtractions/subtractions.yaml index 2f6b800c1cb..7d6ed6e5b67 100644 --- a/policyengine_us/parameters/gov/states/az/tax/income/subtractions/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/az/tax/income/subtractions/subtractions.yaml @@ -11,7 +11,6 @@ values: - az_529a_able_account_subtraction # Line 34b - az_adoption_expense_subtraction # Other subtractions - Item D - az_families_tax_rebate_subtraction # Line 36, Item U - - salt_refund_income # Line 27 2025-01-01: - us_govt_interest # Line 28 - az_public_pension_exclusion # Line 29a @@ -28,7 +27,6 @@ values: - overtime_income_deduction # MCTCP worksheet Line 3 (Sch 1-A Line 21) - auto_loan_interest_deduction # MCTCP worksheet Line 4 (Sch 1-A Line 30) - additional_senior_deduction # MCTCP worksheet Line 5 (Sch 1-A Line 37) - - salt_refund_income # Line 27 # HB 4168 (2026): auto loan interest sunsets after TY2025 (43-1022(36)); # adds child & dependent care and IRC 530A distribution subtractions. 2026-01-01: @@ -47,7 +45,6 @@ values: - additional_senior_deduction # 43-1022(35) - az_dependent_care_expense_subtraction # 43-1022(34) - az_530a_distribution_subtraction # 43-1022(33) - - salt_refund_income # Line 27 metadata: unit: list period: year diff --git a/policyengine_us/parameters/gov/states/de/tax/income/subtractions/subtractions.yaml b/policyengine_us/parameters/gov/states/de/tax/income/subtractions/subtractions.yaml index 3658de8697e..179f77e6ab0 100644 --- a/policyengine_us/parameters/gov/states/de/tax/income/subtractions/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/de/tax/income/subtractions/subtractions.yaml @@ -8,7 +8,7 @@ values: # to the extent included in federal AGI, is excluded under # 30 Del. C. § 1106(b)(10) (HB 65 of 2021; HB 285 of 2022). - taxable_unemployment_compensation # (10) - - salt_refund_income # (1) + - salt_refund_income # 30 Del. C. § 1106(b)(9) / PIT-RES Line 7 # The elderly or disabled income exclusion is computed separately # - de_elderly_or_disabled_income_exclusion # (2) 2022-01-01: @@ -16,7 +16,7 @@ values: - taxable_social_security # (4) - us_govt_interest_person - de_529_plan_subtraction # HB 145 - - salt_refund_income # (1) + - salt_refund_income # 30 Del. C. § 1106(b)(9) / PIT-RES Line 7 metadata: unit: list diff --git a/policyengine_us/parameters/gov/states/ga/tax/income/subtractions/subtractions.yaml b/policyengine_us/parameters/gov/states/ga/tax/income/subtractions/subtractions.yaml index 582fe4cd4bf..3a03a2a6dcd 100644 --- a/policyengine_us/parameters/gov/states/ga/tax/income/subtractions/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/ga/tax/income/subtractions/subtractions.yaml @@ -10,14 +10,12 @@ values: - ga_retirement_exclusion - taxable_social_security - ga_investment_in_529_plan_deduction - - salt_refund_income 2022-01-01: - us_govt_interest - ga_retirement_exclusion - ga_military_retirement_exclusion - taxable_social_security - ga_investment_in_529_plan_deduction - - salt_refund_income 2026-01-01: - us_govt_interest - ga_retirement_exclusion @@ -26,14 +24,12 @@ values: - ga_investment_in_529_plan_deduction - ga_qualified_overtime_exclusion - ga_cash_tip_exclusion - - salt_refund_income 2029-01-01: - us_govt_interest - ga_retirement_exclusion - ga_military_retirement_exclusion - taxable_social_security - ga_investment_in_529_plan_deduction - - salt_refund_income metadata: unit: list diff --git a/policyengine_us/parameters/gov/states/hi/tax/income/subtractions/subtractions.yaml b/policyengine_us/parameters/gov/states/hi/tax/income/subtractions/subtractions.yaml index ef118b0fa62..241ecdea1a0 100644 --- a/policyengine_us/parameters/gov/states/hi/tax/income/subtractions/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/hi/tax/income/subtractions/subtractions.yaml @@ -6,14 +6,12 @@ values: - hi_military_pay_exclusion # Line 15 - us_govt_interest # Line 18 - student_loan_interest_ald # Line 18 - - salt_refund_income # Line 8 2025-01-01: - taxable_pension_income # Line 13 - taxable_social_security # Line 14 - hi_military_pay_exclusion # Line 15 - us_govt_interest # Line 18 - hi_student_loan_interest_subtraction # Line 18 - - salt_refund_income # Line 8 metadata: diff --git a/policyengine_us/parameters/gov/states/ia/tax/income/taxable_income/subtractions.yaml b/policyengine_us/parameters/gov/states/ia/tax/income/taxable_income/subtractions.yaml index e54e17535aa..a4e6efa99de 100644 --- a/policyengine_us/parameters/gov/states/ia/tax/income/taxable_income/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/ia/tax/income/taxable_income/subtractions.yaml @@ -15,7 +15,6 @@ values: # Iowa Health Insurance Deduction # Iowa capital gains deduction - ia_529_plan_subtraction - - salt_refund_income 2024-01-01: # military_retirement_pay added in 2024. # Line 1B - us_govt_interest @@ -33,7 +32,6 @@ values: # Iowa Health Insurance Deduction # Iowa capital gains deduction - ia_529_plan_subtraction - - salt_refund_income metadata: unit: list diff --git a/policyengine_us/parameters/gov/states/in/tax/income/deductions/deductions.yaml b/policyengine_us/parameters/gov/states/in/tax/income/deductions/deductions.yaml index 8df8a7ce959..3d8305267bb 100644 --- a/policyengine_us/parameters/gov/states/in/tax/income/deductions/deductions.yaml +++ b/policyengine_us/parameters/gov/states/in/tax/income/deductions/deductions.yaml @@ -17,7 +17,7 @@ values: - in_renters_deduction # IC 6-1.1 - in_homeowners_property_tax_deduction - # IC 6-3-1-3.5(a)(1) + # IC 6-3-1-3.5(a)(6) / IT-40 Schedule 2 line 3 (code 618) - salt_refund_income # IC 6-8-5-1 - us_govt_interest @@ -41,7 +41,7 @@ values: - in_renters_deduction # IC 6-1.1 - in_homeowners_property_tax_deduction - # IC 6-3-1-3.5(a)(1) + # IC 6-3-1-3.5(a)(6) / IT-40 Schedule 2 line 3 (code 618) - salt_refund_income # IC 6-8-5-1 - us_govt_interest @@ -67,7 +67,7 @@ values: - in_renters_deduction # IC 6-1.1 - in_homeowners_property_tax_deduction - # IC 6-3-1-3.5(a)(1) + # IC 6-3-1-3.5(a)(6) / IT-40 Schedule 2 line 3 (code 618) - salt_refund_income # IC 6-8-5-1 - us_govt_interest @@ -99,7 +99,7 @@ values: - in_renters_deduction # IC 6-1.1 - in_homeowners_property_tax_deduction - # IC 6-3-1-3.5(a)(1) + # IC 6-3-1-3.5(a)(6) / IT-40 Schedule 2 line 3 (code 618) - salt_refund_income # IC 6-8-5-1 - us_govt_interest diff --git a/policyengine_us/parameters/gov/states/mo/tax/income/subtractions/agi_subtractions.yaml b/policyengine_us/parameters/gov/states/mo/tax/income/subtractions/agi_subtractions.yaml index 4f0a0a48e64..9d81d585c0c 100644 --- a/policyengine_us/parameters/gov/states/mo/tax/income/subtractions/agi_subtractions.yaml +++ b/policyengine_us/parameters/gov/states/mo/tax/income/subtractions/agi_subtractions.yaml @@ -4,11 +4,13 @@ values: - mo_qualified_health_insurance_premiums - us_govt_interest_person - mo_529_deduction + - salt_refund_income # 143.121 RSMo / Form MO-A Line 9 2025-01-01: - mo_qualified_health_insurance_premiums - mo_capital_gains_subtraction_person - us_govt_interest_person - mo_529_deduction + - salt_refund_income # 143.121 RSMo / Form MO-A Line 9 metadata: diff --git a/policyengine_us/parameters/gov/states/mt/tax/income/subtractions/subtractions.yaml b/policyengine_us/parameters/gov/states/mt/tax/income/subtractions/subtractions.yaml index df9b68396e6..54393b6df0b 100644 --- a/policyengine_us/parameters/gov/states/mt/tax/income/subtractions/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/mt/tax/income/subtractions/subtractions.yaml @@ -11,11 +11,13 @@ values: # Former 15-30-2110, MCA exempted unemployment compensation; # SB 399 (2021) repealed the exemption effective tax year 2024. - mt_unemployment_compensation_subtraction + - salt_refund_income # Form 2 Subtractions Schedule 2024-01-01: - mt_interest_exemption_person - mt_tuition_subtraction_person - mt_old_age_subtraction - mt_disability_income_exclusion_person + - salt_refund_income # MCA 15-30-2120 / Form 2 Subtractions Schedule 2025-01-01: # Section 15-30-2120 starts from federal taxable income, so federal # OBBBA Schedule 1-A deductions (enhanced senior deduction, qualified @@ -28,6 +30,7 @@ values: # TODO: Remove this subtraction starting in 2029 because the federal # Schedule 1-A deductions expire after 2028. - mt_federal_obbba_subtraction + - salt_refund_income # MCA 15-30-2120 / Form 2 Subtractions Schedule metadata: unit: list period: year diff --git a/policyengine_us/parameters/gov/states/nd/tax/income/taxable_income/subtractions/sources.yaml b/policyengine_us/parameters/gov/states/nd/tax/income/taxable_income/subtractions/sources.yaml index 82e97ff82bd..b4baa1b3a2c 100644 --- a/policyengine_us/parameters/gov/states/nd/tax/income/taxable_income/subtractions/sources.yaml +++ b/policyengine_us/parameters/gov/states/nd/tax/income/taxable_income/subtractions/sources.yaml @@ -8,7 +8,6 @@ values: - military_retirement_pay - nd_529_deduction - nd_stillborn_subtraction - - salt_refund_income 2022-01-01: - us_govt_interest @@ -18,7 +17,6 @@ values: - military_retirement_pay - nd_529_deduction - nd_stillborn_subtraction - - salt_refund_income 2023-01-01: - us_govt_interest @@ -29,7 +27,6 @@ values: - military_service_income # military pay exclusion - nd_529_deduction - nd_stillborn_subtraction - - salt_refund_income metadata: unit: list diff --git a/policyengine_us/parameters/gov/states/nm/tax/income/other_deductions_and_exemptions.yaml b/policyengine_us/parameters/gov/states/nm/tax/income/other_deductions_and_exemptions.yaml index baf8f7ab0ca..e08f046d17d 100644 --- a/policyengine_us/parameters/gov/states/nm/tax/income/other_deductions_and_exemptions.yaml +++ b/policyengine_us/parameters/gov/states/nm/tax/income/other_deductions_and_exemptions.yaml @@ -4,6 +4,7 @@ values: - us_govt_interest - nm_529_plan_deduction - military_service_income + - salt_refund_income # Form PIT-ADJ metadata: unit: list label: New Mexico other deduction and exemption elements diff --git a/policyengine_us/parameters/gov/states/ny/tax/income/agi/subtractions/sources.yaml b/policyengine_us/parameters/gov/states/ny/tax/income/agi/subtractions/sources.yaml index edcd3dc5a70..ec2cc24fec9 100644 --- a/policyengine_us/parameters/gov/states/ny/tax/income/agi/subtractions/sources.yaml +++ b/policyengine_us/parameters/gov/states/ny/tax/income/agi/subtractions/sources.yaml @@ -7,7 +7,7 @@ values: - ny_pension_exclusion - salt_refund_income metadata: - unit: currency-USD + unit: list period: year label: New York AGI Subtractions reference: @@ -15,9 +15,9 @@ metadata: href: https://www.tax.ny.gov/pdf/2023/printable-pdfs/inc/it201i-2023.pdf#page=12 - title: 2024 NY Form IT-201 Instructions Line 29 href: https://www.tax.ny.gov/pdf/2024/inc/it201i_2024.pdf#page=9 - - title: 2024 NY Form IT-201 Instructions Line 24 (State and local income tax refunds) - href: https://www.tax.ny.gov/pdf/2024/inc/it201i_2024.pdf#page=14 + - title: 2024 NY Form IT-201, Line 24 (Taxable refunds, credits, or offsets of state and local income taxes) + href: https://www.tax.ny.gov/pdf/2024/inc/it201_2024.pdf#page=2 - title: N.Y. Tax Law § 612(c)(7) - href: https://casetext.com/statute/consolidated-laws-of-new-york/chapter-tax/article-22-personal-income-tax/part-ii-residents/section-612-new-york-adjusted-gross-income-of-a-resident-individual + href: https://newyork.public.law/laws/n.y._tax_law_section_612 - title: N.Y. Comp. Codes R. & Regs. tit. 20 § 112.3 href: https://casetext.com/regulation/new-york-codes-rules-and-regulations/title-20-department-of-taxation-and-finance/chapter-ii-income-taxes-and-estate-taxes/subchapter-a-new-york-state-personal-income-tax-under-article-22-of-the-tax-law/article-2-residents/part-112-new-york-adjusted-gross-income-of-a-resident-individual/section-1123-modifications-reducing-federal-adjusted-gross-income diff --git a/policyengine_us/parameters/gov/states/ri/tax/income/agi/subtractions/subtractions.yaml b/policyengine_us/parameters/gov/states/ri/tax/income/agi/subtractions/subtractions.yaml index a29bcd714ea..702508f7f68 100644 --- a/policyengine_us/parameters/gov/states/ri/tax/income/agi/subtractions/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/ri/tax/income/agi/subtractions/subtractions.yaml @@ -6,7 +6,6 @@ values: - ri_tuition_saving_program_contribution_subtraction - ri_retirement_income_subtraction - us_govt_interest - - salt_refund_income 2023-01-01: - ri_social_security_modification @@ -14,7 +13,6 @@ values: - ri_retirement_income_subtraction - us_govt_interest - military_retirement_pay - - salt_refund_income metadata: unit: list diff --git a/policyengine_us/parameters/gov/states/va/tax/income/subtractions/subtractions.yaml b/policyengine_us/parameters/gov/states/va/tax/income/subtractions/subtractions.yaml index 34d998a4796..9cbfa2282c2 100644 --- a/policyengine_us/parameters/gov/states/va/tax/income/subtractions/subtractions.yaml +++ b/policyengine_us/parameters/gov/states/va/tax/income/subtractions/subtractions.yaml @@ -14,7 +14,7 @@ values: - va_529_plan_deduction_person # Certification Number 34 - va_age_deduction_person # Certification Number 4 - taxable_social_security # Certification Number 5 - - salt_refund_income # Certification Number 00 + - salt_refund_income # Form 760 Line 6 / Va. Code § 58.1-322.02(2) metadata: diff --git a/policyengine_us/tests/policy/baseline/gov/irs/salt_refund_integration.yaml b/policyengine_us/tests/policy/baseline/gov/irs/salt_refund_integration.yaml index 63f2803e7db..4d5ec25ea08 100644 --- a/policyengine_us/tests/policy/baseline/gov/irs/salt_refund_integration.yaml +++ b/policyengine_us/tests/policy/baseline/gov/irs/salt_refund_integration.yaml @@ -1,4 +1,4 @@ -- name: Federal AGI includes state and local tax refund income +- name: Case 1, Federal AGI includes state and local tax refund income. period: 2024 input: employment_income: 50_000 @@ -6,7 +6,7 @@ output: adjusted_gross_income: 52_000 -- name: California subtracts state and local tax refund income from AGI +- name: Case 2, California subtracts state and local tax refund income from AGI. period: 2024 input: employment_income: 50_000 @@ -14,154 +14,182 @@ state_code: CA output: adjusted_gross_income: 52_000 + ca_agi_subtractions: 2_000 ca_agi: 50_000 -- name: Utah subtracts state and local tax refund income from taxable income +- name: Case 3, Colorado subtractions include state and local tax refund income. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 - state_code: UT + state_code: CO output: - ut_state_tax_refund: 2_000 + adjusted_gross_income: 52_000 + co_subtractions: 2_000 + co_taxable_income: 35_400 -- name: Idaho subtracts state and local tax refund income from AGI +- name: Case 4, Connecticut subtractions include state and local tax refund income. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 - state_code: ID + state_code: CT output: adjusted_gross_income: 52_000 - id_agi: 50_000 + ct_agi_subtractions: 2_000 + ct_agi: 50_000 -- name: Indiana includes state and local tax refund income in deductions +- name: Case 5, District of Columbia subtractions include state and local tax refund income. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 - state_code: IN + state_code: DC output: - in_deductions: 2_000 + adjusted_gross_income: 52_000 + dc_income_subtractions: 2_000 + dc_taxable_income: 35_400 -- name: Arizona subtractions include state and local tax refund income +- name: Case 6, Delaware subtractions include state and local tax refund income. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 - state_code: AZ + state_code: DE output: - az_subtractions: 2_000 + adjusted_gross_income: 52_000 + de_subtractions: 2_000 + de_agi: 50_000 -- name: Colorado subtractions include state and local tax refund income +- name: Case 7, Idaho subtracts state and local tax refund income from AGI. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 - state_code: CO + state_code: ID output: - co_subtractions: 2_000 + adjusted_gross_income: 52_000 + id_subtractions: 2_000 + id_agi: 50_000 -- name: Connecticut subtractions include state and local tax refund income +- name: Case 8, Illinois subtractions include state and local tax refund income. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 - state_code: CT + state_code: IL output: - ct_agi_subtractions: 2_000 + adjusted_gross_income: 52_000 + il_base_income_subtractions: 2_000 + il_base_income: 50_000 -- name: District of Columbia subtractions include state and local tax refund income +- name: Case 9, Indiana includes state and local tax refund income in deductions. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 - state_code: DC + state_code: IN output: - dc_income_subtractions: 2_000 + adjusted_gross_income: 52_000 + in_deductions: 2_000 + in_agi: 49_000 -- name: Delaware subtractions include state and local tax refund income +- name: Case 10, Kansas subtracts state and local tax refund income from AGI. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 - state_code: DE + state_code: KS output: - de_subtractions: 2_000 + adjusted_gross_income: 52_000 + ks_agi_subtractions: 2_000 + ks_agi: 50_000 -- name: Georgia subtractions include state and local tax refund income +- name: Case 11, Kentucky subtractions include state and local tax refund income. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 - state_code: GA + state_code: KY output: - ga_subtractions: 2_000 + adjusted_gross_income: 52_000 + ky_subtractions: 2_000 + ky_taxable_income: 46_840 -- name: Hawaii subtractions include state and local tax refund income +- name: Case 12, Massachusetts excludes state and local tax refund income from gross income. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 - state_code: HI + state_code: MA output: - hi_subtractions: 2_000 + ma_gross_income: 50_000 -- name: Iowa subtractions include state and local tax refund income +- name: Case 13, Maryland subtractions include state and local tax refund income. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 - state_code: IA + state_code: MD output: - ia_subtractions_consolidated: 2_000 + adjusted_gross_income: 52_000 + md_total_subtractions: 2_000 + md_agi: 50_000 -- name: Illinois subtractions include state and local tax refund income +- name: Case 14, Maine subtracts state and local tax refund income from AGI. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 - state_code: IL + state_code: ME output: - il_base_income_subtractions: 2_000 + adjusted_gross_income: 52_000 + me_agi_subtractions: 2_000 + me_agi: 50_000 -- name: Kentucky subtractions include state and local tax refund income +- name: Case 15, Michigan subtractions include state and local tax refund income. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 - state_code: KY + state_code: MI output: - ky_subtractions: 2_000 + adjusted_gross_income: 52_000 + mi_subtractions: 2_000 + mi_taxable_income: 44_400 -- name: Maryland subtractions include state and local tax refund income +- name: Case 16, Minnesota subtractions include state and local tax refund income. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 - state_code: MD + state_code: MN output: - md_total_subtractions: 2_000 + adjusted_gross_income: 52_000 + mn_subtractions: 2_000 + mn_taxable_income: 35_425 -- name: Michigan subtractions include state and local tax refund income +- name: Case 17, Missouri subtracts state and local tax refund income from AGI. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 - state_code: MI + state_code: MO output: - mi_subtractions: 2_000 + adjusted_gross_income: 52_000 + mo_adjusted_gross_income: 50_000 -- name: Minnesota subtractions include state and local tax refund income +- name: Case 18, Montana subtracts state and local tax refund income from AGI. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 - state_code: MN + state_code: MT output: - mn_subtractions: 2_000 + adjusted_gross_income: 52_000 + mt_agi_joint: 50_000 -- name: North Carolina deductions include state and local tax refund income +- name: Case 19, North Carolina deductions include state and local tax refund income. period: 2024 input: employment_income: 50_000 @@ -170,53 +198,63 @@ state_code: NC output: nc_deductions: 2_000 + nc_taxable_income: 50_000 -- name: North Dakota subtractions include state and local tax refund income +- name: Case 20, Nebraska subtractions include state and local tax refund income. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 - state_code: ND + state_code: NE output: - nd_subtractions: 2_000 + adjusted_gross_income: 52_000 + ne_agi_subtractions: 2_000 + ne_taxable_income: 41_650 -- name: Nebraska subtractions include state and local tax refund income +- name: Case 21, New Mexico deductions include state and local tax refund income. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 - state_code: NE + state_code: NM output: - ne_agi_subtractions: 2_000 + adjusted_gross_income: 52_000 + nm_taxable_income: 35_400 -- name: New York subtractions include state and local tax refund income +- name: Case 22, New York subtractions include state and local tax refund income. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 state_code: NY output: + adjusted_gross_income: 52_000 ny_agi_subtractions: 2_000 + ny_agi: 50_000 -- name: Ohio deductions include state and local tax refund income +- name: Case 23, Ohio deductions include state and local tax refund income. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 state_code: OH output: + adjusted_gross_income: 52_000 oh_deductions: 2_000 + oh_agi: 50_000 -- name: Oklahoma subtractions include state and local tax refund income +- name: Case 24, Oklahoma subtractions include state and local tax refund income. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 state_code: OK output: + adjusted_gross_income: 52_000 ok_agi_subtractions: 2_000 + ok_agi: 50_000 -- name: Oregon subtractions include state and local tax refund income +- name: Case 25, Oregon subtractions include state and local tax refund income. period: 2024 input: employment_income: 50_000 @@ -224,9 +262,11 @@ or_federal_tax_liability_subtraction: 0 state_code: OR output: + adjusted_gross_income: 52_000 or_income_subtractions: 2_000 + or_taxable_income: 47_255 -- name: Pennsylvania nontaxable income includes state and local tax refund income +- name: Case 26, Pennsylvania nontaxable income includes state and local tax refund income. period: 2024 input: employment_income: 50_000 @@ -235,38 +275,130 @@ output: pa_total_taxable_income: 50_000 -- name: Rhode Island subtractions include state and local tax refund income +- name: Case 27, South Carolina subtractions include state and local tax refund income. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 - state_code: RI + state_code: SC + output: + adjusted_gross_income: 52_000 + sc_subtractions: 2_000 + sc_taxable_income: 35_400 + +- name: Case 28, Utah subtracts state and local tax refund income from taxable income. + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: UT output: - ri_subtractions: 2_000 + ut_state_tax_refund: 2_000 + ut_taxable_income: 50_000 -- name: Virginia subtractions include state and local tax refund income +- name: Case 29, Virginia subtractions include state and local tax refund income. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 state_code: VA output: + adjusted_gross_income: 52_000 va_subtractions: 2_000 + va_agi: 50_000 -- name: Vermont subtractions include state and local tax refund income +- name: Case 30, Vermont subtractions include state and local tax refund income. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 state_code: VT output: + adjusted_gross_income: 52_000 vt_subtractions: 2_000 + vt_taxable_income: 37_500 -- name: Wisconsin subtractions include state and local tax refund income +- name: Case 31, Wisconsin subtractions include state and local tax refund income. period: 2024 input: employment_income: 50_000 salt_refund_income: 2_000 state_code: WI output: + adjusted_gross_income: 52_000 wi_income_subtractions: 2_000 + +- name: Case 32, West Virginia subtractions include state and local tax refund income. + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: WV + output: + adjusted_gross_income: 52_000 + wv_subtractions: 2_000 + wv_taxable_income: 48_000 + +- name: Case 33, Arizona does not subtract state and local tax refund income. + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: AZ + output: + adjusted_gross_income: 52_000 + az_subtractions: 0 + az_agi: 52_000 + +- name: Case 34, Georgia does not subtract Georgia state tax refund income. + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: GA + output: + adjusted_gross_income: 52_000 + ga_subtractions: 0 + ga_agi: 52_000 + +- name: Case 35, Hawaii does not subtract Hawaii state tax refund income. + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: HI + output: + adjusted_gross_income: 52_000 + hi_subtractions: 0 + hi_agi: 52_000 + +- name: Case 36, Iowa consolidated regime does not subtract state tax refund income. + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: IA + output: + ia_subtractions_consolidated: 0 + ia_taxable_income_consolidated: 37_400 + +- name: Case 37, North Dakota does not subtract state tax refund income. + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: ND + output: + nd_subtractions: 0 + nd_taxable_income: 37_400 + +- name: Case 38, Rhode Island does not subtract state tax refund income. + period: 2024 + input: + employment_income: 50_000 + salt_refund_income: 2_000 + state_code: RI + output: + adjusted_gross_income: 52_000 + ri_subtractions: 0 + ri_agi: 52_000 diff --git a/policyengine_us/variables/gov/local/tax/salt_refund_last_year.py b/policyengine_us/variables/gov/local/tax/salt_refund_last_year.py deleted file mode 100644 index 7e8a8a80258..00000000000 --- a/policyengine_us/variables/gov/local/tax/salt_refund_last_year.py +++ /dev/null @@ -1,16 +0,0 @@ -from policyengine_us.model_api import * - - -class salt_refund_last_year(Variable): - value_type = float - entity = TaxUnit - label = "SALT refund last year" - unit = USD - definition_period = YEAR - documentation = ( - "[DEPRECATED] Use salt_refund_income instead. Taxable state and local" - " tax refund income for the tax unit (Form 1040, Schedule 1, line 1 /" - " IRC § 111)." - ) - - adds = ["salt_refund_income"] diff --git a/policyengine_us/variables/gov/states/ks/tax/income/ks_agi_subtractions.py b/policyengine_us/variables/gov/states/ks/tax/income/ks_agi_subtractions.py index 8f9b3fc5ae7..e74ed19767a 100644 --- a/policyengine_us/variables/gov/states/ks/tax/income/ks_agi_subtractions.py +++ b/policyengine_us/variables/gov/states/ks/tax/income/ks_agi_subtractions.py @@ -19,4 +19,6 @@ def formula(tax_unit, period, parameters): oasdi_subtraction = where(agi <= p.oasdi.agi_limit, taxable_oasdi, 0) us_govt_interest = add(tax_unit, period, ["us_govt_interest"]) plan_529 = tax_unit("ks_529_plan_subtraction", period) - return oasdi_subtraction + us_govt_interest + plan_529 + # K.S.A. 79-32,117(c)(v) / Form K-40 Schedule S Line A12 + salt_refund_income = add(tax_unit, period, ["salt_refund_income"]) + return oasdi_subtraction + us_govt_interest + plan_529 + salt_refund_income diff --git a/policyengine_us/variables/gov/states/ma/tax/income/gross_income/ma_gross_income.py b/policyengine_us/variables/gov/states/ma/tax/income/gross_income/ma_gross_income.py index b9bb741ca93..9fd307237ba 100644 --- a/policyengine_us/variables/gov/states/ma/tax/income/gross_income/ma_gross_income.py +++ b/policyengine_us/variables/gov/states/ma/tax/income/gross_income/ma_gross_income.py @@ -15,8 +15,10 @@ def formula(tax_unit, period, parameters): federal_gross_income = add(tax_unit, period, ["irs_gross_income"]) # Add back lines 6/7 losses dropped by irs_gross_income. loss_adjustment = tax_unit("ma_gross_income_loss_adjustment", period) - # Exclude foreign earned income and Social Security. + # Exclude foreign earned income, Social Security, and state/local tax refunds. + # Per M.G.L. c. 62 § 2 and Form 1 Schedule X Line 4, state/local refunds are not MA income. foreign_earned_income = tax_unit("foreign_earned_income_exclusion", period) social_security_in_agi = add(tax_unit, period, ["taxable_social_security"]) - deductions = foreign_earned_income + social_security_in_agi + salt_refund_income = add(tax_unit, period, ["salt_refund_income"]) + deductions = foreign_earned_income + social_security_in_agi + salt_refund_income return max_(0, federal_gross_income + loss_adjustment - deductions) diff --git a/policyengine_us/variables/gov/states/me/tax/income/adjusted_gross_income/me_agi_subtractions.py b/policyengine_us/variables/gov/states/me/tax/income/adjusted_gross_income/me_agi_subtractions.py index cfba79a33af..c7becaee41d 100644 --- a/policyengine_us/variables/gov/states/me/tax/income/adjusted_gross_income/me_agi_subtractions.py +++ b/policyengine_us/variables/gov/states/me/tax/income/adjusted_gross_income/me_agi_subtractions.py @@ -17,4 +17,5 @@ class me_agi_subtractions(Variable): "me_pension_income_deduction", "me_529_plan_subtraction", "me_affordability_payment_subtraction", + "salt_refund_income", # 36 M.R.S. § 5122(2)(A) / Schedule 1S line 1 ]