policyengine-us 1.413.3__py3-none-any.whl → 1.418.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/aca/ptc_simplified_bracket/brackets.yaml +6 -6
- policyengine_us/parameters/gov/contrib/aca/ptc_simplified_bracket/income_eligibility.yaml +6 -6
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/age_limit.yaml +8 -0
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/amount.yaml +13 -0
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/in_effect.yaml +8 -0
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/min_birth_year.yaml +8 -0
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/amount.yaml +13 -0
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/in_effect.yaml +8 -0
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/max_age.yaml +8 -0
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/min_age.yaml +8 -0
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/tax/rate.yaml +8 -0
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/tax/threshold.yaml +24 -0
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/end_child_poverty_act/adult_dependent_credit/amount.yaml +9 -0
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/end_child_poverty_act/adult_dependent_credit/min_age.yaml +8 -0
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/end_child_poverty_act/child_benefit/age_limit.yaml +8 -0
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/end_child_poverty_act/filer_credit/amount.yaml +20 -0
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/end_child_poverty_act/filer_credit/eligibility/max_age.yaml +10 -0
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/end_child_poverty_act/filer_credit/eligibility/min_age.yaml +8 -0
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/end_child_poverty_act/filer_credit/phase_out/rate.yaml +8 -0
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/end_child_poverty_act/filer_credit/phase_out/start.yaml +20 -0
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/end_child_poverty_act/in_effect.yaml +8 -0
- policyengine_us/parameters/gov/local/tx/harris/rides/age_threshold.yaml +13 -0
- policyengine_us/parameters/gov/local/tx/harris/rides/customer_payment_rate.yaml +12 -0
- policyengine_us/parameters/gov/states/tx/fpp/age_threshold.yaml +10 -0
- policyengine_us/parameters/gov/states/tx/fpp/annual_benefit.yaml +12 -0
- policyengine_us/parameters/gov/states/tx/fpp/fpg_percentage.yaml +15 -0
- policyengine_us/reforms/congress/tlaib/__init__.py +4 -0
- policyengine_us/reforms/congress/tlaib/income_security_package/__init__.py +17 -0
- policyengine_us/reforms/congress/tlaib/income_security_package/income_security_package.py +402 -0
- policyengine_us/reforms/ctc/ctc_minimum_refundable_amount.py +11 -0
- policyengine_us/reforms/reforms.py +6 -0
- policyengine_us/tests/policy/baseline/gov/local/tx/harris/in_harris_county_tx.yaml +27 -0
- policyengine_us/tests/policy/baseline/gov/local/tx/harris/rides/tx_harris_rides_eligible.yaml +35 -0
- policyengine_us/tests/policy/baseline/gov/local/tx/harris/rides/tx_harris_rides_subsidy.yaml +32 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/fpp/integration.yaml +133 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/fpp/tx_fpp_age_eligible.yaml +39 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/fpp/tx_fpp_benefit.yaml +39 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/fpp/tx_fpp_income_eligible.yaml +53 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/fpp/tx_fpp_income_limit.yaml +44 -0
- policyengine_us/tests/policy/baseline/household/demographic/geographic/in_nyc.yaml +20 -0
- policyengine_us/tests/policy/contrib/aca/ptc_simplified_bracket.yaml +12 -12
- policyengine_us/tests/policy/contrib/congress/tlaib/end_child_poverty_act/integration.yaml +0 -42
- policyengine_us/tests/policy/contrib/congress/tlaib/income_security/integration.yaml +154 -0
- policyengine_us/tests/policy/contrib/congress/tlaib/income_security/state_integration.yaml +115 -0
- policyengine_us/tests/policy/contrib/congress/tlaib/income_security/test_individual_acts.yaml +149 -0
- policyengine_us/tests/policy/contrib/congress/tlaib/income_security/unit_tests.yaml +272 -0
- policyengine_us/variables/gov/local/tx/harris/in_harris_county_tx.py +12 -0
- policyengine_us/variables/gov/local/tx/harris/rides/tx_harris_rides_eligible.py +22 -0
- policyengine_us/variables/gov/local/tx/harris/rides/tx_harris_rides_subsidy.py +26 -0
- policyengine_us/variables/gov/states/tx/fpp/tx_fpp_age_eligible.py +16 -0
- policyengine_us/variables/gov/states/tx/fpp/tx_fpp_benefit.py +15 -0
- policyengine_us/variables/gov/states/tx/fpp/tx_fpp_eligible.py +18 -0
- policyengine_us/variables/gov/states/tx/fpp/tx_fpp_income_eligible.py +18 -0
- policyengine_us/variables/gov/states/tx/fpp/tx_fpp_income_limit.py +24 -0
- policyengine_us/variables/household/demographic/geographic/in_nyc.py +12 -3
- policyengine_us/variables/household/expense/person/pre_subsidy_transportation_expense.py +9 -0
- {policyengine_us-1.413.3.dist-info → policyengine_us-1.418.0.dist-info}/METADATA +1 -1
- {policyengine_us-1.413.3.dist-info → policyengine_us-1.418.0.dist-info}/RECORD +61 -14
- policyengine_us/parameters/gov/states/tx/index.yaml +0 -4
- {policyengine_us-1.413.3.dist-info → policyengine_us-1.418.0.dist-info}/WHEEL +0 -0
- {policyengine_us-1.413.3.dist-info → policyengine_us-1.418.0.dist-info}/entry_points.txt +0 -0
- {policyengine_us-1.413.3.dist-info → policyengine_us-1.418.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
- name: Only Baby Bonus Act in effect
|
|
2
|
+
period: 2026
|
|
3
|
+
reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
|
|
4
|
+
input:
|
|
5
|
+
gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: true
|
|
6
|
+
gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: false
|
|
7
|
+
gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: false
|
|
8
|
+
people:
|
|
9
|
+
baby:
|
|
10
|
+
age: 0
|
|
11
|
+
wic: 0
|
|
12
|
+
parent:
|
|
13
|
+
age: 30
|
|
14
|
+
tax_units:
|
|
15
|
+
tax_unit:
|
|
16
|
+
members: [parent, baby]
|
|
17
|
+
filing_status: SINGLE
|
|
18
|
+
adjusted_gross_income: 35_000
|
|
19
|
+
spm_units:
|
|
20
|
+
spm_unit:
|
|
21
|
+
members: [parent, baby]
|
|
22
|
+
snap: 0
|
|
23
|
+
tanf: 0
|
|
24
|
+
free_school_meals: 0
|
|
25
|
+
reduced_price_school_meals: 0
|
|
26
|
+
households:
|
|
27
|
+
household:
|
|
28
|
+
members: [parent, baby]
|
|
29
|
+
household_state_benefits: 0
|
|
30
|
+
output:
|
|
31
|
+
# Baby gets bonus (Baby Bonus Act is in effect)
|
|
32
|
+
baby_bonus_act_payment: [2_000, 0]
|
|
33
|
+
boost_act_payment: [0, 3_000]
|
|
34
|
+
ecpa_child_benefit: [5_630, 0]
|
|
35
|
+
ecpa_filer_credit: 0
|
|
36
|
+
boost_act_tax: 125
|
|
37
|
+
# Only the baby bonus payment is applied to the household benefits
|
|
38
|
+
household_benefits: 2_000
|
|
39
|
+
|
|
40
|
+
- name: Only BOOST Act in effect
|
|
41
|
+
period: 2026
|
|
42
|
+
reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
|
|
43
|
+
input:
|
|
44
|
+
gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: false
|
|
45
|
+
gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: true
|
|
46
|
+
gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: false
|
|
47
|
+
people:
|
|
48
|
+
baby:
|
|
49
|
+
age: 0
|
|
50
|
+
wic: 0
|
|
51
|
+
parent:
|
|
52
|
+
age: 30
|
|
53
|
+
tax_units:
|
|
54
|
+
tax_unit:
|
|
55
|
+
members: [parent, baby]
|
|
56
|
+
filing_status: SINGLE
|
|
57
|
+
adjusted_gross_income: 35_000
|
|
58
|
+
spm_units:
|
|
59
|
+
spm_unit:
|
|
60
|
+
members: [parent, baby]
|
|
61
|
+
snap: 0
|
|
62
|
+
tanf: 0
|
|
63
|
+
free_school_meals: 0
|
|
64
|
+
reduced_price_school_meals: 0
|
|
65
|
+
households:
|
|
66
|
+
household:
|
|
67
|
+
members: [parent, baby]
|
|
68
|
+
household_state_benefits: 0
|
|
69
|
+
output:
|
|
70
|
+
baby_bonus_act_payment: [2_000, 0]
|
|
71
|
+
boost_act_payment: [0, 3_000]
|
|
72
|
+
ecpa_child_benefit: [5_630, 0]
|
|
73
|
+
ecpa_filer_credit: 0
|
|
74
|
+
boost_act_tax: 125
|
|
75
|
+
household_benefits: 3_000
|
|
76
|
+
|
|
77
|
+
- name: Only End Child Poverty Act in effect
|
|
78
|
+
period: 2026
|
|
79
|
+
reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
|
|
80
|
+
input:
|
|
81
|
+
gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: false
|
|
82
|
+
gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: false
|
|
83
|
+
gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: true
|
|
84
|
+
people:
|
|
85
|
+
baby:
|
|
86
|
+
age: 0
|
|
87
|
+
wic: 0
|
|
88
|
+
parent:
|
|
89
|
+
age: 30
|
|
90
|
+
tax_units:
|
|
91
|
+
tax_unit:
|
|
92
|
+
members: [parent, baby]
|
|
93
|
+
filing_status: SINGLE
|
|
94
|
+
adjusted_gross_income: 20_000
|
|
95
|
+
spm_units:
|
|
96
|
+
spm_unit:
|
|
97
|
+
members: [parent, baby]
|
|
98
|
+
snap: 0
|
|
99
|
+
tanf: 0
|
|
100
|
+
free_school_meals: 0
|
|
101
|
+
reduced_price_school_meals: 0
|
|
102
|
+
households:
|
|
103
|
+
household:
|
|
104
|
+
members: [parent, baby]
|
|
105
|
+
household_state_benefits: 0
|
|
106
|
+
output:
|
|
107
|
+
baby_bonus_act_payment: [2_000, 0]
|
|
108
|
+
boost_act_payment: [0, 3_000]
|
|
109
|
+
ecpa_child_benefit: [5_630, 0]
|
|
110
|
+
ecpa_filer_credit: 700
|
|
111
|
+
boost_act_tax: 0
|
|
112
|
+
household_benefits: 5_630
|
|
113
|
+
|
|
114
|
+
- name: All three acts in effect
|
|
115
|
+
period: 2026
|
|
116
|
+
reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
|
|
117
|
+
input:
|
|
118
|
+
gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: true
|
|
119
|
+
gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: true
|
|
120
|
+
gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: true
|
|
121
|
+
people:
|
|
122
|
+
baby:
|
|
123
|
+
age: 0
|
|
124
|
+
wic: 0
|
|
125
|
+
parent:
|
|
126
|
+
age: 30
|
|
127
|
+
tax_units:
|
|
128
|
+
tax_unit:
|
|
129
|
+
members: [parent, baby]
|
|
130
|
+
filing_status: SINGLE
|
|
131
|
+
adjusted_gross_income: 35_000
|
|
132
|
+
spm_units:
|
|
133
|
+
spm_unit:
|
|
134
|
+
members: [parent, baby]
|
|
135
|
+
snap: 0
|
|
136
|
+
tanf: 0
|
|
137
|
+
free_school_meals: 0
|
|
138
|
+
reduced_price_school_meals: 0
|
|
139
|
+
households:
|
|
140
|
+
household:
|
|
141
|
+
members: [parent, baby]
|
|
142
|
+
household_state_benefits: 0
|
|
143
|
+
output:
|
|
144
|
+
baby_bonus_act_payment: [2_000, 0]
|
|
145
|
+
boost_act_payment: [0, 3_000]
|
|
146
|
+
ecpa_child_benefit: [5_630, 0]
|
|
147
|
+
ecpa_filer_credit: 0
|
|
148
|
+
boost_act_tax: 125
|
|
149
|
+
household_benefits: 10_630
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
# Essential unit tests for Income Security Package individual components
|
|
2
|
+
# Tests cover critical logic boundaries and edge cases for each act
|
|
3
|
+
|
|
4
|
+
# Baby Bonus Act Tests
|
|
5
|
+
- name: Baby born in eligibility year receives bonus
|
|
6
|
+
period: 2026
|
|
7
|
+
reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
|
|
8
|
+
input:
|
|
9
|
+
gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: true
|
|
10
|
+
gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: false
|
|
11
|
+
gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: false
|
|
12
|
+
people:
|
|
13
|
+
child_eligible:
|
|
14
|
+
age: 0
|
|
15
|
+
birth_year: 2026
|
|
16
|
+
child_ineligible:
|
|
17
|
+
age: 0
|
|
18
|
+
birth_year: 2025
|
|
19
|
+
output:
|
|
20
|
+
baby_bonus_act_payment:
|
|
21
|
+
2026: [2_000, 0]
|
|
22
|
+
|
|
23
|
+
- name: Baby bonus only paid in birth year
|
|
24
|
+
period: 2027
|
|
25
|
+
reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
|
|
26
|
+
input:
|
|
27
|
+
gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: true
|
|
28
|
+
gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: false
|
|
29
|
+
gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: false
|
|
30
|
+
people:
|
|
31
|
+
child_2026:
|
|
32
|
+
age: 1
|
|
33
|
+
birth_year: 2026
|
|
34
|
+
child_2027:
|
|
35
|
+
age: 0
|
|
36
|
+
birth_year: 2027
|
|
37
|
+
output:
|
|
38
|
+
baby_bonus_act_payment:
|
|
39
|
+
2027: [0, 2_049] # Only 2027 birth, uprated
|
|
40
|
+
|
|
41
|
+
# BOOST Act Payment Tests
|
|
42
|
+
- name: BOOST payment age boundaries
|
|
43
|
+
period: 2026
|
|
44
|
+
reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
|
|
45
|
+
input:
|
|
46
|
+
gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: false
|
|
47
|
+
gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: true
|
|
48
|
+
gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: false
|
|
49
|
+
people:
|
|
50
|
+
age_18:
|
|
51
|
+
age: 18
|
|
52
|
+
age_19:
|
|
53
|
+
age: 19
|
|
54
|
+
age_67:
|
|
55
|
+
age: 67
|
|
56
|
+
age_68:
|
|
57
|
+
age: 68
|
|
58
|
+
output:
|
|
59
|
+
boost_act_payment:
|
|
60
|
+
2026: [0, 3_000, 3_000, 0]
|
|
61
|
+
|
|
62
|
+
# BOOST Act Tax Tests
|
|
63
|
+
- name: BOOST tax single filer above threshold
|
|
64
|
+
period: 2026
|
|
65
|
+
reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
|
|
66
|
+
input:
|
|
67
|
+
gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: false
|
|
68
|
+
gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: true
|
|
69
|
+
gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: false
|
|
70
|
+
people:
|
|
71
|
+
filer:
|
|
72
|
+
age: 30
|
|
73
|
+
tax_units:
|
|
74
|
+
tax_unit:
|
|
75
|
+
members: [filer]
|
|
76
|
+
filing_status: SINGLE
|
|
77
|
+
adjusted_gross_income: 40_000 # 10k above 30k threshold
|
|
78
|
+
output:
|
|
79
|
+
boost_act_tax:
|
|
80
|
+
2026: 250 # 10,000 * 0.025
|
|
81
|
+
|
|
82
|
+
- name: BOOST tax joint filers above threshold
|
|
83
|
+
period: 2026
|
|
84
|
+
reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
|
|
85
|
+
input:
|
|
86
|
+
gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: false
|
|
87
|
+
gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: true
|
|
88
|
+
gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: false
|
|
89
|
+
people:
|
|
90
|
+
head:
|
|
91
|
+
age: 40
|
|
92
|
+
spouse:
|
|
93
|
+
age: 38
|
|
94
|
+
tax_units:
|
|
95
|
+
tax_unit:
|
|
96
|
+
members: [head, spouse]
|
|
97
|
+
filing_status: JOINT
|
|
98
|
+
adjusted_gross_income: 80_000 # 20k above 60k threshold
|
|
99
|
+
output:
|
|
100
|
+
boost_act_tax:
|
|
101
|
+
2026: 500 # 20,000 * 0.025
|
|
102
|
+
|
|
103
|
+
- name: BOOST tax head of household above threshold
|
|
104
|
+
period: 2026
|
|
105
|
+
reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
|
|
106
|
+
input:
|
|
107
|
+
gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: false
|
|
108
|
+
gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: true
|
|
109
|
+
gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: false
|
|
110
|
+
people:
|
|
111
|
+
head:
|
|
112
|
+
age: 35
|
|
113
|
+
child:
|
|
114
|
+
age: 10
|
|
115
|
+
tax_units:
|
|
116
|
+
tax_unit:
|
|
117
|
+
members: [head, child]
|
|
118
|
+
filing_status: HEAD_OF_HOUSEHOLD
|
|
119
|
+
adjusted_gross_income: 45_000 # 15k above 30k threshold
|
|
120
|
+
output:
|
|
121
|
+
boost_act_tax:
|
|
122
|
+
2026: 375 # 15,000 * 0.025
|
|
123
|
+
|
|
124
|
+
# ECPA Child Benefit Tests
|
|
125
|
+
- name: ECPA child benefit age boundary at 19
|
|
126
|
+
period: 2026
|
|
127
|
+
reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
|
|
128
|
+
input:
|
|
129
|
+
gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: false
|
|
130
|
+
gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: false
|
|
131
|
+
gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: true
|
|
132
|
+
people:
|
|
133
|
+
age_17:
|
|
134
|
+
age: 17
|
|
135
|
+
age_18:
|
|
136
|
+
age: 18
|
|
137
|
+
age_19:
|
|
138
|
+
age: 19
|
|
139
|
+
output:
|
|
140
|
+
ecpa_child_benefit:
|
|
141
|
+
2026: [5_630, 5_630, 0]
|
|
142
|
+
|
|
143
|
+
# ECPA Adult Dependent Credit Tests
|
|
144
|
+
- name: ECPA adult dependent credit requires dependent status and age 18+
|
|
145
|
+
period: 2026
|
|
146
|
+
reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
|
|
147
|
+
input:
|
|
148
|
+
gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: false
|
|
149
|
+
gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: false
|
|
150
|
+
gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: true
|
|
151
|
+
people:
|
|
152
|
+
parent:
|
|
153
|
+
age: 45
|
|
154
|
+
child_17:
|
|
155
|
+
age: 17
|
|
156
|
+
is_tax_unit_dependent: true
|
|
157
|
+
adult_dep_18:
|
|
158
|
+
age: 18
|
|
159
|
+
is_tax_unit_dependent: true
|
|
160
|
+
adult_not_dep:
|
|
161
|
+
age: 20
|
|
162
|
+
is_tax_unit_dependent: false
|
|
163
|
+
tax_units:
|
|
164
|
+
tax_unit:
|
|
165
|
+
members: [parent, child_17, adult_dep_18, adult_not_dep]
|
|
166
|
+
output:
|
|
167
|
+
ecpa_adult_dependent_credit:
|
|
168
|
+
2026: [0, 0, 700, 0]
|
|
169
|
+
|
|
170
|
+
# ECPA Filer Credit Tests
|
|
171
|
+
- name: ECPA filer credit single base amount
|
|
172
|
+
period: 2026
|
|
173
|
+
reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
|
|
174
|
+
input:
|
|
175
|
+
gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: false
|
|
176
|
+
gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: false
|
|
177
|
+
gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: true
|
|
178
|
+
people:
|
|
179
|
+
filer:
|
|
180
|
+
age: 30
|
|
181
|
+
tax_units:
|
|
182
|
+
tax_unit:
|
|
183
|
+
members: [filer]
|
|
184
|
+
filing_status: SINGLE
|
|
185
|
+
adjusted_gross_income: 15_000
|
|
186
|
+
output:
|
|
187
|
+
ecpa_filer_credit:
|
|
188
|
+
2026: 700
|
|
189
|
+
|
|
190
|
+
- name: ECPA filer credit joint base amount
|
|
191
|
+
period: 2026
|
|
192
|
+
reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
|
|
193
|
+
input:
|
|
194
|
+
gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: false
|
|
195
|
+
gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: false
|
|
196
|
+
gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: true
|
|
197
|
+
people:
|
|
198
|
+
head:
|
|
199
|
+
age: 35
|
|
200
|
+
spouse:
|
|
201
|
+
age: 33
|
|
202
|
+
tax_units:
|
|
203
|
+
tax_unit:
|
|
204
|
+
members: [head, spouse]
|
|
205
|
+
filing_status: JOINT
|
|
206
|
+
adjusted_gross_income: 30_000
|
|
207
|
+
output:
|
|
208
|
+
ecpa_filer_credit:
|
|
209
|
+
2026: 1_400
|
|
210
|
+
|
|
211
|
+
- name: ECPA filer credit partial phaseout
|
|
212
|
+
period: 2026
|
|
213
|
+
reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
|
|
214
|
+
input:
|
|
215
|
+
gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: false
|
|
216
|
+
gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: false
|
|
217
|
+
gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: true
|
|
218
|
+
people:
|
|
219
|
+
filer:
|
|
220
|
+
age: 40
|
|
221
|
+
tax_units:
|
|
222
|
+
tax_unit:
|
|
223
|
+
members: [filer]
|
|
224
|
+
filing_status: SINGLE
|
|
225
|
+
adjusted_gross_income: 24_000 # 4k above 20k threshold
|
|
226
|
+
output:
|
|
227
|
+
ecpa_filer_credit:
|
|
228
|
+
2026: 500 # 700 - (4,000 * 0.05)
|
|
229
|
+
|
|
230
|
+
- name: ECPA filer credit full phaseout
|
|
231
|
+
period: 2026
|
|
232
|
+
reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
|
|
233
|
+
input:
|
|
234
|
+
gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: false
|
|
235
|
+
gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: false
|
|
236
|
+
gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: true
|
|
237
|
+
people:
|
|
238
|
+
filer:
|
|
239
|
+
age: 45
|
|
240
|
+
tax_units:
|
|
241
|
+
tax_unit:
|
|
242
|
+
members: [filer]
|
|
243
|
+
filing_status: SINGLE
|
|
244
|
+
adjusted_gross_income: 50_000 # Fully phased out
|
|
245
|
+
output:
|
|
246
|
+
ecpa_filer_credit:
|
|
247
|
+
2026: 0
|
|
248
|
+
|
|
249
|
+
- name: ECPA filer credit age boundaries
|
|
250
|
+
period: 2026
|
|
251
|
+
reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
|
|
252
|
+
input:
|
|
253
|
+
gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: false
|
|
254
|
+
gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: false
|
|
255
|
+
gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: true
|
|
256
|
+
people:
|
|
257
|
+
age_18:
|
|
258
|
+
age: 18
|
|
259
|
+
age_19:
|
|
260
|
+
age: 19
|
|
261
|
+
age_64:
|
|
262
|
+
age: 64
|
|
263
|
+
age_65:
|
|
264
|
+
age: 65
|
|
265
|
+
tax_units:
|
|
266
|
+
tax_unit:
|
|
267
|
+
members: [age_18, age_19, age_64, age_65]
|
|
268
|
+
filing_status: SINGLE
|
|
269
|
+
adjusted_gross_income: 10_000
|
|
270
|
+
output:
|
|
271
|
+
ecpa_filer_credit:
|
|
272
|
+
2026: 700 # Tax unit level, head must be 19-64
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class in_harris_county_tx(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Household
|
|
7
|
+
definition_period = YEAR
|
|
8
|
+
label = "Is in Harris County, Texas"
|
|
9
|
+
|
|
10
|
+
def formula(household, period, parameters):
|
|
11
|
+
county = household("county_str", period)
|
|
12
|
+
return county == "HARRIS_COUNTY_TX"
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_harris_rides_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
definition_period = YEAR
|
|
8
|
+
label = "Harris County RIDES eligibility"
|
|
9
|
+
reference = "https://rides.harriscountytx.gov/Registration/Registration-Information"
|
|
10
|
+
defined_for = "in_harris_county_tx"
|
|
11
|
+
|
|
12
|
+
def formula(person, period, parameters):
|
|
13
|
+
p = parameters(period).gov.local.tx.harris.rides
|
|
14
|
+
|
|
15
|
+
# Age eligibility
|
|
16
|
+
age = person("age", period)
|
|
17
|
+
age_eligible = age >= p.age_threshold
|
|
18
|
+
|
|
19
|
+
# Disability eligibility
|
|
20
|
+
has_disability = person("is_disabled", period)
|
|
21
|
+
|
|
22
|
+
return age_eligible | has_disability
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_harris_rides_subsidy(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = Person
|
|
7
|
+
definition_period = YEAR
|
|
8
|
+
label = "Harris County RIDES transportation subsidy"
|
|
9
|
+
reference = "https://rides.harriscountytx.gov/"
|
|
10
|
+
unit = USD
|
|
11
|
+
defined_for = "tx_harris_rides_eligible"
|
|
12
|
+
|
|
13
|
+
def formula(person, period, parameters):
|
|
14
|
+
p = parameters(period).gov.local.tx.harris.rides
|
|
15
|
+
|
|
16
|
+
# Get estimated transportation costs
|
|
17
|
+
# In a real implementation, this would be based on actual trip data
|
|
18
|
+
# For now, we'll use a simplified estimate
|
|
19
|
+
transportation_costs = person(
|
|
20
|
+
"pre_subsidy_transportation_expense", period
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
# RIDES subsidizes 60% of trip costs (customer pays 40%)
|
|
24
|
+
subsidy_rate = 1 - p.customer_payment_rate
|
|
25
|
+
|
|
26
|
+
return transportation_costs * subsidy_rate
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_fpp_age_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Texas Family Planning Program age eligibility"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = "https://www.healthytexaswomen.org/healthcare-programs/family-planning-program/fpp-who-can-apply"
|
|
10
|
+
defined_for = StateCode.TX
|
|
11
|
+
|
|
12
|
+
def formula(person, period, parameters):
|
|
13
|
+
age = person("age", period)
|
|
14
|
+
p = parameters(period).gov.states.tx.fpp
|
|
15
|
+
age_threshold = p.age_threshold
|
|
16
|
+
return age <= age_threshold
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_fpp_benefit(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Texas Family Planning Program benefit"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = YEAR
|
|
10
|
+
reference = (
|
|
11
|
+
"https://www.healthytexaswomen.org/healthcare-programs/family-planning-program/fpp-who-can-apply",
|
|
12
|
+
"https://www.hhs.texas.gov/sites/default/files/documents/texas-womens-health-programs-report-2024.pdf",
|
|
13
|
+
)
|
|
14
|
+
defined_for = "tx_fpp_eligible"
|
|
15
|
+
adds = ["gov.states.tx.fpp.annual_benefit"]
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_fpp_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Texas Family Planning Program eligibility"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = (
|
|
10
|
+
"https://www.healthytexaswomen.org/healthcare-programs/family-planning-program/fpp-who-can-apply",
|
|
11
|
+
"https://www.hhs.texas.gov/sites/default/files/documents/texas-womens-health-programs-report-2024.pdf",
|
|
12
|
+
)
|
|
13
|
+
defined_for = StateCode.TX
|
|
14
|
+
|
|
15
|
+
def formula(person, period, parameters):
|
|
16
|
+
age_eligible = person("tx_fpp_age_eligible", period)
|
|
17
|
+
income_eligible = person.spm_unit("tx_fpp_income_eligible", period)
|
|
18
|
+
return age_eligible & income_eligible
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_fpp_income_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Texas Family Planning Program income eligibility"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = (
|
|
10
|
+
"https://www.healthytexaswomen.org/healthcare-programs/family-planning-program/fpp-who-can-apply",
|
|
11
|
+
"https://www.hhs.texas.gov/sites/default/files/documents/texas-womens-health-programs-report-2024.pdf",
|
|
12
|
+
)
|
|
13
|
+
defined_for = StateCode.TX
|
|
14
|
+
|
|
15
|
+
def formula(spm_unit, period, parameters):
|
|
16
|
+
income = spm_unit("spm_unit_net_income", period)
|
|
17
|
+
income_limit = spm_unit("tx_fpp_income_limit", period)
|
|
18
|
+
return income <= income_limit
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tx_fpp_income_limit(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Texas Family Planning Program income limit"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = YEAR
|
|
10
|
+
reference = (
|
|
11
|
+
"https://www.healthytexaswomen.org/healthcare-programs/family-planning-program/fpp-who-can-apply",
|
|
12
|
+
"https://www.hhs.texas.gov/sites/default/files/documents/texas-womens-health-programs-report-2024.pdf",
|
|
13
|
+
)
|
|
14
|
+
defined_for = StateCode.TX
|
|
15
|
+
|
|
16
|
+
def formula(spm_unit, period, parameters):
|
|
17
|
+
# Get the Federal Poverty Guideline for this SPM unit
|
|
18
|
+
fpg = spm_unit("spm_unit_fpg", period)
|
|
19
|
+
|
|
20
|
+
# Get FPG percentage (250% = 2.5)
|
|
21
|
+
p = parameters(period).gov.states.tx.fpp
|
|
22
|
+
|
|
23
|
+
# Return annual income limit (FPG * percentage)
|
|
24
|
+
return fpg * p.fpg_percentage
|
|
@@ -6,6 +6,15 @@ class in_nyc(Variable):
|
|
|
6
6
|
entity = Household
|
|
7
7
|
definition_period = YEAR
|
|
8
8
|
label = "Is in NYC"
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
|
|
10
|
+
def formula(household, period, parameters):
|
|
11
|
+
county = household("county_str", period)
|
|
12
|
+
possible_counties = [
|
|
13
|
+
"QUEENS_COUNTY_NY",
|
|
14
|
+
"BRONX_COUNTY_NY",
|
|
15
|
+
"RICHMOND_COUNTY_NY",
|
|
16
|
+
"NEW_YORK_COUNTY_NY",
|
|
17
|
+
"KINGS_COUNTY_NY",
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
return np.isin(county, possible_counties)
|