policyengine-us 1.426.0__py3-none-any.whl → 1.449.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. policyengine_us/parameters/calibration/gov/hhs/medicare/per_capita_cost.yaml +12 -0
  2. policyengine_us/parameters/gov/aca/state_rating_area_cost.yaml +511 -12
  3. policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/adult_dependent_credit/min_age.yaml +1 -1
  4. policyengine_us/parameters/gov/contrib/states/ri/ctc/young_child_boost/age_limit.yaml +9 -0
  5. policyengine_us/parameters/gov/contrib/states/ri/ctc/young_child_boost/amount.yaml +9 -0
  6. policyengine_us/parameters/gov/contrib/states/ri/dependent_exemption/amount.yaml +2 -2
  7. policyengine_us/parameters/gov/contrib/states/ut/eitc/in_effect.yaml +9 -0
  8. policyengine_us/parameters/gov/contrib/states/ut/eitc/max_age.yaml +9 -0
  9. policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/child/child.yaml +0 -1
  10. policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/income/limit/couple.yaml +60 -51
  11. policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/income/limit/individual.yaml +60 -51
  12. policyengine_us/parameters/gov/hhs/medicare/part_a/deductible.yaml +13 -0
  13. policyengine_us/parameters/gov/hhs/medicare/part_a/default_quarters_of_coverage.yaml +10 -0
  14. policyengine_us/parameters/gov/hhs/medicare/part_a/full_premium.yaml +13 -0
  15. policyengine_us/parameters/gov/hhs/medicare/part_a/premium_free_quarters_threshold.yaml +10 -0
  16. policyengine_us/parameters/gov/hhs/medicare/part_a/reduced_premium.yaml +13 -0
  17. policyengine_us/parameters/gov/hhs/medicare/part_a/reduced_premium_quarters_threshold.yaml +10 -0
  18. policyengine_us/parameters/gov/hhs/medicare/part_b/base_premium.yaml +16 -0
  19. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/head_of_household.yaml +50 -0
  20. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/joint.yaml +49 -0
  21. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/separate.yaml +30 -0
  22. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/single.yaml +50 -0
  23. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/surviving_spouse.yaml +49 -0
  24. policyengine_us/parameters/gov/hhs/tanf/cash/income/sources/earned.yaml +13 -0
  25. policyengine_us/parameters/gov/hhs/tanf/cash/income/sources/unearned.yaml +23 -0
  26. policyengine_us/parameters/gov/irs/credits/cdcc/eligibility/child_age.yaml +0 -1
  27. policyengine_us/parameters/gov/irs/credits/clean_vehicle/new/eligibility/min_kwh.yaml +0 -1
  28. policyengine_us/parameters/gov/irs/credits/clean_vehicle/used/eligibility/sale_price_limit.yaml +0 -1
  29. policyengine_us/parameters/gov/irs/credits/education/american_opportunity_credit/abolition.yaml +0 -1
  30. policyengine_us/parameters/gov/irs/credits/education/american_opportunity_credit/refundability.yaml +0 -1
  31. policyengine_us/parameters/gov/irs/credits/education/lifetime_learning_credit/abolition.yaml +0 -1
  32. policyengine_us/parameters/gov/irs/credits/education/lifetime_learning_credit/expense_limit.yaml +0 -1
  33. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/advanced_main_air_circulating_fan.yaml +0 -1
  34. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/door.yaml +0 -1
  35. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/energy_efficient_central_air_conditioner.yaml +0 -1
  36. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/heat_pump_heat_pump_water_heater_biomass_stove_boiler.yaml +0 -1
  37. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/home_energy_audit.yaml +0 -1
  38. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/qualified_furnace_or_hot_water_boiler.yaml +0 -1
  39. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/roof.yaml +0 -1
  40. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/total.yaml +0 -1
  41. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/window.yaml +0 -1
  42. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/lifetime/total.yaml +0 -1
  43. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/lifetime/window.yaml +0 -1
  44. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/in_effect.yaml +0 -1
  45. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/qualified_expenditures/credits.yaml +0 -1
  46. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/qualified_expenditures/heat_pump_heat_pump_water_heater_biomass_stove_boiler.yaml +0 -1
  47. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/rates/home_energy_audit.yaml +0 -1
  48. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/rates/improvements.yaml +0 -1
  49. policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/rates/property.yaml +0 -1
  50. policyengine_us/parameters/gov/irs/credits/premium_tax_credit/phase_out/ending_rate.yaml +0 -1
  51. policyengine_us/parameters/gov/irs/credits/premium_tax_credit/phase_out/starting_rate.yaml +0 -1
  52. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/max/adult.yaml +0 -1
  53. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/max/dependent.yaml +0 -1
  54. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/phase_out/length.yaml +0 -1
  55. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/phase_out/threshold.yaml +0 -1
  56. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/max/adult.yaml +0 -1
  57. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/max/child.yaml +0 -1
  58. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/phase_out/rate.yaml +0 -1
  59. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/phase_out/threshold.yaml +0 -1
  60. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/max/adult.yaml +0 -1
  61. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/max/child.yaml +0 -1
  62. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/phase_out/rate.yaml +0 -1
  63. policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/phase_out/threshold.yaml +0 -1
  64. policyengine_us/parameters/gov/irs/credits/residential_clean_energy/applicable_percentage.yaml +0 -1
  65. policyengine_us/parameters/gov/irs/credits/residential_clean_energy/elements.yaml +0 -1
  66. policyengine_us/parameters/gov/irs/credits/residential_clean_energy/fuel_cell_cap_per_kw.yaml +0 -1
  67. policyengine_us/parameters/gov/irs/deductions/standard/aged_or_blind/age_threshold.yaml +0 -1
  68. policyengine_us/parameters/gov/irs/payroll/medicare/additional/exclusion.yaml +0 -1
  69. policyengine_us/parameters/gov/local/ny/mamdani_income_tax/in_effect.yaml +10 -0
  70. policyengine_us/parameters/gov/local/ny/mamdani_income_tax/rate.yaml +18 -0
  71. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/README.md +1 -206
  72. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/{income/all.yaml → income.yaml} +1 -1
  73. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution.yaml +70 -0
  74. policyengine_us/parameters/gov/states/ar/tax/income/rates/main/reduction.yaml +30 -0
  75. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/amount/joint.yaml +10 -0
  76. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/amount/non_joint.yaml +10 -0
  77. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/income_limit/joint.yaml +10 -0
  78. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/income_limit/non_joint.yaml +10 -0
  79. policyengine_us/parameters/gov/states/co/tax/income/credits/refundable.yaml +10 -0
  80. policyengine_us/parameters/gov/states/ga/tax/income/credits/itemizer/amount.yaml +14 -0
  81. policyengine_us/parameters/gov/states/ga/tax/income/credits/non_refundable.yaml +9 -0
  82. policyengine_us/parameters/gov/states/hi/tax/income/alternative_tax/availability.yaml +2 -3
  83. policyengine_us/parameters/gov/states/il/hfs/README.md +1 -0
  84. policyengine_us/parameters/gov/states/il/hfs/hbwd/README.md +1 -0
  85. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/age.yaml +25 -0
  86. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/asset/limit.yaml +15 -0
  87. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/income/limit.yaml +15 -0
  88. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/income/sources/earned.yaml +13 -0
  89. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/income/sources/unearned.yaml +25 -0
  90. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/qualified_noncitizen_statuses.yaml +21 -0
  91. policyengine_us/parameters/gov/states/il/hfs/hbwd/premium/earned.yaml +96 -0
  92. policyengine_us/parameters/gov/states/il/hfs/hbwd/premium/unearned.yaml +96 -0
  93. policyengine_us/parameters/gov/states/mt/tax/income/deductions/itemized/spouse_allocation_rate.yaml +13 -0
  94. policyengine_us/parameters/gov/states/pa/tax/income/credits/eitc/match.yaml +10 -0
  95. policyengine_us/parameters/gov/states/pa/tax/income/credits/refundable.yaml +6 -0
  96. policyengine_us/parameters/gov/states/va/tax/income/credits/non_refundable.yaml +1 -1
  97. policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/amount.yaml +14 -0
  98. policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/percentage_disregarded.yaml +14 -0
  99. policyengine_us/parameters/gov/states/wa/dshs/tanf/income/limit.yaml +36 -0
  100. policyengine_us/parameters/gov/states/wa/dshs/tanf/maximum_family_size.yaml +14 -0
  101. policyengine_us/parameters/gov/states/wa/dshs/tanf/payment_standard/amount.yaml +32 -0
  102. policyengine_us/parameters/gov/states/wa/dshs/tanf/payment_standard/maximum_amount.yaml +12 -0
  103. policyengine_us/parameters/gov/states/wa/dshs/tanf/resource_limit.yaml +15 -0
  104. policyengine_us/parameters/gov/territories/pr/tax/income/credits/refundable.yaml +2 -0
  105. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/adjustment_limit_basis.yaml +12 -0
  106. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/exemption_rate.yaml +13 -0
  107. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/rate.yaml +12 -0
  108. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/threshold.yaml +13 -0
  109. policyengine_us/parameters/gov/territories/pr/tax/income/regular_tax/percentage.yaml +21 -0
  110. policyengine_us/parameters/gov/territories/pr/tax/income/tax_rate/amount.yaml +35 -0
  111. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/sources.yaml +18 -0
  112. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/sources.yaml +15 -0
  113. policyengine_us/parameters/gov/usda/snap/student/child_age_limit/single_parent.yaml +12 -0
  114. policyengine_us/parameters/gov/usda/snap/student/child_age_limit/two_parent.yaml +12 -0
  115. policyengine_us/parameters/gov/usda/snap/work_requirements/general/age_threshold/caring_dependent_child.yaml +1 -1
  116. policyengine_us/parameters/gov/usda/snap/work_requirements/general/age_threshold/exempted.yaml +1 -1
  117. policyengine_us/parameters/gov/usda/snap/work_requirements/general/weekly_hours_threshold.yaml +1 -1
  118. policyengine_us/parameters/simulation/disabled_programs.yaml +0 -1
  119. policyengine_us/reforms/congress/tlaib/__init__.py +4 -3
  120. policyengine_us/reforms/congress/tlaib/economic_dignity_for_all_agenda/__init__.py +9 -0
  121. policyengine_us/reforms/congress/tlaib/economic_dignity_for_all_agenda/edaa_end_child_poverty_act.py +237 -0
  122. policyengine_us/reforms/local/ny/__init__.py +4 -0
  123. policyengine_us/reforms/local/ny/mamdani_income_tax.py +84 -0
  124. policyengine_us/reforms/reforms.py +19 -4
  125. policyengine_us/reforms/states/ri/ctc/ri_ctc_reform.py +32 -1
  126. policyengine_us/reforms/states/ri/exemption/ri_exemption_reform.py +26 -5
  127. policyengine_us/reforms/states/ut/__init__.py +3 -0
  128. policyengine_us/reforms/states/ut/ut_refundable_eitc.py +118 -0
  129. policyengine_us/tests/policy/baseline/gov/ed/pell_grant/pell_grant_simplified_formula_applies.yaml +1 -1
  130. policyengine_us/tests/policy/baseline/gov/hhs/medicare/costs/medicare_cost.yaml +65 -0
  131. policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/base_part_a_premium.yaml +35 -0
  132. policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/base_part_b_premium.yaml +15 -0
  133. policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/income_adjusted_part_b_premium.yaml +77 -0
  134. policyengine_us/tests/policy/baseline/gov/hhs/tanf/tanf_fpg.yaml +53 -0
  135. policyengine_us/tests/policy/baseline/gov/irs/tax/federal_income/alternative_minimum_tax/exemption/amt_exemption.yaml +68 -0
  136. policyengine_us/tests/policy/baseline/gov/irs/tax/federal_income/alternative_minimum_tax/integration.yaml +26 -0
  137. policyengine_us/tests/policy/baseline/gov/simulation/labor_supply_response/income_elasticity.yaml +6 -12
  138. policyengine_us/tests/policy/baseline/gov/simulation/labor_supply_response/labor_supply_behavioral_response.yaml +24 -2
  139. policyengine_us/tests/policy/baseline/gov/simulation/labor_supply_response/substitution_elasticity.yaml +35 -10
  140. policyengine_us/tests/policy/baseline/gov/ssa/ssi/integration_tests.yaml +150 -4
  141. policyengine_us/tests/policy/baseline/gov/states/ar/tax/income/integration.yaml +35 -0
  142. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/additions/federal_deduction/co_federal_deduction_addback.yaml +2 -2
  143. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit.yaml +64 -0
  144. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible.yaml +122 -0
  145. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible_care_worker_count.yaml +65 -0
  146. policyengine_us/tests/policy/baseline/gov/states/ga/tax/income/credits/ga_itemizer_credit.yaml +44 -0
  147. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/alternative_tax/hi_alternative_tax_on_capital_gains_eligible.yaml +0 -8
  148. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/cdcc/hi_cdcc.yaml +4 -0
  149. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/cdcc/hi_cdcc_eligible.yaml +15 -0
  150. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/integration.yaml +96 -0
  151. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/asset/il_hbwd_countable_assets.yaml +23 -0
  152. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_age_eligible.yaml +39 -0
  153. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_asset_eligible.yaml +31 -0
  154. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_disability_eligible.yaml +35 -0
  155. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.yaml +65 -0
  156. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_employment_eligible.yaml +34 -0
  157. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_immigration_status_eligible.yaml +47 -0
  158. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_income_eligible.yaml +25 -0
  159. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/il_hbwd_person.yaml +34 -0
  160. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/il_hbwd_premium.yaml +84 -0
  161. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/integration.yaml +183 -0
  162. policyengine_us/tests/policy/baseline/gov/states/ma/dta/ssp/ma_state_supplement.yaml +2 -0
  163. policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/deductions/mo_federal_income_tax_deduction.yaml +2 -14
  164. policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/deductions/mo_pension_and_ss_or_ssd_deduction/mo_pension_and_ss_or_ssd_deduction_section_a.yaml +2 -2
  165. policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/deductions/mo_pension_and_ss_or_ssd_deduction/mo_pension_and_ss_or_ssd_deduction_section_b.yaml +1 -1
  166. policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/deductions/mo_pension_and_ss_or_ssd_deduction/mo_pension_and_ss_or_ssd_deduction_section_c.yaml +1 -1
  167. policyengine_us/tests/policy/baseline/gov/states/nc/tax/income/deductions/nc_itemized_deductions.yaml +2 -2
  168. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/credits/cdcc/nj_cdcc.yaml +8 -8
  169. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integation.yaml +57 -0
  170. policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_qualifying_income.yaml +29 -0
  171. policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/oh_cdcc.yaml +4 -4
  172. policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/integration.yaml +141 -0
  173. policyengine_us/tests/policy/baseline/gov/states/pa/tax/income/credits/pa_eitc.yaml +26 -0
  174. policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/credits/ss_benefits_credit/ut_ss_benefits_credit_max.yaml +5 -5
  175. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/benefit/wa_tanf_payment_standard.yaml +48 -0
  176. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.yaml +65 -0
  177. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.yaml +96 -0
  178. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.yaml +70 -0
  179. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/integration.yaml +676 -0
  180. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf.yaml +102 -0
  181. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf_resources_eligible.yaml +6 -7
  182. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_amount.yaml +29 -0
  183. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_eligible.yaml +15 -0
  184. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi.yaml +17 -0
  185. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi_person.yaml +17 -0
  186. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_normal_tax.yaml +31 -0
  187. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_tax_before_credits.yaml +19 -0
  188. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/pr_net_taxable_income.yaml +26 -0
  189. policyengine_us/tests/policy/baseline/gov/test_categorical_eligibility_vectorization.yaml +41 -0
  190. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/is_snap_higher_ed_student.yaml +23 -0
  191. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/is_snap_ineligible_student.yaml +75 -4
  192. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/meets_snap_parent_exception.yaml +345 -0
  193. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/meets_snap_work_exception.yaml +47 -0
  194. policyengine_us/tests/policy/baseline/gov/usda/snap/income/federal_work_study_income_exclusion.yaml +24 -0
  195. policyengine_us/tests/policy/baseline/gov/usda/snap/income/snap_countable_earner.yaml +25 -0
  196. policyengine_us/tests/policy/baseline/gov/usda/wic/integration.yaml +181 -0
  197. policyengine_us/tests/policy/baseline/gov/usda/wic/is_wic_at_nutritional_risk.yaml +33 -0
  198. policyengine_us/tests/policy/baseline/gov/usda/wic/is_wic_eligible.yaml +28 -15
  199. policyengine_us/tests/policy/baseline/household/demographic/geographic/state_group.yaml +21 -0
  200. policyengine_us/tests/policy/contrib/congress/tlaib/economic_dignity_for_all_agenda/edaa_end_child_poverty_act.yaml +198 -0
  201. policyengine_us/tests/policy/contrib/local/ny/nyc_mamdani_income_tax.yaml +51 -0
  202. policyengine_us/tests/policy/contrib/states/ri/ctc_reform_test.yaml +144 -0
  203. policyengine_us/tests/policy/contrib/states/ri/exemption_reform_test.yaml +2 -2
  204. policyengine_us/tests/policy/contrib/states/ut/ut_refundable_eitc.yaml +214 -0
  205. policyengine_us/variables/gov/ed/is_federal_work_study_participant.py +9 -0
  206. policyengine_us/variables/gov/ed/pell_grant/efc/pell_grant_simplified_formula_applies.py +1 -2
  207. policyengine_us/variables/gov/fcc/lifeline/is_lifeline_eligible.py +2 -2
  208. policyengine_us/variables/gov/hhs/head_start/early_head_start.py +2 -1
  209. policyengine_us/variables/gov/hhs/head_start/head_start.py +2 -1
  210. policyengine_us/variables/gov/hhs/head_start/is_head_start_categorically_eligible.py +1 -3
  211. policyengine_us/variables/gov/hhs/medicare/costs/medicare_cost.py +30 -0
  212. policyengine_us/variables/gov/hhs/medicare/costs/medicare_enrolled.py +14 -0
  213. policyengine_us/variables/gov/hhs/medicare/eligibility/part_a/base_part_a_premium.py +32 -0
  214. policyengine_us/variables/gov/hhs/medicare/eligibility/part_a/is_premium_free_part_a.py +22 -0
  215. policyengine_us/variables/gov/hhs/medicare/eligibility/part_a/medicare_quarters_of_coverage.py +16 -0
  216. policyengine_us/variables/gov/hhs/medicare/eligibility/part_b/base_part_b_premium.py +16 -0
  217. policyengine_us/variables/gov/hhs/medicare/eligibility/part_b/income_adjusted_part_b_premium.py +55 -0
  218. policyengine_us/variables/gov/hhs/tanf/cash/income/tanf_gross_earned_income.py +13 -0
  219. policyengine_us/variables/gov/hhs/tanf/cash/income/tanf_gross_unearned_income.py +13 -0
  220. policyengine_us/variables/gov/hhs/tanf/tanf_fpg.py +28 -0
  221. policyengine_us/variables/gov/irs/tax/federal_income/alternative_minimum_tax/exemption/amt_exemption.py +47 -0
  222. policyengine_us/variables/gov/irs/tax/federal_income/alternative_minimum_tax/income/amt_income_less_exemptions.py +4 -22
  223. policyengine_us/variables/gov/simulation/labor_supply_response/income_elasticity.py +1 -27
  224. policyengine_us/variables/gov/simulation/labor_supply_response/substitution_elasticity.py +18 -43
  225. policyengine_us/variables/gov/ssa/ssi/eligibility/income/deemed/from_ineligible_spouse/is_ssi_spousal_deeming_applies.py +41 -0
  226. policyengine_us/variables/gov/ssa/ssi/eligibility/income/deemed/from_ineligible_spouse/ssi_income_deemed_from_ineligible_spouse.py +20 -20
  227. policyengine_us/variables/gov/ssa/ssi/ssi.py +22 -1
  228. policyengine_us/variables/gov/ssa/ssi/ssi_amount_if_eligible.py +26 -4
  229. policyengine_us/variables/gov/states/ca/cpuc/care/eligibility/ca_care_categorically_eligible.py +2 -2
  230. policyengine_us/variables/gov/states/ca/tax/income/alternative_minimum_tax/exemption/ca_amt_exemption.py +4 -2
  231. policyengine_us/variables/gov/states/ca/tax/income/ca_income_tax.py +1 -0
  232. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit.py +26 -0
  233. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible.py +27 -0
  234. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible_care_worker.py +10 -0
  235. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible_care_worker_count.py +18 -0
  236. policyengine_us/variables/gov/states/ga/tax/income/credits/ga_itemizer_credit.py +19 -0
  237. policyengine_us/variables/gov/states/hi/tax/income/credits/cdcc/hi_cdcc.py +1 -1
  238. policyengine_us/variables/gov/states/hi/tax/income/credits/cdcc/hi_cdcc_eligible.py +14 -0
  239. policyengine_us/variables/gov/states/il/hfs/hbwd/asset/il_hbwd_countable_assets.py +34 -0
  240. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_age_eligible.py +20 -0
  241. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_asset_eligible.py +21 -0
  242. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_disability_eligible.py +20 -0
  243. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.py +33 -0
  244. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_employment_eligible.py +25 -0
  245. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_immigration_status_eligible.py +26 -0
  246. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_income_eligible.py +23 -0
  247. policyengine_us/variables/gov/states/il/hfs/hbwd/il_hbwd.py +17 -0
  248. policyengine_us/variables/gov/states/il/hfs/hbwd/il_hbwd_person.py +24 -0
  249. policyengine_us/variables/gov/states/il/hfs/hbwd/il_hbwd_premium.py +23 -0
  250. policyengine_us/variables/gov/states/il/hfs/hbwd/income/earned/il_hbwd_countable_earned_income.py +24 -0
  251. policyengine_us/variables/gov/states/il/hfs/hbwd/income/earned/il_hbwd_gross_earned_income.py +16 -0
  252. policyengine_us/variables/gov/states/il/hfs/hbwd/income/il_hbwd_countable_income.py +21 -0
  253. policyengine_us/variables/gov/states/il/hfs/hbwd/income/unearned/il_hbwd_countable_unearned_income.py +16 -0
  254. policyengine_us/variables/gov/states/ma/dta/ssp/ma_state_supplement.py +1 -0
  255. policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/general/mt_itemized_deductions_indiv.py +3 -2
  256. policyengine_us/variables/gov/states/nj/tax/income/credits/cdcc/nj_cdcc.py +2 -2
  257. policyengine_us/variables/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_qualifying_income.py +7 -3
  258. policyengine_us/variables/gov/states/oh/tax/income/credits/oh_cdcc.py +2 -2
  259. policyengine_us/variables/gov/states/pa/tax/income/credits/pa_eitc.py +16 -0
  260. policyengine_us/variables/gov/states/wa/dshs/tanf/benefit/wa_tanf_payment_standard.py +22 -0
  261. policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.py +42 -0
  262. policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.py +31 -0
  263. policyengine_us/variables/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.py +33 -0
  264. policyengine_us/variables/gov/states/wa/dshs/tanf/income/wa_tanf_countable_income.py +16 -0
  265. policyengine_us/variables/gov/states/wa/dshs/tanf/wa_tanf.py +34 -0
  266. policyengine_us/variables/gov/states/wa/dshs/tanf/wa_tanf_resources_eligible.py +3 -2
  267. policyengine_us/variables/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_amount.py +23 -0
  268. policyengine_us/variables/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_eligible.py +16 -0
  269. policyengine_us/variables/gov/territories/pr/tax/income/pr_agi.py +11 -1
  270. policyengine_us/variables/gov/territories/pr/tax/income/pr_agi_person.py +11 -1
  271. policyengine_us/variables/gov/territories/pr/tax/income/pr_income_tax.py +14 -0
  272. policyengine_us/variables/gov/territories/pr/tax/income/pr_normal_tax.py +16 -0
  273. policyengine_us/variables/gov/territories/pr/tax/income/pr_regular_tax_before_credits.py +20 -0
  274. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/deductions/pr_deductions.py +13 -0
  275. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/exemptions/pr_exemptions.py +13 -0
  276. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/pr_net_taxable_income.py +17 -0
  277. policyengine_us/variables/gov/usda/snap/eligibility/student/is_snap_higher_ed_student.py +17 -0
  278. policyengine_us/variables/gov/usda/snap/eligibility/student/is_snap_ineligible_student.py +47 -15
  279. policyengine_us/variables/gov/usda/snap/eligibility/student/meets_snap_parent_exception.py +42 -0
  280. policyengine_us/variables/gov/usda/snap/eligibility/student/meets_snap_work_exception.py +22 -0
  281. policyengine_us/variables/gov/usda/snap/income/snap_countable_earner.py +13 -2
  282. policyengine_us/variables/gov/usda/wic/is_wic_at_nutritional_risk.py +3 -10
  283. policyengine_us/variables/gov/usda/wic/is_wic_eligible.py +10 -1
  284. policyengine_us/variables/household/demographic/geographic/state_group.py +8 -5
  285. policyengine_us/variables/household/demographic/person/is_part_time_college_student.py +9 -0
  286. {policyengine_us-1.426.0.dist-info → policyengine_us-1.449.6.dist-info}/METADATA +1 -1
  287. {policyengine_us-1.426.0.dist-info → policyengine_us-1.449.6.dist-info}/RECORD +300 -161
  288. {policyengine_us-1.426.0.dist-info → policyengine_us-1.449.6.dist-info}/WHEEL +1 -1
  289. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/age_limit.yaml +0 -8
  290. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/amount.yaml +0 -13
  291. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/in_effect.yaml +0 -8
  292. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/min_birth_year.yaml +0 -8
  293. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/amount.yaml +0 -13
  294. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/in_effect.yaml +0 -8
  295. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/max_age.yaml +0 -8
  296. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/min_age.yaml +0 -8
  297. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/tax/rate.yaml +0 -8
  298. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/tax/threshold.yaml +0 -24
  299. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/income/age_multiplier_over_threshold.yaml +0 -11
  300. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/income/age_threshold.yaml +0 -9
  301. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/income/base.yaml +0 -11
  302. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution/age_multiplier_over_threshold.yaml +0 -11
  303. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution/age_threshold.yaml +0 -9
  304. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution/all.yaml +0 -6
  305. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution/by_position_and_decile.yaml +0 -71
  306. policyengine_us/parameters/gov/states/wa/dshs/tanf/eligibility/resources/limit.yaml +0 -11
  307. policyengine_us/reforms/congress/tlaib/income_security_package/__init__.py +0 -17
  308. policyengine_us/reforms/congress/tlaib/income_security_package/income_security_package.py +0 -402
  309. policyengine_us/tests/policy/baseline/gov/simulation/labor_supply_response/integration.yaml +0 -45
  310. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/integration.yaml +0 -154
  311. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/state_integration.yaml +0 -110
  312. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/test_individual_acts.yaml +0 -149
  313. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/unit_tests.yaml +0 -272
  314. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/adult_dependent_credit/amount.yaml +0 -0
  315. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/child_benefit/age_limit.yaml +0 -0
  316. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/filer_credit/amount.yaml +0 -0
  317. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/filer_credit/eligibility/max_age.yaml +0 -0
  318. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/filer_credit/eligibility/min_age.yaml +0 -0
  319. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/filer_credit/phase_out/rate.yaml +0 -0
  320. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/filer_credit/phase_out/start.yaml +0 -0
  321. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/in_effect.yaml +0 -0
  322. /policyengine_us/variables/gov/states/co/ssa/{state_suplement → state_supplement}/co_state_supplement.py +0 -0
  323. /policyengine_us/variables/gov/states/co/ssa/{state_suplement → state_supplement}/co_state_supplement_eligible.py +0 -0
  324. {policyengine_us-1.426.0.dist-info → policyengine_us-1.449.6.dist-info}/entry_points.txt +0 -0
  325. {policyengine_us-1.426.0.dist-info → policyengine_us-1.449.6.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,214 @@
1
+ - name: Single parent with child under max age - full EITC refundable
2
+ period: 2024
3
+ reforms: policyengine_us.reforms.states.ut.ut_refundable_eitc.ut_refundable_eitc
4
+ input:
5
+ gov.contrib.states.ut.eitc.in_effect: true
6
+ people:
7
+ parent:
8
+ age: 30
9
+ child:
10
+ age: 2
11
+ is_tax_unit_dependent: true
12
+ tax_units:
13
+ tax_unit:
14
+ members: [parent, child]
15
+ eitc: 5_000
16
+ households:
17
+ household:
18
+ members: [parent, child]
19
+ state_code: UT
20
+ output:
21
+ # Utah EITC = 20% of federal EITC = 0.2 * 5_000 = 1_000
22
+ # Since child is age 2 (at max_age threshold), full amount is refundable
23
+ ut_eitc: 1_000 # Total EITC
24
+ ut_refundable_eitc: 1_000
25
+ ut_non_refundable_eitc: 0 # Non-refundable portion is reduced to zero
26
+ ut_has_qualifying_child_for_refundable_eitc: true
27
+
28
+ - name: Single parent with child at age 1
29
+ period: 2024
30
+ reforms: policyengine_us.reforms.states.ut.ut_refundable_eitc.ut_refundable_eitc
31
+ input:
32
+ gov.contrib.states.ut.eitc.in_effect: true
33
+ people:
34
+ parent:
35
+ age: 30
36
+ child:
37
+ age: 1
38
+ is_tax_unit_dependent: true
39
+ tax_units:
40
+ tax_unit:
41
+ members: [parent, child]
42
+ eitc: 3_000
43
+ households:
44
+ household:
45
+ members: [parent, child]
46
+ state_code: UT
47
+ output:
48
+ # Utah EITC = 20% of federal EITC = 0.2 * 3_000 = 600
49
+ ut_eitc: 600
50
+ ut_refundable_eitc: 600
51
+ ut_non_refundable_eitc: 0
52
+ ut_has_qualifying_child_for_refundable_eitc: true
53
+
54
+ - name: Single parent with child age 3 - not eligible for refundable EITC
55
+ period: 2024
56
+ reforms: policyengine_us.reforms.states.ut.ut_refundable_eitc.ut_refundable_eitc
57
+ input:
58
+ gov.contrib.states.ut.eitc.in_effect: true
59
+ people:
60
+ parent:
61
+ age: 30
62
+ child:
63
+ age: 3
64
+ is_tax_unit_dependent: true
65
+ tax_units:
66
+ tax_unit:
67
+ members: [parent, child]
68
+ eitc: 4_000
69
+ households:
70
+ household:
71
+ members: [parent, child]
72
+ state_code: UT
73
+ output:
74
+ # Child is too old (max_age is 2)
75
+ # Utah EITC = 0.2 * 4_000 = 800
76
+ ut_eitc: 800
77
+ ut_refundable_eitc: 0
78
+ ut_non_refundable_eitc: 800 # Remains fully non-refundable
79
+ ut_has_qualifying_child_for_refundable_eitc: false
80
+
81
+ - name: Single parent with multiple children, one qualifying
82
+ period: 2024
83
+ reforms: policyengine_us.reforms.states.ut.ut_refundable_eitc.ut_refundable_eitc
84
+ input:
85
+ gov.contrib.states.ut.eitc.in_effect: true
86
+ people:
87
+ parent:
88
+ age: 35
89
+ child1:
90
+ age: 1
91
+ is_tax_unit_dependent: true
92
+ child2:
93
+ age: 5
94
+ is_tax_unit_dependent: true
95
+ tax_units:
96
+ tax_unit:
97
+ members: [parent, child1, child2]
98
+ eitc: 6_000
99
+ households:
100
+ household:
101
+ members: [parent, child1, child2]
102
+ state_code: UT
103
+ output:
104
+ # Has at least one qualifying child, so full EITC is refundable
105
+ # Utah EITC = 0.2 * 6_000 = 1_200
106
+ ut_eitc: 1_200
107
+ ut_refundable_eitc: 1_200
108
+ ut_non_refundable_eitc: 0
109
+ ut_has_qualifying_child_for_refundable_eitc: true
110
+
111
+ - name: Childless tax unit - not eligible
112
+ period: 2024
113
+ reforms: policyengine_us.reforms.states.ut.ut_refundable_eitc.ut_refundable_eitc
114
+ input:
115
+ gov.contrib.states.ut.eitc.in_effect: true
116
+ people:
117
+ person:
118
+ age: 30
119
+ tax_units:
120
+ tax_unit:
121
+ members: [person]
122
+ eitc: 500
123
+ households:
124
+ household:
125
+ members: [person]
126
+ state_code: UT
127
+ output:
128
+ # Utah EITC = 0.2 * 500 = 100 (all non-refundable)
129
+ ut_eitc: 100
130
+ ut_refundable_eitc: 0
131
+ ut_non_refundable_eitc: 100
132
+ ut_has_qualifying_child_for_refundable_eitc: false
133
+
134
+ - name: Married couple with infant (age 0)
135
+ period: 2024
136
+ reforms: policyengine_us.reforms.states.ut.ut_refundable_eitc.ut_refundable_eitc
137
+ input:
138
+ gov.contrib.states.ut.eitc.in_effect: true
139
+ people:
140
+ parent1:
141
+ age: 28
142
+ parent2:
143
+ age: 30
144
+ child:
145
+ age: 0
146
+ is_tax_unit_dependent: true
147
+ tax_units:
148
+ tax_unit:
149
+ members: [parent1, parent2, child]
150
+ eitc: 7_000
151
+ households:
152
+ household:
153
+ members: [parent1, parent2, child]
154
+ state_code: UT
155
+ output:
156
+ # Utah EITC = 0.2 * 7_000 = 1_400
157
+ ut_eitc: 1_400
158
+ ut_refundable_eitc: 1_400
159
+ ut_non_refundable_eitc: 0
160
+ ut_has_qualifying_child_for_refundable_eitc: true
161
+
162
+ - name: Tax unit with qualifying child but no federal EITC
163
+ period: 2024
164
+ reforms: policyengine_us.reforms.states.ut.ut_refundable_eitc.ut_refundable_eitc
165
+ input:
166
+ gov.contrib.states.ut.eitc.in_effect: true
167
+ people:
168
+ parent:
169
+ age: 30
170
+ child:
171
+ age: 2
172
+ is_tax_unit_dependent: true
173
+ tax_units:
174
+ tax_unit:
175
+ members: [parent, child]
176
+ eitc: 0
177
+ households:
178
+ household:
179
+ members: [parent, child]
180
+ state_code: UT
181
+ output:
182
+ # No federal EITC means no Utah EITC
183
+ ut_eitc: 0
184
+ ut_refundable_eitc: 0
185
+ ut_non_refundable_eitc: 0
186
+ ut_has_qualifying_child_for_refundable_eitc: true
187
+
188
+ - name: Custom max_age parameter - child at age 4 qualifies
189
+ period: 2024
190
+ reforms: policyengine_us.reforms.states.ut.ut_refundable_eitc.ut_refundable_eitc
191
+ input:
192
+ gov.contrib.states.ut.eitc.in_effect: true
193
+ gov.contrib.states.ut.eitc.max_age: 4
194
+ people:
195
+ parent:
196
+ age: 30
197
+ child:
198
+ age: 4
199
+ is_tax_unit_dependent: true
200
+ tax_units:
201
+ tax_unit:
202
+ members: [parent, child]
203
+ eitc: 5_000
204
+ households:
205
+ household:
206
+ members: [parent, child]
207
+ state_code: UT
208
+ output:
209
+ # With max_age = 4, child age 4 qualifies
210
+ # Utah EITC = 0.2 * 5_000 = 1_000
211
+ ut_eitc: 1_000
212
+ ut_refundable_eitc: 1_000
213
+ ut_non_refundable_eitc: 0
214
+ ut_has_qualifying_child_for_refundable_eitc: true
@@ -0,0 +1,9 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class is_federal_work_study_participant(Variable):
5
+ value_type = bool
6
+ entity = Person
7
+ definition_period = YEAR
8
+ label = "Participating in Federal Work Study"
9
+ reference = "https://www.law.cornell.edu/cfr/text/34/part-675"
@@ -12,6 +12,5 @@ class pell_grant_simplified_formula_applies(Variable):
12
12
  head_income = tax_unit("pell_grant_primary_income", period)
13
13
  p = parameters(period).gov.ed.pell_grant.efc.simplified
14
14
  income_eligible = head_income < p.income_limit
15
- total_benefits = add(tax_unit, period, p.benefits)
16
- has_benefits = np.any(total_benefits > 0)
15
+ has_benefits = add(tax_unit, period, p.benefits) > 0
17
16
  return income_eligible & has_benefits & p.applies
@@ -21,8 +21,8 @@ class is_lifeline_eligible(Variable):
21
21
  )
22
22
  categorically_eligible = np.where(
23
23
  is_on_tribal_land,
24
- np.any(tribal_lifeline_programs),
25
- np.any(non_tribal_lifeline_programs),
24
+ tribal_lifeline_programs > 0,
25
+ non_tribal_lifeline_programs > 0,
26
26
  )
27
27
  # Use the new unified income eligibility variable
28
28
  income_eligible = spm_unit("is_lifeline_income_eligible", period)
@@ -4,7 +4,8 @@ from policyengine_us.model_api import *
4
4
  class early_head_start(Variable):
5
5
  value_type = float
6
6
  entity = Person
7
- label = "Amount of Early Head Start benefit"
7
+ label = "Early Head Start"
8
+ unit = USD
8
9
  definition_period = YEAR
9
10
  defined_for = "is_early_head_start_eligible"
10
11
  reference = "https://headstart.gov/program-data/article/head-start-program-facts-fiscal-year-2022"
@@ -4,7 +4,8 @@ from policyengine_us.model_api import *
4
4
  class head_start(Variable):
5
5
  value_type = float
6
6
  entity = Person
7
- label = "Amount of Head Start benefit"
7
+ label = "Head Start"
8
+ unit = USD
8
9
  definition_period = YEAR
9
10
  defined_for = "is_head_start_eligible"
10
11
  reference = "https://headstart.gov/program-data/article/head-start-program-facts-fiscal-year-2022"
@@ -12,7 +12,5 @@ class is_head_start_categorically_eligible(Variable):
12
12
  )
13
13
 
14
14
  def formula(person, period, parameters):
15
- tax_unit = person.tax_unit
16
15
  p = parameters(period).gov.hhs.head_start
17
- programs = add(tax_unit, period, p.categorical_eligibility)
18
- return np.any(programs)
16
+ return add(person.tax_unit, period, p.categorical_eligibility) > 0
@@ -0,0 +1,30 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class medicare_cost(Variable):
5
+ value_type = float
6
+ entity = Person
7
+ label = "Medicare cost"
8
+ documentation = (
9
+ "Annual value of Medicare benefits received. Calculated as total "
10
+ "Medicare spending on behalf of the beneficiary minus premiums paid. "
11
+ "This represents the net benefit value of Medicare coverage."
12
+ )
13
+ unit = USD
14
+ definition_period = YEAR
15
+ reference = "https://www.cms.gov/medicare"
16
+ defined_for = "medicare_enrolled"
17
+
18
+ def formula(person, period, parameters):
19
+ # Total Medicare spending on behalf of beneficiary
20
+ per_capita_spending = parameters(
21
+ period
22
+ ).calibration.gov.hhs.medicare.per_capita_cost
23
+
24
+ # Premiums paid by beneficiary
25
+ part_a_premium = person("base_part_a_premium", period)
26
+ part_b_premium = person("income_adjusted_part_b_premium", period)
27
+ total_premiums = part_a_premium + part_b_premium
28
+
29
+ # Net benefit = spending - premiums
30
+ return max_(per_capita_spending - total_premiums, 0)
@@ -0,0 +1,14 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class medicare_enrolled(Variable):
5
+ value_type = bool
6
+ entity = Person
7
+ label = "Medicare enrolled"
8
+ documentation = (
9
+ "Whether the person is enrolled in Medicare (Part A and/or Part B)"
10
+ )
11
+ definition_period = YEAR
12
+ reference = "https://www.cms.gov/medicare"
13
+ defined_for = "is_medicare_eligible"
14
+ default_value = True # Most Medicare-eligible people are enrolled
@@ -0,0 +1,32 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class base_part_a_premium(Variable):
5
+ value_type = float
6
+ entity = Person
7
+ label = "Medicare Part A Base Premium"
8
+ unit = USD
9
+ documentation = (
10
+ "Annual Medicare Part A premium. Most people (99%) qualify for "
11
+ "premium-free Part A with 40+ quarters of Medicare-covered employment. "
12
+ "Those with 30-39 quarters pay a reduced premium, and those with "
13
+ "fewer than 30 quarters pay the full premium."
14
+ )
15
+ definition_period = YEAR
16
+ reference = "https://www.cms.gov/newsroom/fact-sheets/2025-medicare-parts-b-premiums-and-deductibles"
17
+ defined_for = "is_medicare_eligible"
18
+
19
+ def formula(person, period, parameters):
20
+ p = parameters(period).gov.hhs.medicare.part_a
21
+ quarters_covered = person("medicare_quarters_of_coverage", period)
22
+
23
+ premium_free_part_a = person("is_premium_free_part_a", period)
24
+ quarters_above_reduced_premium_threshold = (
25
+ quarters_covered >= p.reduced_premium_quarters_threshold
26
+ )
27
+ premium_amount = where(
28
+ quarters_above_reduced_premium_threshold,
29
+ p.reduced_premium,
30
+ p.full_premium,
31
+ )
32
+ return where(premium_free_part_a, 0, premium_amount) * MONTHS_IN_YEAR
@@ -0,0 +1,22 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class is_premium_free_part_a(Variable):
5
+ value_type = bool
6
+ entity = Person
7
+ label = "Qualifies for premium-free Part A"
8
+ documentation = (
9
+ "Whether the person qualifies for premium-free Medicare Part A "
10
+ "based on having 40 or more quarters of Medicare-covered employment. "
11
+ "Approximately 99% of Medicare beneficiaries qualify for premium-free Part A."
12
+ )
13
+ definition_period = YEAR
14
+ reference = (
15
+ "https://www.medicare.gov/basics/costs/medicare-costs/part-a-costs"
16
+ )
17
+ defined_for = "is_medicare_eligible"
18
+
19
+ def formula(person, period, parameters):
20
+ p = parameters(period).gov.hhs.medicare.part_a
21
+ quarters = person("medicare_quarters_of_coverage", period)
22
+ return quarters >= p.premium_free_quarters_threshold
@@ -0,0 +1,16 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class medicare_quarters_of_coverage(Variable):
5
+ value_type = int
6
+ entity = Person
7
+ label = "Medicare quarters of coverage"
8
+ documentation = (
9
+ "Number of quarters of Medicare-covered employment. Most people have "
10
+ "40+ quarters and qualify for premium-free Part A. Those with 30-39 "
11
+ "quarters pay a reduced premium, and those with fewer than 30 quarters "
12
+ "pay the full premium."
13
+ )
14
+ definition_period = YEAR
15
+
16
+ adds = "gov.hhs.medicare.part_a.default_quarters_of_coverage"
@@ -0,0 +1,16 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class base_part_b_premium(Variable):
5
+ value_type = float
6
+ entity = Person
7
+ label = "Medicare Part B Base Premium"
8
+ unit = USD
9
+ documentation = "Medicare Part B Premium."
10
+ definition_period = YEAR
11
+ defined_for = "is_medicare_eligible"
12
+
13
+ def formula(person, period, parameters):
14
+ p = parameters(period).gov.hhs.medicare.part_b
15
+ # base_premium is a monthly amount, multiply by MONTHS_IN_YEAR for annual
16
+ return p.base_premium * MONTHS_IN_YEAR
@@ -0,0 +1,55 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class income_adjusted_part_b_premium(Variable):
5
+ value_type = float
6
+ entity = Person
7
+ label = "Medicare Part B premium (income-adjusted)"
8
+ unit = USD
9
+ definition_period = YEAR
10
+ defined_for = "is_medicare_eligible"
11
+ reference = "https://www.medicare.gov/your-medicare-costs/part-b-costs"
12
+ documentation = "Medicare Part B premium adjusted for income (IRMAA). Based on modified adjusted gross income from 2 years prior."
13
+
14
+ def formula(person, period, parameters):
15
+
16
+ tax_unit = person.tax_unit
17
+ filing_status = tax_unit("filing_status", period)
18
+ # Medicare Part B IRMAA is based on MAGI from 2 years prior
19
+ # MAGI = AGI + tax-exempt interest
20
+ prior_period = period.offset(-2, "year")
21
+ agi = tax_unit("adjusted_gross_income", prior_period)
22
+ tax_exempt_interest = tax_unit(
23
+ "tax_exempt_interest_income", prior_period
24
+ )
25
+ magi = agi + tax_exempt_interest
26
+ base = person("base_part_b_premium", period)
27
+
28
+ # Build boolean masks for each status
29
+ status = filing_status.possible_values
30
+ statuses = [
31
+ status.SINGLE,
32
+ status.JOINT,
33
+ status.HEAD_OF_HOUSEHOLD,
34
+ status.SURVIVING_SPOUSE,
35
+ status.SEPARATE,
36
+ ]
37
+ in_status = [filing_status == s for s in statuses]
38
+
39
+ p = parameters(period).gov.hhs.medicare.part_b.irmaa
40
+
41
+ irmaa_amount = select(
42
+ in_status,
43
+ [
44
+ p.single.calc(magi),
45
+ p.joint.calc(magi),
46
+ p.head_of_household.calc(magi),
47
+ p.surviving_spouse.calc(magi),
48
+ p.separate.calc(magi),
49
+ ],
50
+ )
51
+
52
+ # IRMAA amounts are monthly, multiply by MONTHS_IN_YEAR to get annual
53
+ # Base is already annual
54
+ annual_irmaa = irmaa_amount * MONTHS_IN_YEAR
55
+ return base + annual_irmaa
@@ -0,0 +1,13 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class tanf_gross_earned_income(Variable):
5
+ value_type = float
6
+ entity = Person
7
+ label = (
8
+ "Temporary Assistance for Needy Families (TANF) gross earned income"
9
+ )
10
+ unit = USD
11
+ definition_period = MONTH
12
+
13
+ adds = "gov.hhs.tanf.cash.income.sources.earned"
@@ -0,0 +1,13 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class tanf_gross_unearned_income(Variable):
5
+ value_type = float
6
+ entity = Person
7
+ label = (
8
+ "Temporary Assistance for Needy Families (TANF) gross unearned income"
9
+ )
10
+ unit = USD
11
+ definition_period = MONTH
12
+
13
+ adds = "gov.hhs.tanf.cash.income.sources.unearned"
@@ -0,0 +1,28 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class tanf_fpg(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "TANF federal poverty guideline"
8
+ unit = USD
9
+ documentation = (
10
+ "The federal poverty guideline used to determine TANF eligibility."
11
+ )
12
+ definition_period = MONTH
13
+ reference = "https://www.law.cornell.edu/uscode/text/42/9902"
14
+
15
+ def formula(spm_unit, period, parameters):
16
+ # We can use tanf_unit_size for more accurate model in the future
17
+ n = spm_unit("spm_unit_size", period.this_year)
18
+ state_group = spm_unit.household("state_group_str", period.this_year)
19
+ year = period.start.year
20
+ month = period.start.month
21
+ if month >= 10:
22
+ instant_str = f"{year}-10-01"
23
+ else:
24
+ instant_str = f"{year - 1}-10-01"
25
+ p_fpg = parameters(instant_str).gov.hhs.fpg
26
+ p1 = p_fpg.first_person[state_group] / MONTHS_IN_YEAR
27
+ pn = p_fpg.additional_person[state_group] / MONTHS_IN_YEAR
28
+ return p1 + pn * (n - 1)
@@ -0,0 +1,47 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class amt_exemption(Variable):
5
+ value_type = float
6
+ entity = TaxUnit
7
+ definition_period = YEAR
8
+ label = "Alternative Minimum Tax exemption"
9
+ unit = USD
10
+ documentation = (
11
+ "AMT exemption amount after phase-out and kiddie tax adjustments. "
12
+ "Form 6251, Line 5."
13
+ )
14
+ reference = [
15
+ "https://www.law.cornell.edu/uscode/text/26/55#d", # 26 U.S.C. § 55(d)
16
+ "https://www.irs.gov/instructions/i6251",
17
+ ]
18
+
19
+ def formula(tax_unit, period, parameters):
20
+ p = parameters(period).gov.irs.income.amt
21
+ phase_out = p.exemption.phase_out
22
+ filing_status = tax_unit("filing_status", period)
23
+ amt_income = tax_unit("amt_income", period)
24
+
25
+ # Base exemption amount based on filing status
26
+ base_exemption_amount = p.exemption.amount[filing_status]
27
+
28
+ # Phase-out at higher income levels
29
+ income_excess = max_(0, amt_income - phase_out.start[filing_status])
30
+ exemption_phase_out = phase_out.rate * income_excess
31
+ reduced_exemption_amount = max_(
32
+ 0,
33
+ base_exemption_amount - exemption_phase_out,
34
+ )
35
+
36
+ # A reduced exemption amount is applied to kiddie tax filers
37
+ kiddie_tax_applies = tax_unit("amt_kiddie_tax_applies", period)
38
+ adj_earnings = tax_unit("filer_adjusted_earnings", period)
39
+ child_amount = p.exemption.child.amount
40
+
41
+ exemption_cap = where(
42
+ kiddie_tax_applies,
43
+ adj_earnings + child_amount,
44
+ np.inf,
45
+ )
46
+
47
+ return min_(reduced_exemption_amount, exemption_cap)
@@ -17,28 +17,10 @@ class amt_income_less_exemptions(Variable):
17
17
  taxable_income = tax_unit("taxable_income", period)
18
18
  kiddie_tax_applies = tax_unit("amt_kiddie_tax_applies", period)
19
19
  applied_income = where(kiddie_tax_applies, taxable_income, amt_income)
20
+
20
21
  # Form 6251, Part II top
21
- p = parameters(period).gov.irs.income.amt
22
- phase_out = p.exemption.phase_out
23
- filing_status = tax_unit("filing_status", period)
24
- # Line 5 the exemption amount is based on filing status and
25
- # is phased-out at higher income
26
- base_exemption_amount = p.exemption.amount[filing_status]
27
- income_excess = max_(0, amt_income - phase_out.start[filing_status])
28
- exemption_phase_out = phase_out.rate * income_excess
29
- reduced_exemption_amount = max_(
30
- 0,
31
- (base_exemption_amount - exemption_phase_out),
32
- )
33
- # A reduced exemption amount is applied to kiddie tax filers
34
- adj_earnings = tax_unit("filer_adjusted_earnings", period)
35
- child_amount = p.exemption.child.amount
22
+ # Line 5
23
+ amt_exemption = tax_unit("amt_exemption", period)
36
24
 
37
- exemption_cap = where(
38
- kiddie_tax_applies,
39
- adj_earnings + child_amount,
40
- np.inf,
41
- )
42
- capped_exemption_amount = min_(reduced_exemption_amount, exemption_cap)
43
25
  # Line 6
44
- return max_(0, applied_income - capped_exemption_amount)
26
+ return max_(0, applied_income - amt_exemption)
@@ -7,30 +7,4 @@ class income_elasticity(Variable):
7
7
  label = "income elasticity of labor supply"
8
8
  unit = "/1"
9
9
  definition_period = YEAR
10
- reference = [
11
- "https://www.cbo.gov/publication/43675",
12
- "https://www.cbo.gov/publication/43676",
13
- "https://academic.oup.com/restud/article-abstract/72/2/395/1558553",
14
- ]
15
-
16
- def formula(person, period, parameters):
17
- p = parameters(
18
- period
19
- ).gov.simulation.labor_supply_responses.elasticities.income
20
-
21
- # Check if global override is set
22
- if p.all != 0:
23
- return p.all
24
-
25
- # Get base income elasticity
26
- base_elasticity = p.base
27
-
28
- # Apply age multiplier for individuals at or above age threshold
29
- age = person("age", period.this_year)
30
- age_multiplier = where(
31
- age >= p.age_threshold,
32
- p.age_multiplier_over_threshold,
33
- 1.0, # No multiplier for under threshold
34
- )
35
-
36
- return base_elasticity * age_multiplier
10
+ adds = ["gov.simulation.labor_supply_responses.elasticities.income"]