policyengine-us 1.358.1__py3-none-any.whl → 1.360.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of policyengine-us might be problematic. Click here for more details.

Files changed (96) hide show
  1. policyengine_us/parameters/gov/states/dc/dhs/gac/README.md +1 -0
  2. policyengine_us/parameters/gov/states/dc/dhs/gac/income_disregard/amount.yaml +12 -0
  3. policyengine_us/parameters/gov/states/dc/dhs/power/README.md +1 -0
  4. policyengine_us/parameters/gov/states/dc/dhs/power/age_threshold/older.yaml +11 -0
  5. policyengine_us/parameters/gov/states/dc/dhs/power/age_threshold/younger.yaml +11 -0
  6. policyengine_us/parameters/gov/states/dc/dhs/power/disqualifying_benefits.yaml +14 -0
  7. policyengine_us/parameters/gov/states/dc/dhs/qualified_noncitizen_statuses.yaml +21 -0
  8. policyengine_us/parameters/gov/states/dc/dhs/tanf/standard_payment/amount.yaml +1 -1
  9. policyengine_us/parameters/gov/states/dc/dhs/tanf/work_requirement/required_hours/single_parent/amount.yaml +20 -0
  10. policyengine_us/parameters/gov/states/dc/dhs/tanf/work_requirement/required_hours/single_parent/higher/amount.yaml +12 -0
  11. policyengine_us/parameters/gov/states/dc/dhs/tanf/work_requirement/required_hours/single_parent/lower/amount.yaml +12 -0
  12. policyengine_us/parameters/gov/states/dc/dhs/tanf/work_requirement/required_hours/single_parent/lower/young_child_age_threshold.yaml +11 -0
  13. policyengine_us/parameters/gov/states/dc/dhs/tanf/work_requirement/required_hours/two_parents/amount.yaml +12 -0
  14. policyengine_us/parameters/gov/states/dc/dhs/tanf/work_requirement/work_exempted/elderly_age_threshold.yaml +11 -0
  15. policyengine_us/parameters/gov/states/dc/dhs/tanf/work_requirement/work_exempted/infant_age_threshold.yaml +11 -0
  16. policyengine_us/parameters/gov/states/vt/tax/income/agi/retirement_income_exemption/military_retirement/amount.yaml +3 -1
  17. policyengine_us/parameters/gov/states/vt/tax/income/agi/retirement_income_exemption/military_retirement/full_exemption_threshold.yaml +11 -0
  18. policyengine_us/parameters/gov/states/vt/tax/income/agi/retirement_income_exemption/military_retirement/income_based_structure/in_effect.yaml +11 -0
  19. policyengine_us/parameters/gov/states/vt/tax/income/agi/retirement_income_exemption/military_retirement/partial_exemption_threshold.yaml +11 -0
  20. policyengine_us/parameters/gov/states/vt/tax/income/agi/retirement_income_exemption/social_security/reduction/end.yaml +7 -0
  21. policyengine_us/parameters/gov/states/vt/tax/income/agi/retirement_income_exemption/social_security/reduction/start.yaml +7 -0
  22. policyengine_us/parameters/gov/states/vt/tax/income/credits/ctc/age_limit.yaml +3 -0
  23. policyengine_us/parameters/gov/states/vt/tax/income/credits/eitc/enhanced_structure/in_effect.yaml +13 -0
  24. policyengine_us/parameters/gov/states/vt/tax/income/credits/eitc/enhanced_structure/rate.yaml +21 -0
  25. policyengine_us/parameters/gov/states/vt/tax/income/credits/refundable.yaml +8 -1
  26. policyengine_us/parameters/gov/states/vt/tax/income/credits/veteran/amount.yaml +11 -0
  27. policyengine_us/parameters/gov/states/vt/tax/income/credits/veteran/full_credit_threshold.yaml +11 -0
  28. policyengine_us/parameters/gov/states/vt/tax/income/credits/veteran/income_increment.yaml +11 -0
  29. policyengine_us/parameters/gov/states/vt/tax/income/credits/veteran/partial_credit_threshold.yaml +11 -0
  30. policyengine_us/parameters/gov/states/vt/tax/income/credits/veteran/reduction_per_increment.yaml +11 -0
  31. policyengine_us/tests/policy/baseline/gov/hhs/tanf/cash/integration.yaml +1 -0
  32. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/dc_pap_eligible_child.yaml +47 -0
  33. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/gac/dc_gac.yaml +86 -0
  34. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/gac/dc_gac_standard_payment.yaml +39 -0
  35. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/gac/eligibility/dc_gac_eligible.yaml +39 -0
  36. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/gac/eligibility/dc_gac_eligible_child.yaml +58 -0
  37. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/gac/eligibility/dc_gac_income_eligible.yaml +26 -0
  38. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/gac/income/dc_gac_earned_income_after_disregard_person.yaml +32 -0
  39. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/integration_tests.yaml +171 -0
  40. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/power/dc_power.yaml +26 -0
  41. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/power/dc_power_eligible.yaml +94 -0
  42. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/power/dc_power_head_or_spouse_eligible.yaml +84 -0
  43. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/tanf/dc_tanf_assistance_unit_size.yaml +17 -0
  44. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/tanf/dc_tanf_standard_payment.yaml +5 -5
  45. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/tanf/eligibility/dc_tanf_basic_eligibility_requirements.yaml +39 -0
  46. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/tanf/eligibility/dc_tanf_demographic_eligible_person.yaml +11 -0
  47. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/tanf/eligibility/dc_tanf_eligible.yaml +6 -6
  48. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/tanf/eligibility/dc_tanf_immigration_status_eligible_person.yaml +0 -12
  49. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/tanf/eligibility/dc_tanf_income_eligible.yaml +0 -2
  50. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/tanf/integration.yaml +6 -2
  51. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/tanf/work_requirement/dc_tanf_is_working.yaml +128 -0
  52. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/tanf/work_requirement/dc_tanf_meets_work_requirements.yaml +53 -0
  53. policyengine_us/tests/policy/baseline/gov/states/dc/dhs/tanf/work_requirement/dc_tanf_work_requirement_exempt.yaml +81 -0
  54. policyengine_us/tests/policy/baseline/gov/states/vt/tax/income/agi/subtractions/vt_military_retirement_pay_exclusion.yaml +55 -0
  55. policyengine_us/tests/policy/baseline/gov/states/vt/tax/income/agi/subtractions/vt_retirement_income_exemption.yaml +53 -0
  56. policyengine_us/tests/policy/baseline/gov/states/vt/tax/income/credits/vt_ctc.yaml +37 -0
  57. policyengine_us/tests/policy/baseline/gov/states/vt/tax/income/credits/vt_veteran_tax_credit.yaml +151 -0
  58. policyengine_us/tests/policy/baseline/gov/states/vt/tax/income/vt_eitc.yaml +39 -0
  59. policyengine_us/tests/variables/gov/states/vt/tax/income/adjusted_gross_income/subtractions/retirement_income_exemption/vt_military_retirement_income_based_exemption.yaml +106 -0
  60. policyengine_us/tests/variables/gov/states/vt/tax/income/credits/vt_veteran_tax_credit.yaml +129 -0
  61. policyengine_us/tests/variables/gov/states/vt/tax/income/vt_eitc.yaml +100 -0
  62. policyengine_us/variables/gov/states/dc/dhs/dc_pap_eligible_child.py +23 -0
  63. policyengine_us/variables/gov/states/dc/dhs/gac/dc_gac.py +18 -0
  64. policyengine_us/variables/gov/states/dc/dhs/gac/dc_gac_assistance_unit_size.py +15 -0
  65. policyengine_us/variables/gov/states/dc/dhs/gac/dc_gac_standard_payment.py +19 -0
  66. policyengine_us/variables/gov/states/dc/dhs/gac/eligibility/dc_gac_eligible.py +20 -0
  67. policyengine_us/variables/gov/states/dc/dhs/gac/eligibility/dc_gac_eligible_child.py +15 -0
  68. policyengine_us/variables/gov/states/dc/dhs/gac/eligibility/dc_gac_income_eligible.py +19 -0
  69. policyengine_us/variables/gov/states/dc/dhs/gac/income/dc_gac_countable_income.py +18 -0
  70. policyengine_us/variables/gov/states/dc/dhs/gac/income/dc_gac_countable_unearned_income_person.py +17 -0
  71. policyengine_us/variables/gov/states/dc/dhs/gac/income/dc_gac_earned_income_after_disregard_person.py +28 -0
  72. policyengine_us/variables/gov/states/dc/dhs/power/dc_power.py +18 -0
  73. policyengine_us/variables/gov/states/dc/dhs/power/dc_power_eligible.py +30 -0
  74. policyengine_us/variables/gov/states/dc/dhs/power/dc_power_has_disqualifying_beneifts.py +14 -0
  75. policyengine_us/variables/gov/states/dc/dhs/power/dc_power_head_or_spouse_eligible.py +38 -0
  76. policyengine_us/variables/gov/states/dc/dhs/tanf/dc_tanf_assistance_unit_size.py +15 -0
  77. policyengine_us/variables/gov/states/dc/dhs/tanf/dc_tanf_standard_payment.py +1 -1
  78. policyengine_us/variables/gov/states/dc/dhs/tanf/eligibility/dc_tanf_basic_eligibility_requirements.py +18 -0
  79. policyengine_us/variables/gov/states/dc/dhs/tanf/eligibility/dc_tanf_demographic_eligible_person.py +10 -12
  80. policyengine_us/variables/gov/states/dc/dhs/tanf/eligibility/dc_tanf_eligible.py +5 -17
  81. policyengine_us/variables/gov/states/dc/dhs/tanf/eligibility/dc_tanf_immigration_status_eligible_person.py +6 -1
  82. policyengine_us/variables/gov/states/dc/dhs/tanf/income/dc_tanf_countable_income.py +6 -1
  83. policyengine_us/variables/gov/states/dc/dhs/tanf/work_requirement/dc_tanf_is_working.py +40 -0
  84. policyengine_us/variables/gov/states/dc/dhs/tanf/work_requirement/dc_tanf_meets_work_requirements.py +22 -0
  85. policyengine_us/variables/gov/states/dc/dhs/tanf/work_requirement/dc_tanf_work_requirement_exempt.py +39 -0
  86. policyengine_us/variables/gov/states/vt/tax/income/adjusted_gross_income/subtractions/retirement_income_exemption/vt_military_retirement_cap_based_exemption.py +25 -0
  87. policyengine_us/variables/gov/states/vt/tax/income/adjusted_gross_income/subtractions/retirement_income_exemption/vt_military_retirement_income_based_exemption.py +79 -0
  88. policyengine_us/variables/gov/states/vt/tax/income/adjusted_gross_income/subtractions/retirement_income_exemption/vt_military_retirement_pay_exclusion.py +19 -4
  89. policyengine_us/variables/gov/states/vt/tax/income/credits/vt_veteran_tax_credit.py +58 -0
  90. policyengine_us/variables/gov/states/vt/tax/income/vt_eitc.py +9 -1
  91. policyengine_us/variables/household/demographic/person/is_related_to_head_or_spouse.py +9 -0
  92. {policyengine_us-1.358.1.dist-info → policyengine_us-1.360.0.dist-info}/METADATA +1 -1
  93. {policyengine_us-1.358.1.dist-info → policyengine_us-1.360.0.dist-info}/RECORD +96 -29
  94. {policyengine_us-1.358.1.dist-info → policyengine_us-1.360.0.dist-info}/WHEEL +0 -0
  95. {policyengine_us-1.358.1.dist-info → policyengine_us-1.360.0.dist-info}/entry_points.txt +0 -0
  96. {policyengine_us-1.358.1.dist-info → policyengine_us-1.360.0.dist-info}/licenses/LICENSE +0 -0
@@ -7,7 +7,6 @@
7
7
  output:
8
8
  dc_tanf_income_eligible: true
9
9
 
10
-
11
10
  - name: Household with income equals need standard is eligible.
12
11
  period: 2023
13
12
  input:
@@ -17,7 +16,6 @@
17
16
  output:
18
17
  dc_tanf_income_eligible: true
19
18
 
20
-
21
19
  - name: Household with income exceeding need standard is ineligible.
22
20
  period: 2023
23
21
  input:
@@ -8,6 +8,7 @@
8
8
  spm_units:
9
9
  spm_unit:
10
10
  members: [parent, child]
11
+ dc_tanf_meets_work_requirements: true
11
12
  households:
12
13
  household:
13
14
  members: [parent, child]
@@ -15,7 +16,7 @@
15
16
  output:
16
17
  dc_tanf: 545*12
17
18
 
18
- - name: Case 2, applicant has a eligible child.
19
+ - name: Case 2, applicant has an eligible child.
19
20
  period: 2022
20
21
  input:
21
22
  people:
@@ -30,6 +31,7 @@
30
31
  members: [person1, person2]
31
32
  is_tanf_enrolled: false
32
33
  childcare_expenses: 5_000
34
+ dc_tanf_meets_work_requirements: true
33
35
  tax_units:
34
36
  tax_unit:
35
37
  members: [person1, person2]
@@ -45,7 +47,7 @@
45
47
  dc_tanf_eligible: true
46
48
  dc_tanf: 545*12
47
49
 
48
- - name: Case 3, applicant has a eligible child enrolled in tanf.
50
+ - name: Case 3, applicant has an eligible child enrolled in TANF.
49
51
  period: 2022
50
52
  input:
51
53
  people:
@@ -60,6 +62,7 @@
60
62
  members: [person1, person2]
61
63
  is_tanf_enrolled: true
62
64
  childcare_expenses: 0
65
+ dc_tanf_meets_work_requirements: true
63
66
  tax_units:
64
67
  tax_unit:
65
68
  members: [person1, person2]
@@ -90,6 +93,7 @@
90
93
  members: [person1, person2]
91
94
  is_tanf_enrolled: false
92
95
  childcare_expenses: 1_200
96
+ dc_tanf_meets_work_requirements: true
93
97
  tax_units:
94
98
  tax_unit:
95
99
  members: [person1, person2]
@@ -0,0 +1,128 @@
1
+ - name: Case 1, two-parent household, combined hours higher than 35.
2
+ period: 2023-01
3
+ absolute_error_margin: 0.5
4
+ input:
5
+ people:
6
+ person1:
7
+ is_tax_unit_head_or_spouse: true
8
+ weekly_hours_worked: 30
9
+ person2:
10
+ is_tax_unit_head_or_spouse: true
11
+ weekly_hours_worked: 5
12
+ person3:
13
+ is_tax_unit_head_or_spouse: false
14
+ weekly_hours_worked: 0
15
+ spm_units:
16
+ spm_unit:
17
+ members: [person1, person2, person3]
18
+ tax_units:
19
+ tax_unit:
20
+ members: [person1, person2, person3]
21
+ households:
22
+ household:
23
+ members: [person1, person2, person3]
24
+ state_code: DC
25
+ output:
26
+ dc_tanf_is_working: [true, true, true]
27
+
28
+ - name: Case 2, two-parent household, combined hours lower than 35.
29
+ period: 2023-01
30
+ absolute_error_margin: 0.5
31
+ input:
32
+ people:
33
+ person1:
34
+ is_tax_unit_head_or_spouse: true
35
+ weekly_hours_worked: 30
36
+ person2:
37
+ is_tax_unit_head_or_spouse: true
38
+ weekly_hours_worked: 4
39
+ person3:
40
+ is_tax_unit_head_or_spouse: false
41
+ weekly_hours_worked: 0
42
+ spm_units:
43
+ spm_unit:
44
+ members: [person1, person2, person3]
45
+ tax_units:
46
+ tax_unit:
47
+ members: [person1, person2, person3]
48
+ households:
49
+ household:
50
+ members: [person1, person2, person3]
51
+ state_code: DC
52
+ output:
53
+ dc_tanf_is_working: [false, false, false]
54
+
55
+ - name: Case 3, single parent household, has child under 6.
56
+ period: 2023-01
57
+ absolute_error_margin: 0.5
58
+ input:
59
+ people:
60
+ person1:
61
+ is_tax_unit_head_or_spouse: true
62
+ weekly_hours_worked: 20
63
+ person2:
64
+ age: 5
65
+ is_tax_unit_head_or_spouse: false
66
+ weekly_hours_worked: 0
67
+ spm_units:
68
+ spm_unit:
69
+ members: [person1, person2]
70
+ tax_units:
71
+ tax_unit:
72
+ members: [person1, person2]
73
+ households:
74
+ household:
75
+ members: [person1, person2]
76
+ state_code: DC
77
+ output:
78
+ dc_tanf_is_working: [true, false]
79
+
80
+ - name: Case 4, single parent household, no child under 6.
81
+ period: 2023-01
82
+ absolute_error_margin: 0.5
83
+ input:
84
+ people:
85
+ person1:
86
+ is_tax_unit_head_or_spouse: true
87
+ weekly_hours_worked: 20
88
+ person2:
89
+ age: 8
90
+ is_tax_unit_head_or_spouse: false
91
+ weekly_hours_worked: 0
92
+ spm_units:
93
+ spm_unit:
94
+ members: [person1, person2]
95
+ tax_units:
96
+ tax_unit:
97
+ members: [person1, person2]
98
+ households:
99
+ household:
100
+ members: [person1, person2]
101
+ state_code: DC
102
+ output:
103
+ dc_tanf_is_working: [false, false]
104
+
105
+ - name: Case 5, single parent household, no child under 6, eligible because work 30 hours a week.
106
+ period: 2023-01
107
+ absolute_error_margin: 0.5
108
+ input:
109
+ people:
110
+ person1:
111
+ is_tax_unit_head_or_spouse: true
112
+ weekly_hours_worked: 30
113
+ person2:
114
+ age: 8
115
+ is_tax_unit_head_or_spouse: false
116
+ weekly_hours_worked: 0
117
+ spm_units:
118
+ spm_unit:
119
+ members: [person1, person2]
120
+ tax_units:
121
+ tax_unit:
122
+ members: [person1, person2]
123
+ households:
124
+ household:
125
+ members: [person1, person2]
126
+ state_code: DC
127
+ output:
128
+ dc_tanf_is_working: [true, false]
@@ -0,0 +1,53 @@
1
+ - name: Case 1, two-parent household, combined hours higher than 35.
2
+ period: 2023-01
3
+ absolute_error_margin: 0.5
4
+ input:
5
+ people:
6
+ person1:
7
+ is_tax_unit_head_or_spouse: true
8
+ weekly_hours_worked: 30
9
+ person2:
10
+ is_tax_unit_head_or_spouse: true
11
+ weekly_hours_worked: 5
12
+ person3:
13
+ is_tax_unit_head_or_spouse: false
14
+ weekly_hours_worked: 0
15
+ spm_units:
16
+ spm_unit:
17
+ members: [person1, person2, person3]
18
+ tax_units:
19
+ tax_unit:
20
+ members: [person1, person2, person3]
21
+ households:
22
+ household:
23
+ members: [person1, person2, person3]
24
+ state_code: DC
25
+ output:
26
+ dc_tanf_meets_work_requirements: true
27
+
28
+ - name: Case 2, single parent household with an infant.
29
+ period: 2023-01
30
+ absolute_error_margin: 0.5
31
+ input:
32
+ people:
33
+ person1:
34
+ age: 30
35
+ is_tax_unit_head: true
36
+ person2:
37
+ age: 61
38
+ person3:
39
+ age: 0.5
40
+ is_tax_unit_dependent: true
41
+ spm_units:
42
+ spm_unit:
43
+ members: [person1, person2, person3]
44
+ tax_units:
45
+ tax_unit:
46
+ members: [person1, person2, person3]
47
+ filing_status: SINGLE
48
+ households:
49
+ household:
50
+ members: [person1, person2, person3]
51
+ state_code: DC
52
+ output:
53
+ dc_tanf_meets_work_requirements: true
@@ -0,0 +1,81 @@
1
+ - name: Case 1, family of 4.
2
+ period: 2023-01
3
+ absolute_error_margin: 0.5
4
+ input:
5
+ people:
6
+ person1:
7
+ age: 61
8
+ person2:
9
+ age: 60
10
+ person3:
11
+ age: 3
12
+ is_tax_unit_dependent: true
13
+ person4:
14
+ age: 30
15
+ is_pregnant: true
16
+ spm_units:
17
+ spm_unit:
18
+ members: [person1, person2, person3, person4]
19
+ tax_units:
20
+ tax_unit:
21
+ members: [person1, person2, person3, person4]
22
+ households:
23
+ household:
24
+ members: [person1, person2, person3, person4]
25
+ state_code: DC
26
+ output:
27
+ dc_tanf_work_requirement_exempt: [true, false, true, false]
28
+
29
+ - name: Case 2, single parent household with an infant.
30
+ period: 2023-01
31
+ absolute_error_margin: 0.5
32
+ input:
33
+ people:
34
+ person1:
35
+ age: 30
36
+ is_tax_unit_head: true
37
+ person2:
38
+ age: 35
39
+ person3:
40
+ age: 0.5
41
+ is_tax_unit_dependent: true
42
+ spm_units:
43
+ spm_unit:
44
+ members: [person1, person2, person3]
45
+ tax_units:
46
+ tax_unit:
47
+ members: [person1, person2, person3]
48
+ filing_status: SINGLE
49
+ households:
50
+ household:
51
+ members: [person1, person2, person3]
52
+ state_code: DC
53
+ output:
54
+ dc_tanf_work_requirement_exempt: [true, false, true]
55
+
56
+ - name: Case 3, has college student.
57
+ period: 2023-01
58
+ absolute_error_margin: 0.5
59
+ input:
60
+ people:
61
+ person1:
62
+ age: 30
63
+ is_tax_unit_head: true
64
+ person2:
65
+ age: 23
66
+ is_full_time_college_student: true
67
+ person3:
68
+ age: 5
69
+ is_tax_unit_dependent: true
70
+ spm_units:
71
+ spm_unit:
72
+ members: [person1, person2, person3]
73
+ tax_units:
74
+ tax_unit:
75
+ members: [person1, person2, person3]
76
+ households:
77
+ household:
78
+ members: [person1, person2, person3]
79
+ state_code: DC
80
+ output:
81
+ dc_tanf_work_requirement_exempt: [false, true, true]
@@ -52,3 +52,58 @@
52
52
  state_code: VT
53
53
  output:
54
54
  vt_military_retirement_pay_exclusion: 4_000
55
+
56
+ # S.51 (2025) tests for new income-based exemption system
57
+ - name: S.51 - Full exemption below $125k AGI
58
+ period: 2025
59
+ input:
60
+ people:
61
+ person1:
62
+ military_retirement_pay: 25_000
63
+ tax_units:
64
+ tax_unit:
65
+ members: [person1]
66
+ filing_status: SINGLE
67
+ adjusted_gross_income: 100_000
68
+ households:
69
+ household:
70
+ members: [person1]
71
+ state_code: VT
72
+ output:
73
+ vt_military_retirement_pay_exclusion: 25_000
74
+
75
+ - name: S.51 - Partial exemption at $150k AGI (50% of military pay)
76
+ period: 2025
77
+ input:
78
+ people:
79
+ person1:
80
+ military_retirement_pay: 20_000
81
+ tax_units:
82
+ tax_unit:
83
+ members: [person1]
84
+ filing_status: SINGLE
85
+ adjusted_gross_income: 150_000
86
+ households:
87
+ household:
88
+ members: [person1]
89
+ state_code: VT
90
+ output:
91
+ vt_military_retirement_pay_exclusion: 10_000
92
+
93
+ - name: S.51 - No exemption above $175k AGI
94
+ period: 2025
95
+ input:
96
+ people:
97
+ person1:
98
+ military_retirement_pay: 30_000
99
+ tax_units:
100
+ tax_unit:
101
+ members: [person1]
102
+ filing_status: SINGLE
103
+ adjusted_gross_income: 200_000
104
+ households:
105
+ household:
106
+ members: [person1]
107
+ state_code: VT
108
+ output:
109
+ vt_military_retirement_pay_exclusion: 0
@@ -127,3 +127,56 @@
127
127
  state_code: VT
128
128
  output:
129
129
  vt_retirement_income_exemption: 2_500 # Partial qualified 10,000*0.25
130
+
131
+ # S.51 (2025) tests for raised Social Security thresholds
132
+ - name: S.51 - Social Security exemption fully qualified single at $54k AGI (2025)
133
+ period: 2025
134
+ input:
135
+ filing_status: SINGLE
136
+ adjusted_gross_income: 54_000
137
+ tax_unit_taxable_social_security: 1_000
138
+ vt_military_retirement_pay_exclusion: 0
139
+ vt_csrs_retirement_pay_exclusion: 0
140
+ vt_retirement_income_exemption_eligible: True
141
+ state_code: VT
142
+ output:
143
+ vt_retirement_income_exemption: 1_000 # Fully qualified (below $55k threshold)
144
+
145
+ - name: S.51 - Social Security exemption partially qualified single at $60k AGI (2025)
146
+ period: 2025
147
+ input:
148
+ filing_status: SINGLE
149
+ adjusted_gross_income: 60_000
150
+ tax_unit_taxable_social_security: 1_000
151
+ vt_military_retirement_pay_exclusion: 0
152
+ vt_csrs_retirement_pay_exclusion: 0
153
+ vt_retirement_income_exemption_eligible: True
154
+ state_code: VT
155
+ output:
156
+ vt_retirement_income_exemption: 500 # Partial qualified (halfway between $55k and $65k)
157
+
158
+ - name: S.51 - Social Security exemption fully qualified joint at $69k AGI (2025)
159
+ period: 2025
160
+ input:
161
+ filing_status: JOINT
162
+ adjusted_gross_income: 69_000
163
+ tax_unit_taxable_social_security: 1_000
164
+ vt_military_retirement_pay_exclusion: 0
165
+ vt_csrs_retirement_pay_exclusion: 0
166
+ vt_retirement_income_exemption_eligible: True
167
+ state_code: VT
168
+ output:
169
+ vt_retirement_income_exemption: 1_000 # Fully qualified (below $70k threshold)
170
+
171
+ - name: S.51 - Social Security exemption partially qualified joint at $75k AGI (2025)
172
+ period: 2025
173
+ input:
174
+ filing_status: JOINT
175
+ adjusted_gross_income: 75_000
176
+ tax_unit_taxable_social_security: 1_000
177
+ vt_military_retirement_pay_exclusion: 0
178
+ vt_csrs_retirement_pay_exclusion: 0
179
+ vt_retirement_income_exemption_eligible: True
180
+ state_code: VT
181
+ output:
182
+ vt_retirement_income_exemption: 500 # Partial qualified (halfway between $70k and $80k)
@@ -53,3 +53,40 @@
53
53
  adjusted_gross_income: 150_000
54
54
  output:
55
55
  vt_ctc: 500
56
+
57
+ # S.51 (2025) tests for expanded age eligibility
58
+ - name: S.51 - CTC includes 6-year-olds starting 2025
59
+ period: 2025
60
+ input:
61
+ state_code: VT
62
+ age: 6
63
+ adjusted_gross_income: 50_000
64
+ output:
65
+ vt_ctc: 1_000
66
+
67
+ - name: S.51 - CTC still applies to 5-year-olds in 2025
68
+ period: 2025
69
+ input:
70
+ state_code: VT
71
+ age: 5
72
+ adjusted_gross_income: 50_000
73
+ output:
74
+ vt_ctc: 1_000
75
+
76
+ - name: S.51 - CTC does not apply to 7-year-olds in 2025
77
+ period: 2025
78
+ input:
79
+ state_code: VT
80
+ age: 7
81
+ adjusted_gross_income: 50_000
82
+ output:
83
+ vt_ctc: 0
84
+
85
+ - name: S.51 - CTC did not include 6-year-olds before 2025
86
+ period: 2024
87
+ input:
88
+ state_code: VT
89
+ age: 6
90
+ adjusted_gross_income: 50_000
91
+ output:
92
+ vt_ctc: 0
@@ -0,0 +1,151 @@
1
+ - name: S.51 - Veteran tax credit full amount below $25k AGI
2
+ period: 2025
3
+ input:
4
+ people:
5
+ person1:
6
+ age: 45
7
+ is_veteran: true
8
+ tax_units:
9
+ tax_unit:
10
+ members: [person1]
11
+ filing_status: SINGLE
12
+ adjusted_gross_income: 20_000
13
+ households:
14
+ household:
15
+ members: [person1]
16
+ state_code: VT
17
+ output:
18
+ vt_veteran_tax_credit: 250
19
+
20
+ - name: S.51 - Veteran tax credit at $25.1k AGI (first $100 increment)
21
+ period: 2025
22
+ input:
23
+ people:
24
+ person1:
25
+ age: 45
26
+ is_veteran: true
27
+ tax_units:
28
+ tax_unit:
29
+ members: [person1]
30
+ filing_status: SINGLE
31
+ adjusted_gross_income: 25_100
32
+ households:
33
+ household:
34
+ members: [person1]
35
+ state_code: VT
36
+ output:
37
+ vt_veteran_tax_credit: 245 # $250 - $5 for first $100 increment
38
+
39
+ - name: S.51 - Veteran tax credit at $26k AGI (10 increments)
40
+ period: 2025
41
+ input:
42
+ people:
43
+ person1:
44
+ age: 45
45
+ is_veteran: true
46
+ tax_units:
47
+ tax_unit:
48
+ members: [person1]
49
+ filing_status: SINGLE
50
+ adjusted_gross_income: 26_000
51
+ households:
52
+ household:
53
+ members: [person1]
54
+ state_code: VT
55
+ output:
56
+ vt_veteran_tax_credit: 200 # $250 - (10 * $5) = $200
57
+
58
+ - name: S.51 - Veteran tax credit at $27.5k AGI (25 increments)
59
+ period: 2025
60
+ input:
61
+ people:
62
+ person1:
63
+ age: 45
64
+ is_veteran: true
65
+ tax_units:
66
+ tax_unit:
67
+ members: [person1]
68
+ filing_status: SINGLE
69
+ adjusted_gross_income: 27_500
70
+ households:
71
+ household:
72
+ members: [person1]
73
+ state_code: VT
74
+ output:
75
+ vt_veteran_tax_credit: 125 # $250 - (25 * $5) = $125
76
+
77
+ - name: S.51 - Veteran tax credit at $29k AGI (40 increments)
78
+ period: 2025
79
+ input:
80
+ people:
81
+ person1:
82
+ age: 45
83
+ is_veteran: true
84
+ tax_units:
85
+ tax_unit:
86
+ members: [person1]
87
+ filing_status: SINGLE
88
+ adjusted_gross_income: 29_000
89
+ households:
90
+ household:
91
+ members: [person1]
92
+ state_code: VT
93
+ output:
94
+ vt_veteran_tax_credit: 50 # $250 - (40 * $5) = $50
95
+
96
+ - name: S.51 - Veteran tax credit no amount above $30k AGI
97
+ period: 2025
98
+ input:
99
+ people:
100
+ person1:
101
+ age: 45
102
+ is_veteran: true
103
+ tax_units:
104
+ tax_unit:
105
+ members: [person1]
106
+ filing_status: SINGLE
107
+ adjusted_gross_income: 35_000
108
+ households:
109
+ household:
110
+ members: [person1]
111
+ state_code: VT
112
+ output:
113
+ vt_veteran_tax_credit: 0
114
+
115
+ - name: S.51 - No veteran tax credit for non-veterans
116
+ period: 2025
117
+ input:
118
+ people:
119
+ person1:
120
+ age: 45
121
+ is_veteran: false
122
+ tax_units:
123
+ tax_unit:
124
+ members: [person1]
125
+ filing_status: SINGLE
126
+ adjusted_gross_income: 20_000
127
+ households:
128
+ household:
129
+ members: [person1]
130
+ state_code: VT
131
+ output:
132
+ vt_veteran_tax_credit: 0
133
+
134
+ - name: S.51 - No veteran tax credit before 2025
135
+ period: 2024
136
+ input:
137
+ people:
138
+ person1:
139
+ age: 45
140
+ is_veteran: true
141
+ tax_units:
142
+ tax_unit:
143
+ members: [person1]
144
+ filing_status: SINGLE
145
+ adjusted_gross_income: 20_000
146
+ households:
147
+ household:
148
+ members: [person1]
149
+ state_code: VT
150
+ output:
151
+ vt_veteran_tax_credit: 0
@@ -21,3 +21,42 @@
21
21
  state_code: VT
22
22
  output:
23
23
  vt_eitc: 720
24
+
25
+ # S.51 (2025) tests for enhanced EITC for workers without children
26
+ - name: S.51 - EITC for workers with children remains 38% in 2025
27
+ period: 2025
28
+ input:
29
+ people:
30
+ parent:
31
+ age: 35
32
+ child:
33
+ age: 10
34
+ tax_units:
35
+ tax_unit:
36
+ members: [parent, child]
37
+ filing_status: SINGLE
38
+ eitc: 1_000
39
+ households:
40
+ household:
41
+ members: [parent, child]
42
+ state_code: VT
43
+ output:
44
+ vt_eitc: 380
45
+
46
+ - name: S.51 - EITC for workers without children becomes 100% in 2025
47
+ period: 2025
48
+ input:
49
+ people:
50
+ worker:
51
+ age: 35
52
+ tax_units:
53
+ tax_unit:
54
+ members: [worker]
55
+ filing_status: SINGLE
56
+ eitc: 600
57
+ households:
58
+ household:
59
+ members: [worker]
60
+ state_code: VT
61
+ output:
62
+ vt_eitc: 600