policyengine-us 1.421.0__py3-none-any.whl → 1.423.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.
- policyengine_us/parameters/gov/contrib/ctc/per_child_phase_out/avoid_overlap.yaml +7 -0
- policyengine_us/parameters/gov/states/tx/twc/README.md +1 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/README.md +1 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/age_threshold/child.yaml +11 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/age_threshold/disabled_child.yaml +11 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/age_threshold/infant.yaml +11 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/age_threshold/school_age.yaml +11 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/age_threshold/toddler.yaml +11 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/assets/limit.yaml +11 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/copay/rate/additional_child.yaml +13 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/copay/rate/first_child.yaml +55 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/copay/rate/maximum.yaml +11 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/income/smi_rate.yaml +11 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/income/sources.yaml +23 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/payment/rates.yaml +10459 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/alamo.yaml +25 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/borderplex.yaml +18 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/brazos_valley.yaml +19 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/cameron_county.yaml +13 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/capital_area.yaml +13 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/central_texas.yaml +19 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/coastal_bend.yaml +24 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/concho_valley.yaml +25 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/dallas_county.yaml +13 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/deep_east.yaml +24 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/east_texas.yaml +26 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/golden_crescent.yaml +19 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/gulf_coast.yaml +25 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/heart_of_texas.yaml +18 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/lower_rio.yaml +15 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/middle_rio.yaml +21 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/north_central.yaml +26 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/north_texas.yaml +23 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/northeast_texas.yaml +21 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/panhandle.yaml +38 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/permian_basin.yaml +29 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/rural_capital.yaml +21 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/south_plains.yaml +27 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/south_texas.yaml +15 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/southeast.yaml +15 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/tarrant_county.yaml +13 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/texoma.yaml +15 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/region/west_central.yaml +31 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/work_requirements/single_parent.yaml +11 -0
- policyengine_us/parameters/gov/states/tx/twc/ccs/work_requirements/two_parent.yaml +11 -0
- policyengine_us/reforms/ctc/ctc_per_child_phase_out.py +12 -1
- policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/copay/tx_ccs_copay.yaml +165 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/eligibility/tx_ccs_asset_eligible.yaml +67 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/eligibility/tx_ccs_eligible.yaml +114 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/eligibility/tx_ccs_eligible_child.yaml +172 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/eligibility/tx_ccs_income_eligible.yaml +65 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/eligibility/tx_ccs_work_exempt.yaml +24 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/eligibility/tx_ccs_work_requirement_eligible.yaml +155 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/payment/tx_ccs_payment_rate.yaml +224 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/tx_ccs.yaml +132 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/tx_ccs_child_age_category.yaml +127 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/tx_ccs_maximum_payment.yaml +141 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/tx_ccs_workforce_board_region.yaml +79 -0
- policyengine_us/tests/policy/contrib/ctc/integration.yaml +205 -2
- policyengine_us/variables/gov/states/tx/twc/ccs/copay/tx_ccs_copay.py +40 -0
- policyengine_us/variables/gov/states/tx/twc/ccs/eligibility/tx_ccs_asset_eligible.py +16 -0
- policyengine_us/variables/gov/states/tx/twc/ccs/eligibility/tx_ccs_eligible.py +28 -0
- policyengine_us/variables/gov/states/tx/twc/ccs/eligibility/tx_ccs_eligible_child.py +22 -0
- policyengine_us/variables/gov/states/tx/twc/ccs/eligibility/tx_ccs_income_eligible.py +19 -0
- policyengine_us/variables/gov/states/tx/twc/ccs/eligibility/tx_ccs_work_exempt.py +26 -0
- policyengine_us/variables/gov/states/tx/twc/ccs/eligibility/tx_ccs_work_requirement_eligible.py +44 -0
- policyengine_us/variables/gov/states/tx/twc/ccs/payment/tx_ccs_care_schedule.py +18 -0
- policyengine_us/variables/gov/states/tx/twc/ccs/payment/tx_ccs_payment_rate.py +36 -0
- policyengine_us/variables/gov/states/tx/twc/ccs/payment/tx_ccs_provider_rating.py +21 -0
- policyengine_us/variables/gov/states/tx/twc/ccs/payment/tx_ccs_provider_type.py +19 -0
- policyengine_us/variables/gov/states/tx/twc/ccs/tx_ccs.py +21 -0
- policyengine_us/variables/gov/states/tx/twc/ccs/tx_ccs_child_age_category.py +41 -0
- policyengine_us/variables/gov/states/tx/twc/ccs/tx_ccs_countable_income.py +13 -0
- policyengine_us/variables/gov/states/tx/twc/ccs/tx_ccs_maximum_payment.py +15 -0
- policyengine_us/variables/gov/states/tx/twc/ccs/tx_ccs_workforce_board_region.py +68 -0
- {policyengine_us-1.421.0.dist-info → policyengine_us-1.423.0.dist-info}/METADATA +1 -1
- {policyengine_us-1.421.0.dist-info → policyengine_us-1.423.0.dist-info}/RECORD +80 -7
- {policyengine_us-1.421.0.dist-info → policyengine_us-1.423.0.dist-info}/WHEEL +0 -0
- {policyengine_us-1.421.0.dist-info → policyengine_us-1.423.0.dist-info}/entry_points.txt +0 -0
- {policyengine_us-1.421.0.dist-info → policyengine_us-1.423.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
- name: Case 1 - Low income family maximum payment calculation
|
|
2
|
+
period: 2024-01
|
|
3
|
+
input:
|
|
4
|
+
people:
|
|
5
|
+
parent1:
|
|
6
|
+
age: 30
|
|
7
|
+
employment_income: 12_000 # Annual income ($1,000/month, <20% SMI)
|
|
8
|
+
child1:
|
|
9
|
+
age: 3
|
|
10
|
+
is_disabled: false
|
|
11
|
+
is_citizen_or_legal_immigrant: true
|
|
12
|
+
tx_ccs_payment_rate: 500 # Monthly reimbursement rate
|
|
13
|
+
spm_units:
|
|
14
|
+
spm_unit:
|
|
15
|
+
members: [parent1, child1]
|
|
16
|
+
spm_unit_size: 2
|
|
17
|
+
tx_ccs_eligible: true
|
|
18
|
+
households:
|
|
19
|
+
household:
|
|
20
|
+
members: [parent1, child1]
|
|
21
|
+
state_code: TX
|
|
22
|
+
output:
|
|
23
|
+
# Reimbursement ($500) - copay ($22.70, rate-based) = $477.30
|
|
24
|
+
tx_ccs_maximum_payment: 477.3
|
|
25
|
+
|
|
26
|
+
- name: Case 2 - Family with two children maximum payment
|
|
27
|
+
period: 2024-01
|
|
28
|
+
input:
|
|
29
|
+
people:
|
|
30
|
+
parent1:
|
|
31
|
+
age: 35
|
|
32
|
+
employment_income: 48_000 # Annual income ($4,000/month, ~55% SMI)
|
|
33
|
+
parent2:
|
|
34
|
+
age: 32
|
|
35
|
+
child1:
|
|
36
|
+
age: 5
|
|
37
|
+
is_disabled: false
|
|
38
|
+
is_citizen_or_legal_immigrant: true
|
|
39
|
+
tx_ccs_payment_rate: 600 # Monthly reimbursement for child1
|
|
40
|
+
child2:
|
|
41
|
+
age: 2
|
|
42
|
+
is_disabled: false
|
|
43
|
+
is_citizen_or_legal_immigrant: true
|
|
44
|
+
tx_ccs_payment_rate: 700 # Monthly reimbursement for child2
|
|
45
|
+
spm_units:
|
|
46
|
+
spm_unit:
|
|
47
|
+
members: [parent1, parent2, child1, child2]
|
|
48
|
+
spm_unit_size: 4
|
|
49
|
+
tx_ccs_eligible: true
|
|
50
|
+
households:
|
|
51
|
+
household:
|
|
52
|
+
members: [parent1, parent2, child1, child2]
|
|
53
|
+
state_code: TX
|
|
54
|
+
output:
|
|
55
|
+
# Total reimbursement ($1,300) - copay ($243.20, rate-based) = $1,056.80
|
|
56
|
+
tx_ccs_maximum_payment: 1_056.8
|
|
57
|
+
|
|
58
|
+
- name: Case 3 - High income family with lower maximum payment
|
|
59
|
+
period: 2024-01
|
|
60
|
+
input:
|
|
61
|
+
people:
|
|
62
|
+
parent1:
|
|
63
|
+
age: 40
|
|
64
|
+
employment_income: 84_000 # Annual income ($7,000/month, 75-80% SMI)
|
|
65
|
+
parent2:
|
|
66
|
+
age: 38
|
|
67
|
+
child1:
|
|
68
|
+
age: 8
|
|
69
|
+
is_disabled: false
|
|
70
|
+
is_citizen_or_legal_immigrant: true
|
|
71
|
+
tx_ccs_payment_rate: 400
|
|
72
|
+
child2:
|
|
73
|
+
age: 5
|
|
74
|
+
is_disabled: false
|
|
75
|
+
is_citizen_or_legal_immigrant: true
|
|
76
|
+
tx_ccs_payment_rate: 450
|
|
77
|
+
child3:
|
|
78
|
+
age: 2
|
|
79
|
+
is_disabled: false
|
|
80
|
+
is_citizen_or_legal_immigrant: true
|
|
81
|
+
tx_ccs_payment_rate: 500
|
|
82
|
+
spm_units:
|
|
83
|
+
spm_unit:
|
|
84
|
+
members: [parent1, parent2, child1, child2, child3]
|
|
85
|
+
spm_unit_size: 5
|
|
86
|
+
tx_ccs_eligible: true
|
|
87
|
+
households:
|
|
88
|
+
household:
|
|
89
|
+
members: [parent1, parent2, child1, child2, child3]
|
|
90
|
+
state_code: TX
|
|
91
|
+
output:
|
|
92
|
+
# Total reimbursement ($1,350) - copay ($490, capped at 7%) = $860
|
|
93
|
+
tx_ccs_maximum_payment: 860
|
|
94
|
+
|
|
95
|
+
- name: Case 4 - Copay exceeds reimbursement results in zero maximum payment
|
|
96
|
+
period: 2024-01
|
|
97
|
+
input:
|
|
98
|
+
people:
|
|
99
|
+
parent1:
|
|
100
|
+
age: 35
|
|
101
|
+
employment_income: 78_000 # High income
|
|
102
|
+
child1:
|
|
103
|
+
age: 6
|
|
104
|
+
is_disabled: false
|
|
105
|
+
is_citizen_or_legal_immigrant: true
|
|
106
|
+
tx_ccs_payment_rate: 200 # Low reimbursement rate
|
|
107
|
+
spm_units:
|
|
108
|
+
spm_unit:
|
|
109
|
+
members: [parent1, child1]
|
|
110
|
+
spm_unit_size: 2
|
|
111
|
+
tx_ccs_eligible: true
|
|
112
|
+
households:
|
|
113
|
+
household:
|
|
114
|
+
members: [parent1, child1]
|
|
115
|
+
state_code: TX
|
|
116
|
+
output:
|
|
117
|
+
tx_ccs_maximum_payment: 0 # Reimbursement ($200) < copay ($310), max(0, -110) = $0
|
|
118
|
+
|
|
119
|
+
- name: Case 5 - Not eligible household has zero maximum payment
|
|
120
|
+
period: 2024-01
|
|
121
|
+
input:
|
|
122
|
+
people:
|
|
123
|
+
parent1:
|
|
124
|
+
age: 30
|
|
125
|
+
employment_income: 36_000
|
|
126
|
+
child1:
|
|
127
|
+
age: 4
|
|
128
|
+
is_disabled: false
|
|
129
|
+
is_citizen_or_legal_immigrant: true
|
|
130
|
+
tx_ccs_payment_rate: 500
|
|
131
|
+
spm_units:
|
|
132
|
+
spm_unit:
|
|
133
|
+
members: [parent1, child1]
|
|
134
|
+
spm_unit_size: 2
|
|
135
|
+
tx_ccs_eligible: false # Not eligible
|
|
136
|
+
households:
|
|
137
|
+
household:
|
|
138
|
+
members: [parent1, child1]
|
|
139
|
+
state_code: TX
|
|
140
|
+
output:
|
|
141
|
+
tx_ccs_maximum_payment: 0 # Not eligible = no maximum payment
|
policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/tx_ccs_workforce_board_region.yaml
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
- name: Gulf Coast - Harris County
|
|
2
|
+
period: 2024
|
|
3
|
+
input:
|
|
4
|
+
county: HARRIS_COUNTY_TX
|
|
5
|
+
state_code: TX
|
|
6
|
+
output:
|
|
7
|
+
tx_ccs_workforce_board_region: GULF_COAST
|
|
8
|
+
|
|
9
|
+
- name: Gulf Coast - Fort Bend County
|
|
10
|
+
period: 2024
|
|
11
|
+
input:
|
|
12
|
+
county: FORT_BEND_COUNTY_TX
|
|
13
|
+
state_code: TX
|
|
14
|
+
output:
|
|
15
|
+
tx_ccs_workforce_board_region: GULF_COAST
|
|
16
|
+
|
|
17
|
+
- name: Dallas County - Dallas
|
|
18
|
+
period: 2024
|
|
19
|
+
input:
|
|
20
|
+
county: DALLAS_COUNTY_TX
|
|
21
|
+
state_code: TX
|
|
22
|
+
output:
|
|
23
|
+
tx_ccs_workforce_board_region: DALLAS_COUNTY
|
|
24
|
+
|
|
25
|
+
- name: Tarrant County - Fort Worth
|
|
26
|
+
period: 2024
|
|
27
|
+
input:
|
|
28
|
+
county: TARRANT_COUNTY_TX
|
|
29
|
+
state_code: TX
|
|
30
|
+
output:
|
|
31
|
+
tx_ccs_workforce_board_region: TARRANT_COUNTY
|
|
32
|
+
|
|
33
|
+
- name: Capital Area - Travis County (Austin)
|
|
34
|
+
period: 2024
|
|
35
|
+
input:
|
|
36
|
+
county: TRAVIS_COUNTY_TX
|
|
37
|
+
state_code: TX
|
|
38
|
+
output:
|
|
39
|
+
tx_ccs_workforce_board_region: CAPITAL_AREA
|
|
40
|
+
|
|
41
|
+
- name: Alamo - Bexar County (San Antonio)
|
|
42
|
+
period: 2024
|
|
43
|
+
input:
|
|
44
|
+
county: BEXAR_COUNTY_TX
|
|
45
|
+
state_code: TX
|
|
46
|
+
output:
|
|
47
|
+
tx_ccs_workforce_board_region: ALAMO
|
|
48
|
+
|
|
49
|
+
- name: Panhandle - Potter County (Amarillo)
|
|
50
|
+
period: 2024
|
|
51
|
+
input:
|
|
52
|
+
county: POTTER_COUNTY_TX
|
|
53
|
+
state_code: TX
|
|
54
|
+
output:
|
|
55
|
+
tx_ccs_workforce_board_region: PANHANDLE
|
|
56
|
+
|
|
57
|
+
- name: Borderplex - El Paso County
|
|
58
|
+
period: 2024
|
|
59
|
+
input:
|
|
60
|
+
county: EL_PASO_COUNTY_TX
|
|
61
|
+
state_code: TX
|
|
62
|
+
output:
|
|
63
|
+
tx_ccs_workforce_board_region: BORDERPLEX
|
|
64
|
+
|
|
65
|
+
- name: Heart of Texas - McLennan County (Waco)
|
|
66
|
+
period: 2024
|
|
67
|
+
input:
|
|
68
|
+
county: MCLENNAN_COUNTY_TX
|
|
69
|
+
state_code: TX
|
|
70
|
+
output:
|
|
71
|
+
tx_ccs_workforce_board_region: HEART_OF_TEXAS
|
|
72
|
+
|
|
73
|
+
- name: Cameron County - Brownsville
|
|
74
|
+
period: 2024
|
|
75
|
+
input:
|
|
76
|
+
county: CAMERON_COUNTY_TX
|
|
77
|
+
state_code: TX
|
|
78
|
+
output:
|
|
79
|
+
tx_ccs_workforce_board_region: CAMERON_COUNTY
|
|
@@ -258,8 +258,8 @@
|
|
|
258
258
|
|
|
259
259
|
- name: Joint filer with 3 kids, 250k income
|
|
260
260
|
period: 2025
|
|
261
|
-
reforms: [policyengine_us.reforms.ctc.ctc_per_child_phase_in.ctc_per_child_phase_in,
|
|
262
|
-
policyengine_us.reforms.ctc.ctc_minimum_refundable_amount.ctc_minimum_refundable_amount,
|
|
261
|
+
reforms: [policyengine_us.reforms.ctc.ctc_per_child_phase_in.ctc_per_child_phase_in,
|
|
262
|
+
policyengine_us.reforms.ctc.ctc_minimum_refundable_amount.ctc_minimum_refundable_amount,
|
|
263
263
|
policyengine_us.reforms.ctc.ctc_per_child_phase_out.ctc_per_child_phase_out]
|
|
264
264
|
input:
|
|
265
265
|
gov.contrib.ctc.per_child_phase_out.in_effect: true
|
|
@@ -286,6 +286,7 @@
|
|
|
286
286
|
gov.irs.credits.ctc.phase_out.threshold.SEPARATE: 100_000
|
|
287
287
|
gov.irs.credits.ctc.phase_out.arpa.amount: 25
|
|
288
288
|
gov.irs.credits.ctc.phase_out.amount: 25
|
|
289
|
+
gov.contrib.ctc.per_child_phase_out.avoid_overlap: false
|
|
289
290
|
people:
|
|
290
291
|
person1:
|
|
291
292
|
age: 40
|
|
@@ -308,3 +309,205 @@
|
|
|
308
309
|
output:
|
|
309
310
|
refundable_ctc: 2_850
|
|
310
311
|
non_refundable_ctc: 0
|
|
312
|
+
|
|
313
|
+
- name: Single filer, 1 child, 120k income, avoid_overlap enabled
|
|
314
|
+
period: 2025
|
|
315
|
+
reforms: [policyengine_us.reforms.ctc.ctc_per_child_phase_in.ctc_per_child_phase_in,
|
|
316
|
+
policyengine_us.reforms.ctc.ctc_minimum_refundable_amount.ctc_minimum_refundable_amount,
|
|
317
|
+
policyengine_us.reforms.ctc.ctc_per_child_phase_out.ctc_per_child_phase_out]
|
|
318
|
+
input:
|
|
319
|
+
gov.contrib.ctc.per_child_phase_out.in_effect: true
|
|
320
|
+
gov.contrib.ctc.per_child_phase_in.in_effect: true
|
|
321
|
+
gov.contrib.ctc.minimum_refundable.in_effect: true
|
|
322
|
+
gov.contrib.ctc.minimum_refundable.amount[0].amount: 2_400
|
|
323
|
+
gov.contrib.ctc.minimum_refundable.amount[1].amount: 2_400
|
|
324
|
+
gov.irs.credits.ctc.refundable.individual_max: 4_800
|
|
325
|
+
gov.irs.credits.ctc.refundable.phase_in.threshold: 0
|
|
326
|
+
gov.irs.credits.ctc.refundable.phase_in.rate: 0.2
|
|
327
|
+
gov.irs.credits.ctc.amount.base[0].amount: 2_200
|
|
328
|
+
gov.irs.credits.ctc.amount.arpa[0].amount: 4_800
|
|
329
|
+
gov.irs.credits.ctc.amount.arpa[1].amount: 4_800
|
|
330
|
+
gov.irs.credits.ctc.phase_out.arpa.in_effect: true
|
|
331
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.JOINT: 35_000
|
|
332
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.SINGLE: 25_000
|
|
333
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.HEAD_OF_HOUSEHOLD: 25_000
|
|
334
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.SURVIVING_SPOUSE: 25_000
|
|
335
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.SEPARATE: 25_000
|
|
336
|
+
gov.irs.credits.ctc.phase_out.threshold.JOINT: 200_000
|
|
337
|
+
gov.irs.credits.ctc.phase_out.threshold.SINGLE: 100_000
|
|
338
|
+
gov.irs.credits.ctc.phase_out.threshold.HEAD_OF_HOUSEHOLD: 100_000
|
|
339
|
+
gov.irs.credits.ctc.phase_out.threshold.SURVIVING_SPOUSE: 100_000
|
|
340
|
+
gov.irs.credits.ctc.phase_out.threshold.SEPARATE: 100_000
|
|
341
|
+
gov.irs.credits.ctc.phase_out.arpa.amount: 25
|
|
342
|
+
gov.irs.credits.ctc.phase_out.amount: 25
|
|
343
|
+
gov.contrib.ctc.per_child_phase_out.avoid_overlap: true
|
|
344
|
+
people:
|
|
345
|
+
person1:
|
|
346
|
+
age: 40
|
|
347
|
+
employment_income: 120_000
|
|
348
|
+
person2:
|
|
349
|
+
age: 10
|
|
350
|
+
tax_units:
|
|
351
|
+
tax_unit:
|
|
352
|
+
members: [person1, person2]
|
|
353
|
+
households:
|
|
354
|
+
household:
|
|
355
|
+
members: [person1, person2]
|
|
356
|
+
state_code: TX
|
|
357
|
+
output:
|
|
358
|
+
ctc_arpa_uncapped_phase_out: 2_375
|
|
359
|
+
ctc_phase_out: 0
|
|
360
|
+
ctc: 2_425
|
|
361
|
+
refundable_ctc: 2_425
|
|
362
|
+
|
|
363
|
+
- name: Single filer, 1 child, 120k income, avoid_overlap disabled
|
|
364
|
+
period: 2025
|
|
365
|
+
reforms: [policyengine_us.reforms.ctc.ctc_per_child_phase_in.ctc_per_child_phase_in,
|
|
366
|
+
policyengine_us.reforms.ctc.ctc_minimum_refundable_amount.ctc_minimum_refundable_amount,
|
|
367
|
+
policyengine_us.reforms.ctc.ctc_per_child_phase_out.ctc_per_child_phase_out]
|
|
368
|
+
input:
|
|
369
|
+
gov.contrib.ctc.per_child_phase_out.in_effect: true
|
|
370
|
+
gov.contrib.ctc.per_child_phase_in.in_effect: true
|
|
371
|
+
gov.contrib.ctc.minimum_refundable.in_effect: true
|
|
372
|
+
gov.contrib.ctc.minimum_refundable.amount[0].amount: 2_400
|
|
373
|
+
gov.contrib.ctc.minimum_refundable.amount[1].amount: 2_400
|
|
374
|
+
gov.irs.credits.ctc.refundable.individual_max: 4_800
|
|
375
|
+
gov.irs.credits.ctc.refundable.phase_in.threshold: 0
|
|
376
|
+
gov.irs.credits.ctc.refundable.phase_in.rate: 0.2
|
|
377
|
+
gov.irs.credits.ctc.amount.base[0].amount: 2_200
|
|
378
|
+
gov.irs.credits.ctc.amount.arpa[0].amount: 4_800
|
|
379
|
+
gov.irs.credits.ctc.amount.arpa[1].amount: 4_800
|
|
380
|
+
gov.irs.credits.ctc.phase_out.arpa.in_effect: true
|
|
381
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.JOINT: 35_000
|
|
382
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.SINGLE: 25_000
|
|
383
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.HEAD_OF_HOUSEHOLD: 25_000
|
|
384
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.SURVIVING_SPOUSE: 25_000
|
|
385
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.SEPARATE: 25_000
|
|
386
|
+
gov.irs.credits.ctc.phase_out.threshold.JOINT: 200_000
|
|
387
|
+
gov.irs.credits.ctc.phase_out.threshold.SINGLE: 100_000
|
|
388
|
+
gov.irs.credits.ctc.phase_out.threshold.HEAD_OF_HOUSEHOLD: 100_000
|
|
389
|
+
gov.irs.credits.ctc.phase_out.threshold.SURVIVING_SPOUSE: 100_000
|
|
390
|
+
gov.irs.credits.ctc.phase_out.threshold.SEPARATE: 100_000
|
|
391
|
+
gov.irs.credits.ctc.phase_out.arpa.amount: 25
|
|
392
|
+
gov.irs.credits.ctc.phase_out.amount: 25
|
|
393
|
+
gov.contrib.ctc.per_child_phase_out.avoid_overlap: false
|
|
394
|
+
people:
|
|
395
|
+
person1:
|
|
396
|
+
age: 40
|
|
397
|
+
employment_income: 120_000
|
|
398
|
+
person2:
|
|
399
|
+
age: 10
|
|
400
|
+
tax_units:
|
|
401
|
+
tax_unit:
|
|
402
|
+
members: [person1, person2]
|
|
403
|
+
households:
|
|
404
|
+
household:
|
|
405
|
+
members: [person1, person2]
|
|
406
|
+
state_code: TX
|
|
407
|
+
output:
|
|
408
|
+
ctc_arpa_uncapped_phase_out: 2_375
|
|
409
|
+
ctc_phase_out: 500
|
|
410
|
+
ctc: 1_925
|
|
411
|
+
refundable_ctc: 1_925
|
|
412
|
+
|
|
413
|
+
- name: Single filer, 1 child, 50k income, avoid_overlap enabled (only ARPA applies)
|
|
414
|
+
period: 2025
|
|
415
|
+
reforms: [policyengine_us.reforms.ctc.ctc_per_child_phase_in.ctc_per_child_phase_in,
|
|
416
|
+
policyengine_us.reforms.ctc.ctc_minimum_refundable_amount.ctc_minimum_refundable_amount,
|
|
417
|
+
policyengine_us.reforms.ctc.ctc_per_child_phase_out.ctc_per_child_phase_out]
|
|
418
|
+
input:
|
|
419
|
+
gov.contrib.ctc.per_child_phase_out.in_effect: true
|
|
420
|
+
gov.contrib.ctc.per_child_phase_in.in_effect: true
|
|
421
|
+
gov.contrib.ctc.minimum_refundable.in_effect: true
|
|
422
|
+
gov.contrib.ctc.minimum_refundable.amount[0].amount: 2_400
|
|
423
|
+
gov.contrib.ctc.minimum_refundable.amount[1].amount: 2_400
|
|
424
|
+
gov.irs.credits.ctc.refundable.individual_max: 4_800
|
|
425
|
+
gov.irs.credits.ctc.refundable.phase_in.threshold: 0
|
|
426
|
+
gov.irs.credits.ctc.refundable.phase_in.rate: 0.2
|
|
427
|
+
gov.irs.credits.ctc.amount.base[0].amount: 2_200
|
|
428
|
+
gov.irs.credits.ctc.amount.arpa[0].amount: 4_800
|
|
429
|
+
gov.irs.credits.ctc.amount.arpa[1].amount: 4_800
|
|
430
|
+
gov.irs.credits.ctc.phase_out.arpa.in_effect: true
|
|
431
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.JOINT: 35_000
|
|
432
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.SINGLE: 25_000
|
|
433
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.HEAD_OF_HOUSEHOLD: 25_000
|
|
434
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.SURVIVING_SPOUSE: 25_000
|
|
435
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.SEPARATE: 25_000
|
|
436
|
+
gov.irs.credits.ctc.phase_out.threshold.JOINT: 200_000
|
|
437
|
+
gov.irs.credits.ctc.phase_out.threshold.SINGLE: 100_000
|
|
438
|
+
gov.irs.credits.ctc.phase_out.threshold.HEAD_OF_HOUSEHOLD: 100_000
|
|
439
|
+
gov.irs.credits.ctc.phase_out.threshold.SURVIVING_SPOUSE: 100_000
|
|
440
|
+
gov.irs.credits.ctc.phase_out.threshold.SEPARATE: 100_000
|
|
441
|
+
gov.irs.credits.ctc.phase_out.arpa.amount: 25
|
|
442
|
+
gov.irs.credits.ctc.phase_out.amount: 25
|
|
443
|
+
gov.contrib.ctc.per_child_phase_out.avoid_overlap: true
|
|
444
|
+
people:
|
|
445
|
+
person1:
|
|
446
|
+
age: 40
|
|
447
|
+
employment_income: 50_000
|
|
448
|
+
person2:
|
|
449
|
+
age: 10
|
|
450
|
+
tax_units:
|
|
451
|
+
tax_unit:
|
|
452
|
+
members: [person1, person2]
|
|
453
|
+
households:
|
|
454
|
+
household:
|
|
455
|
+
members: [person1, person2]
|
|
456
|
+
state_code: TX
|
|
457
|
+
output:
|
|
458
|
+
ctc_arpa_uncapped_phase_out: 625
|
|
459
|
+
ctc_phase_out: 0
|
|
460
|
+
ctc: 4_175
|
|
461
|
+
refundable_ctc: 4_175
|
|
462
|
+
|
|
463
|
+
- name: HoH filer, 2 kids, 150k income, avoid_overlap enabled (in overlap zone)
|
|
464
|
+
period: 2025
|
|
465
|
+
reforms: [policyengine_us.reforms.ctc.ctc_per_child_phase_in.ctc_per_child_phase_in,
|
|
466
|
+
policyengine_us.reforms.ctc.ctc_minimum_refundable_amount.ctc_minimum_refundable_amount,
|
|
467
|
+
policyengine_us.reforms.ctc.ctc_per_child_phase_out.ctc_per_child_phase_out]
|
|
468
|
+
input:
|
|
469
|
+
gov.contrib.ctc.per_child_phase_out.in_effect: true
|
|
470
|
+
gov.contrib.ctc.per_child_phase_in.in_effect: true
|
|
471
|
+
gov.contrib.ctc.minimum_refundable.in_effect: true
|
|
472
|
+
gov.contrib.ctc.minimum_refundable.amount[0].amount: 2_400
|
|
473
|
+
gov.contrib.ctc.minimum_refundable.amount[1].amount: 2_400
|
|
474
|
+
gov.irs.credits.ctc.refundable.individual_max: 4_800
|
|
475
|
+
gov.irs.credits.ctc.refundable.phase_in.threshold: 0
|
|
476
|
+
gov.irs.credits.ctc.refundable.phase_in.rate: 0.2
|
|
477
|
+
gov.irs.credits.ctc.amount.base[0].amount: 2_200
|
|
478
|
+
gov.irs.credits.ctc.amount.arpa[0].amount: 4_800
|
|
479
|
+
gov.irs.credits.ctc.amount.arpa[1].amount: 4_800
|
|
480
|
+
gov.irs.credits.ctc.phase_out.arpa.in_effect: true
|
|
481
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.JOINT: 35_000
|
|
482
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.SINGLE: 25_000
|
|
483
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.HEAD_OF_HOUSEHOLD: 25_000
|
|
484
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.SURVIVING_SPOUSE: 25_000
|
|
485
|
+
gov.irs.credits.ctc.phase_out.arpa.threshold.SEPARATE: 25_000
|
|
486
|
+
gov.irs.credits.ctc.phase_out.threshold.JOINT: 200_000
|
|
487
|
+
gov.irs.credits.ctc.phase_out.threshold.SINGLE: 100_000
|
|
488
|
+
gov.irs.credits.ctc.phase_out.threshold.HEAD_OF_HOUSEHOLD: 100_000
|
|
489
|
+
gov.irs.credits.ctc.phase_out.threshold.SURVIVING_SPOUSE: 100_000
|
|
490
|
+
gov.irs.credits.ctc.phase_out.threshold.SEPARATE: 100_000
|
|
491
|
+
gov.irs.credits.ctc.phase_out.arpa.amount: 25
|
|
492
|
+
gov.irs.credits.ctc.phase_out.amount: 25
|
|
493
|
+
gov.contrib.ctc.per_child_phase_out.avoid_overlap: true
|
|
494
|
+
people:
|
|
495
|
+
person1:
|
|
496
|
+
age: 40
|
|
497
|
+
employment_income: 150_000
|
|
498
|
+
person2:
|
|
499
|
+
age: 10
|
|
500
|
+
person3:
|
|
501
|
+
age: 10
|
|
502
|
+
tax_units:
|
|
503
|
+
tax_unit:
|
|
504
|
+
members: [person1, person2, person3]
|
|
505
|
+
households:
|
|
506
|
+
household:
|
|
507
|
+
members: [person1, person2, person3]
|
|
508
|
+
state_code: TX
|
|
509
|
+
output:
|
|
510
|
+
ctc_arpa_uncapped_phase_out: 6_250
|
|
511
|
+
ctc_phase_out: 0
|
|
512
|
+
ctc: 5_850
|
|
513
|
+
refundable_ctc: 5_850
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_ccs_copay(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
unit = USD
|
|
8
|
+
label = "Texas Child Care Services (CCS) copayment"
|
|
9
|
+
definition_period = MONTH
|
|
10
|
+
reference = "https://wspanhandle.com/child-care/for-parents/"
|
|
11
|
+
defined_for = "tx_ccs_eligible"
|
|
12
|
+
|
|
13
|
+
def formula(spm_unit, period, parameters):
|
|
14
|
+
p = parameters(period).gov.states.tx.twc.ccs.copay
|
|
15
|
+
|
|
16
|
+
# Get household income and SMI ratio
|
|
17
|
+
income = spm_unit("tx_ccs_countable_income", period)
|
|
18
|
+
smi = spm_unit("hhs_smi", period)
|
|
19
|
+
income_to_smi_ratio = income / smi
|
|
20
|
+
|
|
21
|
+
# Count eligible children in care
|
|
22
|
+
eligible_children = spm_unit.sum(
|
|
23
|
+
spm_unit.members("tx_ccs_eligible_child", period)
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
# Calculate copayment rates based on income bracket
|
|
27
|
+
# Use Panhandle Region's values
|
|
28
|
+
first_child_rate = p.rate.first_child.calc(income_to_smi_ratio)
|
|
29
|
+
additional_child_rate = p.rate.additional_child
|
|
30
|
+
|
|
31
|
+
# Calculate copayments as percentage of income
|
|
32
|
+
first_child_copay = first_child_rate * income
|
|
33
|
+
additional_children = max_(eligible_children - 1, 0)
|
|
34
|
+
additional_copay = additional_child_rate * income * additional_children
|
|
35
|
+
|
|
36
|
+
# Total copayment, capped at maximum rate
|
|
37
|
+
total_copay = first_child_copay + additional_copay
|
|
38
|
+
max_copay = p.rate.maximum * income
|
|
39
|
+
|
|
40
|
+
return min_(total_copay, max_copay)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_ccs_asset_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Texas CCS asset eligible"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
reference = "https://www.law.cornell.edu/regulations/texas/40-Tex-Admin-Code-SS-809-41"
|
|
10
|
+
defined_for = StateCode.TX
|
|
11
|
+
|
|
12
|
+
def formula(spm_unit, period, parameters):
|
|
13
|
+
p = parameters(period).gov.states.tx.twc.ccs
|
|
14
|
+
assets = spm_unit("spm_unit_assets", period.this_year)
|
|
15
|
+
asset_limit = p.assets.limit
|
|
16
|
+
return assets <= asset_limit
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_ccs_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Texas CCS eligible"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
reference = "https://www.law.cornell.edu/regulations/texas/40-Tex-Admin-Code-SS-809-41"
|
|
10
|
+
defined_for = StateCode.TX
|
|
11
|
+
|
|
12
|
+
def formula(spm_unit, period, parameters):
|
|
13
|
+
# Check all eligibility criteria
|
|
14
|
+
income_eligible = spm_unit("tx_ccs_income_eligible", period)
|
|
15
|
+
asset_eligible = spm_unit("tx_ccs_asset_eligible", period)
|
|
16
|
+
work_eligible = spm_unit("tx_ccs_work_requirement_eligible", period)
|
|
17
|
+
|
|
18
|
+
# Check if at least one child is age-eligible
|
|
19
|
+
person = spm_unit.members
|
|
20
|
+
age_eligible = person("tx_ccs_eligible_child", period)
|
|
21
|
+
has_eligible_child = spm_unit.any(age_eligible)
|
|
22
|
+
|
|
23
|
+
return (
|
|
24
|
+
income_eligible
|
|
25
|
+
& asset_eligible
|
|
26
|
+
& work_eligible
|
|
27
|
+
& has_eligible_child
|
|
28
|
+
)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_ccs_eligible_child(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Texas CCS eligible child"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
reference = "https://www.law.cornell.edu/regulations/texas/40-Tex-Admin-Code-SS-809-41"
|
|
10
|
+
defined_for = StateCode.TX
|
|
11
|
+
|
|
12
|
+
def formula(person, period, parameters):
|
|
13
|
+
p = parameters(period).gov.states.tx.twc.ccs.age_threshold
|
|
14
|
+
age = person("age", period.this_year)
|
|
15
|
+
is_disabled = person("is_disabled", period)
|
|
16
|
+
age_limit = where(is_disabled, p.disabled_child, p.child)
|
|
17
|
+
age_eligible = age < age_limit
|
|
18
|
+
is_dependent = person("is_tax_unit_dependent", period)
|
|
19
|
+
immigration_status_eligible = person(
|
|
20
|
+
"is_citizen_or_legal_immigrant", period
|
|
21
|
+
)
|
|
22
|
+
return age_eligible & is_dependent & immigration_status_eligible
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_ccs_income_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Texas CCS income eligible"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
reference = "https://www.law.cornell.edu/regulations/texas/40-Tex-Admin-Code-SS-809-41"
|
|
10
|
+
defined_for = StateCode.TX
|
|
11
|
+
|
|
12
|
+
def formula(spm_unit, period, parameters):
|
|
13
|
+
p = parameters(period).gov.states.tx.twc.ccs
|
|
14
|
+
# Get monthly countable income
|
|
15
|
+
monthly_income = spm_unit("tx_ccs_countable_income", period)
|
|
16
|
+
# Calculate monthly SMI limit
|
|
17
|
+
smi = spm_unit("hhs_smi", period)
|
|
18
|
+
income_limit = smi * p.income.smi_rate
|
|
19
|
+
return monthly_income <= income_limit
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_ccs_work_exempt(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Texas CCS work requirement exempt"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = "https://www.law.cornell.edu/regulations/texas/40-Tex-Admin-Code-SS-809-50"
|
|
10
|
+
defined_for = StateCode.TX
|
|
11
|
+
|
|
12
|
+
def formula(person, period):
|
|
13
|
+
# Exemption 1: Full-time student
|
|
14
|
+
is_full_time_student = person("is_full_time_student", period)
|
|
15
|
+
|
|
16
|
+
# Exemption 2: Parent with documented medical disability
|
|
17
|
+
is_disabled = person("is_disabled", period)
|
|
18
|
+
|
|
19
|
+
# Exemption 3: Parent caring for a physically or mentally disabled family member
|
|
20
|
+
# This exemption is NOT implemented due to complexity in determining:
|
|
21
|
+
# - Which parent is the designated caregiver
|
|
22
|
+
# - Whether caring for disabled spouse vs disabled child has different implications
|
|
23
|
+
# - Whether both parents can claim exemption or just one
|
|
24
|
+
# Future enhancement could add this with better data on caregiving roles
|
|
25
|
+
|
|
26
|
+
return is_full_time_student | is_disabled
|
policyengine_us/variables/gov/states/tx/twc/ccs/eligibility/tx_ccs_work_requirement_eligible.py
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_ccs_work_requirement_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Texas CCS work requirement eligible"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
reference = "https://www.law.cornell.edu/regulations/texas/40-Tex-Admin-Code-SS-809-56"
|
|
10
|
+
defined_for = StateCode.TX
|
|
11
|
+
|
|
12
|
+
def formula(spm_unit, period, parameters):
|
|
13
|
+
p = parameters(period).gov.states.tx.twc.ccs.work_requirements
|
|
14
|
+
|
|
15
|
+
person = spm_unit.members
|
|
16
|
+
is_head_or_spouse = person("is_tax_unit_head_or_spouse", period)
|
|
17
|
+
is_exempt = person("tx_ccs_work_exempt", period)
|
|
18
|
+
work_hours = person("weekly_hours_worked", period.this_year)
|
|
19
|
+
|
|
20
|
+
# Count non-exempt parents and calculate their total work hours
|
|
21
|
+
is_non_exempt_parent = is_head_or_spouse & ~is_exempt
|
|
22
|
+
num_non_exempt_parents = spm_unit.sum(is_non_exempt_parent)
|
|
23
|
+
total_work_hours = spm_unit.sum(
|
|
24
|
+
where(is_non_exempt_parent, work_hours, 0)
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
# Determine work hours requirement based on non-exempt parents
|
|
28
|
+
# If 0-1 non-exempt parents: 25 hours
|
|
29
|
+
# If 2+ non-exempt parents: 50 hours
|
|
30
|
+
requirement = where(
|
|
31
|
+
num_non_exempt_parents > 1, p.two_parent, p.single_parent
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
# Check each parent individually
|
|
35
|
+
# A parent meets requirements if they are:
|
|
36
|
+
# - Exempt from work, OR
|
|
37
|
+
# - Part of a household that meets the work hour requirement
|
|
38
|
+
household_meets_work_requirement = total_work_hours >= requirement
|
|
39
|
+
parent_meets_requirement = is_exempt | household_meets_work_requirement
|
|
40
|
+
|
|
41
|
+
# SPM unit is eligible if ALL parents meet requirements
|
|
42
|
+
# (Non-parents automatically pass)
|
|
43
|
+
person_eligible = parent_meets_requirement | ~is_head_or_spouse
|
|
44
|
+
return spm_unit.all(person_eligible)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class TXCCSCareSchedule(Enum):
|
|
5
|
+
FULL_TIME = "Full Time"
|
|
6
|
+
PART_TIME = "Part Time"
|
|
7
|
+
BLENDED = "Blended"
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class tx_ccs_care_schedule(Variable):
|
|
11
|
+
value_type = Enum
|
|
12
|
+
possible_values = TXCCSCareSchedule
|
|
13
|
+
default_value = TXCCSCareSchedule.FULL_TIME
|
|
14
|
+
entity = Person
|
|
15
|
+
definition_period = MONTH
|
|
16
|
+
label = "Texas Child Care Services (CCS) care schedule"
|
|
17
|
+
defined_for = StateCode.TX
|
|
18
|
+
reference = "https://www.twc.texas.gov/sites/default/files/ccel/docs/bcy25-board-max-provider-payment-rates-4-age-groups-twc.pdf"
|