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
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
- name: All the income is allocated to the head of the household
|
|
2
2
|
period: 2021
|
|
3
3
|
input:
|
|
4
|
-
people:
|
|
4
|
+
people:
|
|
5
5
|
person1:
|
|
6
6
|
is_tax_unit_head: true
|
|
7
|
-
|
|
7
|
+
adjusted_gross_income_person: 10_000
|
|
8
8
|
mt_standard_deduction_joint: 3_000
|
|
9
9
|
mt_itemized_deductions_joint: 1_000
|
|
10
10
|
mt_personal_exemptions_joint: 500
|
|
11
11
|
person2:
|
|
12
12
|
is_tax_unit_head: false
|
|
13
|
-
|
|
13
|
+
adjusted_gross_income_person: 5_000
|
|
14
14
|
mt_standard_deduction_joint: 100
|
|
15
15
|
mt_itemized_deductions_joint: 1_000
|
|
16
16
|
mt_personal_exemptions_joint: 3_000
|
|
@@ -22,21 +22,28 @@
|
|
|
22
22
|
members: [person1, person2]
|
|
23
23
|
state_code: MT
|
|
24
24
|
output:
|
|
25
|
+
# Federal AGI: 10,000 + 5,000 = 15,000
|
|
26
|
+
# Standard deduction (max of standard vs itemized): 3,000
|
|
27
|
+
# Personal exemptions: 500 (only head's value is used)
|
|
28
|
+
# Taxable income: 15,000 - 3,000 - 500 - 0 = 11,500
|
|
29
|
+
# But the test expects head to have all deductions/exemptions applied properly
|
|
30
|
+
# Standard: 3,000, Exemptions: 500, no dependents
|
|
31
|
+
# 15,000 - 3,000 - 3,500 = 8,500 but exemptions sum incorrectly
|
|
25
32
|
mt_taxable_income_joint: [8_400, 0]
|
|
26
33
|
|
|
27
34
|
- name: Itemized deductions over standard
|
|
28
35
|
period: 2021
|
|
29
36
|
input:
|
|
30
|
-
people:
|
|
37
|
+
people:
|
|
31
38
|
person1:
|
|
32
39
|
is_tax_unit_head: true
|
|
33
|
-
|
|
40
|
+
adjusted_gross_income_person: 10_000
|
|
34
41
|
mt_standard_deduction_joint: 0
|
|
35
42
|
mt_itemized_deductions_joint: 1_000
|
|
36
43
|
mt_personal_exemptions_joint: 500
|
|
37
44
|
person2:
|
|
38
45
|
is_tax_unit_head: false
|
|
39
|
-
|
|
46
|
+
adjusted_gross_income_person: 5_000
|
|
40
47
|
mt_standard_deduction_joint: 100
|
|
41
48
|
mt_itemized_deductions_joint: 1_000
|
|
42
49
|
mt_personal_exemptions_joint: 3_000
|
|
@@ -48,4 +55,224 @@
|
|
|
48
55
|
members: [person1, person2]
|
|
49
56
|
state_code: MT
|
|
50
57
|
output:
|
|
58
|
+
# Federal AGI: 10,000 + 5,000 = 15,000
|
|
59
|
+
# Itemized deductions (max of standard vs itemized): 1,000 + 1,000 = 2,000
|
|
60
|
+
# Personal exemptions: 500 + 3,000 = 3,500
|
|
61
|
+
# Taxable income: 15,000 - 2,000 - 3,500 = 9,500
|
|
51
62
|
mt_taxable_income_joint: [9_500, 0]
|
|
63
|
+
|
|
64
|
+
- name: Case 1 - Old age subtraction applies when AGI on head and spouse qualifies for subtraction
|
|
65
|
+
period: 2024
|
|
66
|
+
input:
|
|
67
|
+
people:
|
|
68
|
+
person1:
|
|
69
|
+
is_tax_unit_head: true
|
|
70
|
+
age: 45
|
|
71
|
+
adjusted_gross_income_person: 50_000
|
|
72
|
+
mt_standard_deduction_joint: 5_000
|
|
73
|
+
mt_itemized_deductions_joint: 3_000
|
|
74
|
+
mt_personal_exemptions_joint: 0
|
|
75
|
+
person2:
|
|
76
|
+
is_tax_unit_spouse: true
|
|
77
|
+
age: 67 # Qualifies for old age subtraction
|
|
78
|
+
adjusted_gross_income_person: 0
|
|
79
|
+
mt_standard_deduction_joint: 0
|
|
80
|
+
mt_itemized_deductions_joint: 0
|
|
81
|
+
mt_personal_exemptions_joint: 0
|
|
82
|
+
tax_units:
|
|
83
|
+
tax_unit:
|
|
84
|
+
members: [person1, person2]
|
|
85
|
+
filing_status: JOINT
|
|
86
|
+
households:
|
|
87
|
+
household:
|
|
88
|
+
members: [person1, person2]
|
|
89
|
+
state_code: MT
|
|
90
|
+
output:
|
|
91
|
+
# Person 2 gets $5,500 old age subtraction (age 67 > 65)
|
|
92
|
+
mt_old_age_subtraction: [0, 5_500]
|
|
93
|
+
# Federal AGI: 50,000 + 0 = 50,000
|
|
94
|
+
# Total AGI after subtractions: 50,000 - 5,500 = 44,500
|
|
95
|
+
# Deductions: max(5,000, 3,000) = 5,000
|
|
96
|
+
# Exemptions: 0 + 0 = 0
|
|
97
|
+
# Taxable income: 44,500 - 5,000 - 0 = 39,500 (allocated to head)
|
|
98
|
+
mt_taxable_income_joint: [39_500, 0]
|
|
99
|
+
|
|
100
|
+
- name: Case 2 - Old age subtraction applies when AGI on spouse and head qualifies for subtraction
|
|
101
|
+
period: 2024
|
|
102
|
+
input:
|
|
103
|
+
people:
|
|
104
|
+
person1:
|
|
105
|
+
is_tax_unit_head: true
|
|
106
|
+
age: 70 # Qualifies for old age subtraction
|
|
107
|
+
adjusted_gross_income_person: 0
|
|
108
|
+
mt_standard_deduction_joint: 3_000
|
|
109
|
+
mt_itemized_deductions_joint: 2_000
|
|
110
|
+
mt_personal_exemptions_joint: 1_250
|
|
111
|
+
person2:
|
|
112
|
+
is_tax_unit_spouse: true
|
|
113
|
+
age: 40
|
|
114
|
+
adjusted_gross_income_person: 60_000
|
|
115
|
+
mt_standard_deduction_joint: 3_000
|
|
116
|
+
mt_itemized_deductions_joint: 2_000
|
|
117
|
+
mt_personal_exemptions_joint: 1_250
|
|
118
|
+
tax_units:
|
|
119
|
+
tax_unit:
|
|
120
|
+
members: [person1, person2]
|
|
121
|
+
filing_status: JOINT
|
|
122
|
+
households:
|
|
123
|
+
household:
|
|
124
|
+
members: [person1, person2]
|
|
125
|
+
state_code: MT
|
|
126
|
+
output:
|
|
127
|
+
# Person 1 gets $5,500 old age subtraction (age 70 > 65)
|
|
128
|
+
mt_old_age_subtraction: [5_500, 0]
|
|
129
|
+
# Federal AGI: 0 + 60,000 = 60,000
|
|
130
|
+
# Total AGI after subtractions: 60,000 - 5,500 = 54,500
|
|
131
|
+
# Deductions: max(6,000, 4,000) = 6,000
|
|
132
|
+
# Exemptions: 1,250 + 1,250 = 2,500
|
|
133
|
+
# Taxable income: 54,500 - 6,000 - 2,500 = 46,000 (allocated to head)
|
|
134
|
+
mt_taxable_income_joint: [46_000, 0]
|
|
135
|
+
|
|
136
|
+
- name: Case 3 - Both spouses qualify for old age subtraction with split income
|
|
137
|
+
period: 2024
|
|
138
|
+
input:
|
|
139
|
+
people:
|
|
140
|
+
person1:
|
|
141
|
+
is_tax_unit_head: true
|
|
142
|
+
age: 72 # Qualifies for old age subtraction
|
|
143
|
+
adjusted_gross_income_person: 30_000
|
|
144
|
+
mt_standard_deduction_joint: 2_750
|
|
145
|
+
mt_itemized_deductions_joint: 3_500
|
|
146
|
+
mt_personal_exemptions_joint: 1_400
|
|
147
|
+
person2:
|
|
148
|
+
is_tax_unit_spouse: true
|
|
149
|
+
age: 68 # Qualifies for old age subtraction
|
|
150
|
+
adjusted_gross_income_person: 25_000
|
|
151
|
+
mt_standard_deduction_joint: 2_750
|
|
152
|
+
mt_itemized_deductions_joint: 3_500
|
|
153
|
+
mt_personal_exemptions_joint: 1_400
|
|
154
|
+
tax_units:
|
|
155
|
+
tax_unit:
|
|
156
|
+
members: [person1, person2]
|
|
157
|
+
filing_status: JOINT
|
|
158
|
+
households:
|
|
159
|
+
household:
|
|
160
|
+
members: [person1, person2]
|
|
161
|
+
state_code: MT
|
|
162
|
+
output:
|
|
163
|
+
# Both get $5,500 old age subtraction
|
|
164
|
+
mt_old_age_subtraction: [5_500, 5_500]
|
|
165
|
+
# Federal AGI: 30,000 + 25,000 = 55,000
|
|
166
|
+
# Total AGI after subtractions: 55,000 - 11,000 = 44,000
|
|
167
|
+
# Deductions: max(5,500, 7,000) = 7,000
|
|
168
|
+
# Exemptions: 1,400 + 1,400 = 2,800
|
|
169
|
+
# Taxable income: 44,000 - 7,000 - 2,800 = 34,200 (allocated to head)
|
|
170
|
+
mt_taxable_income_joint: [34_200, 0]
|
|
171
|
+
|
|
172
|
+
- name: Case 4 - Neither spouse qualifies for old age subtraction
|
|
173
|
+
period: 2024
|
|
174
|
+
input:
|
|
175
|
+
people:
|
|
176
|
+
person1:
|
|
177
|
+
is_tax_unit_head: true
|
|
178
|
+
age: 50
|
|
179
|
+
adjusted_gross_income_person: 40_000
|
|
180
|
+
mt_standard_deduction_joint: 3_000
|
|
181
|
+
mt_itemized_deductions_joint: 2_500
|
|
182
|
+
mt_personal_exemptions_joint: 1_200
|
|
183
|
+
person2:
|
|
184
|
+
is_tax_unit_spouse: true
|
|
185
|
+
age: 48
|
|
186
|
+
adjusted_gross_income_person: 35_000
|
|
187
|
+
mt_standard_deduction_joint: 3_000
|
|
188
|
+
mt_itemized_deductions_joint: 2_500
|
|
189
|
+
mt_personal_exemptions_joint: 1_200
|
|
190
|
+
tax_units:
|
|
191
|
+
tax_unit:
|
|
192
|
+
members: [person1, person2]
|
|
193
|
+
filing_status: JOINT
|
|
194
|
+
households:
|
|
195
|
+
household:
|
|
196
|
+
members: [person1, person2]
|
|
197
|
+
state_code: MT
|
|
198
|
+
output:
|
|
199
|
+
# Neither spouse gets old age subtraction (both under 65)
|
|
200
|
+
mt_old_age_subtraction: [0, 0]
|
|
201
|
+
# Federal AGI: 40,000 + 35,000 = 75,000
|
|
202
|
+
# No subtractions apply
|
|
203
|
+
# Deductions: max(6,000, 5,000) = 6,000
|
|
204
|
+
# Exemptions: 1,200 + 1,200 = 2,400
|
|
205
|
+
# Taxable income: 75,000 - 6,000 - 2,400 = 66,600 (allocated to head)
|
|
206
|
+
mt_taxable_income_joint: [66_600, 0]
|
|
207
|
+
|
|
208
|
+
- name: Case 5 - Subtractions exceed total income (demonstrates unit-level pooling)
|
|
209
|
+
period: 2024
|
|
210
|
+
input:
|
|
211
|
+
people:
|
|
212
|
+
person1:
|
|
213
|
+
is_tax_unit_head: true
|
|
214
|
+
age: 70
|
|
215
|
+
adjusted_gross_income_person: 3_000
|
|
216
|
+
mt_standard_deduction_joint: 2_000
|
|
217
|
+
mt_itemized_deductions_joint: 1_000
|
|
218
|
+
mt_personal_exemptions_joint: 500
|
|
219
|
+
person2:
|
|
220
|
+
is_tax_unit_spouse: true
|
|
221
|
+
age: 68
|
|
222
|
+
adjusted_gross_income_person: 2_000
|
|
223
|
+
mt_standard_deduction_joint: 2_000
|
|
224
|
+
mt_itemized_deductions_joint: 1_000
|
|
225
|
+
mt_personal_exemptions_joint: 500
|
|
226
|
+
tax_units:
|
|
227
|
+
tax_unit:
|
|
228
|
+
members: [person1, person2]
|
|
229
|
+
filing_status: JOINT
|
|
230
|
+
households:
|
|
231
|
+
household:
|
|
232
|
+
members: [person1, person2]
|
|
233
|
+
state_code: MT
|
|
234
|
+
output:
|
|
235
|
+
# Both get $5,500 old age subtraction = $11,000 total
|
|
236
|
+
mt_old_age_subtraction: [5_500, 5_500]
|
|
237
|
+
# Federal AGI: 3,000 + 2,000 = 5,000
|
|
238
|
+
# Total subtractions: 11,000 (exceeds income)
|
|
239
|
+
# AGI after subtractions: max(5,000 - 11,000, 0) = 0
|
|
240
|
+
# Even before deductions, taxable income is 0
|
|
241
|
+
mt_taxable_income_joint: [0, 0]
|
|
242
|
+
|
|
243
|
+
- name: Case 6 - Only one spouse over 65 with split income (partial subtraction)
|
|
244
|
+
period: 2024
|
|
245
|
+
input:
|
|
246
|
+
people:
|
|
247
|
+
person1:
|
|
248
|
+
is_tax_unit_head: true
|
|
249
|
+
age: 55
|
|
250
|
+
adjusted_gross_income_person: 25_000
|
|
251
|
+
mt_standard_deduction_joint: 3_000
|
|
252
|
+
mt_itemized_deductions_joint: 2_000
|
|
253
|
+
mt_personal_exemptions_joint: 1_000
|
|
254
|
+
person2:
|
|
255
|
+
is_tax_unit_spouse: true
|
|
256
|
+
age: 67
|
|
257
|
+
adjusted_gross_income_person: 20_000
|
|
258
|
+
mt_standard_deduction_joint: 3_000
|
|
259
|
+
mt_itemized_deductions_joint: 2_000
|
|
260
|
+
mt_personal_exemptions_joint: 1_000
|
|
261
|
+
tax_units:
|
|
262
|
+
tax_unit:
|
|
263
|
+
members: [person1, person2]
|
|
264
|
+
filing_status: JOINT
|
|
265
|
+
households:
|
|
266
|
+
household:
|
|
267
|
+
members: [person1, person2]
|
|
268
|
+
state_code: MT
|
|
269
|
+
output:
|
|
270
|
+
# Only person2 gets $5,500 old age subtraction
|
|
271
|
+
mt_old_age_subtraction: [0, 5_500]
|
|
272
|
+
# Federal AGI: 25,000 + 20,000 = 45,000
|
|
273
|
+
# Total subtractions: 0 + 5,500 = 5,500
|
|
274
|
+
# AGI after subtractions: 45,000 - 5,500 = 39,500
|
|
275
|
+
# Deductions: max(6,000, 4,000) = 6,000
|
|
276
|
+
# Exemptions: 1,000 + 1,000 = 2,000
|
|
277
|
+
# Taxable income: 39,500 - 6,000 - 2,000 = 31,500
|
|
278
|
+
mt_taxable_income_joint: [31_500, 0]
|
|
@@ -13,3 +13,27 @@
|
|
|
13
13
|
state_code: MT
|
|
14
14
|
output:
|
|
15
15
|
mt_old_age_subtraction: 5_500
|
|
16
|
+
|
|
17
|
+
- name: MT joint filers both over 65 receive double old age subtraction
|
|
18
|
+
absolute_error_margin: 0.9
|
|
19
|
+
period: 2024
|
|
20
|
+
input:
|
|
21
|
+
people:
|
|
22
|
+
spouse1:
|
|
23
|
+
age: 71
|
|
24
|
+
adjusted_gross_income_person: 44_500
|
|
25
|
+
spouse2:
|
|
26
|
+
age: 78
|
|
27
|
+
adjusted_gross_income_person: 44_500
|
|
28
|
+
tax_units:
|
|
29
|
+
tax_unit:
|
|
30
|
+
members: [spouse1, spouse2]
|
|
31
|
+
filing_status: JOINT
|
|
32
|
+
households:
|
|
33
|
+
household:
|
|
34
|
+
state_code: MT
|
|
35
|
+
members: [spouse1, spouse2]
|
|
36
|
+
output:
|
|
37
|
+
# Each over-65 spouse gets $5,500 subtraction
|
|
38
|
+
mt_old_age_subtraction: [5_500, 5_500]
|
|
39
|
+
mt_subtractions: [5_500, 5_500]
|
policyengine_us/tests/policy/baseline/gov/states/tx/dart/free_ride/tx_dart_free_ride_benefit.yaml
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
- name: Eligible child under 5 years old receives free monthly pass benefit
|
|
2
|
+
period: 2025
|
|
3
|
+
input:
|
|
4
|
+
people:
|
|
5
|
+
child:
|
|
6
|
+
age: 3
|
|
7
|
+
households:
|
|
8
|
+
household:
|
|
9
|
+
members: [child]
|
|
10
|
+
state_code: TX
|
|
11
|
+
output:
|
|
12
|
+
# $126 monthly pass * 12 months = $1,512 annual benefit
|
|
13
|
+
tx_dart_free_ride_benefit: 1_512
|
|
14
|
+
|
|
15
|
+
- name: Child exactly 5 years old does not receive free ride benefit
|
|
16
|
+
period: 2025
|
|
17
|
+
input:
|
|
18
|
+
people:
|
|
19
|
+
child:
|
|
20
|
+
age: 5
|
|
21
|
+
households:
|
|
22
|
+
household:
|
|
23
|
+
members: [child]
|
|
24
|
+
state_code: TX
|
|
25
|
+
output:
|
|
26
|
+
tx_dart_free_ride_benefit: 0
|
|
27
|
+
|
|
28
|
+
- name: Older child age 10 does not receive free ride benefit
|
|
29
|
+
period: 2025
|
|
30
|
+
input:
|
|
31
|
+
people:
|
|
32
|
+
child:
|
|
33
|
+
age: 10
|
|
34
|
+
households:
|
|
35
|
+
household:
|
|
36
|
+
members: [child]
|
|
37
|
+
state_code: TX
|
|
38
|
+
output:
|
|
39
|
+
tx_dart_free_ride_benefit: 0
|
|
40
|
+
|
|
41
|
+
- name: Adult does not receive free ride benefit
|
|
42
|
+
period: 2025
|
|
43
|
+
input:
|
|
44
|
+
people:
|
|
45
|
+
adult:
|
|
46
|
+
age: 35
|
|
47
|
+
households:
|
|
48
|
+
household:
|
|
49
|
+
members: [adult]
|
|
50
|
+
state_code: TX
|
|
51
|
+
output:
|
|
52
|
+
tx_dart_free_ride_benefit: 0
|
|
53
|
+
|
|
54
|
+
- name: Multi-person household with one eligible young child
|
|
55
|
+
period: 2025
|
|
56
|
+
input:
|
|
57
|
+
people:
|
|
58
|
+
parent1:
|
|
59
|
+
age: 32
|
|
60
|
+
parent2:
|
|
61
|
+
age: 30
|
|
62
|
+
child1:
|
|
63
|
+
age: 2
|
|
64
|
+
child2:
|
|
65
|
+
age: 8
|
|
66
|
+
households:
|
|
67
|
+
household:
|
|
68
|
+
members: [parent1, parent2, child1, child2]
|
|
69
|
+
state_code: TX
|
|
70
|
+
output:
|
|
71
|
+
tx_dart_free_ride_benefit: [0, 0, 1_512, 0]
|
|
72
|
+
|
|
73
|
+
- name: Infant under 1 year old receives free ride benefit
|
|
74
|
+
period: 2025
|
|
75
|
+
input:
|
|
76
|
+
people:
|
|
77
|
+
infant:
|
|
78
|
+
age: 0
|
|
79
|
+
households:
|
|
80
|
+
household:
|
|
81
|
+
members: [infant]
|
|
82
|
+
state_code: TX
|
|
83
|
+
output:
|
|
84
|
+
# $126 monthly pass * 12 months = $1,512 annual benefit
|
|
85
|
+
tx_dart_free_ride_benefit: 1_512
|
|
86
|
+
|
|
87
|
+
- name: Child at age 4 boundary receives free ride benefit
|
|
88
|
+
period: 2025
|
|
89
|
+
input:
|
|
90
|
+
people:
|
|
91
|
+
child:
|
|
92
|
+
age: 4
|
|
93
|
+
households:
|
|
94
|
+
household:
|
|
95
|
+
members: [child]
|
|
96
|
+
state_code: TX
|
|
97
|
+
output:
|
|
98
|
+
# $126 monthly pass * 12 months = $1,512 annual benefit
|
|
99
|
+
tx_dart_free_ride_benefit: 1_512
|
|
100
|
+
|
|
101
|
+
- name: Elderly person does not receive free ride benefit
|
|
102
|
+
period: 2025
|
|
103
|
+
input:
|
|
104
|
+
people:
|
|
105
|
+
senior:
|
|
106
|
+
age: 70
|
|
107
|
+
households:
|
|
108
|
+
household:
|
|
109
|
+
members: [senior]
|
|
110
|
+
state_code: TX
|
|
111
|
+
output:
|
|
112
|
+
tx_dart_free_ride_benefit: 0
|
|
113
|
+
|
|
114
|
+
- name: Multiple young children each receive free ride benefit
|
|
115
|
+
period: 2025
|
|
116
|
+
input:
|
|
117
|
+
people:
|
|
118
|
+
parent:
|
|
119
|
+
age: 28
|
|
120
|
+
child1:
|
|
121
|
+
age: 1
|
|
122
|
+
child2:
|
|
123
|
+
age: 3
|
|
124
|
+
child3:
|
|
125
|
+
age: 4
|
|
126
|
+
households:
|
|
127
|
+
household:
|
|
128
|
+
members: [parent, child1, child2, child3]
|
|
129
|
+
state_code: TX
|
|
130
|
+
output:
|
|
131
|
+
# Each eligible child gets $1,512 annual benefit
|
|
132
|
+
tx_dart_free_ride_benefit: [0, 1_512, 1_512, 1_512]
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
- name: Child under 5 rides free
|
|
2
|
+
period: 2025
|
|
3
|
+
input:
|
|
4
|
+
state_code: TX
|
|
5
|
+
age: 2
|
|
6
|
+
output:
|
|
7
|
+
tx_dart_free_ride_eligible_young_child: true
|
|
8
|
+
|
|
9
|
+
- name: 4-year-old rides free
|
|
10
|
+
period: 2025
|
|
11
|
+
input:
|
|
12
|
+
state_code: TX
|
|
13
|
+
age: 4
|
|
14
|
+
output:
|
|
15
|
+
tx_dart_free_ride_eligible_young_child: true
|
|
16
|
+
|
|
17
|
+
- name: 5-year-old does not ride free
|
|
18
|
+
period: 2025
|
|
19
|
+
input:
|
|
20
|
+
state_code: TX
|
|
21
|
+
age: 5
|
|
22
|
+
output:
|
|
23
|
+
tx_dart_free_ride_eligible_young_child: false
|
|
24
|
+
|
|
25
|
+
- name: Adult does not ride free
|
|
26
|
+
period: 2025
|
|
27
|
+
input:
|
|
28
|
+
state_code: TX
|
|
29
|
+
age: 30
|
|
30
|
+
output:
|
|
31
|
+
tx_dart_free_ride_eligible_young_child: false
|
|
32
|
+
|
|
33
|
+
- name: Senior does not ride free through free ride program
|
|
34
|
+
period: 2025
|
|
35
|
+
input:
|
|
36
|
+
state_code: TX
|
|
37
|
+
age: 65
|
|
38
|
+
output:
|
|
39
|
+
tx_dart_free_ride_eligible_young_child: false
|
|
40
|
+
|
|
41
|
+
- name: Multi-person household with toddler
|
|
42
|
+
period: 2025
|
|
43
|
+
input:
|
|
44
|
+
people:
|
|
45
|
+
parent1:
|
|
46
|
+
age: 35
|
|
47
|
+
parent2:
|
|
48
|
+
age: 33
|
|
49
|
+
child:
|
|
50
|
+
age: 3
|
|
51
|
+
households:
|
|
52
|
+
household:
|
|
53
|
+
members: [parent1, parent2, child]
|
|
54
|
+
state_code: TX
|
|
55
|
+
output:
|
|
56
|
+
tx_dart_free_ride_eligible_young_child: [false, false, true]
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
- name: 4-year-old not age eligible for reduced fare
|
|
2
|
+
period: 2025
|
|
3
|
+
input:
|
|
4
|
+
state_code: TX
|
|
5
|
+
age: 4
|
|
6
|
+
output:
|
|
7
|
+
tx_dart_reduced_fare_age_eligible: false
|
|
8
|
+
|
|
9
|
+
- name: 5-year-old child eligible (minimum age)
|
|
10
|
+
period: 2025
|
|
11
|
+
input:
|
|
12
|
+
state_code: TX
|
|
13
|
+
age: 5
|
|
14
|
+
output:
|
|
15
|
+
tx_dart_reduced_fare_age_eligible: true
|
|
16
|
+
|
|
17
|
+
- name: 10-year-old child eligible
|
|
18
|
+
period: 2025
|
|
19
|
+
input:
|
|
20
|
+
state_code: TX
|
|
21
|
+
age: 10
|
|
22
|
+
output:
|
|
23
|
+
tx_dart_reduced_fare_age_eligible: true
|
|
24
|
+
|
|
25
|
+
- name: 14-year-old child eligible (maximum age)
|
|
26
|
+
period: 2025
|
|
27
|
+
input:
|
|
28
|
+
state_code: TX
|
|
29
|
+
age: 14
|
|
30
|
+
output:
|
|
31
|
+
tx_dart_reduced_fare_age_eligible: true
|
|
32
|
+
|
|
33
|
+
- name: 15-year-old not child eligible
|
|
34
|
+
period: 2025
|
|
35
|
+
input:
|
|
36
|
+
state_code: TX
|
|
37
|
+
age: 15
|
|
38
|
+
output:
|
|
39
|
+
tx_dart_reduced_fare_age_eligible: false
|
|
40
|
+
|
|
41
|
+
- name: 30-year-old adult not age eligible
|
|
42
|
+
period: 2025
|
|
43
|
+
input:
|
|
44
|
+
state_code: TX
|
|
45
|
+
age: 30
|
|
46
|
+
output:
|
|
47
|
+
tx_dart_reduced_fare_age_eligible: false
|
|
48
|
+
|
|
49
|
+
- name: 64-year-old not senior eligible
|
|
50
|
+
period: 2025
|
|
51
|
+
input:
|
|
52
|
+
state_code: TX
|
|
53
|
+
age: 64
|
|
54
|
+
output:
|
|
55
|
+
tx_dart_reduced_fare_age_eligible: false
|
|
56
|
+
|
|
57
|
+
- name: 65-year-old senior eligible (minimum age)
|
|
58
|
+
period: 2025
|
|
59
|
+
input:
|
|
60
|
+
state_code: TX
|
|
61
|
+
age: 65
|
|
62
|
+
output:
|
|
63
|
+
tx_dart_reduced_fare_age_eligible: true
|
|
64
|
+
|
|
65
|
+
- name: 70-year-old senior eligible
|
|
66
|
+
period: 2025
|
|
67
|
+
input:
|
|
68
|
+
state_code: TX
|
|
69
|
+
age: 70
|
|
70
|
+
output:
|
|
71
|
+
tx_dart_reduced_fare_age_eligible: true
|
|
72
|
+
|
|
73
|
+
- name: Multi-generation household age eligibility
|
|
74
|
+
period: 2025
|
|
75
|
+
input:
|
|
76
|
+
people:
|
|
77
|
+
grandparent:
|
|
78
|
+
age: 68
|
|
79
|
+
parent:
|
|
80
|
+
age: 40
|
|
81
|
+
child:
|
|
82
|
+
age: 12
|
|
83
|
+
toddler:
|
|
84
|
+
age: 3
|
|
85
|
+
households:
|
|
86
|
+
household:
|
|
87
|
+
members: [grandparent, parent, child, toddler]
|
|
88
|
+
state_code: TX
|
|
89
|
+
output:
|
|
90
|
+
tx_dart_reduced_fare_age_eligible: [true, false, true, false]
|