policyengine-us 1.419.0__py3-none-any.whl → 1.421.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (20) hide show
  1. policyengine_us/parameters/gov/states/tx/dta/csfp/fpg_limit.yaml +10 -0
  2. policyengine_us/parameters/gov/states/tx/uct/lifeline/fpg_limit.yaml +10 -0
  3. policyengine_us/parameters/gov/states/tx/uct/lifeline/supplement.yaml +10 -0
  4. policyengine_us/tests/policy/baseline/gov/fcc/lifeline/is_lifeline_eligible.yaml +10 -0
  5. policyengine_us/tests/policy/baseline/gov/fcc/lifeline/is_lifeline_income_eligible.yaml +47 -0
  6. policyengine_us/tests/policy/baseline/gov/fcc/lifeline/lifeline.yaml +19 -0
  7. policyengine_us/tests/policy/baseline/gov/states/tx/dta/csfp/tx_dta_csfp_income_eligible.yaml +15 -0
  8. policyengine_us/tests/policy/baseline/gov/states/tx/uct/lifeline/integration.yaml +251 -0
  9. policyengine_us/tests/policy/baseline/gov/usda/csfp/commodity_supplemental_food_program_eligible.yaml +171 -0
  10. policyengine_us/variables/gov/fcc/lifeline/is_lifeline_eligible.py +3 -4
  11. policyengine_us/variables/gov/fcc/lifeline/is_lifeline_income_eligible.py +35 -0
  12. policyengine_us/variables/gov/fcc/lifeline/lifeline.py +5 -2
  13. policyengine_us/variables/gov/states/tx/dta/csfp/tx_dta_csfp_income_eligible.py +14 -0
  14. policyengine_us/variables/gov/states/tx/uct/lifeline/tx_lifeline_supplement.py +13 -0
  15. policyengine_us/variables/gov/usda/csfp/commodity_supplemental_food_program_eligible.py +7 -2
  16. {policyengine_us-1.419.0.dist-info → policyengine_us-1.421.0.dist-info}/METADATA +1 -1
  17. {policyengine_us-1.419.0.dist-info → policyengine_us-1.421.0.dist-info}/RECORD +20 -10
  18. {policyengine_us-1.419.0.dist-info → policyengine_us-1.421.0.dist-info}/WHEEL +0 -0
  19. {policyengine_us-1.419.0.dist-info → policyengine_us-1.421.0.dist-info}/entry_points.txt +0 -0
  20. {policyengine_us-1.419.0.dist-info → policyengine_us-1.421.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,10 @@
1
+ description: The Texas Department of Agriculture limits the Commodity Supplemental Food Program to individuals with household income below this percentage of the federal poverty guidelines.
2
+ values:
3
+ 2024-01-01: 1.3
4
+ metadata:
5
+ unit: /1
6
+ period: year
7
+ label: Texas Commodity Supplemental Food Program FPG limit
8
+ reference:
9
+ - title: Texas Department of Agriculture Commodity Supplemental Food Program Income Eligibility Guidelines for the Elderly
10
+ href: https://squaremeals.org/Portals/8/FND%20Forms/Program%20Forms/H1666%202025%20Income%20Eligibility%20Guidelines%20for%20the%20Elderly_.pdf?ver=joHDl3vcgPiW3mdgaMM7vA%3d%3d
@@ -0,0 +1,10 @@
1
+ description: Texas limits the Lifeline program to individuals with income below this percentage of the federal poverty guidelines.
2
+ values:
3
+ 2014-01-01: 1.5
4
+ metadata:
5
+ period: month
6
+ unit: /1
7
+ label: Texas Lifeline FPG limit
8
+ reference:
9
+ - title: 16 Tex. Admin. Code § 26.412 - Lifeline Service Program (d)(1)
10
+ href: https://www.law.cornell.edu/regulations/texas/16-Tex-Admin-Code-SS-26-412
@@ -0,0 +1,10 @@
1
+ description: Texas provides an additional Lifeline supplement for eligible individuals of this amount.
2
+ values:
3
+ 2014-01-01: 3.5
4
+ metadata:
5
+ period: month
6
+ unit: currency-USD
7
+ label: Texas Lifeline supplement amount
8
+ reference:
9
+ - title: 16 Tex. Admin. Code § 26.412 - Lifeline Service Program (f)(1)(c)
10
+ href: https://www.law.cornell.edu/regulations/texas/16-Tex-Admin-Code-SS-26-412
@@ -42,3 +42,13 @@
42
42
  tanf: 1
43
43
  output:
44
44
  is_lifeline_eligible: true
45
+
46
+ - name: Family with no categorical eligibility and income >135% of FPG is ineligible, but in Texas
47
+ period: 2022
48
+ input:
49
+ fcc_fpg_ratio: 1.5
50
+ snap: 0
51
+ medicaid: 0
52
+ state_code: TX
53
+ output:
54
+ is_lifeline_eligible: true
@@ -0,0 +1,47 @@
1
+ - name: Below federal 135% FPG limit - eligible
2
+ period: 2025
3
+ input:
4
+ fcc_fpg_ratio: 1.35
5
+ state_code: CA # Any non-Texas state
6
+ output:
7
+ is_lifeline_income_eligible: true
8
+
9
+ - name: Above federal 135% but below Texas 150% in non-Texas state - not eligible
10
+ period: 2025
11
+ input:
12
+ fcc_fpg_ratio: 1.4
13
+ state_code: CA
14
+ output:
15
+ is_lifeline_income_eligible: false
16
+
17
+ - name: Above federal 135% but below Texas 150% in Texas - eligible
18
+ period: 2025
19
+ input:
20
+ fcc_fpg_ratio: 1.4
21
+ state_code: TX
22
+ output:
23
+ is_lifeline_income_eligible: true
24
+
25
+ - name: At exactly Texas 150% limit in Texas - eligible
26
+ period: 2025
27
+ input:
28
+ fcc_fpg_ratio: 1.5
29
+ state_code: TX
30
+ output:
31
+ is_lifeline_income_eligible: true
32
+
33
+ - name: Above Texas 150% limit in Texas - not eligible
34
+ period: 2025
35
+ input:
36
+ fcc_fpg_ratio: 1.51
37
+ state_code: TX
38
+ output:
39
+ is_lifeline_income_eligible: false
40
+
41
+ - name: At federal 135% limit in California - eligible
42
+ period: 2025
43
+ input:
44
+ fcc_fpg_ratio: 1.35
45
+ state_code: CA
46
+ output:
47
+ is_lifeline_income_eligible: true
@@ -91,3 +91,22 @@
91
91
  state_code_str: MA
92
92
  output:
93
93
  lifeline: (9.25 + 25) * 12
94
+
95
+ - name: Eligible family with phone + broadband cost above the cap
96
+ period: 2022
97
+ input:
98
+ is_lifeline_eligible: true
99
+ broadband_cost: 200
100
+ phone_cost: 400
101
+ output:
102
+ lifeline: 111
103
+
104
+ - name: Eligible family with phone + broadband cost above the cap in Texas, supplement applies
105
+ period: 2022
106
+ input:
107
+ is_lifeline_eligible: true
108
+ broadband_cost: 200
109
+ phone_cost: 400
110
+ state_code: TX
111
+ output:
112
+ lifeline: 153
@@ -0,0 +1,15 @@
1
+ - name: Below the limit
2
+ period: 2025
3
+ input:
4
+ state_code: TX
5
+ school_meal_fpg_ratio: 1.3
6
+ output:
7
+ tx_dta_csfp_income_eligible: true
8
+
9
+ - name: Above the limit
10
+ period: 2025
11
+ input:
12
+ state_code: TX
13
+ school_meal_fpg_ratio: 1.31
14
+ output:
15
+ tx_dta_csfp_income_eligible: false
@@ -0,0 +1,251 @@
1
+ - name: Texas Lifeline complete flow - low income eligible household
2
+ period: 2024
3
+ input:
4
+ people:
5
+ person1:
6
+ age: 35
7
+ employment_income: 15_000
8
+ spm_units:
9
+ spm_unit:
10
+ members: [person1]
11
+ fcc_fpg_ratio: 1.35 # Below 135% federal threshold and 150% Texas threshold
12
+ broadband_cost: 600 # $50/month
13
+ phone_cost: 360 # $30/month
14
+ households:
15
+ household:
16
+ members: [person1]
17
+ state_code: TX
18
+ output:
19
+ # Income eligibility checks
20
+ is_lifeline_eligible: true # Federal eligibility
21
+
22
+ # Total Lifeline benefit includes Texas supplement
23
+ # Base: $9.25/month, TX supplement: $3.50/month = $12.75/month
24
+ # Annual: $12.75 * 12 = $153
25
+ lifeline: 153
26
+
27
+ - name: Texas household at exactly 150% FPG threshold
28
+ period: 2024
29
+ input:
30
+ people:
31
+ person1:
32
+ age: 40
33
+ employment_income: 21_870 # Exactly 150% of FPG for 1 person
34
+ spm_units:
35
+ spm_unit:
36
+ members: [person1]
37
+ fcc_fpg_ratio: 1.50 # Exactly at Texas threshold
38
+ broadband_cost: 480 # $40/month
39
+ households:
40
+ household:
41
+ members: [person1]
42
+ state_code: TX
43
+ output:
44
+ is_lifeline_eligible: true
45
+ lifeline: 153 # ($9.25 + $3.50) * 12
46
+
47
+ - name: Texas household just above 150% FPG threshold
48
+ period: 2024
49
+ input:
50
+ people:
51
+ person1:
52
+ age: 40
53
+ employment_income: 22_000 # Just above 150% of FPG
54
+ spm_units:
55
+ spm_unit:
56
+ members: [person1]
57
+ fcc_fpg_ratio: 1.51 # Above Texas threshold
58
+ broadband_cost: 480
59
+ households:
60
+ household:
61
+ members: [person1]
62
+ state_code: TX
63
+ output:
64
+ is_lifeline_eligible: true # Federal limit is 135%, Texas is 150%
65
+ lifeline: 153 # Still gets benefit via federal eligibility
66
+
67
+ - name: Texas household with SNAP - categorically eligible
68
+ period: 2024
69
+ input:
70
+ people:
71
+ person1:
72
+ age: 30
73
+ employment_income: 30_000 # Above income limits
74
+ spm_units:
75
+ spm_unit:
76
+ members: [person1]
77
+ snap: 200 # Receives SNAP
78
+ fcc_fpg_ratio: 2.0 # Above income thresholds
79
+ broadband_cost: 720 # $60/month
80
+ households:
81
+ household:
82
+ members: [person1]
83
+ state_code: TX
84
+ output:
85
+ is_lifeline_eligible: true # But categorically eligible via SNAP
86
+ lifeline: 153 # Full benefit with supplement
87
+
88
+ - name: Texas family of four below income threshold
89
+ period: 2024
90
+ input:
91
+ people:
92
+ parent1:
93
+ age: 35
94
+ employment_income: 25_000
95
+ parent2:
96
+ age: 33
97
+ employment_income: 10_000
98
+ child1:
99
+ age: 10
100
+ child2:
101
+ age: 8
102
+ spm_units:
103
+ spm_unit:
104
+ members: [parent1, parent2, child1, child2]
105
+ fcc_fpg_ratio: 0.9 # Well below thresholds
106
+ broadband_cost: 600
107
+ phone_cost: 300
108
+ households:
109
+ household:
110
+ members: [parent1, parent2, child1, child2]
111
+ state_code: TX
112
+ output:
113
+ is_lifeline_eligible: true
114
+ lifeline: 153 # One benefit per SPM unit with TX supplement
115
+
116
+ - name: Texas elderly person with SSI - categorically eligible
117
+ period: 2024
118
+ input:
119
+ people:
120
+ person1:
121
+ age: 70
122
+ ssi: 9_600 # Annual SSI
123
+ spm_units:
124
+ spm_unit:
125
+ members: [person1]
126
+ broadband_cost: 480
127
+ households:
128
+ household:
129
+ members: [person1]
130
+ state_code: TX
131
+ output:
132
+ is_lifeline_eligible: true # SSI makes them categorically eligible
133
+ lifeline: 153
134
+
135
+ - name: Texas disabled person with Medicaid
136
+ period: 2024
137
+ input:
138
+ people:
139
+ person1:
140
+ age: 45
141
+ is_disabled: true
142
+ medicaid: 1
143
+ spm_units:
144
+ spm_unit:
145
+ members: [person1]
146
+ broadband_cost: 600
147
+ households:
148
+ household:
149
+ members: [person1]
150
+ state_code: TX
151
+ output:
152
+ is_lifeline_eligible: true # Medicaid makes them eligible
153
+ lifeline: 153
154
+
155
+ - name: Texas rural tribal land household gets both supplements
156
+ period: 2024
157
+ input:
158
+ people:
159
+ person1:
160
+ age: 40
161
+ employment_income: 18_000
162
+ spm_units:
163
+ spm_unit:
164
+ members: [person1]
165
+ fcc_fpg_ratio: 1.2
166
+ broadband_cost: 1_200 # $100/month
167
+ households:
168
+ household:
169
+ members: [person1]
170
+ state_code: TX
171
+ is_rural: true
172
+ is_on_tribal_land: true
173
+ output:
174
+ is_lifeline_eligible: true
175
+ # Base: $9.25 + Rural Tribal: $25 + TX: $3.50 = $37.75/month
176
+ lifeline: 453 # $37.75 * 12
177
+
178
+ - name: Texas household with costs below benefit cap
179
+ period: 2024
180
+ input:
181
+ people:
182
+ person1:
183
+ age: 30
184
+ employment_income: 15_000
185
+ spm_units:
186
+ spm_unit:
187
+ members: [person1]
188
+ fcc_fpg_ratio: 1.0
189
+ broadband_cost: 60 # Only $5/month
190
+ phone_cost: 36 # Only $3/month
191
+ households:
192
+ household:
193
+ members: [person1]
194
+ state_code: TX
195
+ output:
196
+ is_lifeline_eligible: true
197
+ # Actual costs ($96) are less than max benefit ($153)
198
+ lifeline: 96 # Limited to actual costs
199
+
200
+ - name: Texas household with zero telecom costs
201
+ period: 2024
202
+ input:
203
+ people:
204
+ person1:
205
+ age: 30
206
+ employment_income: 10_000
207
+ spm_units:
208
+ spm_unit:
209
+ members: [person1]
210
+ fcc_fpg_ratio: 0.7
211
+ broadband_cost: 0
212
+ phone_cost: 0
213
+ households:
214
+ household:
215
+ members: [person1]
216
+ state_code: TX
217
+ output:
218
+ is_lifeline_eligible: true
219
+ lifeline: 0 # No costs to offset
220
+
221
+
222
+ - name: Two SPM units in Texas household - both eligible
223
+ period: 2024
224
+ input:
225
+ people:
226
+ person1:
227
+ age: 35
228
+ employment_income: 12_000
229
+ person2:
230
+ age: 65
231
+ employment_income: 8_000
232
+ spm_units:
233
+ spm_unit1:
234
+ members: [person1]
235
+ fcc_fpg_ratio: 0.8
236
+ broadband_cost: 300
237
+ phone_cost: 150
238
+ spm_unit2:
239
+ members: [person2]
240
+ fcc_fpg_ratio: 0.6
241
+ broadband_cost: 300
242
+ phone_cost: 150
243
+ households:
244
+ household:
245
+ members: [person1, person2]
246
+ state_code: TX
247
+ output:
248
+ # Each SPM unit is evaluated separately
249
+ is_lifeline_eligible: [true, true]
250
+ # Each could receive up to $153 (with TX supplement)
251
+ lifeline: [153, 153]
@@ -0,0 +1,171 @@
1
+ - name: Person under 60 is not eligible regardless of income
2
+ period: 2024
3
+ input:
4
+ people:
5
+ person:
6
+ age: 59
7
+ spouse:
8
+ age: 62
9
+ spm_units:
10
+ spm_unit:
11
+ members: [person, spouse]
12
+ school_meal_fpg_ratio: 1.0 # Below the 130% limit
13
+ output:
14
+ commodity_supplemental_food_program_eligible: [false, true]
15
+
16
+ - name: Person exactly 60 is eligible with low income
17
+ period: 2024
18
+ input:
19
+ people:
20
+ person:
21
+ age: 60
22
+ spm_units:
23
+ spm_unit:
24
+ members: [person]
25
+ school_meal_fpg_ratio: 1.2 # Below the 130% limit
26
+ output:
27
+ commodity_supplemental_food_program_eligible: true
28
+
29
+ - name: Elderly person eligible with income at exactly 130% FPG
30
+ period: 2024
31
+ input:
32
+ people:
33
+ person:
34
+ age: 65
35
+ spm_units:
36
+ spm_unit:
37
+ members: [person]
38
+ school_meal_fpg_ratio: 1.3 # Exactly at the limit
39
+ output:
40
+ commodity_supplemental_food_program_eligible: true
41
+
42
+ - name: Elderly person not eligible with income above 130% FPG
43
+ period: 2024
44
+ input:
45
+ people:
46
+ person:
47
+ age: 70
48
+ spm_units:
49
+ spm_unit:
50
+ members: [person]
51
+ school_meal_fpg_ratio: 1.31 # Just above the limit
52
+ output:
53
+ commodity_supplemental_food_program_eligible: false
54
+
55
+ - name: Multiple household members with different eligibility
56
+ period: 2024
57
+ input:
58
+ people:
59
+ child:
60
+ age: 10
61
+ adult:
62
+ age: 45
63
+ senior1:
64
+ age: 60
65
+ senior2:
66
+ age: 75
67
+ spm_units:
68
+ spm_unit:
69
+ members: [child, adult, senior1, senior2]
70
+ school_meal_fpg_ratio: 1.2 # Below the 130% limit
71
+ output:
72
+ commodity_supplemental_food_program_eligible: [false, false, true, true]
73
+
74
+ - name: 2025 period with higher FPG limit of 150%
75
+ period: 2025
76
+ input:
77
+ people:
78
+ person:
79
+ age: 65
80
+ spm_units:
81
+ spm_unit:
82
+ members: [person]
83
+ school_meal_fpg_ratio: 1.45 # Between 130% and 150%
84
+ output:
85
+ commodity_supplemental_food_program_eligible: true
86
+
87
+ - name: 2025 period - not eligible above 150% FPG
88
+ period: 2025
89
+ input:
90
+ people:
91
+ person:
92
+ age: 65
93
+ spm_units:
94
+ spm_unit:
95
+ members: [person]
96
+ school_meal_fpg_ratio: 1.51 # Just above the 150% limit
97
+ output:
98
+ commodity_supplemental_food_program_eligible: false
99
+
100
+ - name: Edge case - person turns 60 during the year
101
+ period: 2024
102
+ input:
103
+ people:
104
+ person:
105
+ age: 60 # Assume they're 60 at some point in 2024
106
+ spm_units:
107
+ spm_unit:
108
+ members: [person]
109
+ school_meal_fpg_ratio: 1.0
110
+ output:
111
+ commodity_supplemental_food_program_eligible: true
112
+
113
+ - name: High income elderly person not eligible
114
+ period: 2024
115
+ input:
116
+ people:
117
+ person:
118
+ age: 80
119
+ spm_units:
120
+ spm_unit:
121
+ members: [person]
122
+ school_meal_fpg_ratio: 2.5 # Well above the 130% limit
123
+ output:
124
+ commodity_supplemental_food_program_eligible: false
125
+
126
+ - name: Young adult with very low income still not eligible
127
+ period: 2024
128
+ input:
129
+ people:
130
+ person:
131
+ age: 30
132
+ spm_units:
133
+ spm_unit:
134
+ members: [person]
135
+ school_meal_fpg_ratio: 0.5 # Very low income
136
+ output:
137
+ commodity_supplemental_food_program_eligible: false
138
+
139
+ - name: Texas income ineligible
140
+ period: 2025
141
+ input:
142
+ people:
143
+ person:
144
+ age: 65
145
+ spm_units:
146
+ spm_unit:
147
+ members: [person]
148
+ school_meal_fpg_ratio: 1.4
149
+ households:
150
+ household:
151
+ members: [person]
152
+ state_code: TX
153
+ output:
154
+ commodity_supplemental_food_program_eligible: false
155
+
156
+ - name: Texas income eligible
157
+ period: 2025
158
+ input:
159
+ people:
160
+ person:
161
+ age: 65
162
+ spm_units:
163
+ spm_unit:
164
+ members: [person]
165
+ school_meal_fpg_ratio: 1.3
166
+ households:
167
+ household:
168
+ members: [person]
169
+ state_code: TX
170
+ output:
171
+ commodity_supplemental_food_program_eligible: true
@@ -24,7 +24,6 @@ class is_lifeline_eligible(Variable):
24
24
  np.any(tribal_lifeline_programs),
25
25
  np.any(non_tribal_lifeline_programs),
26
26
  )
27
- fpg_ratio = spm_unit("fcc_fpg_ratio", period)
28
- fpg_limit = p.fpg_limit
29
- fpg_eligible = fpg_ratio <= fpg_limit
30
- return categorically_eligible | fpg_eligible
27
+ # Use the new unified income eligibility variable
28
+ income_eligible = spm_unit("is_lifeline_income_eligible", period)
29
+ return categorically_eligible | income_eligible
@@ -0,0 +1,35 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class is_lifeline_income_eligible(Variable):
5
+ value_type = bool
6
+ entity = SPMUnit
7
+ label = "Income-eligible for Lifeline"
8
+ documentation = (
9
+ "Meets income requirements for Lifeline (federal or state-expanded)"
10
+ )
11
+ definition_period = YEAR
12
+ reference = (
13
+ "https://www.law.cornell.edu/cfr/text/47/54.409",
14
+ "https://statutes.capitol.texas.gov/Docs/UT/htm/UT.55.htm#55.015",
15
+ )
16
+
17
+ def formula(spm_unit, period, parameters):
18
+ p = parameters(period).gov.fcc.lifeline
19
+ fpg_ratio = spm_unit("fcc_fpg_ratio", period)
20
+
21
+ # Some states expand eligibility beyond federal limit
22
+ state = spm_unit.household("state_code_str", period)
23
+ is_tx = state == "TX"
24
+
25
+ # Texas expands to 150% FPG per Texas Utilities Code § 55.015(d-1)
26
+ tx_p = parameters(period).gov.states.tx.uct.lifeline
27
+
28
+ # Use state-specific limit where applicable, otherwise federal (135%)
29
+ # Convert to float32 to match fpg_ratio dtype for comparison
30
+ # Without this, float32(1.35) > float64(1.35) due to precision differences
31
+ fpg_limit = where(is_tx, tx_p.fpg_limit, p.fpg_limit).astype(
32
+ np.float32
33
+ )
34
+
35
+ return fpg_ratio <= fpg_limit
@@ -33,11 +33,14 @@ class lifeline(Variable):
33
33
  base_amount,
34
34
  )
35
35
 
36
- max_monthly_amount = (
36
+ federal_monthly_amount = (
37
37
  base_amount
38
38
  + is_rural_tribal * p.fcc.lifeline.amount.rural_tribal_supplement
39
39
  )
40
- max_amount = max_monthly_amount * MONTHS_IN_YEAR
40
+ # Get TX supplement for the specific month (now properly defined as MONTH period)
41
+ tx_supplement = spm_unit("tx_lifeline_supplement", period.first_month)
42
+ total_monthly_amount = federal_monthly_amount + tx_supplement
43
+ max_amount = total_monthly_amount * MONTHS_IN_YEAR
41
44
  phone_broadband_cost = add(
42
45
  spm_unit, period, ["phone_cost", "broadband_cost"]
43
46
  )
@@ -0,0 +1,14 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class tx_dta_csfp_income_eligible(Variable):
5
+ value_type = bool
6
+ entity = Person
7
+ definition_period = YEAR
8
+ label = "Texas Commodity Supplemental Food Program income eligible"
9
+ defined_for = StateCode.TX
10
+
11
+ def formula(person, period, parameters):
12
+ p = parameters(period).gov.states.tx.dta.csfp
13
+ fpg = person.spm_unit("school_meal_fpg_ratio", period)
14
+ return fpg <= p.fpg_limit
@@ -0,0 +1,13 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class tx_lifeline_supplement(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "Texas Lifeline supplement amount"
8
+ unit = USD
9
+ definition_period = MONTH
10
+ defined_for = StateCode.TX
11
+ reference = "https://www.law.cornell.edu/regulations/texas/16-Tex-Admin-Code-SS-26-412"
12
+
13
+ adds = ["gov.states.tx.uct.lifeline.supplement"]
@@ -15,6 +15,11 @@ class commodity_supplemental_food_program_eligible(Variable):
15
15
  age = person("age", period)
16
16
 
17
17
  age_eligible = age >= p.min_age
18
- income_eligible = fpg <= p.fpg_limit
19
-
18
+ federal_income_eligible = fpg <= p.fpg_limit
19
+ tx_income_eligible = person("tx_dta_csfp_income_eligible", period)
20
+ state_code = person.household("state_code", period)
21
+ in_tx = state_code == StateCode.TX
22
+ income_eligible = where(
23
+ in_tx, tx_income_eligible, federal_income_eligible
24
+ )
20
25
  return age_eligible & income_eligible
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: policyengine-us
3
- Version: 1.419.0
3
+ Version: 1.421.0
4
4
  Summary: Add your description here.
5
5
  Author-email: PolicyEngine <hello@policyengine.org>
6
6
  License-File: LICENSE
@@ -2859,6 +2859,7 @@ policyengine_us/parameters/gov/states/tx/dart/monthly_pass_cost/full_fare.yaml,s
2859
2859
  policyengine_us/parameters/gov/states/tx/dart/monthly_pass_cost/reduced_fare.yaml,sha256=9CpamProPEh_mqPq_M5bAcc13AEkMZ5Kk5j-XM5xDK4,367
2860
2860
  policyengine_us/parameters/gov/states/tx/dart/reduced_fare/age_threshold/child.yaml,sha256=N_rMXb6wj0V8n_BWH389K54PvYIoHc8ZTtZ8M0fgdss,720
2861
2861
  policyengine_us/parameters/gov/states/tx/dart/reduced_fare/age_threshold/senior.yaml,sha256=2xAE95i7EjipEEiqhs8ueTpK8iXeMgRAL16krpSGA00,399
2862
+ policyengine_us/parameters/gov/states/tx/dta/csfp/fpg_limit.yaml,sha256=LajGghC2JeDmnNM4EVteBchqBBUV6SmyKe_5wMusV6Y,636
2862
2863
  policyengine_us/parameters/gov/states/tx/fpp/age_threshold.yaml,sha256=X0WDitMtPqKd-N5lKgkMioBnwkkf72NMLUwXG5NdV2g,367
2863
2864
  policyengine_us/parameters/gov/states/tx/fpp/annual_benefit.yaml,sha256=73GAECik0TL1sLFbYUP-3fuD2x-gtjmnX184XPGZS40,737
2864
2865
  policyengine_us/parameters/gov/states/tx/fpp/fpg_percentage.yaml,sha256=nF_zIboTk0qYV6-aQITK8DbU55S3ckF_CiKJlkVy5QM,784
@@ -2888,6 +2889,8 @@ policyengine_us/parameters/gov/states/tx/tanf/payment_standard/caretaker_without
2888
2889
  policyengine_us/parameters/gov/states/tx/tanf/payment_standard/non_caretaker.yaml,sha256=d-vrynY3q8MrmbrsCTZ8GMAKCigMIBKyhsq63jLlsuY,2736
2889
2890
  policyengine_us/parameters/gov/states/tx/tanf/resources/resource_limit.yaml,sha256=0D8BJ8921yCtvcOuqygdhuotF5mcM17qFL6rOqmQUPk,527
2890
2891
  policyengine_us/parameters/gov/states/tx/tanf/resources/vehicle_exemption.yaml,sha256=wz-Rh140rZVCV9VLTMrJBsHSiNThyw-OYO_3tFBRnEI,403
2892
+ policyengine_us/parameters/gov/states/tx/uct/lifeline/fpg_limit.yaml,sha256=xMDw25Mr7jafGDKeCBcHfr_pcpRayLAfPx0OxaPCXGA,404
2893
+ policyengine_us/parameters/gov/states/tx/uct/lifeline/supplement.yaml,sha256=_-NiZds9HE6dV43nOrX1P1Wp_nPHAiBNfXWHLUdq4SY,397
2891
2894
  policyengine_us/parameters/gov/states/ut/README.md,sha256=2n4RUtXc0zVy3tsjRpj2JwLc-xlMyDQG7jtZsYhCvU8,7
2892
2895
  policyengine_us/parameters/gov/states/ut/tax/income/rate.yaml,sha256=0jb9jtzarBxEdGDbjQQ9sL_rRh_1P1cPtXJfWpCZfiM,1590
2893
2896
  policyengine_us/parameters/gov/states/ut/tax/income/credits/non_refundable.yaml,sha256=fU1QNIPX7XCf_u2yAvqh3pAdbZMbpc1AGq8HhVx4gU8,1570
@@ -3381,8 +3384,9 @@ policyengine_us/tests/policy/baseline/gov/fcc/ebb/integration.yaml,sha256=BWbR8i
3381
3384
  policyengine_us/tests/policy/baseline/gov/fcc/ebb/is_ebb_eligible.yaml,sha256=a1vmJjhX_sGJb54R3q9HH7jOqJIJeotBBAZ2xgwxkJw,714
3382
3385
  policyengine_us/tests/policy/baseline/gov/fcc/lifeline/broadband_cost_after_lifeline.yaml,sha256=TJW_Un_IBhEtZR_TKzcBljYcITJdTJI2qqB5TVAW5Ko,233
3383
3386
  policyengine_us/tests/policy/baseline/gov/fcc/lifeline/integration.yaml,sha256=nPLqAilFSbjoQmJP_tmXDvIUVk1iSD5ppQmY9U_OLSA,555
3384
- policyengine_us/tests/policy/baseline/gov/fcc/lifeline/is_lifeline_eligible.yaml,sha256=Nofkgo0svSTj-0EfN0TPiDJyk8wkc5NeoLazrxUzzxY,1038
3385
- policyengine_us/tests/policy/baseline/gov/fcc/lifeline/lifeline.yaml,sha256=zqId54reOZWNaOlC1MuwMf7VwFRRdfGiMEIHfesBLUg,2272
3387
+ policyengine_us/tests/policy/baseline/gov/fcc/lifeline/is_lifeline_eligible.yaml,sha256=43cZNqQz4R8JfPWvZwO-fy6vY85utGevrvoZhIx7QD8,1273
3388
+ policyengine_us/tests/policy/baseline/gov/fcc/lifeline/is_lifeline_income_eligible.yaml,sha256=USQo35QDILP9IL4ceBD8u0YDU_I-04tjzb3nowjVeJ4,1081
3389
+ policyengine_us/tests/policy/baseline/gov/fcc/lifeline/lifeline.yaml,sha256=tPXm5HVsIRaHBujesIpRhbHUUMDSxuQqlJsK8HtuSUI,2708
3386
3390
  policyengine_us/tests/policy/baseline/gov/hhs/hhs_smi.yaml,sha256=0-WdotyBCwN3NXPnhXZR9CPjSrNtkHMFWFOATUeZA40,695
3387
3391
  policyengine_us/tests/policy/baseline/gov/hhs/spm_unit_fpg.yaml,sha256=TIRg6qOpe0nv1kpDKJQghplZeooTkd5k1mrkLD-fMLg,1201
3388
3392
  policyengine_us/tests/policy/baseline/gov/hhs/ccdf/ccdf_age_group.yaml,sha256=q6HWK5MLULilVYh4lxpprq3Lx-FfFAzVUATbD3QRZUg,830
@@ -5048,6 +5052,7 @@ policyengine_us/tests/policy/baseline/gov/states/tx/dart/reduced_fare/tx_dart_re
5048
5052
  policyengine_us/tests/policy/baseline/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_age_eligible.yaml,sha256=XH865IatUm0mbAbwWgUILfp9XdECpZT-yrd3kqT1feI,1783
5049
5053
  policyengine_us/tests/policy/baseline/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_eligible.yaml,sha256=mzUYLQyoLIf8KeoeF7yKQ5xyIGVB35fX4cNef7F8Lac,2790
5050
5054
  policyengine_us/tests/policy/baseline/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_program_eligible.yaml,sha256=tA3qnDcT392VXNpVhBSS7ITSZcIOngB_k8oD6rcE0Sg,4868
5055
+ policyengine_us/tests/policy/baseline/gov/states/tx/dta/csfp/tx_dta_csfp_income_eligible.yaml,sha256=-mSet3H4wtCPczDGWrJ60qygR7ELz7Ezf6W501fT4to,295
5051
5056
  policyengine_us/tests/policy/baseline/gov/states/tx/fpp/integration.yaml,sha256=jwCnPITchBm87XHqJabIAVYWh9gLji8KkU5x0ZoaUWw,3113
5052
5057
  policyengine_us/tests/policy/baseline/gov/states/tx/fpp/tx_fpp_age_eligible.yaml,sha256=ANilh9RZ4cuw8BpZcGnQPITqYXxNt2BSgucwrMG6Wbg,685
5053
5058
  policyengine_us/tests/policy/baseline/gov/states/tx/fpp/tx_fpp_benefit.yaml,sha256=xPp3VS5mdTz5zUR7TudLPDUYfPm_5_W9OErD7-7MfqI,767
@@ -5079,6 +5084,7 @@ policyengine_us/tests/policy/baseline/gov/states/tx/tanf/ottanf/tx_ottanf.yaml,s
5079
5084
  policyengine_us/tests/policy/baseline/gov/states/tx/tanf/ottanf/tx_ottanf_crisis_criteria.yaml,sha256=uzLXuXc6p0esRB6nQOA_EZzakPg824PcV3kz005CLMQ,467
5080
5085
  policyengine_us/tests/policy/baseline/gov/states/tx/tanf/ottanf/tx_ottanf_eligible.yaml,sha256=fMR9FR2ZEMLeGqyAAvVjcrGxWODR1l2uDn5B1bBs3Rs,3875
5081
5086
  policyengine_us/tests/policy/baseline/gov/states/tx/tanf/resources/tx_tanf_countable_resources.yaml,sha256=zVfKx3uGM2yt1MZ-v9WqXz5jgh0tlJKluhoqNxw_gQQ,1039
5087
+ policyengine_us/tests/policy/baseline/gov/states/tx/uct/lifeline/integration.yaml,sha256=eA0wvhitpOl-nRfp94coOAQGfncfoVgZKiTPOeJQGQk,6315
5082
5088
  policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/integration.yaml,sha256=ywuvJ3afrcrtkiXjit6m0LfOCLIfAr3fpm7xXzzcMGg,1297
5083
5089
  policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/ut_income_tax_before_credits.yaml,sha256=JmDB8-C4IZ6y0BbyzjyOIFmZuF2a44p5RlKILLdlvEo,198
5084
5090
  policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/ut_income_tax_before_non_refundable_credits.yaml,sha256=L3OwPtc8Pb5eraRUMODnB23mvS51qcLh_G_ogMgaLeQ,871
@@ -5250,6 +5256,7 @@ policyengine_us/tests/policy/baseline/gov/usda/has_usda_elderly_disabled.yaml,sh
5250
5256
  policyengine_us/tests/policy/baseline/gov/usda/is_usda_disabled.yaml,sha256=Vv4qYW3Q7daGgCG913RpQ_BPBd0dkWhbXy0BaCQTJzU,420
5251
5257
  policyengine_us/tests/policy/baseline/gov/usda/is_usda_elderly.yaml,sha256=NcQfi6CuMEW5HKMuNtNeH_vVl-LSCDp52wIu3ZpXpQg,222
5252
5258
  policyengine_us/tests/policy/baseline/gov/usda/csfp/commodity_supplemental_food_program.yaml,sha256=5HRzWfGmOmk7baZPGBUSPL5FsU7pKa6yDxWGhA8vTOc,432
5259
+ policyengine_us/tests/policy/baseline/gov/usda/csfp/commodity_supplemental_food_program_eligible.yaml,sha256=n_uMv-Hqr7e2nQRJO7e6w2C3_2PRSrqWqNklf9_dSaU,3933
5253
5260
  policyengine_us/tests/policy/baseline/gov/usda/csfp/integration.yaml,sha256=HrY6IZHAwTtvJbKe3jcqyPdWzX3ucVf2vrT13Wy1lOg,540
5254
5261
  policyengine_us/tests/policy/baseline/gov/usda/school_meals/free_school_meals.yaml,sha256=5scrkj13rPiGCwbn4j_qo_zVFiFm8qqKueEU46bUu_M,320
5255
5262
  policyengine_us/tests/policy/baseline/gov/usda/school_meals/integration.yaml,sha256=30mUTMZ0UHI5xxQXJ3FH8PW3yh0hPDkQPToIoR87AoQ,1188
@@ -5593,8 +5600,9 @@ policyengine_us/variables/gov/fcc/ebb/ebb.py,sha256=b6GkGJTr1EUM67vvgek7P-T88o7r
5593
5600
  policyengine_us/variables/gov/fcc/ebb/enrolled_in_ebb.py,sha256=8f2mhjIC2P3cNtOoAqoOp1OZTXZ9Z2HRWhCo40_OweI,298
5594
5601
  policyengine_us/variables/gov/fcc/ebb/is_ebb_eligible.py,sha256=deBBKNw-ehQOHhNDDMTEWoW0HyysYxBw-DWPux4ifzw,754
5595
5602
  policyengine_us/variables/gov/fcc/lifeline/broadband_cost_after_lifeline.py,sha256=QwdwiK-ghWxGghuLU8ib3hOTcln1HXxanXgQk84jT90,545
5596
- policyengine_us/variables/gov/fcc/lifeline/is_lifeline_eligible.py,sha256=3GH2atPYn-XSz87mZ7fUDj_ZzXclBET2uHU4XZkI-7o,1114
5597
- policyengine_us/variables/gov/fcc/lifeline/lifeline.py,sha256=xWPJm7yEx_MDv9I7fOndIb3MRBXRmuWZWsXmWJfTqaI,1645
5603
+ policyengine_us/variables/gov/fcc/lifeline/is_lifeline_eligible.py,sha256=9y87YwHwQkfLt2c0kkZfvPtX4zqHofT8dbI4D0efets,1117
5604
+ policyengine_us/variables/gov/fcc/lifeline/is_lifeline_income_eligible.py,sha256=KcwZ8ar3G3O1tUS8YQTyBDAQyfYod3LA9guLTBLkXSU,1279
5605
+ policyengine_us/variables/gov/fcc/lifeline/lifeline.py,sha256=U39enY0v1HJXf9X7DY1lBjjeOkGxtAKDTnVQqZU3LQw,1890
5598
5606
  policyengine_us/variables/gov/hhs/hhs_smi.py,sha256=CfCM973bROOtUqPnp7MokOQBaZv1huJiDh37WYs0vME,1162
5599
5607
  policyengine_us/variables/gov/hhs/spm_unit_fpg.py,sha256=r0aThfA9ieeBgFvbMdRzOJeSSbZ32YE3Nralw8QfjWY,548
5600
5608
  policyengine_us/variables/gov/hhs/tax_unit_fpg.py,sha256=11enn4DBgeEb7i68W0azh4ictg0vlj07DeaqBdiwusA,650
@@ -7883,6 +7891,7 @@ policyengine_us/variables/gov/states/tx/dart/reduced_fare/tx_dart_reduced_fare_b
7883
7891
  policyengine_us/variables/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_age_eligible.py,sha256=a8Cv6sfXu6H3yp3HhnFk8hEnVueyuhifUz5RBQnSefs,728
7884
7892
  policyengine_us/variables/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_eligible.py,sha256=ofoBToD_pJ9RX4M9XiKXiZWI4qWdDeIhtNvAVU1O24I,1441
7885
7893
  policyengine_us/variables/gov/states/tx/dart/reduced_fare/eligibility/tx_dart_reduced_fare_program_eligible.py,sha256=8SGVaR1d84RmAfwGrYHvRHndtS36zA5CwPMhLQ9nHVg,904
7894
+ policyengine_us/variables/gov/states/tx/dta/csfp/tx_dta_csfp_income_eligible.py,sha256=waqJcXGYYjvEdu7o9OjYK7CIqlT4FQzxDm4n3f9nCl0,458
7886
7895
  policyengine_us/variables/gov/states/tx/fpp/tx_fpp_age_eligible.py,sha256=AYmkrR4NQA971w3XCs6Te7eSJNoX23E69EMwsWQy1pY,562
7887
7896
  policyengine_us/variables/gov/states/tx/fpp/tx_fpp_benefit.py,sha256=BGgWBNtpMiJdgnzTTEOLPsdaO12xgg_Iol7tqy-OcwU,540
7888
7897
  policyengine_us/variables/gov/states/tx/fpp/tx_fpp_eligible.py,sha256=DtpscNWnkKD5VMu4R8eO36n0JKz49NFso6X5pSDn3qo,705
@@ -7916,6 +7925,7 @@ policyengine_us/variables/gov/states/tx/tanf/ottanf/tx_ottanf.py,sha256=eAFXRKs0
7916
7925
  policyengine_us/variables/gov/states/tx/tanf/ottanf/tx_ottanf_crisis_criteria.py,sha256=ZFu5qFD7u5PT6D64W9Ug8FtStLWDo_wqQvVCfJSJTf4,963
7917
7926
  policyengine_us/variables/gov/states/tx/tanf/ottanf/tx_ottanf_eligible.py,sha256=4JUJmtG7vzRlL7pIc8TpOoeBmcuKwPAB-UB2TRi2a7U,1457
7918
7927
  policyengine_us/variables/gov/states/tx/tanf/resources/tx_tanf_countable_resources.py,sha256=_-Qn4fLF6Hj6cDFh4H3WBk_6bOG0GAfAw4wO_rMSPjQ,1271
7928
+ policyengine_us/variables/gov/states/tx/uct/lifeline/tx_lifeline_supplement.py,sha256=LJu5sVaHH05qi_uV0o0SqgCpG1CYfbRUqtLdvjCLSrc,395
7919
7929
  policyengine_us/variables/gov/states/ut/README.md,sha256=JejErxrT7pBikQzTXA3jm2IRzAqBwwiyCpUgBcJBQMU,1644
7920
7930
  policyengine_us/variables/gov/states/ut/tax/income/ut_income_tax.py,sha256=JNGaNbMxlF4odCHofyhXqn5hCd-NBJnGNi3JzOU4RLY,417
7921
7931
  policyengine_us/variables/gov/states/ut/tax/income/ut_income_tax_before_credits.py,sha256=unVWe4rzuWZ3UfwcD8riMnRO0Ovp0gAZ3Ohs3VjEUSg,624
@@ -8139,7 +8149,7 @@ policyengine_us/variables/gov/usda/has_usda_elderly_disabled.py,sha256=TGoDY1RW1
8139
8149
  policyengine_us/variables/gov/usda/is_usda_disabled.py,sha256=FAHSzfpYJ7gSHdMi2G9NpaymB9fib9swAAY8a4ajC38,424
8140
8150
  policyengine_us/variables/gov/usda/is_usda_elderly.py,sha256=Y84IHsW1jYbEIBL71Om0mh7G-uzy2erJiSrXtoxNTVc,438
8141
8151
  policyengine_us/variables/gov/usda/csfp/commodity_supplemental_food_program.py,sha256=3KQYtSwvroyxZfvwbhEUzjIat-vebXDbZxI9XkcyrAs,333
8142
- policyengine_us/variables/gov/usda/csfp/commodity_supplemental_food_program_eligible.py,sha256=2cNcq7NBtWbf69rD6XG8Yc0PiFKwXxWssH2ncm3CCyA,678
8152
+ policyengine_us/variables/gov/usda/csfp/commodity_supplemental_food_program_eligible.py,sha256=WT8WsRrZ62rhXPGaC1p6m0GpjkYi_5Yt5PLtHspFQNc,969
8143
8153
  policyengine_us/variables/gov/usda/fdpir/fdpir.py,sha256=rxbnLcYWTnIgiCQ52IO6pn5jf5v120Rp4ez5-UYm9mo,324
8144
8154
  policyengine_us/variables/gov/usda/school_meals/free_school_meals.py,sha256=KG3VtFLpLMptDTgceKOc642OaNYFZL3B0He9B2iifvU,663
8145
8155
  policyengine_us/variables/gov/usda/school_meals/free_school_meals_reported.py,sha256=AIk2cbkJEVAXhG5dgxV8BtuBYnA7f8YwGe6CQDXuMpU,217
@@ -8703,8 +8713,8 @@ policyengine_us/variables/input/farm_income.py,sha256=BEKxYmHNNnWJAAvULl5qZJigy5
8703
8713
  policyengine_us/variables/input/geography.py,sha256=Ux0ueAf0rhZaflyEqz81UuXP3xKCKBDvoO3CrKhiQEc,5421
8704
8714
  policyengine_us/variables/input/self_employment_income.py,sha256=PwsGz8R4lRikKWUYOhsC0qosNNLXq4f5SQmfw4S3mk8,511
8705
8715
  policyengine_us/variables/input/self_employment_income_before_lsr.py,sha256=E8fcX9Nlyqz8dziHhQv_euutdmoIwFMMWePUwbbwv_w,379
8706
- policyengine_us-1.419.0.dist-info/METADATA,sha256=T8vXx84LshfMx4p0KVPocl98Vpd0QWzo8YtSOahocHc,1649
8707
- policyengine_us-1.419.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
8708
- policyengine_us-1.419.0.dist-info/entry_points.txt,sha256=MLaqNyNTbReALyKNkde85VkuFFpdPWAcy8VRG1mjczc,57
8709
- policyengine_us-1.419.0.dist-info/licenses/LICENSE,sha256=2N5ReRelkdqkR9a-KP-y-shmcD5P62XoYiG-miLTAzo,34519
8710
- policyengine_us-1.419.0.dist-info/RECORD,,
8716
+ policyengine_us-1.421.0.dist-info/METADATA,sha256=vZ0wGl06679K5hHX4eMRVh1SmMHNfD5nPXG6Lh7dNaI,1649
8717
+ policyengine_us-1.421.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
8718
+ policyengine_us-1.421.0.dist-info/entry_points.txt,sha256=MLaqNyNTbReALyKNkde85VkuFFpdPWAcy8VRG1mjczc,57
8719
+ policyengine_us-1.421.0.dist-info/licenses/LICENSE,sha256=2N5ReRelkdqkR9a-KP-y-shmcD5P62XoYiG-miLTAzo,34519
8720
+ policyengine_us-1.421.0.dist-info/RECORD,,