Skip to content

Commit a4be569

Browse files
authored
Add NM, SC, and WV 529 plan deductions
Adds state-specific 529 plan deduction/subtraction variables for New Mexico, South Carolina, and West Virginia and wires them into each state income tax list. Adds targeted tests for each state so unlimited 529 deductions are included without relying on the generic capped state deduction parameter. Closes #7548. Closes #7561. Closes #7570.
1 parent f1b66d0 commit a4be569

10 files changed

Lines changed: 168 additions & 5 deletions

File tree

changelog.d/added/7548.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Add explicit New Mexico, South Carolina, and West Virginia 529 plan contribution deductions.

policyengine_us/parameters/gov/states/nm/tax/income/other_deductions_and_exemptions.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ description: New Mexico other deduction and exemptions elements.
22
values:
33
2021-01-01:
44
- us_govt_interest
5-
- investment_in_529_plan
5+
- nm_529_plan_deduction
66
- military_service_income
77
metadata:
88
unit: list
@@ -19,4 +19,4 @@ metadata:
1919
- title: New Mexico Income Tax Act, Chapter 7 - Taxation, 3.3.1.12. INCOME FROM OBLIGATIONS OF GOVERNMENTS
2020
href: https://casetext.com/regulation/new-mexico-administrative-code/title-3-taxation/chapter-3-personal-income-taxes/part-1-general-provisions/section-33112-income-from-obligations-of-governments
2121
- title: New Mexico Income Tax Act, Chapter 7 - Taxation, 7-2-32. Deduction; payments into education trust fund.
22-
hef: https://nmonesource.com/nmos/nmsa/en/item/4340/index.do#!fragment/zoupio-_Toc141270056/BQCwhgziBcwMYgK4DsDWszIQewE4BUBTADwBdoAvbRABwEtsBaAfX2zgEYAWDgJgHYADIICsANgCUAGmTZShCAEVEhXAE9oAck1SIhMLgTLVG7bv2GQAZTykAQhoBKAUQAyzgGoBBAHIBhZylSMAAjaFJ2CQkgA
22+
href: https://nmonesource.com/nmos/nmsa/en/item/4340/index.do#!fragment/zoupio-_Toc141270056/BQCwhgziBcwMYgK4DsDWszIQewE4BUBTADwBdoAvbRABwEtsBaAfX2zgEYAWDgJgHYADIICsANgCUAGmTZShCAEVEhXAE9oAck1SIhMLgTLVG7bv2GQAZTykAQhoBKAUQAyzgGoBBAHIBhZylSMAAjaFJ2CQkgA

policyengine_us/parameters/gov/states/sc/tax/income/subtractions/subtractions.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ values:
44
- salt_refund_income
55
- disability_benefits #include tax disability benefits
66
- sc_net_capital_gain_deduction
7-
- investment_in_529_plan
7+
- sc_529_plan_deduction
88
- us_govt_interest
99
- taxable_social_security
1010
- sc_military_deduction
@@ -25,7 +25,7 @@ values:
2525
- salt_refund_income
2626
- disability_benefits
2727
- sc_net_capital_gain_deduction
28-
- investment_in_529_plan
28+
- sc_529_plan_deduction
2929
- us_govt_interest
3030
- taxable_social_security
3131
- sc_military_deduction

policyengine_us/parameters/gov/states/wv/tax/income/subtractions/subtractions.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ values:
77
- wv_social_security_benefits_subtraction # Line 32
88
- military_service_income # Line 34
99
- salt_refund_income # Line 36
10-
- investment_in_529_plan
10+
- wv_529_plan_deduction
1111
- wv_senior_citizen_disability_deduction # Line 47
1212
- wv_low_income_earned_income_exclusion
1313

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
- name: New Mexico deducts full 529 contributions
2+
period: 2024
3+
input:
4+
state_code: NM
5+
investment_in_529_plan_indv: 5_000
6+
output:
7+
nm_529_plan_deduction: 5_000
8+
nm_other_deductions_and_exemptions: 5_000
9+
10+
- name: New Mexico sums 529 contributions across joint filers
11+
period: 2024
12+
input:
13+
people:
14+
person1:
15+
investment_in_529_plan_indv: 7_000
16+
person2:
17+
investment_in_529_plan_indv: 3_000
18+
tax_units:
19+
tax_unit:
20+
members: [person1, person2]
21+
filing_status: JOINT
22+
households:
23+
household:
24+
members: [person1, person2]
25+
state_code: NM
26+
output:
27+
nm_529_plan_deduction: 10_000
28+
nm_other_deductions_and_exemptions: 10_000
29+
30+
- name: New Mexico 529 deduction is zero without contributions
31+
period: 2024
32+
input:
33+
state_code: NM
34+
investment_in_529_plan_indv: 0
35+
output:
36+
nm_529_plan_deduction: 0
37+
nm_other_deductions_and_exemptions: 0
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
- name: South Carolina deducts full 529 contributions
2+
period: 2024
3+
input:
4+
state_code: SC
5+
investment_in_529_plan_indv: 5_000
6+
output:
7+
sc_529_plan_deduction: 5_000
8+
sc_subtractions: 5_000
9+
10+
- name: South Carolina sums 529 contributions across joint filers
11+
period: 2024
12+
input:
13+
people:
14+
person1:
15+
investment_in_529_plan_indv: 7_000
16+
person2:
17+
investment_in_529_plan_indv: 3_000
18+
tax_units:
19+
tax_unit:
20+
members: [person1, person2]
21+
filing_status: JOINT
22+
households:
23+
household:
24+
members: [person1, person2]
25+
state_code: SC
26+
output:
27+
sc_529_plan_deduction: 10_000
28+
sc_subtractions: 10_000
29+
30+
- name: South Carolina 529 deduction is zero without contributions
31+
period: 2024
32+
input:
33+
state_code: SC
34+
investment_in_529_plan_indv: 0
35+
output:
36+
sc_529_plan_deduction: 0
37+
sc_subtractions: 0
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
- name: West Virginia deducts full 529 contributions
2+
period: 2024
3+
input:
4+
state_code: WV
5+
investment_in_529_plan_indv: 5_000
6+
output:
7+
wv_529_plan_deduction: 5_000
8+
wv_subtractions: 5_000
9+
10+
- name: West Virginia sums 529 contributions across joint filers
11+
period: 2024
12+
input:
13+
people:
14+
person1:
15+
investment_in_529_plan_indv: 7_000
16+
person2:
17+
investment_in_529_plan_indv: 3_000
18+
tax_units:
19+
tax_unit:
20+
members: [person1, person2]
21+
filing_status: JOINT
22+
households:
23+
household:
24+
members: [person1, person2]
25+
state_code: WV
26+
output:
27+
wv_529_plan_deduction: 10_000
28+
wv_subtractions: 10_000
29+
30+
- name: West Virginia 529 deduction is zero without contributions
31+
period: 2024
32+
input:
33+
state_code: WV
34+
investment_in_529_plan_indv: 0
35+
output:
36+
wv_529_plan_deduction: 0
37+
wv_subtractions: 0
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from policyengine_us.model_api import *
2+
3+
4+
class nm_529_plan_deduction(Variable):
5+
value_type = float
6+
entity = TaxUnit
7+
label = "New Mexico 529 plan contribution deduction"
8+
unit = USD
9+
definition_period = YEAR
10+
reference = (
11+
"https://hed.nm.gov/financial-aid/new-mexico-529-college-savings-plan",
12+
"https://nmonesource.com/nmos/nmsa/en/item/4340/index.do",
13+
)
14+
defined_for = StateCode.NM
15+
16+
def formula(tax_unit, period, parameters):
17+
return tax_unit("investment_in_529_plan", period)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from policyengine_us.model_api import *
2+
3+
4+
class sc_529_plan_deduction(Variable):
5+
value_type = float
6+
entity = TaxUnit
7+
label = "South Carolina 529 plan contribution deduction"
8+
unit = USD
9+
definition_period = YEAR
10+
reference = (
11+
"https://www.scstatehouse.gov/code/t59c002.php",
12+
"https://treasurer.sc.gov/about-us/newsroom/529-updates-in-one-big-beautiful-bill-give-south-carolina-families-even-more-flexibility-for-educational-savings/",
13+
)
14+
defined_for = StateCode.SC
15+
16+
def formula(tax_unit, period, parameters):
17+
return tax_unit("investment_in_529_plan", period)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from policyengine_us.model_api import *
2+
3+
4+
class wv_529_plan_deduction(Variable):
5+
value_type = float
6+
entity = TaxUnit
7+
label = "West Virginia 529 plan contribution deduction"
8+
unit = USD
9+
definition_period = YEAR
10+
reference = (
11+
"https://www.smart529.com/learn/features-and-benefits.html",
12+
"https://code.wvlegislature.gov/11-21-12/",
13+
)
14+
defined_for = StateCode.WV
15+
16+
def formula(tax_unit, period, parameters):
17+
return tax_unit("investment_in_529_plan", period)

0 commit comments

Comments
 (0)