policyengine-us 1.434.0__py3-none-any.whl → 1.435.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. policyengine_us/reforms/congress/tlaib/__init__.py +4 -3
  2. policyengine_us/reforms/congress/tlaib/economic_dignity_for_all_agenda/__init__.py +9 -0
  3. policyengine_us/reforms/congress/tlaib/economic_dignity_for_all_agenda/edaa_end_child_poverty_act.py +237 -0
  4. policyengine_us/reforms/reforms.py +5 -4
  5. policyengine_us/tests/policy/baseline/gov/ssa/ssi/integration_tests.yaml +150 -4
  6. policyengine_us/tests/policy/contrib/congress/tlaib/economic_dignity_for_all_agenda/edaa_end_child_poverty_act.yaml +198 -0
  7. policyengine_us/variables/gov/ssa/ssi/eligibility/income/deemed/from_ineligible_spouse/is_ssi_spousal_deeming_applies.py +41 -0
  8. policyengine_us/variables/gov/ssa/ssi/eligibility/income/deemed/from_ineligible_spouse/ssi_income_deemed_from_ineligible_spouse.py +20 -20
  9. policyengine_us/variables/gov/ssa/ssi/ssi.py +22 -1
  10. policyengine_us/variables/gov/ssa/ssi/ssi_amount_if_eligible.py +26 -4
  11. {policyengine_us-1.434.0.dist-info → policyengine_us-1.435.1.dist-info}/METADATA +1 -1
  12. {policyengine_us-1.434.0.dist-info → policyengine_us-1.435.1.dist-info}/RECORD +24 -36
  13. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/age_limit.yaml +0 -8
  14. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/amount.yaml +0 -13
  15. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/in_effect.yaml +0 -8
  16. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/min_birth_year.yaml +0 -8
  17. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/amount.yaml +0 -13
  18. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/in_effect.yaml +0 -8
  19. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/max_age.yaml +0 -8
  20. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/min_age.yaml +0 -8
  21. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/tax/rate.yaml +0 -8
  22. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/tax/threshold.yaml +0 -24
  23. policyengine_us/reforms/congress/tlaib/income_security_package/__init__.py +0 -17
  24. policyengine_us/reforms/congress/tlaib/income_security_package/income_security_package.py +0 -453
  25. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/integration.yaml +0 -154
  26. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/state_integration.yaml +0 -110
  27. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/test_individual_acts.yaml +0 -149
  28. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/unit_tests.yaml +0 -272
  29. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/adult_dependent_credit/amount.yaml +0 -0
  30. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/adult_dependent_credit/min_age.yaml +0 -0
  31. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/child_benefit/age_limit.yaml +0 -0
  32. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/filer_credit/amount.yaml +0 -0
  33. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/filer_credit/eligibility/max_age.yaml +0 -0
  34. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/filer_credit/eligibility/min_age.yaml +0 -0
  35. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/filer_credit/phase_out/rate.yaml +0 -0
  36. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/filer_credit/phase_out/start.yaml +0 -0
  37. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/in_effect.yaml +0 -0
  38. {policyengine_us-1.434.0.dist-info → policyengine_us-1.435.1.dist-info}/WHEEL +0 -0
  39. {policyengine_us-1.434.0.dist-info → policyengine_us-1.435.1.dist-info}/entry_points.txt +0 -0
  40. {policyengine_us-1.434.0.dist-info → policyengine_us-1.435.1.dist-info}/licenses/LICENSE +0 -0
@@ -1,453 +0,0 @@
1
- from policyengine_us.model_api import *
2
- from policyengine_core.periods import period as period_
3
-
4
-
5
- def create_income_security_package() -> Reform:
6
- class baby_bonus_act_payment(Variable):
7
- value_type = float
8
- entity = Person
9
- definition_period = YEAR
10
- label = "Baby Bonus Act payment"
11
- unit = USD
12
- documentation = (
13
- "One-time payment for newborns under the Baby Bonus Act"
14
- )
15
- reference = "placeholder - bill not yet introduced"
16
-
17
- def formula(person, period, parameters):
18
- p = parameters(
19
- period
20
- ).gov.contrib.congress.tlaib.income_security_package.baby_bonus_act
21
-
22
- if not p.in_effect:
23
- return 0
24
-
25
- # Baby bonus is for those born in 2026 and after, paid in their birth year
26
- birth_year = person("birth_year", period)
27
-
28
- age = person("age", period)
29
-
30
- # Payment only in the birth year for those born 2026+
31
- is_eligible = (birth_year >= p.min_birth_year) & (
32
- age < p.age_limit
33
- )
34
-
35
- return is_eligible * p.amount
36
-
37
- class boost_act_payment(Variable):
38
- value_type = float
39
- entity = Person
40
- definition_period = YEAR
41
- label = "BOOST Act payment"
42
- unit = USD
43
- documentation = (
44
- "Monthly payments under the BOOST Act for eligible adults"
45
- )
46
- reference = "placeholder - bill not yet introduced"
47
-
48
- def formula(person, period, parameters):
49
- p = parameters(
50
- period
51
- ).gov.contrib.congress.tlaib.income_security_package.boost_act
52
-
53
- if not p.in_effect:
54
- return 0
55
-
56
- age = person("age", period)
57
- is_eligible = (age >= p.min_age) & (age <= p.max_age)
58
-
59
- annual_amount = p.amount * MONTHS_IN_YEAR
60
-
61
- return is_eligible * annual_amount
62
-
63
- class boost_act_tax(Variable):
64
- value_type = float
65
- entity = TaxUnit
66
- definition_period = YEAR
67
- label = "BOOST Act supplemental tax"
68
- unit = USD
69
- documentation = "Supplemental tax on AGI to fund the BOOST Act"
70
- reference = "placeholder - bill not yet introduced"
71
-
72
- def formula(tax_unit, period, parameters):
73
- p = parameters(
74
- period
75
- ).gov.contrib.congress.tlaib.income_security_package.boost_act
76
-
77
- if not p.in_effect:
78
- return 0
79
-
80
- agi = tax_unit("adjusted_gross_income", period)
81
- filing_status = tax_unit("filing_status", period)
82
-
83
- excess_agi = max_(agi - p.tax.threshold[filing_status], 0)
84
-
85
- return excess_agi * p.tax.rate
86
-
87
- class ecpa_child_benefit(Variable):
88
- value_type = float
89
- entity = Person
90
- definition_period = YEAR
91
- label = "End Child Poverty Act child benefit"
92
- unit = USD
93
- documentation = (
94
- "Universal child benefit under the End Child Poverty Act"
95
- )
96
- reference = "placeholder - bill not yet introduced"
97
-
98
- def formula(person, period, parameters):
99
- p = parameters(
100
- period
101
- ).gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act
102
-
103
- if not p.in_effect:
104
- return 0
105
-
106
- age = person("age", period)
107
- is_eligible = age < p.child_benefit.age_limit
108
-
109
- # Use FPG additional_person amount (CONTIGUOUS_US for all states), rounded to nearest $10
110
- p_fpg = parameters(period).gov.hhs.fpg
111
- fpg_amount = p_fpg.additional_person.CONTIGUOUS_US
112
- amount = round(fpg_amount / 10) * 10
113
-
114
- return is_eligible * amount
115
-
116
- class ecpa_adult_dependent_credit(Variable):
117
- value_type = float
118
- entity = Person
119
- definition_period = YEAR
120
- label = "End Child Poverty Act adult dependent credit"
121
- unit = USD
122
- documentation = (
123
- "Credit for adult dependents under the End Child Poverty Act"
124
- )
125
- reference = "placeholder - bill not yet introduced"
126
-
127
- def formula(person, period, parameters):
128
- p = parameters(
129
- period
130
- ).gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act
131
-
132
- if not p.in_effect:
133
- return 0
134
-
135
- age = person("age", period)
136
- is_dependent = person("is_tax_unit_dependent", period)
137
-
138
- is_eligible = (
139
- age >= p.adult_dependent_credit.min_age
140
- ) & is_dependent
141
-
142
- return is_eligible * p.adult_dependent_credit.amount
143
-
144
- class ecpa_filer_credit(Variable):
145
- value_type = float
146
- entity = TaxUnit
147
- definition_period = YEAR
148
- label = "End Child Poverty Act filer credit"
149
- unit = USD
150
- documentation = "Filer credit under the End Child Poverty Act for eligible tax filers"
151
- reference = "placeholder - bill not yet introduced"
152
-
153
- def formula(tax_unit, period, parameters):
154
- p = parameters(
155
- period
156
- ).gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act
157
-
158
- if not p.in_effect:
159
- return 0
160
-
161
- person = tax_unit.members
162
- age = person("age", period)
163
-
164
- is_head_or_spouse = person("is_tax_unit_head_or_spouse", period)
165
-
166
- is_eligible_age = (age >= p.filer_credit.eligibility.min_age) & (
167
- age < p.filer_credit.eligibility.max_age
168
- )
169
- is_eligible_filer = is_head_or_spouse & is_eligible_age
170
-
171
- has_eligible_filer = tax_unit.any(is_eligible_filer)
172
-
173
- filing_status = tax_unit("filing_status", period)
174
- amount = p.filer_credit.amount[filing_status]
175
-
176
- agi = tax_unit("adjusted_gross_income", period)
177
- excess_agi = max_(
178
- agi - p.filer_credit.phase_out.start[filing_status], 0
179
- )
180
- phase_out = excess_agi * p.filer_credit.phase_out.rate
181
-
182
- phased_out_amount = max_(amount - phase_out, 0)
183
-
184
- return has_eligible_filer * phased_out_amount
185
-
186
- class household_benefits(Variable):
187
- value_type = float
188
- entity = Household
189
- label = "benefits"
190
- unit = USD
191
- definition_period = YEAR
192
-
193
- def formula(household, period, parameters):
194
- p = parameters(
195
- period
196
- ).gov.contrib.congress.tlaib.income_security_package
197
-
198
- BENEFITS = [
199
- "social_security",
200
- "ssi",
201
- "snap",
202
- "wic",
203
- "free_school_meals",
204
- "reduced_price_school_meals",
205
- "spm_unit_broadband_subsidy",
206
- "tanf",
207
- "high_efficiency_electric_home_rebate",
208
- "residential_efficiency_electrification_rebate",
209
- "unemployment_compensation",
210
- # Contributed.
211
- "basic_income",
212
- "spm_unit_capped_housing_subsidy",
213
- "household_state_benefits",
214
- ]
215
-
216
- # Add Income Security Package benefits if active
217
- if p.baby_bonus_act.in_effect:
218
- BENEFITS.append("baby_bonus_act_payment")
219
- if p.boost_act.in_effect:
220
- BENEFITS.append("boost_act_payment")
221
- if p.end_child_poverty_act.in_effect:
222
- BENEFITS.append("ecpa_child_benefit")
223
-
224
- return add(household, period, BENEFITS)
225
-
226
- class spm_unit_benefits(Variable):
227
- value_type = float
228
- entity = SPMUnit
229
- label = "Benefits"
230
- definition_period = YEAR
231
- unit = USD
232
-
233
- def formula(spm_unit, period, parameters):
234
- p = parameters(
235
- period
236
- ).gov.contrib.congress.tlaib.income_security_package
237
-
238
- BENEFITS = [
239
- "social_security",
240
- "ssi",
241
- "ma_state_supplement", # Massachusetts benefits
242
- # California programs.
243
- "ca_cvrp", # California Clean Vehicle Rebate Project.
244
- # Colorado programs.
245
- "co_ccap_subsidy",
246
- "co_state_supplement",
247
- "co_oap",
248
- "snap",
249
- "wic",
250
- "free_school_meals",
251
- "reduced_price_school_meals",
252
- "spm_unit_broadband_subsidy",
253
- "spm_unit_energy_subsidy",
254
- "tanf",
255
- "high_efficiency_electric_home_rebate",
256
- "residential_efficiency_electrification_rebate",
257
- "unemployment_compensation",
258
- # Contributed.
259
- "basic_income",
260
- "ny_drive_clean_rebate",
261
- ]
262
-
263
- # Add Income Security Package benefits if active
264
- if p.baby_bonus_act.in_effect:
265
- BENEFITS.append("baby_bonus_act_payment")
266
- if p.boost_act.in_effect:
267
- BENEFITS.append("boost_act_payment")
268
- if p.end_child_poverty_act.in_effect:
269
- BENEFITS.append("ecpa_child_benefit")
270
-
271
- if parameters(period).gov.contrib.ubi_center.flat_tax.deduct_ptc:
272
- BENEFITS.append("aca_ptc")
273
- if not parameters(period).gov.hud.abolition:
274
- BENEFITS.append("spm_unit_capped_housing_subsidy")
275
-
276
- return add(spm_unit, period, BENEFITS)
277
-
278
- class income_tax(Variable):
279
- value_type = float
280
- entity = TaxUnit
281
- label = "federal income tax"
282
- unit = USD
283
- definition_period = YEAR
284
-
285
- def formula(tax_unit, period, parameters):
286
- p = parameters(
287
- period
288
- ).gov.contrib.congress.tlaib.income_security_package
289
-
290
- # Start with income tax after non-refundable credits
291
- base_tax = tax_unit("income_tax_before_refundable_credits", period)
292
-
293
- # Subtract refundable credits
294
- refundable_credits = tax_unit(
295
- "income_tax_refundable_credits", period
296
- )
297
-
298
- reduced_tax = base_tax - refundable_credits
299
-
300
- # Add BOOST tax only if active
301
- if p.boost_act.in_effect:
302
- boost_tax = tax_unit("boost_act_tax", period)
303
- return reduced_tax + boost_tax
304
- else:
305
- return reduced_tax
306
-
307
- class income_tax_refundable_credits(Variable):
308
- value_type = float
309
- entity = TaxUnit
310
- definition_period = YEAR
311
- label = "federal refundable income tax credits"
312
- unit = USD
313
-
314
- def formula(tax_unit, period, parameters):
315
- p = parameters(
316
- period
317
- ).gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act
318
-
319
- # Get standard refundable credits, excluding EITC and refundable CTC if ECPA is active
320
- standard_credits = parameters(period).gov.irs.credits.refundable
321
-
322
- if p.in_effect:
323
- # ECPA replaces EITC and refundable CTC
324
- CREDITS = [
325
- c
326
- for c in standard_credits
327
- if c not in ["eitc", "refundable_ctc"]
328
- ]
329
- else:
330
- # Use all standard credits
331
- CREDITS = list(standard_credits)
332
-
333
- base_credits = add(tax_unit, period, CREDITS) if CREDITS else 0
334
-
335
- # Add ECPA credits only if active
336
- if p.in_effect:
337
- ecpa_filer = tax_unit("ecpa_filer_credit", period)
338
- ecpa_adult_dep = add(
339
- tax_unit, period, ["ecpa_adult_dependent_credit"]
340
- )
341
- return base_credits + ecpa_filer + ecpa_adult_dep
342
- else:
343
- return base_credits
344
-
345
- class income_tax_non_refundable_credits(Variable):
346
- value_type = float
347
- entity = TaxUnit
348
- definition_period = YEAR
349
- label = "federal non-refundable income tax credits"
350
- unit = USD
351
-
352
- def formula(tax_unit, period, parameters):
353
- # Get the base list of non-refundable credits from parameters
354
- p = parameters(period).gov.irs.credits
355
- base_credits = list(p.non_refundable)
356
-
357
- # Check if ECPA is active
358
- ecpa_params = parameters(
359
- period
360
- ).gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act
361
- ecpa_active = ecpa_params.in_effect
362
-
363
- # If ECPA is active, remove non_refundable_ctc from the list
364
- if ecpa_active:
365
- CREDITS = [
366
- c for c in base_credits if c != "non_refundable_ctc"
367
- ]
368
- else:
369
- CREDITS = base_credits
370
-
371
- return add(tax_unit, period, CREDITS)
372
-
373
- class household_tax_before_refundable_credits(Variable):
374
- value_type = float
375
- entity = Household
376
- label = "total tax before refundable credits"
377
- documentation = "Total tax liability before refundable credits."
378
- unit = USD
379
- definition_period = YEAR
380
-
381
- def formula(household, period, parameters):
382
- p = parameters(
383
- period
384
- ).gov.contrib.congress.tlaib.income_security_package
385
-
386
- base_taxes = add(
387
- household,
388
- period,
389
- [
390
- "employee_payroll_tax",
391
- "self_employment_tax",
392
- "income_tax_before_refundable_credits",
393
- "flat_tax",
394
- "household_state_tax_before_refundable_credits",
395
- ],
396
- )
397
-
398
- # Add BOOST tax only if active
399
- if p.boost_act.in_effect:
400
- boost_tax = add(household, period, ["boost_act_tax"])
401
- return base_taxes + boost_tax
402
- else:
403
- return base_taxes
404
-
405
- class reform(Reform):
406
- def apply(self):
407
- # Update all variables for the Income Security Package
408
- self.update_variable(baby_bonus_act_payment)
409
- self.update_variable(boost_act_payment)
410
- self.update_variable(boost_act_tax)
411
- self.update_variable(ecpa_child_benefit)
412
- self.update_variable(ecpa_adult_dependent_credit)
413
- self.update_variable(ecpa_filer_credit)
414
- self.update_variable(household_benefits)
415
- self.update_variable(spm_unit_benefits)
416
- self.update_variable(income_tax)
417
- self.update_variable(income_tax_refundable_credits)
418
- self.update_variable(income_tax_non_refundable_credits)
419
- self.update_variable(household_tax_before_refundable_credits)
420
-
421
- return reform
422
-
423
-
424
- def create_income_security_package_reform(
425
- parameters, period, bypass: bool = False
426
- ):
427
- if bypass:
428
- return create_income_security_package()
429
-
430
- p = parameters.gov.contrib.congress.tlaib.income_security_package
431
-
432
- reform_active = False
433
- current_period = period_(period)
434
-
435
- for i in range(5):
436
- if (
437
- p(current_period).baby_bonus_act.in_effect
438
- or p(current_period).boost_act.in_effect
439
- or p(current_period).end_child_poverty_act.in_effect
440
- ):
441
- reform_active = True
442
- break
443
- current_period = current_period.offset(1, "year")
444
-
445
- if reform_active:
446
- return create_income_security_package()
447
- else:
448
- return None
449
-
450
-
451
- income_security_package = create_income_security_package_reform(
452
- None, None, bypass=True
453
- )
@@ -1,154 +0,0 @@
1
- - name: Family with baby, children, and adults receives all benefits
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: true
7
- gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: true
8
- people:
9
- baby:
10
- age: 0
11
- child1:
12
- age: 5
13
- child2:
14
- age: 10
15
- adult_head:
16
- age: 35
17
- adult_spouse:
18
- age: 33
19
- adult_dependent:
20
- age: 20
21
- is_tax_unit_dependent: true
22
- tax_units:
23
- tax_unit:
24
- members: [adult_head, adult_spouse, baby, child1, child2, adult_dependent]
25
- filing_status: JOINT
26
- adjusted_gross_income: 45_000 # 5,000 above phase-out start
27
- output:
28
- # Baby Bonus
29
- baby_bonus_act_payment:
30
- 2026: [2_000, 0, 0, 0, 0, 0] # Only baby gets bonus
31
- # ECPA Child Benefit
32
- ecpa_child_benefit:
33
- 2026: [5_630, 5_630, 5_630, 0, 0, 0] # All children under 19
34
- # ECPA Adult Dependent Credit
35
- ecpa_adult_dependent_credit:
36
- 2026: [0, 0, 0, 0, 0, 700] # Only adult dependent
37
- # BOOST Payment
38
- boost_act_payment:
39
- 2026: [0, 0, 0, 3_000, 3_000, 3_000] # Adults 19-67
40
- # ECPA Filer Credit (at tax unit level)
41
- ecpa_filer_credit:
42
- 2026: 1_150 # 1,400 - (5,000 * 0.05)
43
- # BOOST Tax (at tax unit level)
44
- boost_act_tax:
45
- 2026: 0 # Below 60,000 threshold for joint
46
-
47
- - name: Single parent with high income
48
- period: 2026
49
- reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
50
- input:
51
- gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: true
52
- gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: true
53
- gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: true
54
- people:
55
- parent:
56
- age: 40
57
- child:
58
- age: 8
59
- tax_units:
60
- tax_unit:
61
- members: [parent, child]
62
- filing_status: HEAD_OF_HOUSEHOLD
63
- adjusted_gross_income: 80_000
64
- output:
65
- # No baby bonus (child too old)
66
- baby_bonus_act_payment:
67
- 2026: [0, 0]
68
- # Child benefit
69
- ecpa_child_benefit:
70
- 2026: [0, 5_630]
71
- # BOOST payment for parent
72
- boost_act_payment:
73
- 2026: [3_000, 0]
74
- # ECPA filer credit fully phased out
75
- ecpa_filer_credit:
76
- 2026: 0 # 700 - (60,000 * 0.05) = -2,300, max to 0
77
- # BOOST tax on high income
78
- boost_act_tax:
79
- 2026: 1_250 # (80,000 - 30,000) * 0.025
80
-
81
- - name: Senior couple with adult dependent
82
- period: 2026
83
- reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
84
- input:
85
- gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: true
86
- gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: true
87
- gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: true
88
- people:
89
- senior1:
90
- age: 68
91
- senior2:
92
- age: 70
93
- adult_dependent:
94
- age: 40
95
- is_tax_unit_dependent: true
96
- tax_units:
97
- tax_unit:
98
- members: [senior1, senior2, adult_dependent]
99
- filing_status: JOINT
100
- adjusted_gross_income: 35_000
101
- output:
102
- # No baby bonus
103
- baby_bonus_act_payment:
104
- 2026: [0, 0, 0]
105
- # No child benefit (all adults)
106
- ecpa_child_benefit:
107
- 2026: [0, 0, 0]
108
- # Adult dependent credit
109
- ecpa_adult_dependent_credit:
110
- 2026: [0, 0, 700]
111
- # BOOST payment only for adult dependent (seniors too old)
112
- boost_act_payment:
113
- 2026: [0, 0, 3_000]
114
- # No filer credit (seniors over 64)
115
- ecpa_filer_credit:
116
- 2026: 0
117
- # No BOOST tax (below threshold)
118
- boost_act_tax:
119
- 2026: 0
120
-
121
- - name: Young adult living alone
122
- period: 2026
123
- reforms: policyengine_us.reforms.congress.tlaib.income_security_package.income_security_package
124
- input:
125
- gov.contrib.congress.tlaib.income_security_package.baby_bonus_act.in_effect: true
126
- gov.contrib.congress.tlaib.income_security_package.boost_act.in_effect: true
127
- gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act.in_effect: true
128
- people:
129
- young_adult:
130
- age: 19
131
- tax_units:
132
- tax_unit:
133
- members: [young_adult]
134
- filing_status: SINGLE
135
- adjusted_gross_income: 12_000
136
- output:
137
- # No baby bonus
138
- baby_bonus_act_payment:
139
- 2026: 0
140
- # No child benefit (19 or over)
141
- ecpa_child_benefit:
142
- 2026: 0
143
- # Not a dependent
144
- ecpa_adult_dependent_credit:
145
- 2026: 0
146
- # Gets BOOST payment
147
- boost_act_payment:
148
- 2026: 3_000
149
- # Gets filer credit
150
- ecpa_filer_credit:
151
- 2026: 700 # No phase-out
152
- # No BOOST tax (below threshold)
153
- boost_act_tax:
154
- 2026: 0