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.
- policyengine_us/parameters/gov/states/household/state_agis.yaml +1 -1
- policyengine_us/parameters/gov/states/mt/tax/income/social_security/amount/lower.yaml +1 -1
- policyengine_us/parameters/gov/states/mt/tax/income/social_security/amount/upper.yaml +1 -1
- policyengine_us/parameters/gov/states/tx/dart/monthly_pass_cost/full_fare.yaml +11 -0
- policyengine_us/parameters/gov/states/tx/dart/monthly_pass_cost/reduced_fare.yaml +11 -0
- policyengine_us/parameters/gov/states/tx/dart/qualifying_programs.yaml +19 -0
- policyengine_us/parameters/gov/states/tx/dart/reduced_fare/age_threshold/child.yaml +23 -0
- policyengine_us/parameters/gov/states/tx/dart/reduced_fare/age_threshold/senior.yaml +10 -0
- policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/deductions/cdcc/mt_child_dependent_care_expense_deduction.yaml +19 -19
- 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
- policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/deductions/itemized/mt_federal_income_tax_deduction_indiv.yaml +4 -4
- policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/deductions/itemized/mt_medical_expense_deduction_indiv.yaml +3 -3
- policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/deductions/itemized/mt_medical_expense_deduction_joint.yaml +6 -6
- policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/deductions/standard/mt_standard_deduction_indiv.yaml +8 -8
- policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/deductions/standard/mt_standard_deduction_joint.yaml +12 -12
- policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/integration.yaml +52 -3
- policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/{mt_agi.yaml → mt_agi_indiv.yaml} +2 -2
- policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/mt_pre_dependent_exemption_taxable_income_indiv.yaml +2 -2
- policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/mt_taxable_income_joint.yaml +233 -6
- policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/subtractions/mt_old_age_subtraction.yaml +24 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/dart/free_ride/tx_dart_free_ride_benefit.yaml +132 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/dart/free_ride/tx_dart_free_ride_eligible_young_child.yaml +56 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_age_eligible.yaml +90 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_eligible.yaml +146 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_program_eligible.yaml +206 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/dart/reduced_fare/tx_dart_reduced_fare_benefit.yaml +145 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/dart/tx_dart_benefit_person.yaml +141 -0
- policyengine_us/tests/test_batched.py +9 -5
- policyengine_us/variables/gov/states/mt/tax/income/base/{mt_agi.py → mt_agi_indiv.py} +1 -1
- policyengine_us/variables/gov/states/mt/tax/income/base/mt_agi_joint.py +43 -0
- policyengine_us/variables/gov/states/mt/tax/income/deductions/cdcc/mt_child_dependent_care_expense_deduction.py +1 -1
- policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/federal_itemization/mt_federal_income_tax_deduction_for_federal_itemization_indiv.py +1 -1
- policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/federal_tax/mt_federal_income_tax_deduction_indiv.py +1 -1
- policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/medical/mt_medical_expense_deduction_indiv.py +1 -1
- policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/medical/mt_medical_expense_deduction_joint.py +3 -1
- policyengine_us/variables/gov/states/mt/tax/income/deductions/standard/mt_standard_deduction_indiv.py +1 -1
- policyengine_us/variables/gov/states/mt/tax/income/deductions/standard/mt_standard_deduction_joint.py +1 -1
- policyengine_us/variables/gov/states/mt/tax/income/tax_calculation/mt_pre_dependent_exemption_taxable_income_indiv.py +1 -1
- policyengine_us/variables/gov/states/mt/tax/income/tax_calculation/mt_taxable_income_joint.py +7 -3
- policyengine_us/variables/gov/states/tx/dart/free_ride/tx_dart_free_ride_benefit.py +18 -0
- policyengine_us/variables/gov/states/tx/dart/free_ride/tx_dart_free_ride_eligible_young_child.py +19 -0
- policyengine_us/variables/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_age_eligible.py +23 -0
- policyengine_us/variables/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_eligible.py +40 -0
- policyengine_us/variables/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_program_eligible.py +18 -0
- policyengine_us/variables/gov/states/tx/dart/reduced_fare/tx_dart_reduced_fare_benefit.py +17 -0
- policyengine_us/variables/gov/states/tx/dart/tx_dart_benefit_person.py +18 -0
- {policyengine_us-1.403.1.dist-info → policyengine_us-1.404.1.dist-info}/METADATA +1 -1
- {policyengine_us-1.403.1.dist-info → policyengine_us-1.404.1.dist-info}/RECORD +51 -31
- {policyengine_us-1.403.1.dist-info → policyengine_us-1.404.1.dist-info}/WHEEL +0 -0
- {policyengine_us-1.403.1.dist-info → policyengine_us-1.404.1.dist-info}/entry_points.txt +0 -0
- {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
|
-
|
|
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
|
-
|
|
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
|
-
#
|
|
104
|
+
# Other non-gov directories
|
|
101
105
|
batch2.append(str(item))
|
|
102
106
|
|
|
103
107
|
return [batch1, batch2] if batch2 else [batch1]
|