policyengine-us 1.424.6__py3-none-any.whl → 1.455.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (461) 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/bls/cpi/c_cpi_u.yaml +23 -6
  4. policyengine_us/parameters/gov/bls/cpi/cpi_u.yaml +21 -18
  5. policyengine_us/parameters/gov/bls/cpi/cpi_w.yaml +25 -22
  6. 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
  7. policyengine_us/parameters/gov/contrib/harris/capital_gains/rates.yaml +12 -0
  8. policyengine_us/parameters/gov/contrib/harris/capital_gains/thresholds.yaml +168 -0
  9. policyengine_us/parameters/gov/contrib/states/ri/ctc/young_child_boost/age_limit.yaml +9 -0
  10. policyengine_us/parameters/gov/contrib/states/ri/ctc/young_child_boost/amount.yaml +9 -0
  11. policyengine_us/parameters/gov/contrib/states/ri/dependent_exemption/amount.yaml +2 -2
  12. policyengine_us/parameters/gov/contrib/states/ut/eitc/in_effect.yaml +9 -0
  13. policyengine_us/parameters/gov/contrib/states/ut/eitc/max_age.yaml +9 -0
  14. policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/child/child.yaml +0 -1
  15. policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/income/limit/couple.yaml +60 -51
  16. policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/income/limit/individual.yaml +60 -51
  17. policyengine_us/parameters/gov/hhs/medicare/part_a/deductible.yaml +13 -0
  18. policyengine_us/parameters/gov/hhs/medicare/part_a/default_quarters_of_coverage.yaml +10 -0
  19. policyengine_us/parameters/gov/hhs/medicare/part_a/full_premium.yaml +13 -0
  20. policyengine_us/parameters/gov/hhs/medicare/part_a/premium_free_quarters_threshold.yaml +10 -0
  21. policyengine_us/parameters/gov/hhs/medicare/part_a/reduced_premium.yaml +13 -0
  22. policyengine_us/parameters/gov/hhs/medicare/part_a/reduced_premium_quarters_threshold.yaml +10 -0
  23. policyengine_us/parameters/gov/hhs/medicare/part_b/base_premium.yaml +16 -0
  24. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/head_of_household.yaml +50 -0
  25. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/joint.yaml +49 -0
  26. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/separate.yaml +30 -0
  27. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/single.yaml +50 -0
  28. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/surviving_spouse.yaml +49 -0
  29. policyengine_us/parameters/gov/hhs/tanf/cash/income/sources/earned.yaml +13 -0
  30. policyengine_us/parameters/gov/hhs/tanf/cash/income/sources/unearned.yaml +23 -0
  31. policyengine_us/parameters/gov/irs/ald/student_loan_interest/reduction/start.yaml +7 -1
  32. policyengine_us/parameters/gov/irs/capital_gains/rates.yaml +17 -0
  33. policyengine_us/parameters/gov/irs/capital_gains/thresholds.yaml +182 -0
  34. policyengine_us/parameters/gov/irs/credits/cdcc/eligibility/child_age.yaml +0 -1
  35. policyengine_us/parameters/gov/irs/credits/clean_vehicle/new/eligibility/min_kwh.yaml +0 -1
  36. policyengine_us/parameters/gov/irs/credits/clean_vehicle/used/eligibility/sale_price_limit.yaml +0 -1
  37. policyengine_us/parameters/gov/irs/credits/ctc/amount/base.yaml +14 -9
  38. policyengine_us/parameters/gov/irs/credits/ctc/refundable/individual_max.yaml +14 -7
  39. policyengine_us/parameters/gov/irs/credits/education/american_opportunity_credit/abolition.yaml +0 -1
  40. policyengine_us/parameters/gov/irs/credits/education/american_opportunity_credit/refundability.yaml +0 -1
  41. policyengine_us/parameters/gov/irs/credits/education/lifetime_learning_credit/abolition.yaml +0 -1
  42. policyengine_us/parameters/gov/irs/credits/education/lifetime_learning_credit/expense_limit.yaml +0 -1
  43. policyengine_us/parameters/gov/irs/credits/eitc/max.yaml +73 -81
  44. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/advanced_main_air_circulating_fan.yaml +0 -1
  45. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/door.yaml +0 -1
  46. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/energy_efficient_central_air_conditioner.yaml +0 -1
  47. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/heat_pump_heat_pump_water_heater_biomass_stove_boiler.yaml +0 -1
  48. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/home_energy_audit.yaml +0 -1
  49. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/qualified_furnace_or_hot_water_boiler.yaml +0 -1
  50. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/roof.yaml +0 -1
  51. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/total.yaml +0 -1
  52. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/window.yaml +0 -1
  53. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/lifetime/total.yaml +0 -1
  54. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/lifetime/window.yaml +0 -1
  55. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/in_effect.yaml +0 -1
  56. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/qualified_expenditures/credits.yaml +0 -1
  57. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/qualified_expenditures/heat_pump_heat_pump_water_heater_biomass_stove_boiler.yaml +0 -1
  58. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/rates/home_energy_audit.yaml +0 -1
  59. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/rates/improvements.yaml +0 -1
  60. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/rates/property.yaml +0 -1
  61. policyengine_us/parameters/gov/irs/credits/premium_tax_credit/phase_out/ending_rate.yaml +0 -1
  62. policyengine_us/parameters/gov/irs/credits/premium_tax_credit/phase_out/starting_rate.yaml +0 -1
  63. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/max/adult.yaml +0 -1
  64. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/max/dependent.yaml +0 -1
  65. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/phase_out/length.yaml +0 -1
  66. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/phase_out/threshold.yaml +0 -1
  67. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/max/adult.yaml +0 -1
  68. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/max/child.yaml +0 -1
  69. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/phase_out/rate.yaml +0 -1
  70. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/phase_out/threshold.yaml +0 -1
  71. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/max/adult.yaml +0 -1
  72. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/max/child.yaml +0 -1
  73. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/phase_out/rate.yaml +0 -1
  74. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/phase_out/threshold.yaml +0 -1
  75. policyengine_us/parameters/gov/irs/credits/residential_clean_energy/applicable_percentage.yaml +0 -1
  76. policyengine_us/parameters/gov/irs/credits/residential_clean_energy/elements.yaml +0 -1
  77. policyengine_us/parameters/gov/irs/credits/residential_clean_energy/fuel_cell_cap_per_kw.yaml +0 -1
  78. policyengine_us/parameters/gov/irs/deductions/qbi/phase_out/start.yaml +19 -7
  79. policyengine_us/parameters/gov/irs/deductions/standard/aged_or_blind/age_threshold.yaml +0 -1
  80. policyengine_us/parameters/gov/irs/deductions/standard/aged_or_blind/amount.yaml +10 -52
  81. policyengine_us/parameters/gov/irs/deductions/standard/amount.yaml +16 -59
  82. policyengine_us/parameters/gov/irs/gross_income/retirement_contributions/catch_up/limit/401k.yaml +8 -1
  83. policyengine_us/parameters/gov/irs/gross_income/retirement_contributions/catch_up/limit/ira.yaml +7 -0
  84. policyengine_us/parameters/gov/irs/gross_income/retirement_contributions/limit/401k.yaml +6 -0
  85. policyengine_us/parameters/gov/irs/gross_income/retirement_contributions/limit/ira.yaml +5 -0
  86. policyengine_us/parameters/gov/irs/income/amt/exemption/amount.yaml +15 -59
  87. policyengine_us/parameters/gov/irs/income/amt/exemption/phase_out/start.yaml +11 -60
  88. policyengine_us/parameters/gov/irs/income/bracket.yaml +114 -213
  89. policyengine_us/parameters/gov/irs/payroll/medicare/additional/exclusion.yaml +0 -1
  90. policyengine_us/parameters/gov/local/ny/mamdani_income_tax/in_effect.yaml +10 -0
  91. policyengine_us/parameters/gov/local/ny/mamdani_income_tax/rate.yaml +18 -0
  92. policyengine_us/parameters/gov/states/ar/tax/income/rates/main/reduction.yaml +30 -0
  93. policyengine_us/parameters/gov/states/ca/chhs/medi_cal_enrollment_freeze/in_effect.yaml +12 -0
  94. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/amount/joint.yaml +10 -0
  95. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/amount/non_joint.yaml +10 -0
  96. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/income_limit/joint.yaml +10 -0
  97. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/income_limit/non_joint.yaml +10 -0
  98. policyengine_us/parameters/gov/states/co/tax/income/credits/refundable.yaml +10 -0
  99. policyengine_us/parameters/gov/states/ga/tax/income/credits/itemizer/amount.yaml +14 -0
  100. policyengine_us/parameters/gov/states/ga/tax/income/credits/non_refundable.yaml +9 -0
  101. policyengine_us/parameters/gov/states/hi/tax/income/alternative_tax/availability.yaml +2 -3
  102. policyengine_us/parameters/gov/states/il/dhs/aabd/{qualified_noncitizen_status.yaml → qualified_noncitizen_statuses.yaml} +3 -5
  103. policyengine_us/parameters/gov/states/il/dhs/tanf/{qualified_noncitizen_status.yaml → qualified_noncitizen_statuses.yaml} +2 -2
  104. policyengine_us/parameters/gov/states/il/hfs/README.md +1 -0
  105. policyengine_us/parameters/gov/states/il/hfs/bcc/eligibility/age.yaml +12 -0
  106. policyengine_us/parameters/gov/states/il/hfs/fpp/eligibility/household_size.yaml +14 -0
  107. policyengine_us/parameters/gov/states/il/hfs/fpp/eligibility/income_limit.yaml +15 -0
  108. policyengine_us/parameters/gov/states/il/hfs/hbwd/README.md +1 -0
  109. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/age.yaml +25 -0
  110. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/asset/limit.yaml +15 -0
  111. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/income/limit.yaml +15 -0
  112. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/income/sources/earned.yaml +13 -0
  113. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/income/sources/unearned.yaml +25 -0
  114. policyengine_us/parameters/gov/states/il/hfs/hbwd/premium/earned.yaml +96 -0
  115. policyengine_us/parameters/gov/states/il/hfs/hbwd/premium/unearned.yaml +96 -0
  116. policyengine_us/parameters/gov/states/il/hfs/mpe/eligibility/income_limit.yaml +13 -0
  117. policyengine_us/parameters/gov/states/il/hfs/qualified_noncitizen_statuses.yaml +17 -0
  118. policyengine_us/parameters/gov/states/ma/dta/tcap/gross_income/earned.yaml +2 -2
  119. policyengine_us/parameters/gov/states/ma/eec/ccfa/income/countable_income/sources.yaml +3 -3
  120. policyengine_us/parameters/gov/states/mt/tax/income/deductions/itemized/spouse_allocation_rate.yaml +13 -0
  121. policyengine_us/parameters/gov/states/nj/tax/income/additions.yaml +12 -0
  122. policyengine_us/parameters/gov/states/nj/tax/income/gross_income_sources.yaml +32 -0
  123. policyengine_us/parameters/gov/states/pa/tax/income/credits/eitc/match.yaml +10 -0
  124. policyengine_us/parameters/gov/states/pa/tax/income/credits/refundable.yaml +6 -0
  125. policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/amount.yaml +4 -0
  126. policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/max_agi.yaml +6 -2
  127. policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/max_child_age.yaml +6 -2
  128. policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/parent_max_earnings.yaml +6 -2
  129. policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/amount.yaml +4 -0
  130. policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/child_age_threshold.yaml +4 -0
  131. policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/reduction/rate.yaml +4 -0
  132. policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/reduction/start.yaml +4 -0
  133. policyengine_us/parameters/gov/states/ut/tax/income/credits/earned_income/rate.yaml +4 -0
  134. policyengine_us/parameters/gov/states/ut/tax/income/credits/military_retirement/rate.yaml +26 -0
  135. policyengine_us/parameters/gov/states/ut/tax/income/credits/non_refundable.yaml +5 -0
  136. policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/birth_year.yaml +4 -0
  137. policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/max.yaml +4 -0
  138. policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/phase_out/rate.yaml +4 -0
  139. policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/phase_out/threshold.yaml +4 -0
  140. policyengine_us/parameters/gov/states/ut/tax/income/credits/ss_benefits/phase_out/rate.yaml +4 -0
  141. policyengine_us/parameters/gov/states/ut/tax/income/credits/ss_benefits/phase_out/threshold.yaml +4 -0
  142. policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/in_effect.yaml +2 -0
  143. policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/personal_exemption.yaml +5 -0
  144. policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/phase_out/rate.yaml +5 -1
  145. policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/phase_out/threshold.yaml +9 -0
  146. policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/rate.yaml +4 -0
  147. policyengine_us/parameters/gov/states/ut/tax/income/rate.yaml +3 -0
  148. policyengine_us/parameters/gov/states/va/tax/income/credits/non_refundable.yaml +1 -1
  149. policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/amount.yaml +14 -0
  150. policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/percentage_disregarded.yaml +14 -0
  151. policyengine_us/parameters/gov/states/wa/dshs/tanf/income/limit.yaml +36 -0
  152. policyengine_us/parameters/gov/states/wa/dshs/tanf/maximum_family_size.yaml +14 -0
  153. policyengine_us/parameters/gov/states/wa/dshs/tanf/payment_standard/amount.yaml +32 -0
  154. policyengine_us/parameters/gov/states/wa/dshs/tanf/payment_standard/maximum_amount.yaml +12 -0
  155. policyengine_us/parameters/gov/states/wa/dshs/tanf/resource_limit.yaml +15 -0
  156. policyengine_us/parameters/gov/territories/pr/tax/income/credits/refundable.yaml +2 -0
  157. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/adjustment_limit_basis.yaml +12 -0
  158. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/exemption_rate.yaml +13 -0
  159. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/rate.yaml +12 -0
  160. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/threshold.yaml +13 -0
  161. policyengine_us/parameters/gov/territories/pr/tax/income/regular_tax/percentage.yaml +21 -0
  162. policyengine_us/parameters/gov/territories/pr/tax/income/tax_rate/amount.yaml +35 -0
  163. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/sources.yaml +18 -0
  164. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/sources.yaml +15 -0
  165. policyengine_us/parameters/gov/usda/snap/student/child_age_limit/single_parent.yaml +12 -0
  166. policyengine_us/parameters/gov/usda/snap/student/child_age_limit/two_parent.yaml +12 -0
  167. policyengine_us/parameters/gov/usda/snap/work_requirements/general/age_threshold/caring_dependent_child.yaml +1 -1
  168. policyengine_us/parameters/gov/usda/snap/work_requirements/general/age_threshold/exempted.yaml +1 -1
  169. policyengine_us/parameters/gov/usda/snap/work_requirements/general/weekly_hours_threshold.yaml +1 -1
  170. policyengine_us/parameters/simulation/disabled_programs.yaml +0 -1
  171. policyengine_us/reforms/aca/aca_ptc_additional_bracket.py +2 -2
  172. policyengine_us/reforms/aca/aca_ptc_simplified_bracket.py +2 -2
  173. policyengine_us/reforms/additional_tax_bracket/additional_tax_bracket_reform.py +10 -7
  174. policyengine_us/reforms/biden/budget_2025/capital_gains_tax_increase.py +5 -7
  175. policyengine_us/reforms/congress/tlaib/__init__.py +4 -3
  176. policyengine_us/reforms/congress/tlaib/economic_dignity_for_all_agenda/__init__.py +9 -0
  177. policyengine_us/reforms/congress/tlaib/economic_dignity_for_all_agenda/edaa_end_child_poverty_act.py +237 -0
  178. policyengine_us/reforms/ctc/ctc_per_child_phase_out.py +30 -8
  179. policyengine_us/reforms/harris/capital_gains/harris_capital_gains.py +7 -7
  180. policyengine_us/reforms/local/ny/__init__.py +4 -0
  181. policyengine_us/reforms/local/ny/mamdani_income_tax.py +84 -0
  182. policyengine_us/reforms/reforms.py +19 -4
  183. policyengine_us/reforms/states/ri/ctc/ri_ctc_reform.py +32 -1
  184. policyengine_us/reforms/states/ri/exemption/ri_exemption_reform.py +38 -8
  185. policyengine_us/reforms/states/ut/__init__.py +3 -0
  186. policyengine_us/reforms/states/ut/ut_refundable_eitc.py +118 -0
  187. policyengine_us/tests/policy/baseline/gov/aca/ptc/aca_ptc.yaml +3 -3
  188. policyengine_us/tests/policy/baseline/gov/aca/ptc/aca_required_contribution_percentage.yaml +71 -0
  189. policyengine_us/tests/policy/baseline/gov/aca/ptc/integration.yaml +1 -1
  190. policyengine_us/tests/policy/baseline/gov/aca/ptc/separate_esi.yaml +2 -2
  191. policyengine_us/tests/policy/baseline/gov/ed/pell_grant/pell_grant_simplified_formula_applies.yaml +1 -1
  192. policyengine_us/tests/policy/baseline/gov/hhs/medicaid/medicaid_enrolled.yaml +105 -0
  193. policyengine_us/tests/policy/baseline/gov/hhs/medicare/costs/medicare_cost.yaml +65 -0
  194. policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/base_part_a_premium.yaml +35 -0
  195. policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/base_part_b_premium.yaml +15 -0
  196. policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/income_adjusted_part_b_premium.yaml +77 -0
  197. policyengine_us/tests/policy/baseline/gov/hhs/tanf/tanf_fpg.yaml +53 -0
  198. policyengine_us/tests/policy/baseline/gov/irs/tax/federal_income/alternative_minimum_tax/exemption/amt_exemption.yaml +68 -0
  199. policyengine_us/tests/policy/baseline/gov/irs/tax/federal_income/alternative_minimum_tax/integration.yaml +26 -0
  200. policyengine_us/tests/policy/baseline/gov/local/ca/la/general_relief/eligible/immigration/la_general_relief_immigration_status_eligible_person.yaml +2 -2
  201. policyengine_us/tests/policy/baseline/gov/ssa/ssi/integration_tests.yaml +150 -4
  202. policyengine_us/tests/policy/baseline/gov/states/ar/tax/income/integration.yaml +35 -0
  203. policyengine_us/tests/policy/baseline/gov/states/ca/chhs/is_ca_medicaid_immigration_status_eligible.yaml +59 -5
  204. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/additions/federal_deduction/co_federal_deduction_addback.yaml +2 -2
  205. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit.yaml +64 -0
  206. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible.yaml +122 -0
  207. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible_care_worker_count.yaml +65 -0
  208. policyengine_us/tests/policy/baseline/gov/states/ga/tax/income/credits/ga_itemizer_credit.yaml +44 -0
  209. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/alternative_tax/hi_alternative_tax_on_capital_gains_eligible.yaml +0 -8
  210. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/cdcc/hi_cdcc.yaml +4 -0
  211. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/cdcc/hi_cdcc_eligible.yaml +15 -0
  212. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/integration.yaml +96 -0
  213. policyengine_us/tests/policy/baseline/gov/states/il/dhs/tanf/eligibility/il_tanf_immigration_status_eligible_person.yaml +2 -10
  214. policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_age_eligible.yaml +39 -0
  215. policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_eligible.yaml +95 -0
  216. policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_insurance_eligible.yaml +35 -0
  217. policyengine_us/tests/policy/baseline/gov/states/il/hfs/fpp/il_fpp_income_eligible.yaml +35 -0
  218. policyengine_us/tests/policy/baseline/gov/states/il/hfs/fpp/il_fpp_income_level.yaml +27 -0
  219. policyengine_us/tests/policy/baseline/gov/states/il/hfs/fpp/integration.yaml +116 -0
  220. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/asset/il_hbwd_countable_assets.yaml +23 -0
  221. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_age_eligible.yaml +39 -0
  222. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_asset_eligible.yaml +31 -0
  223. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_disability_eligible.yaml +35 -0
  224. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.yaml +65 -0
  225. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_employment_eligible.yaml +34 -0
  226. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_income_eligible.yaml +25 -0
  227. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/il_hbwd_person.yaml +34 -0
  228. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/il_hbwd_premium.yaml +84 -0
  229. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/integration.yaml +183 -0
  230. policyengine_us/tests/policy/baseline/gov/states/il/hfs/il_hfs_immigration_status_eligible.yaml +47 -0
  231. policyengine_us/tests/policy/baseline/gov/states/il/hfs/mpe/il_mpe_eligible.yaml +39 -0
  232. policyengine_us/tests/policy/baseline/gov/states/il/hfs/mpe/il_mpe_income_eligible.yaml +23 -0
  233. policyengine_us/tests/policy/baseline/gov/states/il/hfs/mpe/integration.yaml +138 -0
  234. policyengine_us/tests/policy/baseline/gov/states/il/hfs/smib/eligibility/il_smib_eligible.yaml +88 -0
  235. policyengine_us/tests/policy/baseline/gov/states/il/hfs/smib/integration.yaml +73 -0
  236. policyengine_us/tests/policy/baseline/gov/states/ma/dta/ssp/ma_state_supplement.yaml +2 -0
  237. policyengine_us/tests/policy/baseline/gov/states/ma/dta/tcap/eaedc/dependent_care_deduction/ma_eaedc_dependent_care_deduction.yaml +13 -13
  238. policyengine_us/tests/policy/baseline/gov/states/ma/dta/tcap/eaedc/dependent_care_deduction/ma_eaedc_dependent_care_deduction_person.yaml +8 -8
  239. policyengine_us/tests/policy/baseline/gov/states/ma/dta/tcap/eaedc/ma_eaedc.yaml +2 -2
  240. policyengine_us/tests/policy/baseline/gov/states/ma/dta/tcap/tafdc/income/deductions/ma_tafdc_dependent_care_deduction_person.yaml +6 -6
  241. policyengine_us/tests/policy/baseline/gov/states/ma/dta/tcap/tafdc/income/earned/ma_tafdc_partially_disregarded_earned_income.yaml +7 -7
  242. policyengine_us/tests/policy/baseline/gov/states/ma/dta/tcap/tafdc/integration.yaml +14 -14
  243. policyengine_us/tests/policy/baseline/gov/states/ma/dta/tcap/tafdc/ma_tafdc.yaml +1 -1
  244. policyengine_us/tests/policy/baseline/gov/states/ma/eec/ccfa/copay/ma_ccfa_total_copay.yaml +4 -4
  245. policyengine_us/tests/policy/baseline/gov/states/ma/eec/ccfa/eligibility/ma_ccfa_activity_eligible.yaml +20 -20
  246. policyengine_us/tests/policy/baseline/gov/states/ma/eec/ccfa/ma_ccfa.yaml +7 -7
  247. policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/deductions/mo_federal_income_tax_deduction.yaml +2 -14
  248. 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
  249. 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
  250. 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
  251. policyengine_us/tests/policy/baseline/gov/states/nc/tax/income/deductions/nc_itemized_deductions.yaml +2 -2
  252. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/credits/cdcc/nj_cdcc.yaml +8 -8
  253. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/credits/eitc/nj_eitc.yaml +8 -3
  254. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integration.yaml +137 -0
  255. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/taxable_income/nj_agi.yaml +7 -8
  256. policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_qualifying_income.yaml +29 -0
  257. policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/oh_cdcc.yaml +4 -4
  258. policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/integration.yaml +141 -0
  259. policyengine_us/tests/policy/baseline/gov/states/pa/tax/income/credits/pa_eitc.yaml +26 -0
  260. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/assistance_unit/tx_tanf_categorically_eligible_person.yaml +1 -1
  261. policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit.yaml +89 -0
  262. policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit_eligible.yaml +50 -0
  263. policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/credits/ss_benefits_credit/ut_ss_benefits_credit_max.yaml +5 -5
  264. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/benefit/wa_tanf_payment_standard.yaml +48 -0
  265. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.yaml +65 -0
  266. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.yaml +96 -0
  267. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.yaml +70 -0
  268. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/integration.yaml +676 -0
  269. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf.yaml +102 -0
  270. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf_resources_eligible.yaml +6 -7
  271. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_amount.yaml +29 -0
  272. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_eligible.yaml +15 -0
  273. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi.yaml +17 -0
  274. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi_person.yaml +17 -0
  275. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_normal_tax.yaml +31 -0
  276. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_tax_before_credits.yaml +19 -0
  277. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/pr_net_taxable_income.yaml +26 -0
  278. policyengine_us/tests/policy/baseline/gov/test_categorical_eligibility_vectorization.yaml +41 -0
  279. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/is_snap_higher_ed_student.yaml +23 -0
  280. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/is_snap_ineligible_student.yaml +77 -6
  281. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/meets_snap_parent_exception.yaml +345 -0
  282. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/meets_snap_work_exception.yaml +47 -0
  283. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/work_requirements/meets_snap_abawd_work_requirements.yaml +17 -17
  284. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/work_requirements/meets_snap_general_work_requirements.yaml +7 -7
  285. policyengine_us/tests/policy/baseline/gov/usda/snap/income/deductions/self_employment_income/integration.yaml +6 -6
  286. policyengine_us/tests/policy/baseline/gov/usda/snap/income/deductions/self_employment_income/snap_self_employment_expense_deduction.yaml +4 -4
  287. policyengine_us/tests/policy/baseline/gov/usda/snap/income/deductions/self_employment_income/snap_self_employment_income_after_expense_deduction.yaml +1 -1
  288. policyengine_us/tests/policy/baseline/gov/usda/snap/income/federal_work_study_income_exclusion.yaml +24 -0
  289. policyengine_us/tests/policy/baseline/gov/usda/snap/income/snap_countable_earner.yaml +25 -0
  290. policyengine_us/tests/policy/baseline/gov/usda/snap/integration.yaml +1 -1
  291. policyengine_us/tests/policy/baseline/gov/usda/snap/snap.yaml +5 -5
  292. policyengine_us/tests/policy/baseline/gov/usda/snap/snap_min_allotment.yaml +3 -3
  293. policyengine_us/tests/policy/baseline/gov/usda/wic/integration.yaml +181 -0
  294. policyengine_us/tests/policy/baseline/gov/usda/wic/is_wic_at_nutritional_risk.yaml +33 -0
  295. policyengine_us/tests/policy/baseline/gov/usda/wic/is_wic_eligible.yaml +28 -15
  296. policyengine_us/tests/policy/baseline/household/demographic/geographic/state_group.yaml +21 -0
  297. policyengine_us/tests/policy/baseline/household/expense/health/has_bcc_qualifying_coverage.yaml +12 -0
  298. policyengine_us/tests/policy/contrib/aca/ptc_additional_bracket.yaml +12 -12
  299. policyengine_us/tests/policy/contrib/aca/ptc_simplified_bracket.yaml +12 -12
  300. policyengine_us/tests/policy/contrib/additional_tax_bracket/additional_tax_bracket_reform.yaml +4 -4
  301. policyengine_us/tests/policy/contrib/congress/tlaib/economic_dignity_for_all_agenda/edaa_end_child_poverty_act.yaml +198 -0
  302. policyengine_us/tests/policy/contrib/crfb/senior_deduction_extension.yaml +2 -2
  303. policyengine_us/tests/policy/contrib/ctc/integration.yaml +6 -6
  304. policyengine_us/tests/policy/contrib/local/ny/nyc_mamdani_income_tax.yaml +51 -0
  305. policyengine_us/tests/policy/contrib/states/ri/ctc_reform_test.yaml +144 -0
  306. policyengine_us/tests/policy/contrib/states/ri/exemption_reform_test.yaml +31 -2
  307. policyengine_us/tests/policy/contrib/states/ut/ut_refundable_eitc.yaml +214 -0
  308. policyengine_us/variables/gov/aca/ptc/aca_ptc.py +3 -1
  309. policyengine_us/variables/gov/aca/ptc/{aca_ptc_phase_out_rate.py → aca_required_contribution_percentage.py} +2 -2
  310. policyengine_us/variables/gov/ed/is_federal_work_study_participant.py +9 -0
  311. policyengine_us/variables/gov/ed/pell_grant/efc/pell_grant_simplified_formula_applies.py +1 -2
  312. policyengine_us/variables/gov/fcc/lifeline/is_lifeline_eligible.py +2 -2
  313. policyengine_us/variables/gov/hhs/head_start/early_head_start.py +2 -1
  314. policyengine_us/variables/gov/hhs/head_start/head_start.py +2 -1
  315. policyengine_us/variables/gov/hhs/head_start/is_head_start_categorically_eligible.py +1 -3
  316. policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_group.py +2 -2
  317. policyengine_us/variables/gov/hhs/medicaid/receives_medicaid.py +17 -0
  318. policyengine_us/variables/gov/hhs/medicare/costs/medicare_cost.py +30 -0
  319. policyengine_us/variables/gov/hhs/medicare/costs/medicare_enrolled.py +14 -0
  320. policyengine_us/variables/gov/hhs/medicare/eligibility/part_a/base_part_a_premium.py +32 -0
  321. policyengine_us/variables/gov/hhs/medicare/eligibility/part_a/is_premium_free_part_a.py +22 -0
  322. policyengine_us/variables/gov/hhs/medicare/eligibility/part_a/medicare_quarters_of_coverage.py +16 -0
  323. policyengine_us/variables/gov/hhs/medicare/eligibility/part_b/base_part_b_premium.py +16 -0
  324. policyengine_us/variables/gov/hhs/medicare/eligibility/part_b/income_adjusted_part_b_premium.py +55 -0
  325. policyengine_us/variables/gov/hhs/tanf/cash/income/tanf_gross_earned_income.py +13 -0
  326. policyengine_us/variables/gov/hhs/tanf/cash/income/tanf_gross_unearned_income.py +13 -0
  327. policyengine_us/variables/gov/hhs/tanf/tanf_fpg.py +28 -0
  328. policyengine_us/variables/gov/irs/tax/federal_income/alternative_minimum_tax/amt_tax_including_cg.py +5 -9
  329. policyengine_us/variables/gov/irs/tax/federal_income/alternative_minimum_tax/exemption/amt_exemption.py +47 -0
  330. policyengine_us/variables/gov/irs/tax/federal_income/alternative_minimum_tax/income/amt_income_less_exemptions.py +4 -22
  331. policyengine_us/variables/gov/irs/tax/federal_income/alternative_minimum_tax/regular_tax_before_credits.py +12 -13
  332. policyengine_us/variables/gov/irs/tax/federal_income/capital_gains/capital_gains_excluded_from_taxable_income.py +2 -2
  333. policyengine_us/variables/gov/irs/tax/federal_income/capital_gains/capital_gains_tax.py +5 -5
  334. policyengine_us/variables/gov/irs/tax/federal_income/capital_gains/dwks19.py +2 -2
  335. policyengine_us/variables/gov/ssa/ssi/eligibility/income/deemed/from_ineligible_spouse/is_ssi_spousal_deeming_applies.py +41 -0
  336. policyengine_us/variables/gov/ssa/ssi/eligibility/income/deemed/from_ineligible_spouse/ssi_income_deemed_from_ineligible_spouse.py +20 -20
  337. policyengine_us/variables/gov/ssa/ssi/ssi.py +22 -1
  338. policyengine_us/variables/gov/ssa/ssi/ssi_amount_if_eligible.py +26 -4
  339. policyengine_us/variables/gov/states/ca/chhs/is_ca_medicaid_immigration_status_eligible.py +25 -4
  340. policyengine_us/variables/gov/states/ca/cpuc/care/eligibility/ca_care_categorically_eligible.py +2 -2
  341. policyengine_us/variables/gov/states/ca/tax/income/alternative_minimum_tax/exemption/ca_amt_exemption.py +4 -2
  342. policyengine_us/variables/gov/states/ca/tax/income/ca_income_tax.py +1 -0
  343. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit.py +26 -0
  344. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible.py +27 -0
  345. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible_care_worker.py +10 -0
  346. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible_care_worker_count.py +18 -0
  347. policyengine_us/variables/gov/states/ga/tax/income/credits/ga_itemizer_credit.py +19 -0
  348. policyengine_us/variables/gov/states/hi/tax/income/credits/cdcc/hi_cdcc.py +1 -1
  349. policyengine_us/variables/gov/states/hi/tax/income/credits/cdcc/hi_cdcc_eligible.py +14 -0
  350. policyengine_us/variables/gov/states/il/dhs/aabd/eligibility/il_aabd_immigration_status_eligible_person.py +1 -1
  351. policyengine_us/variables/gov/states/il/dhs/tanf/eligibility/il_tanf_immigration_status_eligible_person.py +1 -1
  352. policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_age_eligible.py +15 -0
  353. policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_eligible.py +27 -0
  354. policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_insurance_eligible.py +29 -0
  355. policyengine_us/variables/gov/states/il/hfs/fpp/eligibility/il_fpp_eligible.py +40 -0
  356. policyengine_us/variables/gov/states/il/hfs/fpp/eligibility/il_fpp_income_eligible.py +18 -0
  357. policyengine_us/variables/gov/states/il/hfs/fpp/il_fpp_income_level.py +29 -0
  358. policyengine_us/variables/gov/states/il/hfs/hbwd/asset/il_hbwd_countable_assets.py +34 -0
  359. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_age_eligible.py +20 -0
  360. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_asset_eligible.py +21 -0
  361. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_disability_eligible.py +20 -0
  362. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.py +33 -0
  363. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_employment_eligible.py +25 -0
  364. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_income_eligible.py +23 -0
  365. policyengine_us/variables/gov/states/il/hfs/hbwd/il_hbwd.py +17 -0
  366. policyengine_us/variables/gov/states/il/hfs/hbwd/il_hbwd_person.py +24 -0
  367. policyengine_us/variables/gov/states/il/hfs/hbwd/il_hbwd_premium.py +23 -0
  368. policyengine_us/variables/gov/states/il/hfs/hbwd/income/earned/il_hbwd_countable_earned_income.py +24 -0
  369. policyengine_us/variables/gov/states/il/hfs/hbwd/income/earned/il_hbwd_gross_earned_income.py +16 -0
  370. policyengine_us/variables/gov/states/il/hfs/hbwd/income/il_hbwd_countable_income.py +21 -0
  371. policyengine_us/variables/gov/states/il/hfs/hbwd/income/unearned/il_hbwd_countable_unearned_income.py +16 -0
  372. policyengine_us/variables/gov/states/il/hfs/il_hfs_immigration_status_eligible.py +23 -0
  373. policyengine_us/variables/gov/states/il/hfs/mpe/eligibility/il_mpe_income_eligible.py +15 -0
  374. policyengine_us/variables/gov/states/il/hfs/mpe/il_mpe_eligible.py +15 -0
  375. policyengine_us/variables/gov/states/il/hfs/smib/eligibility/il_smib_categorical_eligible.py +26 -0
  376. policyengine_us/variables/gov/states/il/hfs/smib/eligibility/il_smib_eligible.py +28 -0
  377. policyengine_us/variables/gov/states/il/hfs/smib/il_smib.py +21 -0
  378. policyengine_us/variables/gov/states/il/hfs/smib/il_smib_person.py +24 -0
  379. policyengine_us/variables/gov/states/ma/dta/ssp/ma_state_supplement.py +1 -0
  380. policyengine_us/variables/gov/states/ma/dta/tcap/eaedc/dependent_care_deduction/ma_eaedc_dependent_care_deduction_person.py +1 -1
  381. policyengine_us/variables/gov/states/ma/dta/tcap/tafdc/income/deductions/ma_tafdc_dependent_care_deduction_person.py +1 -1
  382. policyengine_us/variables/gov/states/ma/eec/ccfa/eligibility/ma_ccfa_activity_eligible.py +3 -1
  383. policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/general/mt_itemized_deductions_indiv.py +3 -2
  384. policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_additions.py +8 -3
  385. policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_gross_income.py +17 -0
  386. policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_total_income.py +12 -6
  387. policyengine_us/variables/gov/states/nj/tax/income/credits/cdcc/nj_cdcc.py +2 -2
  388. policyengine_us/variables/gov/states/nj/tax/income/credits/eitc/nj_eitc.py +7 -1
  389. policyengine_us/variables/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_qualifying_income.py +7 -3
  390. policyengine_us/variables/gov/states/oh/tax/income/credits/oh_cdcc.py +2 -2
  391. policyengine_us/variables/gov/states/pa/tax/income/credits/pa_eitc.py +16 -0
  392. policyengine_us/variables/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit.py +20 -0
  393. policyengine_us/variables/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit_eligible.py +22 -0
  394. policyengine_us/variables/gov/states/wa/dshs/tanf/benefit/wa_tanf_payment_standard.py +22 -0
  395. policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.py +42 -0
  396. policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.py +31 -0
  397. policyengine_us/variables/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.py +33 -0
  398. policyengine_us/variables/gov/states/wa/dshs/tanf/income/wa_tanf_countable_income.py +16 -0
  399. policyengine_us/variables/gov/states/wa/dshs/tanf/wa_tanf.py +34 -0
  400. policyengine_us/variables/gov/states/wa/dshs/tanf/wa_tanf_resources_eligible.py +3 -2
  401. policyengine_us/variables/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_amount.py +23 -0
  402. policyengine_us/variables/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_eligible.py +16 -0
  403. policyengine_us/variables/gov/territories/pr/tax/income/pr_agi.py +11 -1
  404. policyengine_us/variables/gov/territories/pr/tax/income/pr_agi_person.py +11 -1
  405. policyengine_us/variables/gov/territories/pr/tax/income/pr_income_tax.py +14 -0
  406. policyengine_us/variables/gov/territories/pr/tax/income/pr_normal_tax.py +16 -0
  407. policyengine_us/variables/gov/territories/pr/tax/income/pr_regular_tax_before_credits.py +20 -0
  408. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/deductions/pr_deductions.py +13 -0
  409. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/exemptions/pr_exemptions.py +13 -0
  410. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/pr_net_taxable_income.py +17 -0
  411. policyengine_us/variables/gov/usda/snap/eligibility/student/is_snap_higher_ed_student.py +17 -0
  412. policyengine_us/variables/gov/usda/snap/eligibility/student/is_snap_ineligible_student.py +47 -15
  413. policyengine_us/variables/gov/usda/snap/eligibility/student/meets_snap_parent_exception.py +42 -0
  414. policyengine_us/variables/gov/usda/snap/eligibility/student/meets_snap_work_exception.py +22 -0
  415. policyengine_us/variables/gov/usda/snap/eligibility/work_requirements/meets_snap_abawd_work_requirements.py +3 -1
  416. policyengine_us/variables/gov/usda/snap/eligibility/work_requirements/meets_snap_general_work_requirements.py +3 -1
  417. policyengine_us/variables/gov/usda/snap/income/deductions/self_employment/snap_self_employment_expense_deduction.py +1 -1
  418. policyengine_us/variables/gov/usda/snap/income/deductions/self_employment/snap_self_employment_income_after_expense_deduction.py +1 -1
  419. policyengine_us/variables/gov/usda/snap/income/deductions/snap_dependent_care_deduction.py +5 -1
  420. policyengine_us/variables/gov/usda/snap/income/snap_countable_earner.py +13 -2
  421. policyengine_us/variables/gov/usda/wic/is_wic_at_nutritional_risk.py +3 -10
  422. policyengine_us/variables/gov/usda/wic/is_wic_eligible.py +10 -1
  423. policyengine_us/variables/household/demographic/geographic/state_group.py +8 -5
  424. policyengine_us/variables/household/demographic/person/is_part_time_college_student.py +9 -0
  425. policyengine_us/variables/household/expense/health/has_bcc_qualifying_coverage.py +16 -0
  426. {policyengine_us-1.424.6.dist-info → policyengine_us-1.455.0.dist-info}/METADATA +2 -2
  427. {policyengine_us-1.424.6.dist-info → policyengine_us-1.455.0.dist-info}/RECORD +441 -253
  428. {policyengine_us-1.424.6.dist-info → policyengine_us-1.455.0.dist-info}/WHEEL +1 -1
  429. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/age_limit.yaml +0 -8
  430. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/amount.yaml +0 -13
  431. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/in_effect.yaml +0 -8
  432. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/min_birth_year.yaml +0 -8
  433. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/amount.yaml +0 -13
  434. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/in_effect.yaml +0 -8
  435. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/max_age.yaml +0 -8
  436. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/min_age.yaml +0 -8
  437. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/tax/rate.yaml +0 -8
  438. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/tax/threshold.yaml +0 -24
  439. policyengine_us/parameters/gov/contrib/harris/capital_gains/brackets.yaml +0 -194
  440. policyengine_us/parameters/gov/irs/capital_gains/brackets.yaml +0 -188
  441. policyengine_us/parameters/gov/states/wa/dshs/tanf/eligibility/resources/limit.yaml +0 -11
  442. policyengine_us/reforms/congress/tlaib/income_security_package/__init__.py +0 -17
  443. policyengine_us/reforms/congress/tlaib/income_security_package/income_security_package.py +0 -402
  444. policyengine_us/tests/policy/baseline/gov/aca/ptc/aca_ptc_phase_out_rate.yaml +0 -71
  445. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/integration.yaml +0 -154
  446. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/state_integration.yaml +0 -115
  447. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/test_individual_acts.yaml +0 -149
  448. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/unit_tests.yaml +0 -272
  449. /policyengine_us/parameters/gov/aca/{ptc_phase_out_rate.yaml → required_contribution_percentage.yaml} +0 -0
  450. /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
  451. /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
  452. /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
  453. /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
  454. /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
  455. /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
  456. /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
  457. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/in_effect.yaml +0 -0
  458. /policyengine_us/variables/gov/states/co/ssa/{state_suplement → state_supplement}/co_state_supplement.py +0 -0
  459. /policyengine_us/variables/gov/states/co/ssa/{state_suplement → state_supplement}/co_state_supplement_eligible.py +0 -0
  460. {policyengine_us-1.424.6.dist-info → policyengine_us-1.455.0.dist-info}/entry_points.txt +0 -0
  461. {policyengine_us-1.424.6.dist-info → policyengine_us-1.455.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,22 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class ut_military_retirement_credit_eligible(Variable):
5
+ value_type = bool
6
+ entity = TaxUnit
7
+ label = "Eligible for the Utah military retirement credit"
8
+ definition_period = YEAR
9
+ reference = "https://le.utah.gov/xcode/Title59/Chapter10/59-10-S1043.html"
10
+ defined_for = StateCode.UT
11
+
12
+ def formula(tax_unit, period, parameters):
13
+ # Has military retirement pay
14
+ military_retirement_pay = add(
15
+ tax_unit, period, ["military_retirement_pay"]
16
+ )
17
+ has_military_retirement_pay = military_retirement_pay > 0
18
+ # Cannot claim if claiming the retirement credit (code 18)
19
+ claims_retirement_credit = tax_unit(
20
+ "ut_claims_retirement_credit", period
21
+ )
22
+ return has_military_retirement_pay & ~claims_retirement_credit
@@ -0,0 +1,22 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class wa_tanf_payment_standard(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "Washington TANF payment standard"
8
+ unit = USD
9
+ definition_period = MONTH
10
+ reference = "https://app.leg.wa.gov/wac/default.aspx?cite=388-478-0020"
11
+ defined_for = StateCode.WA
12
+
13
+ def formula(spm_unit, period, parameters):
14
+ # Get payment standard by family size per WAC 388-478-0020
15
+ p = parameters(period).gov.states.wa.dshs.tanf
16
+
17
+ # Get assistance unit size, capped at maximum table value (10)
18
+ size = spm_unit("spm_unit_size", period)
19
+ size_capped = min_(size, p.maximum_family_size)
20
+
21
+ # Look up payment standard for this family size
22
+ return p.payment_standard.amount[size_capped]
@@ -0,0 +1,42 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class wa_tanf_eligible(Variable):
5
+ value_type = bool
6
+ entity = SPMUnit
7
+ label = "Washington TANF eligible"
8
+ definition_period = MONTH
9
+ reference = "https://app.leg.wa.gov/wac/default.aspx?cite=388-400-0005"
10
+ defined_for = StateCode.WA
11
+
12
+ def formula(spm_unit, period, parameters):
13
+ person = spm_unit.members
14
+
15
+ # Must meet demographic requirements (minor child with deprived parent
16
+ # OR pregnant woman)
17
+ # Per WAC 388-400-0005, eligibility follows federal TANF demographic rules
18
+ demographic_eligible = spm_unit("is_demographic_tanf_eligible", period)
19
+
20
+ # Must have at least one U.S. citizen or qualified immigrant
21
+ # Per WAC 388-424-0001, follows federal immigration eligibility
22
+ has_citizen = spm_unit.any(
23
+ person("is_citizen_or_legal_immigrant", period)
24
+ )
25
+
26
+ # Must meet income eligibility (gross earned income < limit)
27
+ # Per WAC 388-478-0035
28
+ income_eligible = spm_unit("wa_tanf_income_eligible", period)
29
+
30
+ # Must meet resource eligibility (countable resources <= $6,000)
31
+ # Per WAC 388-470-0045
32
+ resources_eligible = spm_unit(
33
+ "wa_tanf_resources_eligible", period.this_year
34
+ )
35
+
36
+ # All requirements must be met
37
+ return (
38
+ demographic_eligible
39
+ & has_citizen
40
+ & income_eligible
41
+ & resources_eligible
42
+ )
@@ -0,0 +1,31 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class wa_tanf_income_eligible(Variable):
5
+ value_type = bool
6
+ entity = SPMUnit
7
+ label = "Washington TANF income eligible"
8
+ definition_period = MONTH
9
+ reference = (
10
+ "https://app.leg.wa.gov/wac/default.aspx?cite=388-478-0035",
11
+ "https://app.leg.wa.gov/wac/default.aspx?cite=388-450-0170",
12
+ )
13
+ defined_for = StateCode.WA
14
+
15
+ def formula(spm_unit, period, parameters):
16
+ # Get gross earned income from federal TANF variable
17
+ gross_earned = add(spm_unit, period, ["tanf_gross_earned_income"])
18
+
19
+ # Get maximum earned income limits by family size
20
+ # Per WAC 388-478-0035, these limits "include the $500 family
21
+ # earnings deduction" in their calculation
22
+ p = parameters(period).gov.states.wa.dshs.tanf
23
+
24
+ # Get household size, capped at maximum for which limits are defined
25
+ size = spm_unit("spm_unit_size", period)
26
+ size_capped = min_(size, p.maximum_family_size)
27
+
28
+ # Gross earned income must be at or below the limit
29
+ # Note: Unlike some states, WA tests GROSS income (not countable)
30
+ # against published limits that already factor in the $500 disregard
31
+ return gross_earned <= p.income.limit[size_capped]
@@ -0,0 +1,33 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class wa_tanf_countable_earned_income(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "Washington TANF countable earned income"
8
+ unit = USD
9
+ definition_period = MONTH
10
+ reference = "https://app.leg.wa.gov/wac/default.aspx?cite=388-450-0170"
11
+ defined_for = StateCode.WA
12
+
13
+ def formula(spm_unit, period, parameters):
14
+ # Get gross earned income from federal TANF variable
15
+ gross_earned = add(spm_unit, period, ["tanf_gross_earned_income"])
16
+
17
+ # Apply earned income disregard per WAC 388-450-0170:
18
+ # "We start by deducting the first $500 of the total household's
19
+ # earned income. We then subtract 50% of the remaining monthly
20
+ # gross earned income."
21
+ p = parameters(
22
+ period
23
+ ).gov.states.wa.dshs.tanf.income.deductions.earned_income_disregard
24
+
25
+ # Step 1: Deduct flat $500 family earnings disregard
26
+ remainder = max_(gross_earned - p.amount, 0)
27
+
28
+ # Step 2: Subtract (disregard) 50% of remaining income
29
+ # Per WAC 388-450-0170(3): "subtract 50% of the remaining...income"
30
+ amount_disregarded = remainder * p.percentage_disregarded
31
+
32
+ # Countable earned income = remainder - amount disregarded
33
+ return remainder - amount_disregarded
@@ -0,0 +1,16 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class wa_tanf_countable_income(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "Washington TANF countable income"
8
+ unit = USD
9
+ definition_period = MONTH
10
+ reference = "https://app.leg.wa.gov/wac/default.aspx?cite=388-450-0165"
11
+ defined_for = StateCode.WA
12
+
13
+ adds = [
14
+ "wa_tanf_countable_earned_income",
15
+ "tanf_gross_unearned_income",
16
+ ]
@@ -0,0 +1,34 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class wa_tanf(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "Washington Temporary Assistance for Needy Families (TANF)"
8
+ unit = USD
9
+ definition_period = MONTH
10
+ reference = (
11
+ "https://app.leg.wa.gov/wac/default.aspx?cite=388-478-0020",
12
+ "https://app.leg.wa.gov/wac/default.aspx?cite=388-450-0165",
13
+ )
14
+ defined_for = "wa_tanf_eligible"
15
+
16
+ def formula(spm_unit, period, parameters):
17
+ # Get payment standard based on assistance unit size
18
+ payment_standard = spm_unit("wa_tanf_payment_standard", period)
19
+
20
+ # Get countable income (after all disregards and deductions)
21
+ countable_income = spm_unit("wa_tanf_countable_income", period)
22
+
23
+ # Calculate benefit per WAC 388-450-0165:
24
+ # "The department calculates the amount of your cash assistance
25
+ # by subtracting your AU's countable income from the applicable
26
+ # payment standard."
27
+ grant_before_cap = max_(payment_standard - countable_income, 0)
28
+
29
+ # Apply maximum grant cap (unique to Washington)
30
+ # Per DSHS manual, grants cannot exceed $1,338
31
+ # regardless of family size (affects families of 8+)
32
+ p = parameters(period).gov.states.wa.dshs.tanf.payment_standard
33
+
34
+ return min_(grant_before_cap, p.maximum_amount)
@@ -6,9 +6,10 @@ class wa_tanf_resources_eligible(Variable):
6
6
  entity = SPMUnit
7
7
  label = "Washington TANF resources eligible"
8
8
  definition_period = YEAR
9
+ reference = "https://app.leg.wa.gov/wac/default.aspx?cite=388-470-0005"
9
10
  defined_for = StateCode.WA
10
11
 
11
12
  def formula(spm_unit, period, parameters):
12
- p = parameters(period).gov.states.wa.dshs.tanf.eligibility.resources
13
+ p = parameters(period).gov.states.wa.dshs.tanf
13
14
  countable_resources = spm_unit("wa_tanf_countable_resources", period)
14
- return countable_resources <= p.limit
15
+ return countable_resources <= p.resource_limit
@@ -0,0 +1,23 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pr_gradual_adjustment_amount(Variable):
5
+ value_type = float
6
+ entity = TaxUnit
7
+ label = "Puerto Rico gradual adjustment amount"
8
+ documentation = (
9
+ "An additional amount added to tax amount for high income filers."
10
+ )
11
+ unit = USD
12
+ definition_period = YEAR
13
+ defined_for = "pr_gradual_adjustment_eligible"
14
+ reference = "https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=3"
15
+
16
+ def formula(tax_unit, period, parameters):
17
+ p = parameters(period).gov.territories.pr.tax.income.gradual_adjustment
18
+ net_taxable_income = tax_unit("pr_net_taxable_income", period)
19
+ amount = (net_taxable_income - p.threshold) * p.rate
20
+ exemptions = tax_unit("pr_exemptions", period)
21
+ limit = p.adjustment_limit_basis + p.exemption_rate * exemptions
22
+
23
+ return min_(amount, limit)
@@ -0,0 +1,16 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pr_gradual_adjustment_eligible(Variable):
5
+ value_type = bool
6
+ entity = TaxUnit
7
+ label = "Puerto Rico gradual adjustment eligibility"
8
+ definition_period = YEAR
9
+ defined_for = StateCode.PR
10
+ reference = "https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=3"
11
+
12
+ def formula(tax_unit, period, parameters):
13
+ p = parameters(period).gov.territories.pr.tax.income.gradual_adjustment
14
+ net_taxable_income = tax_unit("pr_net_taxable_income", period)
15
+
16
+ return net_taxable_income > p.threshold
@@ -8,4 +8,14 @@ class pr_agi(Variable):
8
8
  unit = USD
9
9
  definition_period = YEAR
10
10
  defined_for = StateCode.PR
11
- reference = "https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-a/30103/"
11
+ reference = (
12
+ "https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=2",
13
+ "https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-a/30103/",
14
+ )
15
+
16
+ # Discrepancy: legal code defines Puerto Rico AGI as gross income minus deductions and exemptions, among other items
17
+ def formula(tax_unit, period, parameters):
18
+ # person = tax_unit.members
19
+ total_income = add(tax_unit, period, ["pr_gross_income"])
20
+ alimony_paid = add(tax_unit, period, ["alimony_expense"])
21
+ return max_(0, total_income - alimony_paid)
@@ -8,4 +8,14 @@ class pr_agi_person(Variable):
8
8
  unit = USD
9
9
  definition_period = YEAR
10
10
  defined_for = StateCode.PR
11
- reference = "https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-a/30103/"
11
+ reference = (
12
+ "https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=2",
13
+ "https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-a/30103/",
14
+ )
15
+
16
+ def formula(person, period, parameters):
17
+ filing_status = person.tax_unit("filing_status", period)
18
+ filing_statuses = filing_status.possible_values
19
+ agi_taxunit = person.tax_unit("pr_agi", period)
20
+ frac = where(filing_status == filing_statuses.JOINT, 0.5, 1.0)
21
+ return agi_taxunit * frac
@@ -0,0 +1,14 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pr_income_tax(Variable):
5
+ value_type = float
6
+ unit = USD
7
+ entity = TaxUnit
8
+ label = "Puerto Rico income tax"
9
+ definition_period = YEAR
10
+ reference = "https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=3"
11
+ defined_for = StateCode.PR
12
+
13
+ adds = ["pr_regular_tax_before_credits"]
14
+ subtracts = ["pr_refundable_credits"]
@@ -0,0 +1,16 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pr_normal_tax(Variable):
5
+ value_type = float
6
+ entity = TaxUnit
7
+ label = "Puerto Rico normal tax"
8
+ unit = USD
9
+ definition_period = YEAR
10
+ defined_for = StateCode.PR
11
+ reference = "https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1004/subchapter-a/30061/"
12
+
13
+ def formula(tax_unit, period, parameters):
14
+ p = parameters(period).gov.territories.pr.tax.income.tax_rate
15
+ net_income = tax_unit("pr_net_taxable_income", period)
16
+ return p.amount.calc(net_income)
@@ -0,0 +1,20 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pr_regular_tax_before_credits(Variable):
5
+ value_type = float
6
+ entity = TaxUnit
7
+ label = "Puerto Rico regular tax before credits"
8
+ unit = USD
9
+ definition_period = YEAR
10
+ defined_for = StateCode.PR
11
+ reference = "https://hacienda.pr.gov/sites/default/files/inst_individuals_2023.pdf#page=19"
12
+
13
+ def formula(tax_unit, period, parameters):
14
+ p = parameters(period).gov.territories.pr.tax.income.regular_tax
15
+ gross_income = tax_unit("pr_gross_income", period)
16
+ total_normal_tax = add(
17
+ tax_unit, period, ["pr_normal_tax", "pr_gradual_adjustment_amount"]
18
+ )
19
+
20
+ return total_normal_tax * p.percentage.calc(gross_income)
@@ -0,0 +1,13 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pr_deductions(Variable):
5
+ value_type = float
6
+ entity = TaxUnit
7
+ label = "Puerto Rico deductions"
8
+ unit = USD
9
+ reference = "https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30135/"
10
+ definition_period = YEAR
11
+ defined_for = StateCode.PR
12
+
13
+ adds = "gov.territories.pr.tax.income.taxable_income.deductions.sources"
@@ -0,0 +1,13 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pr_exemptions(Variable):
5
+ value_type = float
6
+ entity = TaxUnit
7
+ label = "Puerto Rico exemptions"
8
+ definition_period = YEAR
9
+ unit = USD
10
+ reference = "https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30138/"
11
+ defined_for = StateCode.PR
12
+
13
+ adds = "gov.territories.pr.tax.income.taxable_income.exemptions.sources"
@@ -0,0 +1,17 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pr_net_taxable_income(Variable):
5
+ value_type = float
6
+ entity = TaxUnit
7
+ label = "Puerto Rico net taxable income"
8
+ reference = "https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=2"
9
+ unit = USD
10
+ definition_period = YEAR
11
+ defined_for = StateCode.PR
12
+
13
+ def formula(tax_unit, period, parameters):
14
+ agi = tax_unit("pr_agi", period)
15
+ exemptions = tax_unit("pr_exemptions", period)
16
+ deductions = tax_unit("pr_deductions", period)
17
+ return max_(0, agi - exemptions - deductions)
@@ -0,0 +1,17 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class is_snap_higher_ed_student(Variable):
5
+ value_type = bool
6
+ entity = Person
7
+ label = "Is a higher education student for SNAP purposes"
8
+ definition_period = YEAR
9
+ reference = "https://www.law.cornell.edu/uscode/text/7/2015#e"
10
+
11
+ def formula(person, period, parameters):
12
+ # Students enrolled at least half-time in higher education
13
+ # The statute covers half-time or more enrollment
14
+ is_full_time_student = person("is_full_time_college_student", period)
15
+ is_part_time_student = person("is_part_time_college_student", period)
16
+
17
+ return is_full_time_student | is_part_time_student
@@ -5,24 +5,56 @@ class is_snap_ineligible_student(Variable):
5
5
  value_type = bool
6
6
  entity = Person
7
7
  label = "Is an ineligible student for SNAP"
8
- documentation = "Whether this person is an ineligible student for SNAP and can not be counted towards the household size"
9
8
  definition_period = YEAR
10
- reference = "https://www.law.cornell.edu/uscode/text/7/2015"
9
+ reference = "https://www.law.cornell.edu/uscode/text/7/2015#e"
11
10
 
12
11
  def formula(person, period, parameters):
13
- student = person(
14
- "is_full_time_student", period
15
- ) # part-time students should also count
12
+ # Base rule: Students enrolled at least half-time in higher education
13
+ # are ineligible (K-12 students are not affected by this rule)
14
+ is_higher_ed_student = person("is_snap_higher_ed_student", period)
15
+
16
+ # Eight statutory exceptions that make students eligible:
17
+
18
+ # Exception 1: Under 18 or age 50 or older
16
19
  age = person("age", period)
17
20
  p = parameters(period).gov.usda.snap.student
18
- age_eligible = p.age_threshold.calc(age)
19
- disabled = person("is_disabled", period)
20
- hours_worked = person("weekly_hours_worked", period)
21
- hours_eligible = hours_worked >= p.working_hours_threshold
22
- # The parental status applies to children under 6 (under 12
23
- # if no care available)
24
- # Single parents with children under 12 are also eligible
25
- is_parent = person("is_parent", period)
26
- return student & ~(
27
- age_eligible | disabled | hours_eligible | is_parent
21
+ meets_age_exception = p.age_threshold.calc(age)
22
+
23
+ # Exception 2: Not physically or mentally fit (disabled)
24
+ meets_disability_exception = person("is_disabled", period)
25
+
26
+ # Exception 3: Assignment through workforce/employment programs
27
+ # (WIOA, career/technical ed, remedial/basic education)
28
+ # Not modeled
29
+
30
+ # Exception 4: Employed at least 20 hours per week or work-study
31
+ meets_work_hours_exception = person(
32
+ "meets_snap_work_exception", period
28
33
  )
34
+
35
+ # Exception 5: Parent with responsibility for dependent child under 6,
36
+ # or child 6-11 when adequate child care is not available
37
+ # Exception 8: Single parent enrolled full-time with responsibility
38
+ # for dependent child under 12
39
+ # (Exceptions 5 and 8 are implemented together)
40
+ meets_parent_exception = person("meets_snap_parent_exception", period)
41
+
42
+ # Exception 6: Receiving TANF benefits (part A of title IV)
43
+ tanf = person("tanf_person", period)
44
+ receives_tanf = tanf > 0
45
+
46
+ # Exception 7: Enrolled as result of participation in work incentive
47
+ # program under title IV (TANF work programs) or successor programs
48
+ # Not modeled
49
+
50
+ # Student is INELIGIBLE if they are a higher ed student AND
51
+ # they do NOT meet ANY of the eight exceptions
52
+ meets_any_exception = (
53
+ meets_age_exception
54
+ | meets_disability_exception
55
+ | meets_work_hours_exception
56
+ | meets_parent_exception
57
+ | receives_tanf
58
+ )
59
+
60
+ return is_higher_ed_student & ~meets_any_exception
@@ -0,0 +1,42 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class meets_snap_parent_exception(Variable):
5
+ value_type = bool
6
+ entity = Person
7
+ label = "Meets SNAP student parent exception"
8
+ definition_period = YEAR
9
+ reference = (
10
+ "https://www.law.cornell.edu/uscode/text/7/2015#e_5, "
11
+ "https://www.law.cornell.edu/uscode/text/7/2015#e_8"
12
+ )
13
+
14
+ def formula(person, period, parameters):
15
+ # Exception 5: Parent with responsibility for dependent child under 6,
16
+ # Or child 6-11 when adequate child care is not available (not modeled)
17
+ # Exception 8: Single parent enrolled full-time with responsibility
18
+ # for dependent child under 12
19
+ is_parent = person("is_tax_unit_head_or_spouse", period)
20
+ spm_unit = person.spm_unit
21
+ parent_count = spm_unit.sum(is_parent)
22
+
23
+ # Check if there are children in the household under the age thresholds
24
+ p = parameters(period).gov.usda.snap.student.child_age_limit
25
+ household_member_ages = spm_unit.members("age", period)
26
+ has_child_under_two_parent_limit = spm_unit.any(
27
+ household_member_ages < p.two_parent
28
+ )
29
+ has_child_under_single_parent_limit = spm_unit.any(
30
+ household_member_ages < p.single_parent
31
+ )
32
+
33
+ # Two-parent households need child under 6
34
+ # Single parent households need child under 12, enrolled full-time
35
+ is_full_time_student = person("is_full_time_college_student", period)
36
+ parent_exception_requirement = where(
37
+ parent_count > 1,
38
+ has_child_under_two_parent_limit,
39
+ has_child_under_single_parent_limit & is_full_time_student,
40
+ )
41
+
42
+ return is_parent & parent_exception_requirement
@@ -0,0 +1,22 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class meets_snap_work_exception(Variable):
5
+ value_type = bool
6
+ entity = Person
7
+ label = "Meets SNAP student work exception"
8
+ definition_period = YEAR
9
+ reference = "https://www.law.cornell.edu/uscode/text/7/2015#e_4"
10
+
11
+ def formula(person, period, parameters):
12
+ # Exception 4: Employed at least 20 hours per week or work-study
13
+ hours_worked = person("weekly_hours_worked_before_lsr", period)
14
+ p = parameters(period).gov.usda.snap.student
15
+ meets_hours_requirement = hours_worked >= p.working_hours_threshold
16
+
17
+ # Or participating in federal/state work-study
18
+ participates_in_work_study = person(
19
+ "is_federal_work_study_participant", period
20
+ )
21
+
22
+ return meets_hours_requirement | participates_in_work_study
@@ -11,7 +11,9 @@ class meets_snap_abawd_work_requirements(Variable):
11
11
  def formula(person, period, parameters):
12
12
  p = parameters(period).gov.usda.snap.work_requirements.abawd
13
13
  age = person("monthly_age", period)
14
- weekly_hours_worked = person("weekly_hours_worked", period.this_year)
14
+ weekly_hours_worked = person(
15
+ "weekly_hours_worked_before_lsr", period.this_year
16
+ )
15
17
  # Work at least 20 hours a week
16
18
  is_working = weekly_hours_worked >= p.weekly_hours_threshold
17
19
  # Adults within an age range are exempt
@@ -13,7 +13,9 @@ class meets_snap_general_work_requirements(Variable):
13
13
  def formula(person, period, parameters):
14
14
  p = parameters(period).gov.usda.snap.work_requirements.general
15
15
  age = person("monthly_age", period)
16
- weekly_hours_worked = person("weekly_hours_worked", period.this_year)
16
+ weekly_hours_worked = person(
17
+ "weekly_hours_worked_before_lsr", period.this_year
18
+ )
17
19
  # Under 16 or 60 years of age or older are exempted
18
20
  worked_exempted_age = p.age_threshold.exempted.calc(age)
19
21
  # Unable to work due to a physical or mental limitation
@@ -14,7 +14,7 @@ class snap_self_employment_expense_deduction(Variable):
14
14
 
15
15
  def formula(spm_unit, period, parameters):
16
16
  self_employment_income = add(
17
- spm_unit, period, ["self_employment_income"]
17
+ spm_unit, period, ["self_employment_income_before_lsr"]
18
18
  )
19
19
  expenses = spm_unit("snap_self_employment_income_expense", period)
20
20
  p = parameters(period).gov.usda.snap.income.deductions.self_employment
@@ -10,7 +10,7 @@ class snap_self_employment_income_after_expense_deduction(Variable):
10
10
 
11
11
  def formula(spm_unit, period, parameters):
12
12
  self_employment_income = add(
13
- spm_unit, period, ["self_employment_income"]
13
+ spm_unit, period, ["self_employment_income_before_lsr"]
14
14
  )
15
15
  expense_deduction = spm_unit(
16
16
  "snap_self_employment_expense_deduction", period
@@ -10,4 +10,8 @@ class snap_dependent_care_deduction(Variable):
10
10
  definition_period = MONTH
11
11
  reference = "https://www.law.cornell.edu/uscode/text/7/2014#e_3"
12
12
 
13
- adds = ["childcare_expenses"]
13
+ # Use pre-subsidy expenses to avoid circular dependency
14
+ # (childcare subsidies depend on income, which would create a
15
+ # circular dependency if SNAP deductions depended on subsidized
16
+ # childcare expenses).
17
+ adds = ["pre_subsidy_childcare_expenses"]
@@ -7,7 +7,18 @@ class snap_countable_earner(Variable):
7
7
  label = "Countable income earner"
8
8
  documentation = "Whether this person's earned income is counted for SNAP"
9
9
  definition_period = MONTH
10
- reference = "https://www.law.cornell.edu/uscode/text/7/2014"
10
+ reference = (
11
+ "https://www.law.cornell.edu/uscode/text/7/2014, "
12
+ "https://www.law.cornell.edu/cfr/text/7/273.9#c_3"
13
+ )
11
14
 
12
15
  def formula(person, period, parameters):
13
- return ~person("snap_excluded_child_earner", period)
16
+ # Children in K-12 have income excluded
17
+ is_excluded_child = person("snap_excluded_child_earner", period)
18
+
19
+ # Federal Work Study participants have income excluded
20
+ is_work_study_participant = person(
21
+ "is_federal_work_study_participant", period.this_year
22
+ )
23
+
24
+ return ~(is_excluded_child | is_work_study_participant)