policyengine-us 1.403.1__py3-none-any.whl → 1.404.1__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 (51) hide show
  1. policyengine_us/parameters/gov/states/household/state_agis.yaml +1 -1
  2. policyengine_us/parameters/gov/states/mt/tax/income/social_security/amount/lower.yaml +1 -1
  3. policyengine_us/parameters/gov/states/mt/tax/income/social_security/amount/upper.yaml +1 -1
  4. policyengine_us/parameters/gov/states/tx/dart/monthly_pass_cost/full_fare.yaml +11 -0
  5. policyengine_us/parameters/gov/states/tx/dart/monthly_pass_cost/reduced_fare.yaml +11 -0
  6. policyengine_us/parameters/gov/states/tx/dart/qualifying_programs.yaml +19 -0
  7. policyengine_us/parameters/gov/states/tx/dart/reduced_fare/age_threshold/child.yaml +23 -0
  8. policyengine_us/parameters/gov/states/tx/dart/reduced_fare/age_threshold/senior.yaml +10 -0
  9. policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/deductions/cdcc/mt_child_dependent_care_expense_deduction.yaml +19 -19
  10. policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/deductions/itemized/federal_itemization/mt_federal_income_tax_deduction_for_federal_itemization_indiv.yaml +4 -4
  11. policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/deductions/itemized/mt_federal_income_tax_deduction_indiv.yaml +4 -4
  12. policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/deductions/itemized/mt_medical_expense_deduction_indiv.yaml +3 -3
  13. policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/deductions/itemized/mt_medical_expense_deduction_joint.yaml +6 -6
  14. policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/deductions/standard/mt_standard_deduction_indiv.yaml +8 -8
  15. policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/deductions/standard/mt_standard_deduction_joint.yaml +12 -12
  16. policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/integration.yaml +52 -3
  17. policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/{mt_agi.yaml → mt_agi_indiv.yaml} +2 -2
  18. policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/mt_pre_dependent_exemption_taxable_income_indiv.yaml +2 -2
  19. policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/mt_taxable_income_joint.yaml +233 -6
  20. policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/subtractions/mt_old_age_subtraction.yaml +24 -0
  21. policyengine_us/tests/policy/baseline/gov/states/tx/dart/free_ride/tx_dart_free_ride_benefit.yaml +132 -0
  22. policyengine_us/tests/policy/baseline/gov/states/tx/dart/free_ride/tx_dart_free_ride_eligible_young_child.yaml +56 -0
  23. policyengine_us/tests/policy/baseline/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_age_eligible.yaml +90 -0
  24. policyengine_us/tests/policy/baseline/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_eligible.yaml +146 -0
  25. policyengine_us/tests/policy/baseline/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_program_eligible.yaml +206 -0
  26. policyengine_us/tests/policy/baseline/gov/states/tx/dart/reduced_fare/tx_dart_reduced_fare_benefit.yaml +145 -0
  27. policyengine_us/tests/policy/baseline/gov/states/tx/dart/tx_dart_benefit_person.yaml +141 -0
  28. policyengine_us/tests/test_batched.py +9 -5
  29. policyengine_us/variables/gov/states/mt/tax/income/base/{mt_agi.py → mt_agi_indiv.py} +1 -1
  30. policyengine_us/variables/gov/states/mt/tax/income/base/mt_agi_joint.py +43 -0
  31. policyengine_us/variables/gov/states/mt/tax/income/deductions/cdcc/mt_child_dependent_care_expense_deduction.py +1 -1
  32. policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/federal_itemization/mt_federal_income_tax_deduction_for_federal_itemization_indiv.py +1 -1
  33. policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/federal_tax/mt_federal_income_tax_deduction_indiv.py +1 -1
  34. policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/medical/mt_medical_expense_deduction_indiv.py +1 -1
  35. policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/medical/mt_medical_expense_deduction_joint.py +3 -1
  36. policyengine_us/variables/gov/states/mt/tax/income/deductions/standard/mt_standard_deduction_indiv.py +1 -1
  37. policyengine_us/variables/gov/states/mt/tax/income/deductions/standard/mt_standard_deduction_joint.py +1 -1
  38. policyengine_us/variables/gov/states/mt/tax/income/tax_calculation/mt_pre_dependent_exemption_taxable_income_indiv.py +1 -1
  39. policyengine_us/variables/gov/states/mt/tax/income/tax_calculation/mt_taxable_income_joint.py +7 -3
  40. policyengine_us/variables/gov/states/tx/dart/free_ride/tx_dart_free_ride_benefit.py +18 -0
  41. policyengine_us/variables/gov/states/tx/dart/free_ride/tx_dart_free_ride_eligible_young_child.py +19 -0
  42. policyengine_us/variables/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_age_eligible.py +23 -0
  43. policyengine_us/variables/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_eligible.py +40 -0
  44. policyengine_us/variables/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_program_eligible.py +18 -0
  45. policyengine_us/variables/gov/states/tx/dart/reduced_fare/tx_dart_reduced_fare_benefit.py +17 -0
  46. policyengine_us/variables/gov/states/tx/dart/tx_dart_benefit_person.py +18 -0
  47. {policyengine_us-1.403.1.dist-info → policyengine_us-1.404.1.dist-info}/METADATA +1 -1
  48. {policyengine_us-1.403.1.dist-info → policyengine_us-1.404.1.dist-info}/RECORD +51 -31
  49. {policyengine_us-1.403.1.dist-info → policyengine_us-1.404.1.dist-info}/WHEEL +0 -0
  50. {policyengine_us-1.403.1.dist-info → policyengine_us-1.404.1.dist-info}/entry_points.txt +0 -0
  51. {policyengine_us-1.403.1.dist-info → policyengine_us-1.404.1.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,146 @@
1
+ - name: Senior citizen eligible
2
+ period: 2025
3
+ input:
4
+ state_code: TX
5
+ age: 67
6
+ output:
7
+ tx_dart_reduced_fare_eligible: true
8
+
9
+ - name: Child eligible through age
10
+ period: 2025
11
+ input:
12
+ state_code: TX
13
+ age: 8
14
+ output:
15
+ tx_dart_reduced_fare_eligible: true
16
+
17
+ - name: Disabled person eligible
18
+ period: 2025
19
+ input:
20
+ state_code: TX
21
+ age: 45
22
+ is_disabled: true
23
+ output:
24
+ tx_dart_reduced_fare_eligible: true
25
+
26
+ - name: Veteran eligible
27
+ period: 2025
28
+ input:
29
+ state_code: TX
30
+ age: 35
31
+ is_veteran: true
32
+ output:
33
+ tx_dart_reduced_fare_eligible: true
34
+
35
+ - name: Full-time student eligible
36
+ period: 2025
37
+ input:
38
+ state_code: TX
39
+ age: 20
40
+ is_full_time_student: true
41
+ output:
42
+ tx_dart_reduced_fare_eligible: true
43
+
44
+ - name: SNAP recipient eligible through program enrollment
45
+ period: 2025
46
+ input:
47
+ state_code: TX
48
+ age: 40
49
+ snap: 300
50
+ output:
51
+ tx_dart_reduced_fare_eligible: true
52
+
53
+ - name: Medicaid recipient eligible
54
+ period: 2025
55
+ input:
56
+ state_code: TX
57
+ age: 25
58
+ medicaid: 5_000
59
+ output:
60
+ tx_dart_reduced_fare_eligible: true
61
+
62
+ - name: CHIP recipient eligible
63
+ period: 2025
64
+ input:
65
+ state_code: TX
66
+ age: 12
67
+ chip: 3_000
68
+ output:
69
+ tx_dart_reduced_fare_eligible: true
70
+
71
+ - name: WIC recipient eligible
72
+ period: 2025
73
+ input:
74
+ state_code: TX
75
+ age: 28
76
+ wic: 100
77
+ output:
78
+ tx_dart_reduced_fare_eligible: true
79
+
80
+ - name: TANF recipient eligible
81
+ period: 2025
82
+ input:
83
+ state_code: TX
84
+ age: 32
85
+ tanf: 400
86
+ output:
87
+ tx_dart_reduced_fare_eligible: true
88
+
89
+ - name: Medicare eligible person qualifies
90
+ period: 2025
91
+ input:
92
+ state_code: TX
93
+ age: 68
94
+ is_medicare_eligible: true
95
+ output:
96
+ tx_dart_reduced_fare_eligible: true
97
+
98
+ - name: Non-eligible adult
99
+ period: 2025
100
+ input:
101
+ state_code: TX
102
+ age: 35
103
+ is_disabled: false
104
+ is_veteran: false
105
+ is_full_time_student: false
106
+ snap: 0
107
+ medicaid: 0
108
+ output:
109
+ tx_dart_reduced_fare_eligible: false
110
+
111
+ - name: Multiple eligibility criteria (veteran and student)
112
+ period: 2025
113
+ input:
114
+ state_code: TX
115
+ age: 24
116
+ is_veteran: true
117
+ is_full_time_student: true
118
+ output:
119
+ tx_dart_reduced_fare_eligible: true
120
+
121
+ - name: Family with mixed eligibility
122
+ period: 2025
123
+ input:
124
+ people:
125
+ veteran_parent:
126
+ age: 35
127
+ is_veteran: true
128
+ spouse:
129
+ age: 33
130
+ is_veteran: false
131
+ child:
132
+ age: 10
133
+ is_veteran: false
134
+ senior:
135
+ age: 70
136
+ is_veteran: false
137
+ spm_units:
138
+ spm_unit:
139
+ members: [veteran_parent, spouse, child, senior]
140
+ snap: 200
141
+ households:
142
+ household:
143
+ members: [veteran_parent, spouse, child, senior]
144
+ state_code: TX
145
+ output:
146
+ tx_dart_reduced_fare_eligible: [true, true, true, true]
@@ -0,0 +1,206 @@
1
+ - name: Person receiving SNAP benefits is eligible for reduced fare program
2
+ period: 2025
3
+ input:
4
+ people:
5
+ person1:
6
+ age: 30
7
+ employment_income: 15_000
8
+ spm_units:
9
+ spm_unit:
10
+ members: [person1]
11
+ snap: 200
12
+ households:
13
+ household:
14
+ members: [person1]
15
+ state_code: TX
16
+ output:
17
+ tx_dart_reduced_fare_program_eligible: true
18
+
19
+ - name: Person receiving Medicaid is eligible for reduced fare program
20
+ period: 2025
21
+ input:
22
+ people:
23
+ person1:
24
+ age: 25
25
+ is_disabled: false
26
+ medicaid: 1
27
+ households:
28
+ household:
29
+ members: [person1]
30
+ state_code: TX
31
+ output:
32
+ tx_dart_reduced_fare_program_eligible: true
33
+
34
+ - name: Child receiving CHIP is eligible for reduced fare program
35
+ period: 2025
36
+ input:
37
+ people:
38
+ child:
39
+ age: 10
40
+ chip: 1
41
+ households:
42
+ household:
43
+ members: [child]
44
+ state_code: TX
45
+ output:
46
+ tx_dart_reduced_fare_program_eligible: true
47
+
48
+ - name: Person receiving WIC is eligible for reduced fare program
49
+ period: 2025
50
+ input:
51
+ people:
52
+ mother:
53
+ age: 28
54
+ wic: 100
55
+ households:
56
+ household:
57
+ members: [mother]
58
+ state_code: TX
59
+ output:
60
+ tx_dart_reduced_fare_program_eligible: true
61
+
62
+ - name: Person receiving TANF is eligible for reduced fare program
63
+ period: 2025
64
+ input:
65
+ people:
66
+ person1:
67
+ age: 35
68
+ spm_units:
69
+ spm_unit:
70
+ members: [person1]
71
+ tanf: 250
72
+ households:
73
+ household:
74
+ members: [person1]
75
+ state_code: TX
76
+ output:
77
+ tx_dart_reduced_fare_program_eligible: true
78
+
79
+ - name: Medicare-eligible person is eligible for reduced fare program
80
+ period: 2025
81
+ input:
82
+ people:
83
+ senior:
84
+ age: 67
85
+ is_disabled: false
86
+ households:
87
+ household:
88
+ members: [senior]
89
+ state_code: TX
90
+ output:
91
+ # Age 67 makes person Medicare eligible
92
+ is_medicare_eligible: true
93
+ tx_dart_reduced_fare_program_eligible: true
94
+
95
+ - name: Disabled person receiving SSDI long enough for Medicare is eligible for reduced fare program
96
+ period: 2025
97
+ input:
98
+ people:
99
+ person1:
100
+ age: 45
101
+ is_disabled: true
102
+ social_security_disability: 12_000
103
+ months_receiving_social_security_disability: 24 # 24 months required for Medicare
104
+ households:
105
+ household:
106
+ members: [person1]
107
+ state_code: TX
108
+ output:
109
+ # Disability with 24+ months of SSDI makes person Medicare eligible
110
+ is_medicare_eligible: true
111
+ tx_dart_reduced_fare_program_eligible: true
112
+
113
+ - name: Person with no qualifying programs is not eligible for reduced fare program
114
+ period: 2025
115
+ input:
116
+ people:
117
+ person1:
118
+ age: 40
119
+ employment_income: 75_000
120
+ is_disabled: false
121
+ households:
122
+ household:
123
+ members: [person1]
124
+ state_code: TX
125
+ output:
126
+ tx_dart_reduced_fare_program_eligible: false
127
+
128
+ - name: Person with multiple qualifying programs is eligible for reduced fare program
129
+ period: 2025
130
+ input:
131
+ people:
132
+ person1:
133
+ age: 30
134
+ employment_income: 12_000
135
+ medicaid: 1
136
+ spm_units:
137
+ spm_unit:
138
+ members: [person1]
139
+ snap: 150
140
+ tanf: 200
141
+ households:
142
+ household:
143
+ members: [person1]
144
+ state_code: TX
145
+ output:
146
+ tx_dart_reduced_fare_program_eligible: true
147
+
148
+ - name: Family with mixed eligibility - only program recipients are eligible
149
+ period: 2025
150
+ input:
151
+ people:
152
+ parent1:
153
+ age: 35
154
+ employment_income: 20_000
155
+ parent2:
156
+ age: 33
157
+ employment_income: 35_000
158
+ child1:
159
+ age: 8
160
+ chip: 1 # Child receives CHIP
161
+ child2:
162
+ age: 12
163
+ chip: 1 # Child receives CHIP
164
+ spm_units:
165
+ spm_unit:
166
+ members: [parent1, parent2, child1, child2]
167
+ snap: 400 # Family receives SNAP
168
+ households:
169
+ household:
170
+ members: [parent1, parent2, child1, child2]
171
+ state_code: TX
172
+ output:
173
+ # All family members get SNAP, so all are eligible
174
+ tx_dart_reduced_fare_program_eligible: [true, true, true, true]
175
+
176
+ - name: Young professional with no assistance programs is not eligible
177
+ period: 2025
178
+ input:
179
+ people:
180
+ person1:
181
+ age: 28
182
+ employment_income: 55_000
183
+ is_disabled: false
184
+ households:
185
+ household:
186
+ members: [person1]
187
+ state_code: TX
188
+ output:
189
+ tx_dart_reduced_fare_program_eligible: false
190
+
191
+ - name: Person outside Texas is not eligible regardless of programs
192
+ period: 2025
193
+ input:
194
+ people:
195
+ person1:
196
+ age: 30
197
+ spm_units:
198
+ spm_unit:
199
+ members: [person1]
200
+ snap: 200
201
+ households:
202
+ household:
203
+ members: [person1]
204
+ state_code: CA # California, not Texas
205
+ output:
206
+ tx_dart_reduced_fare_program_eligible: false
@@ -0,0 +1,145 @@
1
+ - name: Eligible senior receives annual benefit
2
+ period: 2025
3
+ input:
4
+ state_code: TX
5
+ age: 68
6
+ output:
7
+ tx_dart_reduced_fare_benefit: 756 # ($126 - $63) * 12 months
8
+
9
+ - name: Eligible child receives annual benefit
10
+ period: 2025
11
+ input:
12
+ state_code: TX
13
+ age: 10
14
+ output:
15
+ tx_dart_reduced_fare_benefit: 756
16
+
17
+ - name: Eligible disabled person receives benefit
18
+ period: 2025
19
+ input:
20
+ state_code: TX
21
+ age: 45
22
+ is_disabled: true
23
+ output:
24
+ tx_dart_reduced_fare_benefit: 756
25
+
26
+ - name: Eligible veteran receives benefit
27
+ period: 2025
28
+ input:
29
+ state_code: TX
30
+ age: 35
31
+ is_veteran: true
32
+ output:
33
+ tx_dart_reduced_fare_benefit: 756
34
+
35
+ - name: Eligible student receives benefit
36
+ period: 2025
37
+ input:
38
+ state_code: TX
39
+ age: 20
40
+ is_full_time_student: true
41
+ output:
42
+ tx_dart_reduced_fare_benefit: 756
43
+
44
+ - name: SNAP recipient receives benefit
45
+ period: 2025
46
+ input:
47
+ state_code: TX
48
+ age: 40
49
+ snap: 300
50
+ output:
51
+ tx_dart_reduced_fare_benefit: 756
52
+
53
+ - name: Non-eligible adult receives no benefit
54
+ period: 2025
55
+ input:
56
+ state_code: TX
57
+ age: 35
58
+ is_disabled: false
59
+ is_veteran: false
60
+ is_full_time_student: false
61
+ snap: 0
62
+ medicaid: 0
63
+ chip: 0
64
+ tanf: 0
65
+ wic: 0
66
+ is_medicare_eligible: false
67
+ output:
68
+ tx_dart_reduced_fare_benefit: 0
69
+
70
+ - name: Child under 5 not eligible for reduced fare benefit
71
+ period: 2025
72
+ input:
73
+ state_code: TX
74
+ age: 3
75
+ snap: 0
76
+ medicaid: 0
77
+ chip: 0
78
+ tanf: 0
79
+ wic: 0
80
+ is_medicare_eligible: false
81
+ output:
82
+ tx_dart_reduced_fare_benefit: 0
83
+
84
+ - name: Family with mixed eligibility receives appropriate benefits
85
+ period: 2025
86
+ input:
87
+ people:
88
+ veteran_parent:
89
+ age: 35
90
+ is_veteran: true
91
+ is_medicare_eligible: false
92
+ medicaid: 0
93
+ chip: 0
94
+ wic: 0
95
+ spouse:
96
+ age: 33
97
+ is_veteran: false
98
+ is_medicare_eligible: false
99
+ medicaid: 0
100
+ chip: 0
101
+ wic: 0
102
+ child:
103
+ age: 12
104
+ is_veteran: false
105
+ is_medicare_eligible: false
106
+ medicaid: 0
107
+ chip: 0
108
+ wic: 0
109
+ senior:
110
+ age: 68
111
+ is_veteran: false
112
+ is_medicare_eligible: false
113
+ medicaid: 0
114
+ chip: 0
115
+ wic: 0
116
+ spm_units:
117
+ spm_unit:
118
+ members: [veteran_parent, spouse, child, senior]
119
+ snap: 0
120
+ tanf: 0
121
+ households:
122
+ household:
123
+ members: [veteran_parent, spouse, child, senior]
124
+ state_code: TX
125
+ output:
126
+ tx_dart_reduced_fare_benefit: [756, 0, 756, 756]
127
+
128
+ - name: Household on TANF all members receive benefit
129
+ period: 2025
130
+ input:
131
+ people:
132
+ parent:
133
+ age: 30
134
+ child:
135
+ age: 8
136
+ spm_units:
137
+ spm_unit:
138
+ members: [parent, child]
139
+ tanf: 400
140
+ households:
141
+ household:
142
+ members: [parent, child]
143
+ state_code: TX
144
+ output:
145
+ tx_dart_reduced_fare_benefit: [756, 756]
@@ -0,0 +1,141 @@
1
+ - name: Child under 5 gets free ride benefit (full monthly pass value)
2
+ period: 2025
3
+ input:
4
+ state_code: TX
5
+ age: 3
6
+ output:
7
+ tx_dart_benefit_person: 1_512 # $126 * 12 months
8
+
9
+ - name: Senior gets reduced fare benefit
10
+ period: 2025
11
+ input:
12
+ state_code: TX
13
+ age: 68
14
+ output:
15
+ tx_dart_benefit_person: 756 # ($126 - $63) * 12 months
16
+
17
+ - name: Child age 10 gets reduced fare benefit
18
+ period: 2025
19
+ input:
20
+ state_code: TX
21
+ age: 10
22
+ output:
23
+ tx_dart_benefit_person: 756
24
+
25
+ - name: Disabled person gets reduced fare benefit
26
+ period: 2025
27
+ input:
28
+ state_code: TX
29
+ age: 45
30
+ is_disabled: true
31
+ output:
32
+ tx_dart_benefit_person: 756
33
+
34
+ - name: Veteran gets reduced fare benefit
35
+ period: 2025
36
+ input:
37
+ state_code: TX
38
+ age: 35
39
+ is_veteran: true
40
+ output:
41
+ tx_dart_benefit_person: 756
42
+
43
+ - name: Student gets reduced fare benefit
44
+ period: 2025
45
+ input:
46
+ state_code: TX
47
+ age: 20
48
+ is_full_time_student: true
49
+ output:
50
+ tx_dart_benefit_person: 756
51
+
52
+ - name: SNAP recipient gets reduced fare benefit
53
+ period: 2025
54
+ input:
55
+ state_code: TX
56
+ age: 40
57
+ snap: 300
58
+ output:
59
+ tx_dart_benefit_person: 756
60
+
61
+ - name: Non-eligible adult gets no benefit
62
+ period: 2025
63
+ input:
64
+ state_code: TX
65
+ age: 35
66
+ is_disabled: false
67
+ is_veteran: false
68
+ is_full_time_student: false
69
+ snap: 0
70
+ medicaid: 0
71
+ chip: 0
72
+ tanf: 0
73
+ wic: 0
74
+ is_medicare_eligible: false
75
+ output:
76
+ tx_dart_benefit_person: 0
77
+
78
+ - name: Family with toddler and senior
79
+ period: 2025
80
+ input:
81
+ people:
82
+ parent1:
83
+ age: 35
84
+ is_veteran: false
85
+ is_medicare_eligible: false
86
+ medicaid: 0
87
+ chip: 0
88
+ wic: 0
89
+ parent2:
90
+ age: 33
91
+ is_veteran: false
92
+ is_medicare_eligible: false
93
+ medicaid: 0
94
+ chip: 0
95
+ wic: 0
96
+ toddler:
97
+ age: 2
98
+ is_veteran: false
99
+ is_medicare_eligible: false
100
+ medicaid: 0
101
+ chip: 0
102
+ wic: 0
103
+ senior:
104
+ age: 70
105
+ is_veteran: false
106
+ is_medicare_eligible: false
107
+ medicaid: 0
108
+ chip: 0
109
+ wic: 0
110
+ spm_units:
111
+ spm_unit:
112
+ members: [parent1, parent2, toddler, senior]
113
+ snap: 0
114
+ tanf: 0
115
+ households:
116
+ household:
117
+ members: [parent1, parent2, toddler, senior]
118
+ state_code: TX
119
+ output:
120
+ tx_dart_benefit_person: [0, 0, 1_512, 756]
121
+
122
+ - name: Family on TANF with child under 5
123
+ period: 2025
124
+ input:
125
+ people:
126
+ parent:
127
+ age: 30
128
+ older_child:
129
+ age: 8
130
+ toddler:
131
+ age: 3
132
+ spm_units:
133
+ spm_unit:
134
+ members: [parent, older_child, toddler]
135
+ tanf: 400
136
+ households:
137
+ household:
138
+ members: [parent, older_child, toddler]
139
+ state_code: TX
140
+ output:
141
+ tx_dart_benefit_person: [756, 756, 1_512] # Parents get reduced fare, toddler gets free ride (higher benefit)
@@ -47,7 +47,8 @@ def split_into_batches(base_path: Path, num_batches: int) -> List[List[str]]:
47
47
  Special handling for contrib tests to divide by folder count.
48
48
  """
49
49
  # Special handling for contrib tests - each folder is its own batch
50
- if "contrib" in str(base_path):
50
+ # Only apply to policy/contrib (structural tests), not baseline/contrib
51
+ if str(base_path).endswith("policy/contrib"):
51
52
  # Get all subdirectories and sort them alphabetically
52
53
  subdirs = sorted(
53
54
  [item for item in base_path.iterdir() if item.is_dir()]
@@ -79,17 +80,20 @@ def split_into_batches(base_path: Path, num_batches: int) -> List[List[str]]:
79
80
  # Batch 1: Only states
80
81
  batch1 = [str(states_path)]
81
82
 
82
- # Batch 2: Everything else (excluding states)
83
+ # Batch 2: Everything else (excluding states, household, and contrib)
83
84
  batch2 = []
84
85
 
85
86
  # Add root level files if any
86
87
  for yaml_file in base_path.glob("*.yaml"):
87
88
  batch2.append(str(yaml_file))
88
89
 
89
- # Add all directories except gov/states
90
+ # Add all directories except gov/states, household, and contrib
90
91
  for item in base_path.iterdir():
91
92
  if item.is_dir():
92
- if item.name == "gov":
93
+ # Skip household and contrib directories (they'll be run separately)
94
+ if item.name in ["household", "contrib"]:
95
+ continue
96
+ elif item.name == "gov":
93
97
  # Add gov subdirectories except states
94
98
  for gov_item in item.iterdir():
95
99
  if gov_item.is_dir() and gov_item.name != "states":
@@ -97,7 +101,7 @@ def split_into_batches(base_path: Path, num_batches: int) -> List[List[str]]:
97
101
  elif gov_item.suffix == ".yaml":
98
102
  batch2.append(str(gov_item))
99
103
  else:
100
- # Non-gov directories
104
+ # Other non-gov directories
101
105
  batch2.append(str(item))
102
106
 
103
107
  return [batch1, batch2] if batch2 else [batch1]
@@ -1,7 +1,7 @@
1
1
  from policyengine_us.model_api import *
2
2
 
3
3
 
4
- class mt_agi(Variable):
4
+ class mt_agi_indiv(Variable):
5
5
  value_type = float
6
6
  entity = Person
7
7
  label = "Montana Adjusted Gross Income for each individual"