policyengine-us 1.439.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 (214) hide show
  1. policyengine_us/parameters/calibration/gov/hhs/medicare/per_capita_cost.yaml +12 -0
  2. policyengine_us/parameters/gov/contrib/states/ut/eitc/in_effect.yaml +9 -0
  3. policyengine_us/parameters/gov/contrib/states/ut/eitc/max_age.yaml +9 -0
  4. policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/child/child.yaml +0 -1
  5. policyengine_us/parameters/gov/hhs/medicare/part_a/deductible.yaml +13 -0
  6. policyengine_us/parameters/gov/hhs/medicare/part_a/default_quarters_of_coverage.yaml +10 -0
  7. policyengine_us/parameters/gov/hhs/medicare/part_a/full_premium.yaml +13 -0
  8. policyengine_us/parameters/gov/hhs/medicare/part_a/premium_free_quarters_threshold.yaml +10 -0
  9. policyengine_us/parameters/gov/hhs/medicare/part_a/reduced_premium.yaml +13 -0
  10. policyengine_us/parameters/gov/hhs/medicare/part_a/reduced_premium_quarters_threshold.yaml +10 -0
  11. policyengine_us/parameters/gov/hhs/medicare/part_b/base_premium.yaml +16 -0
  12. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/head_of_household.yaml +50 -0
  13. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/joint.yaml +49 -0
  14. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/separate.yaml +30 -0
  15. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/single.yaml +50 -0
  16. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/surviving_spouse.yaml +49 -0
  17. policyengine_us/parameters/gov/irs/credits/cdcc/eligibility/child_age.yaml +0 -1
  18. policyengine_us/parameters/gov/irs/credits/clean_vehicle/new/eligibility/min_kwh.yaml +0 -1
  19. policyengine_us/parameters/gov/irs/credits/clean_vehicle/used/eligibility/sale_price_limit.yaml +0 -1
  20. policyengine_us/parameters/gov/irs/credits/education/american_opportunity_credit/abolition.yaml +0 -1
  21. policyengine_us/parameters/gov/irs/credits/education/american_opportunity_credit/refundability.yaml +0 -1
  22. policyengine_us/parameters/gov/irs/credits/education/lifetime_learning_credit/abolition.yaml +0 -1
  23. policyengine_us/parameters/gov/irs/credits/education/lifetime_learning_credit/expense_limit.yaml +0 -1
  24. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/advanced_main_air_circulating_fan.yaml +0 -1
  25. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/door.yaml +0 -1
  26. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/energy_efficient_central_air_conditioner.yaml +0 -1
  27. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/heat_pump_heat_pump_water_heater_biomass_stove_boiler.yaml +0 -1
  28. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/home_energy_audit.yaml +0 -1
  29. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/qualified_furnace_or_hot_water_boiler.yaml +0 -1
  30. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/roof.yaml +0 -1
  31. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/total.yaml +0 -1
  32. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/window.yaml +0 -1
  33. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/lifetime/total.yaml +0 -1
  34. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/lifetime/window.yaml +0 -1
  35. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/in_effect.yaml +0 -1
  36. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/qualified_expenditures/credits.yaml +0 -1
  37. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/qualified_expenditures/heat_pump_heat_pump_water_heater_biomass_stove_boiler.yaml +0 -1
  38. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/rates/home_energy_audit.yaml +0 -1
  39. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/rates/improvements.yaml +0 -1
  40. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/rates/property.yaml +0 -1
  41. policyengine_us/parameters/gov/irs/credits/premium_tax_credit/phase_out/ending_rate.yaml +0 -1
  42. policyengine_us/parameters/gov/irs/credits/premium_tax_credit/phase_out/starting_rate.yaml +0 -1
  43. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/max/adult.yaml +0 -1
  44. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/max/dependent.yaml +0 -1
  45. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/phase_out/length.yaml +0 -1
  46. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/phase_out/threshold.yaml +0 -1
  47. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/max/adult.yaml +0 -1
  48. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/max/child.yaml +0 -1
  49. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/phase_out/rate.yaml +0 -1
  50. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/phase_out/threshold.yaml +0 -1
  51. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/max/adult.yaml +0 -1
  52. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/max/child.yaml +0 -1
  53. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/phase_out/rate.yaml +0 -1
  54. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/phase_out/threshold.yaml +0 -1
  55. policyengine_us/parameters/gov/irs/credits/residential_clean_energy/applicable_percentage.yaml +0 -1
  56. policyengine_us/parameters/gov/irs/credits/residential_clean_energy/elements.yaml +0 -1
  57. policyengine_us/parameters/gov/irs/credits/residential_clean_energy/fuel_cell_cap_per_kw.yaml +0 -1
  58. policyengine_us/parameters/gov/irs/deductions/standard/aged_or_blind/age_threshold.yaml +0 -1
  59. policyengine_us/parameters/gov/irs/payroll/medicare/additional/exclusion.yaml +0 -1
  60. policyengine_us/parameters/gov/local/ny/mamdani_income_tax/in_effect.yaml +10 -0
  61. policyengine_us/parameters/gov/local/ny/mamdani_income_tax/rate.yaml +18 -0
  62. policyengine_us/parameters/gov/states/ar/tax/income/rates/main/reduction.yaml +30 -0
  63. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/amount/{single.yaml → non_joint.yaml} +2 -2
  64. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/income_limit/{single.yaml → non_joint.yaml} +2 -2
  65. policyengine_us/parameters/gov/states/il/hfs/README.md +1 -0
  66. policyengine_us/parameters/gov/states/il/hfs/hbwd/README.md +1 -0
  67. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/age.yaml +25 -0
  68. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/asset/limit.yaml +15 -0
  69. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/income/limit.yaml +15 -0
  70. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/income/sources/earned.yaml +13 -0
  71. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/income/sources/unearned.yaml +25 -0
  72. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/qualified_noncitizen_statuses.yaml +21 -0
  73. policyengine_us/parameters/gov/states/il/hfs/hbwd/premium/earned.yaml +96 -0
  74. policyengine_us/parameters/gov/states/il/hfs/hbwd/premium/unearned.yaml +96 -0
  75. policyengine_us/parameters/gov/states/mt/tax/income/deductions/itemized/spouse_allocation_rate.yaml +13 -0
  76. policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/amount.yaml +14 -0
  77. policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/percentage_disregarded.yaml +14 -0
  78. policyengine_us/parameters/gov/states/wa/dshs/tanf/income/limit.yaml +36 -0
  79. policyengine_us/parameters/gov/states/wa/dshs/tanf/maximum_family_size.yaml +14 -0
  80. policyengine_us/parameters/gov/states/wa/dshs/tanf/payment_standard/amount.yaml +32 -0
  81. policyengine_us/parameters/gov/states/wa/dshs/tanf/payment_standard/maximum_amount.yaml +12 -0
  82. policyengine_us/parameters/gov/states/wa/dshs/tanf/resource_limit.yaml +15 -0
  83. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/adjustment_limit_basis.yaml +12 -0
  84. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/exemption_rate.yaml +13 -0
  85. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/rate.yaml +12 -0
  86. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/threshold.yaml +13 -0
  87. policyengine_us/parameters/gov/territories/pr/tax/income/regular_tax/percentage.yaml +21 -0
  88. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/sources.yaml +18 -0
  89. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/sources.yaml +15 -0
  90. policyengine_us/parameters/gov/usda/snap/student/child_age_limit/single_parent.yaml +12 -0
  91. policyengine_us/parameters/gov/usda/snap/student/child_age_limit/two_parent.yaml +12 -0
  92. policyengine_us/parameters/simulation/disabled_programs.yaml +0 -1
  93. policyengine_us/reforms/local/ny/__init__.py +4 -0
  94. policyengine_us/reforms/local/ny/mamdani_income_tax.py +84 -0
  95. policyengine_us/reforms/reforms.py +14 -0
  96. policyengine_us/reforms/states/ut/__init__.py +3 -0
  97. policyengine_us/reforms/states/ut/ut_refundable_eitc.py +118 -0
  98. policyengine_us/tests/policy/baseline/gov/hhs/medicare/costs/medicare_cost.yaml +65 -0
  99. policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/base_part_a_premium.yaml +35 -0
  100. policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/base_part_b_premium.yaml +15 -0
  101. policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/income_adjusted_part_b_premium.yaml +77 -0
  102. policyengine_us/tests/policy/baseline/gov/irs/tax/federal_income/alternative_minimum_tax/exemption/amt_exemption.yaml +68 -0
  103. policyengine_us/tests/policy/baseline/gov/irs/tax/federal_income/alternative_minimum_tax/integration.yaml +26 -0
  104. policyengine_us/tests/policy/baseline/gov/states/ar/tax/income/integration.yaml +35 -0
  105. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/additions/federal_deduction/co_federal_deduction_addback.yaml +2 -2
  106. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/asset/il_hbwd_countable_assets.yaml +23 -0
  107. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_age_eligible.yaml +39 -0
  108. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_asset_eligible.yaml +31 -0
  109. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_disability_eligible.yaml +35 -0
  110. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.yaml +65 -0
  111. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_employment_eligible.yaml +34 -0
  112. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_immigration_status_eligible.yaml +47 -0
  113. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_income_eligible.yaml +25 -0
  114. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/il_hbwd_person.yaml +34 -0
  115. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/il_hbwd_premium.yaml +84 -0
  116. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/integration.yaml +183 -0
  117. policyengine_us/tests/policy/baseline/gov/states/ma/dta/ssp/ma_state_supplement.yaml +2 -0
  118. policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/deductions/mo_federal_income_tax_deduction.yaml +2 -14
  119. 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
  120. 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
  121. 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
  122. policyengine_us/tests/policy/baseline/gov/states/nc/tax/income/deductions/nc_itemized_deductions.yaml +2 -2
  123. policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_qualifying_income.yaml +29 -0
  124. policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/integration.yaml +82 -0
  125. policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/credits/ss_benefits_credit/ut_ss_benefits_credit_max.yaml +5 -5
  126. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/benefit/wa_tanf_payment_standard.yaml +48 -0
  127. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.yaml +65 -0
  128. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.yaml +96 -0
  129. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.yaml +70 -0
  130. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/integration.yaml +676 -0
  131. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf.yaml +102 -0
  132. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf_resources_eligible.yaml +6 -7
  133. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_amount.yaml +29 -0
  134. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_eligible.yaml +15 -0
  135. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi.yaml +17 -0
  136. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi_person.yaml +17 -0
  137. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_tax_before_credits.yaml +19 -0
  138. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/pr_net_taxable_income.yaml +26 -0
  139. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/is_snap_higher_ed_student.yaml +23 -0
  140. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/is_snap_ineligible_student.yaml +75 -4
  141. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/meets_snap_parent_exception.yaml +345 -0
  142. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/meets_snap_work_exception.yaml +47 -0
  143. policyengine_us/tests/policy/baseline/gov/usda/snap/income/federal_work_study_income_exclusion.yaml +24 -0
  144. policyengine_us/tests/policy/baseline/gov/usda/snap/income/snap_countable_earner.yaml +25 -0
  145. policyengine_us/tests/policy/baseline/gov/usda/wic/integration.yaml +181 -0
  146. policyengine_us/tests/policy/baseline/gov/usda/wic/is_wic_at_nutritional_risk.yaml +33 -0
  147. policyengine_us/tests/policy/baseline/gov/usda/wic/is_wic_eligible.yaml +28 -15
  148. policyengine_us/tests/policy/baseline/household/demographic/geographic/state_group.yaml +21 -0
  149. policyengine_us/tests/policy/contrib/local/ny/nyc_mamdani_income_tax.yaml +51 -0
  150. policyengine_us/tests/policy/contrib/states/ut/ut_refundable_eitc.yaml +214 -0
  151. policyengine_us/variables/gov/ed/is_federal_work_study_participant.py +9 -0
  152. policyengine_us/variables/gov/hhs/medicare/costs/medicare_cost.py +30 -0
  153. policyengine_us/variables/gov/hhs/medicare/costs/medicare_enrolled.py +14 -0
  154. policyengine_us/variables/gov/hhs/medicare/eligibility/part_a/base_part_a_premium.py +32 -0
  155. policyengine_us/variables/gov/hhs/medicare/eligibility/part_a/is_premium_free_part_a.py +22 -0
  156. policyengine_us/variables/gov/hhs/medicare/eligibility/part_a/medicare_quarters_of_coverage.py +16 -0
  157. policyengine_us/variables/gov/hhs/medicare/eligibility/part_b/base_part_b_premium.py +16 -0
  158. policyengine_us/variables/gov/hhs/medicare/eligibility/part_b/income_adjusted_part_b_premium.py +55 -0
  159. policyengine_us/variables/gov/irs/tax/federal_income/alternative_minimum_tax/exemption/amt_exemption.py +47 -0
  160. policyengine_us/variables/gov/irs/tax/federal_income/alternative_minimum_tax/income/amt_income_less_exemptions.py +4 -22
  161. policyengine_us/variables/gov/states/ca/tax/income/alternative_minimum_tax/exemption/ca_amt_exemption.py +4 -2
  162. policyengine_us/variables/gov/states/ca/tax/income/ca_income_tax.py +1 -0
  163. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit.py +1 -1
  164. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible.py +1 -1
  165. policyengine_us/variables/gov/states/il/hfs/hbwd/asset/il_hbwd_countable_assets.py +34 -0
  166. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_age_eligible.py +20 -0
  167. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_asset_eligible.py +21 -0
  168. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_disability_eligible.py +20 -0
  169. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.py +33 -0
  170. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_employment_eligible.py +25 -0
  171. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_immigration_status_eligible.py +26 -0
  172. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_income_eligible.py +23 -0
  173. policyengine_us/variables/gov/states/il/hfs/hbwd/il_hbwd.py +17 -0
  174. policyengine_us/variables/gov/states/il/hfs/hbwd/il_hbwd_person.py +24 -0
  175. policyengine_us/variables/gov/states/il/hfs/hbwd/il_hbwd_premium.py +23 -0
  176. policyengine_us/variables/gov/states/il/hfs/hbwd/income/earned/il_hbwd_countable_earned_income.py +24 -0
  177. policyengine_us/variables/gov/states/il/hfs/hbwd/income/earned/il_hbwd_gross_earned_income.py +16 -0
  178. policyengine_us/variables/gov/states/il/hfs/hbwd/income/il_hbwd_countable_income.py +21 -0
  179. policyengine_us/variables/gov/states/il/hfs/hbwd/income/unearned/il_hbwd_countable_unearned_income.py +16 -0
  180. policyengine_us/variables/gov/states/ma/dta/ssp/ma_state_supplement.py +1 -0
  181. policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/general/mt_itemized_deductions_indiv.py +3 -2
  182. policyengine_us/variables/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_qualifying_income.py +7 -3
  183. policyengine_us/variables/gov/states/wa/dshs/tanf/benefit/wa_tanf_payment_standard.py +22 -0
  184. policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.py +42 -0
  185. policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.py +31 -0
  186. policyengine_us/variables/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.py +33 -0
  187. policyengine_us/variables/gov/states/wa/dshs/tanf/income/wa_tanf_countable_income.py +16 -0
  188. policyengine_us/variables/gov/states/wa/dshs/tanf/wa_tanf.py +34 -0
  189. policyengine_us/variables/gov/states/wa/dshs/tanf/wa_tanf_resources_eligible.py +3 -2
  190. policyengine_us/variables/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_amount.py +23 -0
  191. policyengine_us/variables/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_eligible.py +16 -0
  192. policyengine_us/variables/gov/territories/pr/tax/income/pr_agi.py +11 -1
  193. policyengine_us/variables/gov/territories/pr/tax/income/pr_agi_person.py +11 -1
  194. policyengine_us/variables/gov/territories/pr/tax/income/pr_regular_tax_before_credits.py +9 -0
  195. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/deductions/pr_deductions.py +13 -0
  196. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/exemptions/pr_exemptions.py +13 -0
  197. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/pr_net_taxable_income.py +6 -0
  198. policyengine_us/variables/gov/usda/snap/eligibility/student/is_snap_higher_ed_student.py +17 -0
  199. policyengine_us/variables/gov/usda/snap/eligibility/student/is_snap_ineligible_student.py +47 -15
  200. policyengine_us/variables/gov/usda/snap/eligibility/student/meets_snap_parent_exception.py +42 -0
  201. policyengine_us/variables/gov/usda/snap/eligibility/student/meets_snap_work_exception.py +22 -0
  202. policyengine_us/variables/gov/usda/snap/income/snap_countable_earner.py +13 -2
  203. policyengine_us/variables/gov/usda/wic/is_wic_at_nutritional_risk.py +3 -10
  204. policyengine_us/variables/gov/usda/wic/is_wic_eligible.py +10 -1
  205. policyengine_us/variables/household/demographic/geographic/state_group.py +8 -5
  206. policyengine_us/variables/household/demographic/person/is_part_time_college_student.py +9 -0
  207. {policyengine_us-1.439.0.dist-info → policyengine_us-1.449.6.dist-info}/METADATA +1 -1
  208. {policyengine_us-1.439.0.dist-info → policyengine_us-1.449.6.dist-info}/RECORD +213 -90
  209. {policyengine_us-1.439.0.dist-info → policyengine_us-1.449.6.dist-info}/WHEEL +1 -1
  210. policyengine_us/parameters/gov/states/wa/dshs/tanf/eligibility/resources/limit.yaml +0 -11
  211. /policyengine_us/variables/gov/states/co/ssa/{state_suplement → state_supplement}/co_state_supplement.py +0 -0
  212. /policyengine_us/variables/gov/states/co/ssa/{state_suplement → state_supplement}/co_state_supplement_eligible.py +0 -0
  213. {policyengine_us-1.439.0.dist-info → policyengine_us-1.449.6.dist-info}/entry_points.txt +0 -0
  214. {policyengine_us-1.439.0.dist-info → policyengine_us-1.449.6.dist-info}/licenses/LICENSE +0 -0
@@ -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
@@ -9,3 +9,12 @@ class pr_regular_tax_before_credits(Variable):
9
9
  definition_period = YEAR
10
10
  defined_for = StateCode.PR
11
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"
@@ -9,3 +9,9 @@ class pr_net_taxable_income(Variable):
9
9
  unit = USD
10
10
  definition_period = YEAR
11
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_before_lsr", 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
@@ -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)
@@ -10,21 +10,14 @@ class is_wic_at_nutritional_risk(Variable):
10
10
  reference = "https://www.law.cornell.edu/uscode/text/42/1786#b_8"
11
11
 
12
12
  def formula(person, period, parameters):
13
- # Assign households WIC nutritional risk status probabilistically in microsimulation.
13
+ # Assign nutritional risk status probabilistically in microsimulation.
14
+ # Nutritional risk is a health assessment independent of income per § 1786(b)(8).
14
15
  # Assume all meet qualification in individual simulation.
15
16
  if person.simulation.dataset is not None:
16
17
  wic_reported = person("receives_wic", period)
17
- meets_income_test = person.spm_unit(
18
- "meets_wic_income_test", period
19
- )
20
- meets_categorical_test = person(
21
- "meets_wic_categorical_eligibility", period
22
- )
23
18
  category = person("wic_category", period)
24
19
  risk = parameters(period).gov.usda.wic.nutritional_risk
25
- imputed_risk = (random(person) < risk[category]) & (
26
- meets_income_test | meets_categorical_test
27
- )
20
+ imputed_risk = random(person) < risk[category]
28
21
  return wic_reported | imputed_risk
29
22
  else:
30
23
  return True
@@ -15,4 +15,13 @@ class is_wic_eligible(Variable):
15
15
  "meets_wic_categorical_eligibility", period
16
16
  )
17
17
  nutritional_risk = person("is_wic_at_nutritional_risk", period)
18
- return (meets_income_test | meets_categorical_test) & nutritional_risk
18
+ # Must be in a valid WIC demographic category per 42 U.S.C. § 1786(d)(1)
19
+ wic_category = person("wic_category", period)
20
+ demographic_eligible = (
21
+ wic_category != wic_category.possible_values.NONE
22
+ )
23
+ return (
24
+ demographic_eligible
25
+ & (meets_income_test | meets_categorical_test)
26
+ & nutritional_risk
27
+ )
@@ -22,8 +22,11 @@ class state_group(Variable):
22
22
  def formula(household, period, parameters):
23
23
  NON_CONTIGUOUS_STATES = ("AK", "HI", "GU", "PR", "VI")
24
24
  state_code = household("state_code", period).decode_to_str()
25
- return where(
26
- np.isin(state_code, NON_CONTIGUOUS_STATES),
27
- StateGroup.encode(state_code).decode(),
28
- StateGroup.CONTIGUOUS_US,
29
- )
25
+ is_non_contiguous = np.isin(state_code, NON_CONTIGUOUS_STATES)
26
+ encoded = np.empty(state_code.shape, dtype=object)
27
+ encoded[:] = StateGroup.CONTIGUOUS_US
28
+ if is_non_contiguous.any():
29
+ encoded[is_non_contiguous] = StateGroup.encode(
30
+ state_code[is_non_contiguous]
31
+ ).decode()
32
+ return encoded
@@ -0,0 +1,9 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class is_part_time_college_student(Variable):
5
+ value_type = bool
6
+ entity = Person
7
+ label = "Is a part-time college student"
8
+ documentation = "Enrolled at least half-time but less than full-time in an institution of higher education"
9
+ definition_period = YEAR
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: policyengine-us
3
- Version: 1.439.0
3
+ Version: 1.449.6
4
4
  Summary: Add your description here.
5
5
  Author-email: PolicyEngine <hello@policyengine.org>
6
6
  License-File: LICENSE