policyengine-us 1.403.2__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/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/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/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.2.dist-info → policyengine_us-1.404.1.dist-info}/METADATA +1 -1
- {policyengine_us-1.403.2.dist-info → policyengine_us-1.404.1.dist-info}/RECORD +25 -6
- {policyengine_us-1.403.2.dist-info → policyengine_us-1.404.1.dist-info}/WHEEL +0 -0
- {policyengine_us-1.403.2.dist-info → policyengine_us-1.404.1.dist-info}/entry_points.txt +0 -0
- {policyengine_us-1.403.2.dist-info → policyengine_us-1.404.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
description: Dallas Area Rapid Transit (DART) charges the full fare 31 Day Pass at this price.
|
|
2
|
+
values:
|
|
3
|
+
2025-01-01: 126
|
|
4
|
+
|
|
5
|
+
metadata:
|
|
6
|
+
unit: currency-USD
|
|
7
|
+
period: month
|
|
8
|
+
label: DART 31 Day Pass full cost
|
|
9
|
+
reference:
|
|
10
|
+
- title: Dallas Area Rapid Transit (DART) Fares
|
|
11
|
+
href: https://www.dart.org/fare/general-fares-and-overview/fares
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
description: Dallas Area Rapid Transit (DART) charges the reduced fare 31 Day Pass at this price.
|
|
2
|
+
values:
|
|
3
|
+
2025-01-01: 63
|
|
4
|
+
|
|
5
|
+
metadata:
|
|
6
|
+
unit: currency-USD
|
|
7
|
+
period: month
|
|
8
|
+
label: DART 31 Day Pass reduced fare cost
|
|
9
|
+
reference:
|
|
10
|
+
- title: Dallas Area Rapid Transit (DART) Reduced Fares
|
|
11
|
+
href: https://www.dart.org/fare/general-fares-and-overview/reduced-fares
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
description: Dallas Area Rapid Transit (DART) provides the Discount GoPass Program to individuals enrolled in these assistance programs.
|
|
2
|
+
values:
|
|
3
|
+
2024-01-01:
|
|
4
|
+
- chip
|
|
5
|
+
- medicaid
|
|
6
|
+
- is_medicare_eligible # medicare
|
|
7
|
+
- wic
|
|
8
|
+
- snap
|
|
9
|
+
- tanf
|
|
10
|
+
# Comprehensive Energy Assistance Program (CEAP)
|
|
11
|
+
# Housing Choice Voucher Program (Section 8)
|
|
12
|
+
|
|
13
|
+
metadata:
|
|
14
|
+
label: DART Discount GoPass qualifying assistance programs
|
|
15
|
+
reference:
|
|
16
|
+
- title: Dallas Area Rapid Transit (DART) Discount GoPass Tap Card
|
|
17
|
+
href: https://www.dart.org/fare/general-fares-and-overview/discount-gopass-tap-card
|
|
18
|
+
- title: Ask DART, What is the Discount GoPass® Tap card?
|
|
19
|
+
href: https://dartdaily.dart.org/home/ask-dart-what-is-the-discount-gopass-tap-card
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
description: Dallas Area Rapid Transit (DART) provides the Reduced Fare Program to applicants who are within these age brackets.
|
|
2
|
+
metadata:
|
|
3
|
+
threshold_unit: year
|
|
4
|
+
amount_unit: bool
|
|
5
|
+
period: year
|
|
6
|
+
type: single_amount
|
|
7
|
+
label: DART Reduced Fare Program child age threshold
|
|
8
|
+
reference:
|
|
9
|
+
- title: Dallas Area Rapid Transit (DART) Reduced Fare GoPass Tap Card
|
|
10
|
+
href: https://www.dart.org/fare/general-fares-and-overview/reduced-fares#college
|
|
11
|
+
brackets:
|
|
12
|
+
- threshold:
|
|
13
|
+
2021-01-01: 0
|
|
14
|
+
amount:
|
|
15
|
+
2021-01-01: false
|
|
16
|
+
- threshold:
|
|
17
|
+
2021-01-01: 5 # Children under 5 years old ride for free
|
|
18
|
+
amount:
|
|
19
|
+
2021-01-01: true
|
|
20
|
+
- threshold:
|
|
21
|
+
2021-01-01: 15
|
|
22
|
+
amount:
|
|
23
|
+
2021-01-01: false
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
description: Dallas Area Rapid Transit (DART) provides the Reduced Fare Program to seniors of this age or older.
|
|
2
|
+
values:
|
|
3
|
+
2021-01-01: 65
|
|
4
|
+
metadata:
|
|
5
|
+
unit: year
|
|
6
|
+
period: year
|
|
7
|
+
label: DART Reduced Fare Program senior age threshold
|
|
8
|
+
reference:
|
|
9
|
+
- title: Dallas Area Rapid Transit (DART) Reduced Fare GoPass Tap Card
|
|
10
|
+
href: https://www.dart.org/fare/general-fares-and-overview/reduced-fares
|
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]
|
|
@@ -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]
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_dart_free_ride_benefit(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Dallas Area Rapid Transit (DART) free ride benefit value"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = YEAR
|
|
10
|
+
defined_for = "tx_dart_free_ride_eligible_young_child"
|
|
11
|
+
reference = (
|
|
12
|
+
"https://www.dart.org/fare/general-fares-and-overview/reduced-fares"
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
def formula(person, period, parameters):
|
|
16
|
+
p = parameters(period).gov.states.tx.dart.monthly_pass_cost
|
|
17
|
+
# Currently only include the monthly pass costs
|
|
18
|
+
return p.full_fare * MONTHS_IN_YEAR
|
policyengine_us/variables/gov/states/tx/dart/free_ride/tx_dart_free_ride_eligible_young_child.py
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_dart_free_ride_eligible_young_child(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Eligible young child for Dallas Area Rapid Transit (DART) Free Ride program"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
defined_for = StateCode.TX
|
|
10
|
+
reference = (
|
|
11
|
+
"https://www.dart.org/fare/general-fares-and-overview/reduced-fares"
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
def formula(person, period, parameters):
|
|
15
|
+
p = parameters(period).gov.states.tx.dart.reduced_fare.age_threshold
|
|
16
|
+
age = person("age", period)
|
|
17
|
+
# Under 5 years old - children under 5 ride free
|
|
18
|
+
# The first threshold in the child parameter is 5 (the age when reduced fare starts)
|
|
19
|
+
return age < p.child.thresholds[1]
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_dart_reduced_fare_age_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Eligible for Dallas Area Rapid Transit (DART) Reduced Fare program due to age"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
defined_for = StateCode.TX
|
|
10
|
+
reference = (
|
|
11
|
+
"https://www.dart.org/fare/general-fares-and-overview/reduced-fares"
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
def formula(person, period, parameters):
|
|
15
|
+
p = parameters(period).gov.states.tx.dart.reduced_fare.age_threshold
|
|
16
|
+
age = person("age", period)
|
|
17
|
+
|
|
18
|
+
# Senior (65+)
|
|
19
|
+
senior_eligible = age >= p.senior
|
|
20
|
+
# Child (5-14)
|
|
21
|
+
child_eligible = p.child.calc(age)
|
|
22
|
+
|
|
23
|
+
return senior_eligible | child_eligible
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_dart_reduced_fare_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = (
|
|
8
|
+
"Eligible for Dallas Area Rapid Transit (DART) Reduced Fare program"
|
|
9
|
+
)
|
|
10
|
+
definition_period = YEAR
|
|
11
|
+
defined_for = StateCode.TX
|
|
12
|
+
reference = (
|
|
13
|
+
"https://www.dart.org/fare/general-fares-and-overview/reduced-fares"
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
def formula(person, period, parameters):
|
|
17
|
+
# Eligible due to age
|
|
18
|
+
age_eligible = person("tx_dart_reduced_fare_age_eligible", period)
|
|
19
|
+
# Disability
|
|
20
|
+
is_disabled = person("is_disabled", period)
|
|
21
|
+
# Veteran
|
|
22
|
+
veteran_eligible = person("is_veteran", period)
|
|
23
|
+
# Student (high school, college, or trade school)
|
|
24
|
+
student_eligible = person("is_full_time_student", period)
|
|
25
|
+
# Enrolled in applicable programs (Discount GoPass)
|
|
26
|
+
# Note: DART has two separate programs that both offer 50% discounts:
|
|
27
|
+
# 1. Reduced Fare program (for age/disability/veteran/student)
|
|
28
|
+
# 2. Discount GoPass program (for assistance program recipients)
|
|
29
|
+
# We combine them here since they provide identical benefits
|
|
30
|
+
enrolled_eligible = person(
|
|
31
|
+
"tx_dart_reduced_fare_program_eligible", period
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
age_eligible
|
|
36
|
+
| is_disabled
|
|
37
|
+
| veteran_eligible
|
|
38
|
+
| student_eligible
|
|
39
|
+
| enrolled_eligible
|
|
40
|
+
)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_dart_reduced_fare_program_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Eligible for Dallas Area Rapid Transit (DART) Reduced Fare program due to qualifying program enrollment"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
defined_for = StateCode.TX
|
|
10
|
+
reference = "https://www.dart.org/fare/general-fares-and-overview/discount-gopass-tap-card"
|
|
11
|
+
|
|
12
|
+
# The Discount GoPass program provides 50% fare reduction for riders enrolled
|
|
13
|
+
# in qualifying assistance programs. It is the same as Reduced Fare program.
|
|
14
|
+
# This uses the 'adds' parameter to check if the person receives benefits from any
|
|
15
|
+
# program listed in qualifying_programs.yaml
|
|
16
|
+
# (SNAP, Medicaid, Medicare, CHIP, TANF, WIC, etc.)
|
|
17
|
+
# Note: Some programs like CEAP and DHA Housing are listed but not yet modeled
|
|
18
|
+
adds = "gov.states.tx.dart.qualifying_programs"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_dart_reduced_fare_benefit(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Dallas Area Rapid Transit (DART) reduced fare benefit value"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = YEAR
|
|
10
|
+
defined_for = "tx_dart_reduced_fare_eligible"
|
|
11
|
+
reference = (
|
|
12
|
+
"https://www.dart.org/fare/general-fares-and-overview/reduced-fares"
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
def formula(person, period, parameters):
|
|
16
|
+
p = parameters(period).gov.states.tx.dart.monthly_pass_cost
|
|
17
|
+
return (p.full_fare - p.reduced_fare) * MONTHS_IN_YEAR
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_dart_benefit_person(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Dallas Area Rapid Transit (DART) benefit value per person"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = YEAR
|
|
10
|
+
defined_for = StateCode.TX
|
|
11
|
+
reference = (
|
|
12
|
+
"https://www.dart.org/fare/general-fares-and-overview/reduced-fares"
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
def formula(person, period, parameters):
|
|
16
|
+
free_ride_benefit = person("tx_dart_free_ride_benefit", period)
|
|
17
|
+
reduced_fare_benefit = person("tx_dart_reduced_fare_benefit", period)
|
|
18
|
+
return max_(free_ride_benefit, reduced_fare_benefit)
|
|
@@ -2790,6 +2790,11 @@ policyengine_us/parameters/gov/states/sc/tax/income/subtractions/retirement/cap.
|
|
|
2790
2790
|
policyengine_us/parameters/gov/states/sc/tax/income/subtractions/retirement/subtract_military.yaml,sha256=Ynfbmp6Y11WuKUvuSnbkAwKeh5cTaTuQUXBahGTmOHI,1327
|
|
2791
2791
|
policyengine_us/parameters/gov/states/tx/README.md,sha256=x_Gzkr6c45-uNe4weu6yJvI6OlpfqOm-13oYEUBI_O0,8
|
|
2792
2792
|
policyengine_us/parameters/gov/states/tx/index.yaml,sha256=rHA75ZOkRKkoYkd4zjChiGfJF_G--G2ZfwG3LZLIf6I,85
|
|
2793
|
+
policyengine_us/parameters/gov/states/tx/dart/qualifying_programs.yaml,sha256=SHn3vcVfgrEIQqbPLMhInKfBiJ3owBPVeS2KUu5n7jw,760
|
|
2794
|
+
policyengine_us/parameters/gov/states/tx/dart/monthly_pass_cost/full_fare.yaml,sha256=IIB1j44pMvViKeu308I1IBAmsJ2BmBNQMJWiOaEy_S0,341
|
|
2795
|
+
policyengine_us/parameters/gov/states/tx/dart/monthly_pass_cost/reduced_fare.yaml,sha256=9CpamProPEh_mqPq_M5bAcc13AEkMZ5Kk5j-XM5xDK4,367
|
|
2796
|
+
policyengine_us/parameters/gov/states/tx/dart/reduced_fare/age_threshold/child.yaml,sha256=N_rMXb6wj0V8n_BWH389K54PvYIoHc8ZTtZ8M0fgdss,720
|
|
2797
|
+
policyengine_us/parameters/gov/states/tx/dart/reduced_fare/age_threshold/senior.yaml,sha256=2xAE95i7EjipEEiqhs8ueTpK8iXeMgRAL16krpSGA00,399
|
|
2793
2798
|
policyengine_us/parameters/gov/states/tx/tanf/README.md,sha256=pl7ABGVc6yj_se0EwKp4k5CnR96YHhRHRJtxeha0Kko,7
|
|
2794
2799
|
policyengine_us/parameters/gov/states/tx/tanf/monthly_income_limit.yaml,sha256=f4ZM3pHnz94T2-_Rm869qKd6giq56e1A4yaMjKAQMHQ,746
|
|
2795
2800
|
policyengine_us/parameters/gov/states/ut/README.md,sha256=2n4RUtXc0zVy3tsjRpj2JwLc-xlMyDQG7jtZsYhCvU8,7
|
|
@@ -3210,7 +3215,7 @@ policyengine_us/reforms/tax_exempt/tax_exempt_reform.py,sha256=bkW91XMJ-jd23nhq4
|
|
|
3210
3215
|
policyengine_us/reforms/treasury/__init__.py,sha256=406jIbu32B57tUKhVLflWxlXf3S4SWjclVqlEtMeMwg,92
|
|
3211
3216
|
policyengine_us/reforms/treasury/repeal_dependent_exemptions.py,sha256=-xyMCtUK_dIBn2aAmhPW8pJEZjxcgOZzWKEUSI3w5e8,1354
|
|
3212
3217
|
policyengine_us/tests/run_selective_tests.py,sha256=xQiFaJH3z7PCh9IHXyUU9zC2dTT9K75XlFyjCeP_OBo,23139
|
|
3213
|
-
policyengine_us/tests/test_batched.py,sha256=
|
|
3218
|
+
policyengine_us/tests/test_batched.py,sha256=pLxGExkqsOrB6g9SqJ_GDn-Cr6v7M-XWWzwTkOi6IOg,11821
|
|
3214
3219
|
policyengine_us/tests/code_health/parameters.py,sha256=e9VKC8dmmB_dTafOO90WJuVu-PAogoLAaa5QZd2rY-s,1126
|
|
3215
3220
|
policyengine_us/tests/code_health/variable_names.py,sha256=hY4ucqPwBD7v_fvnBpzexJDf0yCGpF4Sueff4z4rQ24,554
|
|
3216
3221
|
policyengine_us/tests/microsimulation/test_microsim.py,sha256=_yT0ljW8aWjAOgSCWPH0vBv6jUJ4H_XM4clcg01mH1k,1181
|
|
@@ -4910,6 +4915,13 @@ policyengine_us/tests/policy/baseline/gov/states/sc/tax/income/subtractions/reti
|
|
|
4910
4915
|
policyengine_us/tests/policy/baseline/gov/states/tax/income/state_income_tax.yaml,sha256=OPDi52nx8kZM6N6W3La-OX94BSu7fjFGfxhmcD3xC7Q,1182
|
|
4911
4916
|
policyengine_us/tests/policy/baseline/gov/states/tax/income/state_itemized_deductions.yaml,sha256=fS8Z5X6C4Yjn1weAEIWc6fgGBGaIU3tGBwg9hc13jZg,5322
|
|
4912
4917
|
policyengine_us/tests/policy/baseline/gov/states/tax/income/state_standard_deduction.yaml,sha256=D-RhJbtaZ7ZepUpRGCS3JF3WnNLijSMi93v_V_luUQ0,4889
|
|
4918
|
+
policyengine_us/tests/policy/baseline/gov/states/tx/dart/tx_dart_benefit_person.yaml,sha256=exDqyJq-1JQIVmLCg8gat-FvWCjIJhZCT4FithuoVHA,2906
|
|
4919
|
+
policyengine_us/tests/policy/baseline/gov/states/tx/dart/free_ride/tx_dart_free_ride_benefit.yaml,sha256=NhDsnXkojI2cLbqeGNI8P4JrJR7KHlcYSJLuDpKyUx8,2778
|
|
4920
|
+
policyengine_us/tests/policy/baseline/gov/states/tx/dart/free_ride/tx_dart_free_ride_eligible_young_child.yaml,sha256=v-v3WOTVVIJtX_3OZYRTvh-G_9pK79VakrTcoLVD9uo,1113
|
|
4921
|
+
policyengine_us/tests/policy/baseline/gov/states/tx/dart/reduced_fare/tx_dart_reduced_fare_benefit.yaml,sha256=xNgS8ZNv02tRroS0ydL4IRVGdyU_-icI-rbZFkrFB48,2939
|
|
4922
|
+
policyengine_us/tests/policy/baseline/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_age_eligible.yaml,sha256=XH865IatUm0mbAbwWgUILfp9XdECpZT-yrd3kqT1feI,1783
|
|
4923
|
+
policyengine_us/tests/policy/baseline/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_eligible.yaml,sha256=mzUYLQyoLIf8KeoeF7yKQ5xyIGVB35fX4cNef7F8Lac,2790
|
|
4924
|
+
policyengine_us/tests/policy/baseline/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_program_eligible.yaml,sha256=aJHaArATkoXC5k5DZQ7Ij49GViAZCHeAuPkhmvFQOKQ,4867
|
|
4913
4925
|
policyengine_us/tests/policy/baseline/gov/states/tx/tanf/tx_tanf_income_limit.yaml,sha256=pNC3o3Ps_6o0EnSDb1mzQrHt10gGZhD7bW15SU_T2tI,388
|
|
4914
4926
|
policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/integration.yaml,sha256=ywuvJ3afrcrtkiXjit6m0LfOCLIfAr3fpm7xXzzcMGg,1297
|
|
4915
4927
|
policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/ut_income_tax_before_credits.yaml,sha256=JmDB8-C4IZ6y0BbyzjyOIFmZuF2a44p5RlKILLdlvEo,198
|
|
@@ -7665,6 +7677,13 @@ policyengine_us/variables/gov/states/tax/income/state_standard_deduction.py,sha2
|
|
|
7665
7677
|
policyengine_us/variables/gov/states/tax/income/state_taxable_income.py,sha256=Jx6E2o7t8GIqqa5KrBgsWLL0Cou2pI3yqftU3Jwyv4M,259
|
|
7666
7678
|
policyengine_us/variables/gov/states/tax/income/state_withheld_income_tax.py,sha256=xVIdWx_74oFSU5styx17mY3zravdReEwnZBr0sDLko0,290
|
|
7667
7679
|
policyengine_us/variables/gov/states/tax/sales/state_sales_tax.py,sha256=OEbqEJBjhBGDkr0PMPwYnBqGXEyb7OMJuKg1jQpqpgA,840
|
|
7680
|
+
policyengine_us/variables/gov/states/tx/dart/tx_dart_benefit_person.py,sha256=-bycbUbrTnH9-Jb3amf7gAL6g69-MdzyTmbb8NjMew4,630
|
|
7681
|
+
policyengine_us/variables/gov/states/tx/dart/free_ride/tx_dart_free_ride_benefit.py,sha256=z6PxOjLgKUTLqRlDnopYFK-ySv8iC-ubw1U1wdoNuqc,617
|
|
7682
|
+
policyengine_us/variables/gov/states/tx/dart/free_ride/tx_dart_free_ride_eligible_young_child.py,sha256=T9Go2jN4Y28uFZMm61g9o5yh8BV5_A70mZ5R5twxPI0,743
|
|
7683
|
+
policyengine_us/variables/gov/states/tx/dart/reduced_fare/tx_dart_reduced_fare_benefit.py,sha256=oDEoFl6aJCKO-LF5h_JBsyiazMSL0cU6xTV0Dcr_L1U,577
|
|
7684
|
+
policyengine_us/variables/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_age_eligible.py,sha256=a8Cv6sfXu6H3yp3HhnFk8hEnVueyuhifUz5RBQnSefs,728
|
|
7685
|
+
policyengine_us/variables/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_eligible.py,sha256=ofoBToD_pJ9RX4M9XiKXiZWI4qWdDeIhtNvAVU1O24I,1441
|
|
7686
|
+
policyengine_us/variables/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_program_eligible.py,sha256=8SGVaR1d84RmAfwGrYHvRHndtS36zA5CwPMhLQ9nHVg,904
|
|
7668
7687
|
policyengine_us/variables/gov/states/tx/tanf/tx_tanf_income_limit.py,sha256=8O9M4QkG532dsMLKXe9yyRGY_fRCjN6sqWnDUzlTvYw,549
|
|
7669
7688
|
policyengine_us/variables/gov/states/ut/README.md,sha256=JejErxrT7pBikQzTXA3jm2IRzAqBwwiyCpUgBcJBQMU,1644
|
|
7670
7689
|
policyengine_us/variables/gov/states/ut/tax/income/ut_income_tax.py,sha256=JNGaNbMxlF4odCHofyhXqn5hCd-NBJnGNi3JzOU4RLY,417
|
|
@@ -8450,8 +8469,8 @@ policyengine_us/variables/input/farm_income.py,sha256=BEKxYmHNNnWJAAvULl5qZJigy5
|
|
|
8450
8469
|
policyengine_us/variables/input/geography.py,sha256=Ux0ueAf0rhZaflyEqz81UuXP3xKCKBDvoO3CrKhiQEc,5421
|
|
8451
8470
|
policyengine_us/variables/input/self_employment_income.py,sha256=PwsGz8R4lRikKWUYOhsC0qosNNLXq4f5SQmfw4S3mk8,511
|
|
8452
8471
|
policyengine_us/variables/input/self_employment_income_before_lsr.py,sha256=E8fcX9Nlyqz8dziHhQv_euutdmoIwFMMWePUwbbwv_w,379
|
|
8453
|
-
policyengine_us-1.
|
|
8454
|
-
policyengine_us-1.
|
|
8455
|
-
policyengine_us-1.
|
|
8456
|
-
policyengine_us-1.
|
|
8457
|
-
policyengine_us-1.
|
|
8472
|
+
policyengine_us-1.404.1.dist-info/METADATA,sha256=c3R5xKHQoCpfEmJdX4U6st19cnWEQXTEsKlE-wb4qnc,1649
|
|
8473
|
+
policyengine_us-1.404.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
8474
|
+
policyengine_us-1.404.1.dist-info/entry_points.txt,sha256=MLaqNyNTbReALyKNkde85VkuFFpdPWAcy8VRG1mjczc,57
|
|
8475
|
+
policyengine_us-1.404.1.dist-info/licenses/LICENSE,sha256=2N5ReRelkdqkR9a-KP-y-shmcD5P62XoYiG-miLTAzo,34519
|
|
8476
|
+
policyengine_us-1.404.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|