policyengine-us 1.426.0__py3-none-any.whl → 1.449.6__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 (325) hide show
  1. policyengine_us/parameters/calibration/gov/hhs/medicare/per_capita_cost.yaml +12 -0
  2. policyengine_us/parameters/gov/aca/state_rating_area_cost.yaml +511 -12
  3. 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 +1 -1
  4. policyengine_us/parameters/gov/contrib/states/ri/ctc/young_child_boost/age_limit.yaml +9 -0
  5. policyengine_us/parameters/gov/contrib/states/ri/ctc/young_child_boost/amount.yaml +9 -0
  6. policyengine_us/parameters/gov/contrib/states/ri/dependent_exemption/amount.yaml +2 -2
  7. policyengine_us/parameters/gov/contrib/states/ut/eitc/in_effect.yaml +9 -0
  8. policyengine_us/parameters/gov/contrib/states/ut/eitc/max_age.yaml +9 -0
  9. policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/child/child.yaml +0 -1
  10. policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/income/limit/couple.yaml +60 -51
  11. policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/income/limit/individual.yaml +60 -51
  12. policyengine_us/parameters/gov/hhs/medicare/part_a/deductible.yaml +13 -0
  13. policyengine_us/parameters/gov/hhs/medicare/part_a/default_quarters_of_coverage.yaml +10 -0
  14. policyengine_us/parameters/gov/hhs/medicare/part_a/full_premium.yaml +13 -0
  15. policyengine_us/parameters/gov/hhs/medicare/part_a/premium_free_quarters_threshold.yaml +10 -0
  16. policyengine_us/parameters/gov/hhs/medicare/part_a/reduced_premium.yaml +13 -0
  17. policyengine_us/parameters/gov/hhs/medicare/part_a/reduced_premium_quarters_threshold.yaml +10 -0
  18. policyengine_us/parameters/gov/hhs/medicare/part_b/base_premium.yaml +16 -0
  19. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/head_of_household.yaml +50 -0
  20. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/joint.yaml +49 -0
  21. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/separate.yaml +30 -0
  22. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/single.yaml +50 -0
  23. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/surviving_spouse.yaml +49 -0
  24. policyengine_us/parameters/gov/hhs/tanf/cash/income/sources/earned.yaml +13 -0
  25. policyengine_us/parameters/gov/hhs/tanf/cash/income/sources/unearned.yaml +23 -0
  26. policyengine_us/parameters/gov/irs/credits/cdcc/eligibility/child_age.yaml +0 -1
  27. policyengine_us/parameters/gov/irs/credits/clean_vehicle/new/eligibility/min_kwh.yaml +0 -1
  28. policyengine_us/parameters/gov/irs/credits/clean_vehicle/used/eligibility/sale_price_limit.yaml +0 -1
  29. policyengine_us/parameters/gov/irs/credits/education/american_opportunity_credit/abolition.yaml +0 -1
  30. policyengine_us/parameters/gov/irs/credits/education/american_opportunity_credit/refundability.yaml +0 -1
  31. policyengine_us/parameters/gov/irs/credits/education/lifetime_learning_credit/abolition.yaml +0 -1
  32. policyengine_us/parameters/gov/irs/credits/education/lifetime_learning_credit/expense_limit.yaml +0 -1
  33. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/advanced_main_air_circulating_fan.yaml +0 -1
  34. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/door.yaml +0 -1
  35. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/energy_efficient_central_air_conditioner.yaml +0 -1
  36. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/heat_pump_heat_pump_water_heater_biomass_stove_boiler.yaml +0 -1
  37. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/home_energy_audit.yaml +0 -1
  38. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/qualified_furnace_or_hot_water_boiler.yaml +0 -1
  39. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/roof.yaml +0 -1
  40. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/total.yaml +0 -1
  41. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/window.yaml +0 -1
  42. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/lifetime/total.yaml +0 -1
  43. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/lifetime/window.yaml +0 -1
  44. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/in_effect.yaml +0 -1
  45. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/qualified_expenditures/credits.yaml +0 -1
  46. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/qualified_expenditures/heat_pump_heat_pump_water_heater_biomass_stove_boiler.yaml +0 -1
  47. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/rates/home_energy_audit.yaml +0 -1
  48. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/rates/improvements.yaml +0 -1
  49. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/rates/property.yaml +0 -1
  50. policyengine_us/parameters/gov/irs/credits/premium_tax_credit/phase_out/ending_rate.yaml +0 -1
  51. policyengine_us/parameters/gov/irs/credits/premium_tax_credit/phase_out/starting_rate.yaml +0 -1
  52. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/max/adult.yaml +0 -1
  53. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/max/dependent.yaml +0 -1
  54. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/phase_out/length.yaml +0 -1
  55. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/phase_out/threshold.yaml +0 -1
  56. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/max/adult.yaml +0 -1
  57. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/max/child.yaml +0 -1
  58. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/phase_out/rate.yaml +0 -1
  59. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/phase_out/threshold.yaml +0 -1
  60. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/max/adult.yaml +0 -1
  61. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/max/child.yaml +0 -1
  62. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/phase_out/rate.yaml +0 -1
  63. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/phase_out/threshold.yaml +0 -1
  64. policyengine_us/parameters/gov/irs/credits/residential_clean_energy/applicable_percentage.yaml +0 -1
  65. policyengine_us/parameters/gov/irs/credits/residential_clean_energy/elements.yaml +0 -1
  66. policyengine_us/parameters/gov/irs/credits/residential_clean_energy/fuel_cell_cap_per_kw.yaml +0 -1
  67. policyengine_us/parameters/gov/irs/deductions/standard/aged_or_blind/age_threshold.yaml +0 -1
  68. policyengine_us/parameters/gov/irs/payroll/medicare/additional/exclusion.yaml +0 -1
  69. policyengine_us/parameters/gov/local/ny/mamdani_income_tax/in_effect.yaml +10 -0
  70. policyengine_us/parameters/gov/local/ny/mamdani_income_tax/rate.yaml +18 -0
  71. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/README.md +1 -206
  72. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/{income/all.yaml → income.yaml} +1 -1
  73. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution.yaml +70 -0
  74. policyengine_us/parameters/gov/states/ar/tax/income/rates/main/reduction.yaml +30 -0
  75. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/amount/joint.yaml +10 -0
  76. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/amount/non_joint.yaml +10 -0
  77. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/income_limit/joint.yaml +10 -0
  78. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/income_limit/non_joint.yaml +10 -0
  79. policyengine_us/parameters/gov/states/co/tax/income/credits/refundable.yaml +10 -0
  80. policyengine_us/parameters/gov/states/ga/tax/income/credits/itemizer/amount.yaml +14 -0
  81. policyengine_us/parameters/gov/states/ga/tax/income/credits/non_refundable.yaml +9 -0
  82. policyengine_us/parameters/gov/states/hi/tax/income/alternative_tax/availability.yaml +2 -3
  83. policyengine_us/parameters/gov/states/il/hfs/README.md +1 -0
  84. policyengine_us/parameters/gov/states/il/hfs/hbwd/README.md +1 -0
  85. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/age.yaml +25 -0
  86. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/asset/limit.yaml +15 -0
  87. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/income/limit.yaml +15 -0
  88. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/income/sources/earned.yaml +13 -0
  89. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/income/sources/unearned.yaml +25 -0
  90. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/qualified_noncitizen_statuses.yaml +21 -0
  91. policyengine_us/parameters/gov/states/il/hfs/hbwd/premium/earned.yaml +96 -0
  92. policyengine_us/parameters/gov/states/il/hfs/hbwd/premium/unearned.yaml +96 -0
  93. policyengine_us/parameters/gov/states/mt/tax/income/deductions/itemized/spouse_allocation_rate.yaml +13 -0
  94. policyengine_us/parameters/gov/states/pa/tax/income/credits/eitc/match.yaml +10 -0
  95. policyengine_us/parameters/gov/states/pa/tax/income/credits/refundable.yaml +6 -0
  96. policyengine_us/parameters/gov/states/va/tax/income/credits/non_refundable.yaml +1 -1
  97. policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/amount.yaml +14 -0
  98. policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/percentage_disregarded.yaml +14 -0
  99. policyengine_us/parameters/gov/states/wa/dshs/tanf/income/limit.yaml +36 -0
  100. policyengine_us/parameters/gov/states/wa/dshs/tanf/maximum_family_size.yaml +14 -0
  101. policyengine_us/parameters/gov/states/wa/dshs/tanf/payment_standard/amount.yaml +32 -0
  102. policyengine_us/parameters/gov/states/wa/dshs/tanf/payment_standard/maximum_amount.yaml +12 -0
  103. policyengine_us/parameters/gov/states/wa/dshs/tanf/resource_limit.yaml +15 -0
  104. policyengine_us/parameters/gov/territories/pr/tax/income/credits/refundable.yaml +2 -0
  105. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/adjustment_limit_basis.yaml +12 -0
  106. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/exemption_rate.yaml +13 -0
  107. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/rate.yaml +12 -0
  108. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/threshold.yaml +13 -0
  109. policyengine_us/parameters/gov/territories/pr/tax/income/regular_tax/percentage.yaml +21 -0
  110. policyengine_us/parameters/gov/territories/pr/tax/income/tax_rate/amount.yaml +35 -0
  111. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/sources.yaml +18 -0
  112. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/sources.yaml +15 -0
  113. policyengine_us/parameters/gov/usda/snap/student/child_age_limit/single_parent.yaml +12 -0
  114. policyengine_us/parameters/gov/usda/snap/student/child_age_limit/two_parent.yaml +12 -0
  115. policyengine_us/parameters/gov/usda/snap/work_requirements/general/age_threshold/caring_dependent_child.yaml +1 -1
  116. policyengine_us/parameters/gov/usda/snap/work_requirements/general/age_threshold/exempted.yaml +1 -1
  117. policyengine_us/parameters/gov/usda/snap/work_requirements/general/weekly_hours_threshold.yaml +1 -1
  118. policyengine_us/parameters/simulation/disabled_programs.yaml +0 -1
  119. policyengine_us/reforms/congress/tlaib/__init__.py +4 -3
  120. policyengine_us/reforms/congress/tlaib/economic_dignity_for_all_agenda/__init__.py +9 -0
  121. policyengine_us/reforms/congress/tlaib/economic_dignity_for_all_agenda/edaa_end_child_poverty_act.py +237 -0
  122. policyengine_us/reforms/local/ny/__init__.py +4 -0
  123. policyengine_us/reforms/local/ny/mamdani_income_tax.py +84 -0
  124. policyengine_us/reforms/reforms.py +19 -4
  125. policyengine_us/reforms/states/ri/ctc/ri_ctc_reform.py +32 -1
  126. policyengine_us/reforms/states/ri/exemption/ri_exemption_reform.py +26 -5
  127. policyengine_us/reforms/states/ut/__init__.py +3 -0
  128. policyengine_us/reforms/states/ut/ut_refundable_eitc.py +118 -0
  129. policyengine_us/tests/policy/baseline/gov/ed/pell_grant/pell_grant_simplified_formula_applies.yaml +1 -1
  130. policyengine_us/tests/policy/baseline/gov/hhs/medicare/costs/medicare_cost.yaml +65 -0
  131. policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/base_part_a_premium.yaml +35 -0
  132. policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/base_part_b_premium.yaml +15 -0
  133. policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/income_adjusted_part_b_premium.yaml +77 -0
  134. policyengine_us/tests/policy/baseline/gov/hhs/tanf/tanf_fpg.yaml +53 -0
  135. policyengine_us/tests/policy/baseline/gov/irs/tax/federal_income/alternative_minimum_tax/exemption/amt_exemption.yaml +68 -0
  136. policyengine_us/tests/policy/baseline/gov/irs/tax/federal_income/alternative_minimum_tax/integration.yaml +26 -0
  137. policyengine_us/tests/policy/baseline/gov/simulation/labor_supply_response/income_elasticity.yaml +6 -12
  138. policyengine_us/tests/policy/baseline/gov/simulation/labor_supply_response/labor_supply_behavioral_response.yaml +24 -2
  139. policyengine_us/tests/policy/baseline/gov/simulation/labor_supply_response/substitution_elasticity.yaml +35 -10
  140. policyengine_us/tests/policy/baseline/gov/ssa/ssi/integration_tests.yaml +150 -4
  141. policyengine_us/tests/policy/baseline/gov/states/ar/tax/income/integration.yaml +35 -0
  142. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/additions/federal_deduction/co_federal_deduction_addback.yaml +2 -2
  143. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit.yaml +64 -0
  144. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible.yaml +122 -0
  145. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible_care_worker_count.yaml +65 -0
  146. policyengine_us/tests/policy/baseline/gov/states/ga/tax/income/credits/ga_itemizer_credit.yaml +44 -0
  147. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/alternative_tax/hi_alternative_tax_on_capital_gains_eligible.yaml +0 -8
  148. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/cdcc/hi_cdcc.yaml +4 -0
  149. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/cdcc/hi_cdcc_eligible.yaml +15 -0
  150. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/integration.yaml +96 -0
  151. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/asset/il_hbwd_countable_assets.yaml +23 -0
  152. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_age_eligible.yaml +39 -0
  153. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_asset_eligible.yaml +31 -0
  154. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_disability_eligible.yaml +35 -0
  155. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.yaml +65 -0
  156. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_employment_eligible.yaml +34 -0
  157. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_immigration_status_eligible.yaml +47 -0
  158. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_income_eligible.yaml +25 -0
  159. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/il_hbwd_person.yaml +34 -0
  160. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/il_hbwd_premium.yaml +84 -0
  161. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/integration.yaml +183 -0
  162. policyengine_us/tests/policy/baseline/gov/states/ma/dta/ssp/ma_state_supplement.yaml +2 -0
  163. policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/deductions/mo_federal_income_tax_deduction.yaml +2 -14
  164. policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/deductions/mo_pension_and_ss_or_ssd_deduction/mo_pension_and_ss_or_ssd_deduction_section_a.yaml +2 -2
  165. policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/deductions/mo_pension_and_ss_or_ssd_deduction/mo_pension_and_ss_or_ssd_deduction_section_b.yaml +1 -1
  166. policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/deductions/mo_pension_and_ss_or_ssd_deduction/mo_pension_and_ss_or_ssd_deduction_section_c.yaml +1 -1
  167. policyengine_us/tests/policy/baseline/gov/states/nc/tax/income/deductions/nc_itemized_deductions.yaml +2 -2
  168. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/credits/cdcc/nj_cdcc.yaml +8 -8
  169. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integation.yaml +57 -0
  170. policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_qualifying_income.yaml +29 -0
  171. policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/oh_cdcc.yaml +4 -4
  172. policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/integration.yaml +141 -0
  173. policyengine_us/tests/policy/baseline/gov/states/pa/tax/income/credits/pa_eitc.yaml +26 -0
  174. policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/credits/ss_benefits_credit/ut_ss_benefits_credit_max.yaml +5 -5
  175. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/benefit/wa_tanf_payment_standard.yaml +48 -0
  176. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.yaml +65 -0
  177. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.yaml +96 -0
  178. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.yaml +70 -0
  179. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/integration.yaml +676 -0
  180. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf.yaml +102 -0
  181. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf_resources_eligible.yaml +6 -7
  182. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_amount.yaml +29 -0
  183. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_eligible.yaml +15 -0
  184. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi.yaml +17 -0
  185. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi_person.yaml +17 -0
  186. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_normal_tax.yaml +31 -0
  187. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_tax_before_credits.yaml +19 -0
  188. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/pr_net_taxable_income.yaml +26 -0
  189. policyengine_us/tests/policy/baseline/gov/test_categorical_eligibility_vectorization.yaml +41 -0
  190. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/is_snap_higher_ed_student.yaml +23 -0
  191. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/is_snap_ineligible_student.yaml +75 -4
  192. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/meets_snap_parent_exception.yaml +345 -0
  193. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/meets_snap_work_exception.yaml +47 -0
  194. policyengine_us/tests/policy/baseline/gov/usda/snap/income/federal_work_study_income_exclusion.yaml +24 -0
  195. policyengine_us/tests/policy/baseline/gov/usda/snap/income/snap_countable_earner.yaml +25 -0
  196. policyengine_us/tests/policy/baseline/gov/usda/wic/integration.yaml +181 -0
  197. policyengine_us/tests/policy/baseline/gov/usda/wic/is_wic_at_nutritional_risk.yaml +33 -0
  198. policyengine_us/tests/policy/baseline/gov/usda/wic/is_wic_eligible.yaml +28 -15
  199. policyengine_us/tests/policy/baseline/household/demographic/geographic/state_group.yaml +21 -0
  200. policyengine_us/tests/policy/contrib/congress/tlaib/economic_dignity_for_all_agenda/edaa_end_child_poverty_act.yaml +198 -0
  201. policyengine_us/tests/policy/contrib/local/ny/nyc_mamdani_income_tax.yaml +51 -0
  202. policyengine_us/tests/policy/contrib/states/ri/ctc_reform_test.yaml +144 -0
  203. policyengine_us/tests/policy/contrib/states/ri/exemption_reform_test.yaml +2 -2
  204. policyengine_us/tests/policy/contrib/states/ut/ut_refundable_eitc.yaml +214 -0
  205. policyengine_us/variables/gov/ed/is_federal_work_study_participant.py +9 -0
  206. policyengine_us/variables/gov/ed/pell_grant/efc/pell_grant_simplified_formula_applies.py +1 -2
  207. policyengine_us/variables/gov/fcc/lifeline/is_lifeline_eligible.py +2 -2
  208. policyengine_us/variables/gov/hhs/head_start/early_head_start.py +2 -1
  209. policyengine_us/variables/gov/hhs/head_start/head_start.py +2 -1
  210. policyengine_us/variables/gov/hhs/head_start/is_head_start_categorically_eligible.py +1 -3
  211. policyengine_us/variables/gov/hhs/medicare/costs/medicare_cost.py +30 -0
  212. policyengine_us/variables/gov/hhs/medicare/costs/medicare_enrolled.py +14 -0
  213. policyengine_us/variables/gov/hhs/medicare/eligibility/part_a/base_part_a_premium.py +32 -0
  214. policyengine_us/variables/gov/hhs/medicare/eligibility/part_a/is_premium_free_part_a.py +22 -0
  215. policyengine_us/variables/gov/hhs/medicare/eligibility/part_a/medicare_quarters_of_coverage.py +16 -0
  216. policyengine_us/variables/gov/hhs/medicare/eligibility/part_b/base_part_b_premium.py +16 -0
  217. policyengine_us/variables/gov/hhs/medicare/eligibility/part_b/income_adjusted_part_b_premium.py +55 -0
  218. policyengine_us/variables/gov/hhs/tanf/cash/income/tanf_gross_earned_income.py +13 -0
  219. policyengine_us/variables/gov/hhs/tanf/cash/income/tanf_gross_unearned_income.py +13 -0
  220. policyengine_us/variables/gov/hhs/tanf/tanf_fpg.py +28 -0
  221. policyengine_us/variables/gov/irs/tax/federal_income/alternative_minimum_tax/exemption/amt_exemption.py +47 -0
  222. policyengine_us/variables/gov/irs/tax/federal_income/alternative_minimum_tax/income/amt_income_less_exemptions.py +4 -22
  223. policyengine_us/variables/gov/simulation/labor_supply_response/income_elasticity.py +1 -27
  224. policyengine_us/variables/gov/simulation/labor_supply_response/substitution_elasticity.py +18 -43
  225. policyengine_us/variables/gov/ssa/ssi/eligibility/income/deemed/from_ineligible_spouse/is_ssi_spousal_deeming_applies.py +41 -0
  226. policyengine_us/variables/gov/ssa/ssi/eligibility/income/deemed/from_ineligible_spouse/ssi_income_deemed_from_ineligible_spouse.py +20 -20
  227. policyengine_us/variables/gov/ssa/ssi/ssi.py +22 -1
  228. policyengine_us/variables/gov/ssa/ssi/ssi_amount_if_eligible.py +26 -4
  229. policyengine_us/variables/gov/states/ca/cpuc/care/eligibility/ca_care_categorically_eligible.py +2 -2
  230. policyengine_us/variables/gov/states/ca/tax/income/alternative_minimum_tax/exemption/ca_amt_exemption.py +4 -2
  231. policyengine_us/variables/gov/states/ca/tax/income/ca_income_tax.py +1 -0
  232. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit.py +26 -0
  233. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible.py +27 -0
  234. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible_care_worker.py +10 -0
  235. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible_care_worker_count.py +18 -0
  236. policyengine_us/variables/gov/states/ga/tax/income/credits/ga_itemizer_credit.py +19 -0
  237. policyengine_us/variables/gov/states/hi/tax/income/credits/cdcc/hi_cdcc.py +1 -1
  238. policyengine_us/variables/gov/states/hi/tax/income/credits/cdcc/hi_cdcc_eligible.py +14 -0
  239. policyengine_us/variables/gov/states/il/hfs/hbwd/asset/il_hbwd_countable_assets.py +34 -0
  240. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_age_eligible.py +20 -0
  241. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_asset_eligible.py +21 -0
  242. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_disability_eligible.py +20 -0
  243. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.py +33 -0
  244. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_employment_eligible.py +25 -0
  245. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_immigration_status_eligible.py +26 -0
  246. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_income_eligible.py +23 -0
  247. policyengine_us/variables/gov/states/il/hfs/hbwd/il_hbwd.py +17 -0
  248. policyengine_us/variables/gov/states/il/hfs/hbwd/il_hbwd_person.py +24 -0
  249. policyengine_us/variables/gov/states/il/hfs/hbwd/il_hbwd_premium.py +23 -0
  250. policyengine_us/variables/gov/states/il/hfs/hbwd/income/earned/il_hbwd_countable_earned_income.py +24 -0
  251. policyengine_us/variables/gov/states/il/hfs/hbwd/income/earned/il_hbwd_gross_earned_income.py +16 -0
  252. policyengine_us/variables/gov/states/il/hfs/hbwd/income/il_hbwd_countable_income.py +21 -0
  253. policyengine_us/variables/gov/states/il/hfs/hbwd/income/unearned/il_hbwd_countable_unearned_income.py +16 -0
  254. policyengine_us/variables/gov/states/ma/dta/ssp/ma_state_supplement.py +1 -0
  255. policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/general/mt_itemized_deductions_indiv.py +3 -2
  256. policyengine_us/variables/gov/states/nj/tax/income/credits/cdcc/nj_cdcc.py +2 -2
  257. policyengine_us/variables/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_qualifying_income.py +7 -3
  258. policyengine_us/variables/gov/states/oh/tax/income/credits/oh_cdcc.py +2 -2
  259. policyengine_us/variables/gov/states/pa/tax/income/credits/pa_eitc.py +16 -0
  260. policyengine_us/variables/gov/states/wa/dshs/tanf/benefit/wa_tanf_payment_standard.py +22 -0
  261. policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.py +42 -0
  262. policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.py +31 -0
  263. policyengine_us/variables/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.py +33 -0
  264. policyengine_us/variables/gov/states/wa/dshs/tanf/income/wa_tanf_countable_income.py +16 -0
  265. policyengine_us/variables/gov/states/wa/dshs/tanf/wa_tanf.py +34 -0
  266. policyengine_us/variables/gov/states/wa/dshs/tanf/wa_tanf_resources_eligible.py +3 -2
  267. policyengine_us/variables/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_amount.py +23 -0
  268. policyengine_us/variables/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_eligible.py +16 -0
  269. policyengine_us/variables/gov/territories/pr/tax/income/pr_agi.py +11 -1
  270. policyengine_us/variables/gov/territories/pr/tax/income/pr_agi_person.py +11 -1
  271. policyengine_us/variables/gov/territories/pr/tax/income/pr_income_tax.py +14 -0
  272. policyengine_us/variables/gov/territories/pr/tax/income/pr_normal_tax.py +16 -0
  273. policyengine_us/variables/gov/territories/pr/tax/income/pr_regular_tax_before_credits.py +20 -0
  274. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/deductions/pr_deductions.py +13 -0
  275. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/exemptions/pr_exemptions.py +13 -0
  276. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/pr_net_taxable_income.py +17 -0
  277. policyengine_us/variables/gov/usda/snap/eligibility/student/is_snap_higher_ed_student.py +17 -0
  278. policyengine_us/variables/gov/usda/snap/eligibility/student/is_snap_ineligible_student.py +47 -15
  279. policyengine_us/variables/gov/usda/snap/eligibility/student/meets_snap_parent_exception.py +42 -0
  280. policyengine_us/variables/gov/usda/snap/eligibility/student/meets_snap_work_exception.py +22 -0
  281. policyengine_us/variables/gov/usda/snap/income/snap_countable_earner.py +13 -2
  282. policyengine_us/variables/gov/usda/wic/is_wic_at_nutritional_risk.py +3 -10
  283. policyengine_us/variables/gov/usda/wic/is_wic_eligible.py +10 -1
  284. policyengine_us/variables/household/demographic/geographic/state_group.py +8 -5
  285. policyengine_us/variables/household/demographic/person/is_part_time_college_student.py +9 -0
  286. {policyengine_us-1.426.0.dist-info → policyengine_us-1.449.6.dist-info}/METADATA +1 -1
  287. {policyengine_us-1.426.0.dist-info → policyengine_us-1.449.6.dist-info}/RECORD +300 -161
  288. {policyengine_us-1.426.0.dist-info → policyengine_us-1.449.6.dist-info}/WHEEL +1 -1
  289. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/age_limit.yaml +0 -8
  290. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/amount.yaml +0 -13
  291. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/in_effect.yaml +0 -8
  292. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/min_birth_year.yaml +0 -8
  293. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/amount.yaml +0 -13
  294. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/in_effect.yaml +0 -8
  295. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/max_age.yaml +0 -8
  296. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/min_age.yaml +0 -8
  297. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/tax/rate.yaml +0 -8
  298. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/tax/threshold.yaml +0 -24
  299. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/income/age_multiplier_over_threshold.yaml +0 -11
  300. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/income/age_threshold.yaml +0 -9
  301. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/income/base.yaml +0 -11
  302. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution/age_multiplier_over_threshold.yaml +0 -11
  303. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution/age_threshold.yaml +0 -9
  304. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution/all.yaml +0 -6
  305. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution/by_position_and_decile.yaml +0 -71
  306. policyengine_us/parameters/gov/states/wa/dshs/tanf/eligibility/resources/limit.yaml +0 -11
  307. policyengine_us/reforms/congress/tlaib/income_security_package/__init__.py +0 -17
  308. policyengine_us/reforms/congress/tlaib/income_security_package/income_security_package.py +0 -402
  309. policyengine_us/tests/policy/baseline/gov/simulation/labor_supply_response/integration.yaml +0 -45
  310. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/integration.yaml +0 -154
  311. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/state_integration.yaml +0 -110
  312. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/test_individual_acts.yaml +0 -149
  313. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/unit_tests.yaml +0 -272
  314. /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
  315. /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
  316. /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
  317. /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
  318. /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
  319. /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
  320. /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
  321. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/in_effect.yaml +0 -0
  322. /policyengine_us/variables/gov/states/co/ssa/{state_suplement → state_supplement}/co_state_supplement.py +0 -0
  323. /policyengine_us/variables/gov/states/co/ssa/{state_suplement → state_supplement}/co_state_supplement_eligible.py +0 -0
  324. {policyengine_us-1.426.0.dist-info → policyengine_us-1.449.6.dist-info}/entry_points.txt +0 -0
  325. {policyengine_us-1.426.0.dist-info → policyengine_us-1.449.6.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,237 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ def create_ecpa_only() -> Reform:
5
+ class ecpa_child_benefit(Variable):
6
+ value_type = float
7
+ entity = Person
8
+ definition_period = YEAR
9
+ label = "End Child Poverty Act child benefit"
10
+ unit = USD
11
+ documentation = (
12
+ "Universal child benefit under the End Child Poverty Act"
13
+ )
14
+ reference = "placeholder - bill not yet introduced"
15
+
16
+ def formula(person, period, parameters):
17
+ p = parameters(
18
+ period
19
+ ).gov.contrib.congress.tlaib.economic_dignity_for_all_agenda.end_child_poverty_act
20
+
21
+ age = person("age", period)
22
+ is_eligible = age < p.child_benefit.age_limit
23
+
24
+ # Use FPG additional_person amount (CONTIGUOUS_US for all states), rounded to nearest $10
25
+ p_fpg = parameters(period).gov.hhs.fpg
26
+ fpg_amount = p_fpg.additional_person.CONTIGUOUS_US
27
+ amount = round(fpg_amount / 10) * 10
28
+
29
+ return is_eligible * amount
30
+
31
+ class ecpa_adult_dependent_credit(Variable):
32
+ value_type = float
33
+ entity = Person
34
+ definition_period = YEAR
35
+ label = "End Child Poverty Act adult dependent credit"
36
+ unit = USD
37
+ documentation = (
38
+ "Credit for adult dependents under the End Child Poverty Act"
39
+ )
40
+ reference = "placeholder - bill not yet introduced"
41
+
42
+ def formula(person, period, parameters):
43
+ p = parameters(
44
+ period
45
+ ).gov.contrib.congress.tlaib.economic_dignity_for_all_agenda.end_child_poverty_act
46
+
47
+ age = person("age", period)
48
+ is_dependent = person("is_tax_unit_dependent", period)
49
+
50
+ is_eligible = (
51
+ age >= p.adult_dependent_credit.min_age
52
+ ) & is_dependent
53
+
54
+ return is_eligible * p.adult_dependent_credit.amount
55
+
56
+ class ecpa_filer_credit(Variable):
57
+ value_type = float
58
+ entity = TaxUnit
59
+ definition_period = YEAR
60
+ label = "End Child Poverty Act filer credit"
61
+ unit = USD
62
+ documentation = "Filer credit under the End Child Poverty Act for eligible tax filers"
63
+ reference = "placeholder - bill not yet introduced"
64
+
65
+ def formula(tax_unit, period, parameters):
66
+ p = parameters(
67
+ period
68
+ ).gov.contrib.congress.tlaib.economic_dignity_for_all_agenda.end_child_poverty_act
69
+
70
+ person = tax_unit.members
71
+ age = person("age", period)
72
+
73
+ is_head_or_spouse = person("is_tax_unit_head_or_spouse", period)
74
+
75
+ is_eligible_age = (age >= p.filer_credit.eligibility.min_age) & (
76
+ age < p.filer_credit.eligibility.max_age
77
+ )
78
+ is_eligible_filer = is_head_or_spouse & is_eligible_age
79
+
80
+ has_eligible_filer = tax_unit.any(is_eligible_filer)
81
+
82
+ filing_status = tax_unit("filing_status", period)
83
+ amount = p.filer_credit.amount[filing_status]
84
+
85
+ agi = tax_unit("adjusted_gross_income", period)
86
+ excess_agi = max_(
87
+ agi - p.filer_credit.phase_out.start[filing_status], 0
88
+ )
89
+ phase_out = excess_agi * p.filer_credit.phase_out.rate
90
+
91
+ phased_out_amount = max_(amount - phase_out, 0)
92
+
93
+ return has_eligible_filer * phased_out_amount
94
+
95
+ class household_benefits(Variable):
96
+ value_type = float
97
+ entity = Household
98
+ label = "benefits"
99
+ unit = USD
100
+ definition_period = YEAR
101
+
102
+ def formula(household, period, parameters):
103
+ # Start with baseline benefits from parameters
104
+ BENEFITS = list(
105
+ parameters(period).gov.household.household_benefits
106
+ )
107
+
108
+ # Add ECPA child benefit
109
+ BENEFITS.append("ecpa_child_benefit")
110
+
111
+ return add(household, period, BENEFITS)
112
+
113
+ class spm_unit_benefits(Variable):
114
+ value_type = float
115
+ entity = SPMUnit
116
+ label = "Benefits"
117
+ definition_period = YEAR
118
+ unit = USD
119
+
120
+ def formula(spm_unit, period, parameters):
121
+ BENEFITS = [
122
+ "social_security",
123
+ "ssi",
124
+ "ma_state_supplement",
125
+ "ca_cvrp",
126
+ "co_ccap_subsidy",
127
+ "co_state_supplement",
128
+ "co_oap",
129
+ "snap",
130
+ "wic",
131
+ "free_school_meals",
132
+ "reduced_price_school_meals",
133
+ "spm_unit_broadband_subsidy",
134
+ "spm_unit_energy_subsidy",
135
+ "tanf",
136
+ "high_efficiency_electric_home_rebate",
137
+ "residential_efficiency_electrification_rebate",
138
+ "unemployment_compensation",
139
+ "ak_energy_relief",
140
+ "basic_income",
141
+ "ny_drive_clean_rebate",
142
+ ]
143
+
144
+ # Add ECPA child benefit
145
+ BENEFITS.append("ecpa_child_benefit")
146
+
147
+ if parameters(period).gov.contrib.ubi_center.flat_tax.deduct_ptc:
148
+ BENEFITS.append("aca_ptc")
149
+ if not parameters(period).gov.hud.abolition:
150
+ BENEFITS.append("spm_unit_capped_housing_subsidy")
151
+
152
+ return add(spm_unit, period, BENEFITS)
153
+
154
+ class income_tax_refundable_credits(Variable):
155
+ value_type = float
156
+ entity = TaxUnit
157
+ definition_period = YEAR
158
+ label = "federal refundable income tax credits"
159
+ unit = USD
160
+
161
+ def formula(tax_unit, period, parameters):
162
+ # Get standard refundable credits, excluding EITC and refundable CTC (ECPA replaces them)
163
+ standard_credits = parameters(period).gov.irs.credits.refundable
164
+
165
+ CREDITS = [
166
+ c
167
+ for c in standard_credits
168
+ if c not in ["eitc", "refundable_ctc"]
169
+ ]
170
+
171
+ base_credits = add(tax_unit, period, CREDITS) if CREDITS else 0
172
+
173
+ # Add ECPA credits
174
+ ecpa_filer = tax_unit("ecpa_filer_credit", period)
175
+ ecpa_adult_dep = add(
176
+ tax_unit, period, ["ecpa_adult_dependent_credit"]
177
+ )
178
+ return base_credits + ecpa_filer + ecpa_adult_dep
179
+
180
+ class income_tax_non_refundable_credits(Variable):
181
+ value_type = float
182
+ entity = TaxUnit
183
+ definition_period = YEAR
184
+ label = "federal non-refundable income tax credits"
185
+ unit = USD
186
+
187
+ def formula(tax_unit, period, parameters):
188
+ # Get the base list of non-refundable credits from parameters
189
+ p = parameters(period).gov.irs.credits
190
+ base_credits = list(p.non_refundable)
191
+
192
+ # ECPA removes non_refundable_ctc from the list
193
+ CREDITS = [c for c in base_credits if c != "non_refundable_ctc"]
194
+
195
+ return add(tax_unit, period, CREDITS)
196
+
197
+ class reform(Reform):
198
+ def apply(self):
199
+ # Update only ECPA variables
200
+ self.update_variable(ecpa_child_benefit)
201
+ self.update_variable(ecpa_adult_dependent_credit)
202
+ self.update_variable(ecpa_filer_credit)
203
+ self.update_variable(household_benefits)
204
+ self.update_variable(spm_unit_benefits)
205
+ self.update_variable(income_tax_refundable_credits)
206
+ self.update_variable(income_tax_non_refundable_credits)
207
+
208
+ return reform
209
+
210
+
211
+ end_child_poverty_act = create_ecpa_only()
212
+
213
+
214
+ def create_end_child_poverty_act_reform(
215
+ parameters, period, bypass: bool = False
216
+ ):
217
+ """Auto-application function for structural reforms."""
218
+ if bypass:
219
+ return create_ecpa_only()
220
+
221
+ from policyengine_core.periods import period as period_
222
+
223
+ p = parameters.gov.contrib.congress.tlaib.economic_dignity_for_all_agenda
224
+
225
+ reform_active = False
226
+ current_period = period_(period)
227
+
228
+ for i in range(5):
229
+ if p(current_period).end_child_poverty_act.in_effect:
230
+ reform_active = True
231
+ break
232
+ current_period = current_period.offset(1, "year")
233
+
234
+ if reform_active:
235
+ return create_ecpa_only()
236
+ else:
237
+ return None
@@ -0,0 +1,4 @@
1
+ from .mamdani_income_tax import (
2
+ create_nyc_mamdani_income_tax_reform,
3
+ nyc_mamdani_income_tax,
4
+ )
@@ -0,0 +1,84 @@
1
+ from policyengine_us.model_api import *
2
+ from policyengine_core.periods import period as period_
3
+
4
+
5
+ def create_nyc_mamdani_income_tax() -> Reform:
6
+ class nyc_mamdani_income_tax(Variable):
7
+ value_type = float
8
+ entity = Person
9
+ label = "Zohran Mamdani NYC income tax"
10
+ unit = USD
11
+ definition_period = YEAR
12
+ defined_for = "in_nyc"
13
+
14
+ def formula(person, period, parameters):
15
+ taxable_income = person.tax_unit("nyc_taxable_income", period)
16
+ p = parameters(period).gov.local.ny.mamdani_income_tax
17
+ return p.rate.calc(taxable_income)
18
+
19
+ class nyc_income_tax_before_credits(Variable):
20
+ value_type = float
21
+ entity = TaxUnit
22
+ label = "NYC income tax before credits"
23
+ unit = USD
24
+ definition_period = YEAR
25
+ defined_for = "in_nyc"
26
+
27
+ def formula(tax_unit, period, parameters):
28
+ taxable_income = tax_unit("nyc_taxable_income", period)
29
+ filing_status = tax_unit("filing_status", period)
30
+ filing_statuses = filing_status.possible_values
31
+ p = parameters(period).gov.local.ny.nyc.tax.income.rates
32
+ regular_tax = select(
33
+ [
34
+ filing_status == filing_statuses.SINGLE,
35
+ filing_status == filing_statuses.JOINT,
36
+ filing_status == filing_statuses.HEAD_OF_HOUSEHOLD,
37
+ filing_status == filing_statuses.SURVIVING_SPOUSE,
38
+ filing_status == filing_statuses.SEPARATE,
39
+ ],
40
+ [
41
+ p.single.calc(taxable_income),
42
+ p.joint.calc(taxable_income),
43
+ p.head_of_household.calc(taxable_income),
44
+ p.surviving_spouse.calc(taxable_income),
45
+ p.separate.calc(taxable_income),
46
+ ],
47
+ )
48
+ mamdani_tax = add(tax_unit, period, ["nyc_mamdani_income_tax"])
49
+ return regular_tax + mamdani_tax
50
+
51
+ class reform(Reform):
52
+ def apply(self):
53
+ self.update_variable(nyc_mamdani_income_tax)
54
+ self.update_variable(nyc_income_tax_before_credits)
55
+
56
+ return reform
57
+
58
+
59
+ def create_nyc_mamdani_income_tax_reform(
60
+ parameters, period, bypass: bool = False
61
+ ):
62
+ if bypass:
63
+ return create_nyc_mamdani_income_tax()
64
+
65
+ p = parameters.gov.local.ny.mamdani_income_tax
66
+
67
+ reform_active = False
68
+ current_period = period_(period)
69
+
70
+ for i in range(5):
71
+ if p(current_period).in_effect:
72
+ reform_active = True
73
+ break
74
+ current_period = current_period.offset(1, "year")
75
+
76
+ if reform_active:
77
+ return create_nyc_mamdani_income_tax()
78
+ else:
79
+ return None
80
+
81
+
82
+ nyc_mamdani_income_tax = create_nyc_mamdani_income_tax_reform(
83
+ None, None, bypass=True
84
+ )
@@ -28,8 +28,9 @@ from .harris.rent_relief_act.rent_relief_tax_credit import (
28
28
  )
29
29
  from .congress.tlaib import (
30
30
  create_end_child_poverty_act_reform,
31
- income_security_package,
32
- create_income_security_package_reform,
31
+ )
32
+ from .congress.tlaib.economic_dignity_for_all_agenda import (
33
+ create_end_child_poverty_act_reform as create_edaa_end_child_poverty_act_reform,
33
34
  )
34
35
  from .congress.tlaib.boost import (
35
36
  create_boost_middle_class_tax_credit_reform,
@@ -100,6 +101,12 @@ from .reconciliation import (
100
101
  from .states.mi.surtax import (
101
102
  create_mi_surtax_reform,
102
103
  )
104
+ from .local.ny.mamdani_income_tax import (
105
+ create_nyc_mamdani_income_tax_reform,
106
+ )
107
+ from .states.ut import (
108
+ create_ut_refundable_eitc_reform,
109
+ )
103
110
  from .additional_tax_bracket import (
104
111
  create_additional_tax_bracket_reform,
105
112
  )
@@ -170,7 +177,7 @@ def create_structural_reforms_from_parameters(parameters, period):
170
177
  end_child_poverty_act = create_end_child_poverty_act_reform(
171
178
  parameters, period
172
179
  )
173
- income_security_package_reform = create_income_security_package_reform(
180
+ edaa_end_child_poverty_act = create_edaa_end_child_poverty_act_reform(
174
181
  parameters, period
175
182
  )
176
183
  boost_middle_class_tax_credit = (
@@ -249,6 +256,12 @@ def create_structural_reforms_from_parameters(parameters, period):
249
256
  )
250
257
  mi_surtax = create_mi_surtax_reform(parameters, period)
251
258
 
259
+ nyc_mamdani_income_tax = create_nyc_mamdani_income_tax_reform(
260
+ parameters, period
261
+ )
262
+
263
+ ut_refundable_eitc = create_ut_refundable_eitc_reform(parameters, period)
264
+
252
265
  american_worker_rebate_act = create_american_worker_rebate_act_reform(
253
266
  parameters, period
254
267
  )
@@ -288,7 +301,7 @@ def create_structural_reforms_from_parameters(parameters, period):
288
301
  middle_class_tax_credit,
289
302
  rent_relief_tax_credit,
290
303
  end_child_poverty_act,
291
- income_security_package_reform,
304
+ edaa_end_child_poverty_act,
292
305
  boost_middle_class_tax_credit,
293
306
  mn_walz_hf1938,
294
307
  or_rebate_state_tax_exempt,
@@ -315,6 +328,8 @@ def create_structural_reforms_from_parameters(parameters, period):
315
328
  reconciled_ssn_for_llc_and_aoc,
316
329
  ctc_additional_bracket,
317
330
  mi_surtax,
331
+ nyc_mamdani_income_tax,
332
+ ut_refundable_eitc,
318
333
  additional_tax_bracket,
319
334
  american_worker_rebate_act,
320
335
  ctc_per_child_phase_out,
@@ -24,6 +24,30 @@ def create_ri_ctc() -> Reform:
24
24
  eligible = is_dependent & meets_age
25
25
  return tax_unit.sum(eligible)
26
26
 
27
+ class ri_ctc_young_child_boost(Variable):
28
+ value_type = float
29
+ entity = TaxUnit
30
+ label = "Rhode Island CTC young child boost"
31
+ unit = USD
32
+ definition_period = YEAR
33
+ defined_for = StateCode.RI
34
+
35
+ def formula(tax_unit, period, parameters):
36
+ p = parameters(period).gov.contrib.states.ri.ctc
37
+
38
+ person = tax_unit.members
39
+ age = person("age", period)
40
+ is_dependent = person("is_tax_unit_dependent", period)
41
+
42
+ # Check both general CTC eligibility and young child age limit
43
+ meets_age = age < p.age_limit
44
+ meets_young_child_age = age < p.young_child_boost.age_limit
45
+
46
+ eligible_young_children = tax_unit.sum(
47
+ is_dependent & meets_age & meets_young_child_age
48
+ )
49
+ return eligible_young_children * p.young_child_boost.amount
50
+
27
51
  class ri_ctc_maximum(Variable):
28
52
  value_type = float
29
53
  entity = TaxUnit
@@ -35,8 +59,14 @@ def create_ri_ctc() -> Reform:
35
59
  def formula(tax_unit, period, parameters):
36
60
  p = parameters(period).gov.contrib.states.ri.ctc
37
61
 
62
+ # Base credit for all eligible children
38
63
  eligible_children = tax_unit("ri_ctc_eligible_children", period)
39
- return eligible_children * p.amount
64
+ base_credit = eligible_children * p.amount
65
+
66
+ # Young child boost
67
+ young_child_boost = tax_unit("ri_ctc_young_child_boost", period)
68
+
69
+ return base_credit + young_child_boost
40
70
 
41
71
  class ri_ctc_phaseout(Variable):
42
72
  value_type = float
@@ -142,6 +172,7 @@ def create_ri_ctc() -> Reform:
142
172
  class reform(Reform):
143
173
  def apply(self):
144
174
  self.update_variable(ri_ctc_eligible_children)
175
+ self.update_variable(ri_ctc_young_child_boost)
145
176
  self.update_variable(ri_ctc_maximum)
146
177
  self.update_variable(ri_ctc_phaseout)
147
178
  self.update_variable(ri_total_ctc)
@@ -68,13 +68,29 @@ def create_ri_exemption_reform() -> Reform:
68
68
  defined_for = StateCode.RI
69
69
 
70
70
  def formula(tax_unit, period, parameters):
71
- p = parameters(period).gov.contrib.states.ri.dependent_exemption
72
71
 
73
72
  maximum = tax_unit("ri_dependent_exemption_maximum", period)
74
73
  phaseout = tax_unit("ri_dependent_exemption_phaseout", period)
75
74
 
76
75
  return max_(maximum - phaseout, 0)
77
76
 
77
+ class ri_older_dependents_count(Variable):
78
+ value_type = float
79
+ entity = TaxUnit
80
+ label = "Rhode Island older dependents count"
81
+ unit = USD
82
+ definition_period = YEAR
83
+ defined_for = StateCode.RI
84
+
85
+ def formula(tax_unit, period, parameters):
86
+ person = tax_unit.members
87
+ is_dependent = person("is_tax_unit_dependent", period)
88
+ total_dependents = tax_unit.sum(is_dependent)
89
+ eligible_dependent_exemptions = tax_unit(
90
+ "ri_eligible_dependents_count", period
91
+ )
92
+ return max_(0, total_dependents - eligible_dependent_exemptions)
93
+
78
94
  class ri_exemptions(Variable):
79
95
  value_type = float
80
96
  entity = TaxUnit
@@ -88,10 +104,14 @@ def create_ri_exemption_reform() -> Reform:
88
104
 
89
105
  # Calculate personal exemptions base amount
90
106
  filing_status = tax_unit("filing_status", period)
91
- personal_exemptions = where(
92
- filing_status == filing_status.possible_values.JOINT,
93
- 2,
94
- 1,
107
+ older_dependents = tax_unit("ri_older_dependents_count", period)
108
+ personal_exemptions = (
109
+ where(
110
+ filing_status == filing_status.possible_values.JOINT,
111
+ 2,
112
+ 1,
113
+ )
114
+ + older_dependents
95
115
  )
96
116
  personal_exemption_base = personal_exemptions * p_base.amount
97
117
 
@@ -118,6 +138,7 @@ def create_ri_exemption_reform() -> Reform:
118
138
  self.update_variable(ri_dependent_exemption_phaseout)
119
139
  self.update_variable(ri_dependent_exemption)
120
140
  self.update_variable(ri_exemptions)
141
+ self.update_variable(ri_older_dependents_count)
121
142
 
122
143
  return reform
123
144
 
@@ -0,0 +1,3 @@
1
+ from .ut_refundable_eitc import (
2
+ create_ut_refundable_eitc_reform,
3
+ )
@@ -0,0 +1,118 @@
1
+ from policyengine_us.model_api import *
2
+ from policyengine_core.periods import period as period_
3
+
4
+
5
+ def create_ut_refundable_eitc() -> Reform:
6
+ class ut_has_qualifying_child_for_refundable_eitc(Variable):
7
+ value_type = bool
8
+ entity = TaxUnit
9
+ label = "Utah tax unit has qualifying child for refundable EITC"
10
+ defined_for = StateCode.UT
11
+ definition_period = YEAR
12
+
13
+ def formula(tax_unit, period, parameters):
14
+ person = tax_unit.members
15
+ p = parameters(period).gov.contrib.states.ut.eitc
16
+ age = person("age", period)
17
+ is_dependent = person("is_tax_unit_dependent", period)
18
+ is_qualifying_child = (age <= p.max_age) & is_dependent
19
+ return tax_unit.any(is_qualifying_child)
20
+
21
+ class ut_refundable_eitc(Variable):
22
+ value_type = float
23
+ entity = TaxUnit
24
+ label = "Utah refundable EITC"
25
+ unit = USD
26
+ definition_period = YEAR
27
+ defined_for = "ut_has_qualifying_child_for_refundable_eitc"
28
+
29
+ adds = ["ut_eitc"]
30
+
31
+ class ut_eitc(Variable):
32
+ value_type = float
33
+ entity = TaxUnit
34
+ label = "Utah Earned Income Tax Credit"
35
+ unit = USD
36
+ documentation = "This credit is a fraction of the federal EITC."
37
+ definition_period = YEAR
38
+ defined_for = StateCode.UT
39
+ reference = "https://le.utah.gov/xcode/Title59/Chapter10/59-10-S1044.html?v=C59-10-S1044_2022050420220504"
40
+
41
+ def formula(tax_unit, period, parameters):
42
+ p = parameters(
43
+ period
44
+ ).gov.states.ut.tax.income.credits.earned_income
45
+ federal_eitc = tax_unit("eitc", period)
46
+ return p.rate * federal_eitc
47
+
48
+ class ut_non_refundable_eitc(Variable):
49
+ value_type = float
50
+ entity = TaxUnit
51
+ label = "Utah non-refundable EITC"
52
+ unit = USD
53
+ definition_period = YEAR
54
+ defined_for = StateCode.UT
55
+
56
+ adds = ["ut_eitc"]
57
+ subtracts = ["ut_refundable_eitc"]
58
+
59
+ class ut_non_refundable_credits(Variable):
60
+ value_type = float
61
+ entity = TaxUnit
62
+ label = "Utah non-refundable tax credits"
63
+ unit = USD
64
+ definition_period = YEAR
65
+ defined_for = StateCode.UT
66
+
67
+ adds = [
68
+ "ut_non_refundable_eitc",
69
+ "ut_retirement_credit",
70
+ "ut_ss_benefits_credit",
71
+ "ut_at_home_parent_credit",
72
+ "ut_ctc",
73
+ ]
74
+
75
+ class ut_refundable_credits(Variable):
76
+ value_type = float
77
+ entity = TaxUnit
78
+ label = "Utah refundable credits"
79
+ unit = USD
80
+ definition_period = YEAR
81
+ defined_for = StateCode.UT
82
+
83
+ adds = ["ut_refundable_eitc"]
84
+
85
+ class reform(Reform):
86
+ def apply(self):
87
+ self.update_variable(ut_has_qualifying_child_for_refundable_eitc)
88
+ self.update_variable(ut_refundable_eitc)
89
+ self.update_variable(ut_non_refundable_eitc)
90
+ self.update_variable(ut_eitc)
91
+ self.update_variable(ut_non_refundable_credits)
92
+ self.update_variable(ut_refundable_credits)
93
+
94
+ return reform
95
+
96
+
97
+ def create_ut_refundable_eitc_reform(parameters, period, bypass: bool = False):
98
+ if bypass:
99
+ return create_ut_refundable_eitc()
100
+
101
+ p = parameters.gov.contrib.states.ut.eitc
102
+
103
+ reform_active = False
104
+ current_period = period_(period)
105
+
106
+ for i in range(5):
107
+ if p(current_period).in_effect:
108
+ reform_active = True
109
+ break
110
+ current_period = current_period.offset(1, "year")
111
+
112
+ if reform_active:
113
+ return create_ut_refundable_eitc()
114
+ else:
115
+ return None
116
+
117
+
118
+ ut_refundable_eitc = create_ut_refundable_eitc_reform(None, None, bypass=True)
@@ -135,7 +135,7 @@
135
135
  tanf: 0
136
136
  spm_unit_wic: 0
137
137
  output:
138
- pell_grant_simplified_formula_applies: true
138
+ pell_grant_simplified_formula_applies: [false, true] # main has no benefits, other has medicaid
139
139
 
140
140
  - name: Too much income
141
141
  period: 2023