policyengine-us 1.458.0__py3-none-any.whl → 1.465.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. policyengine_us/parameters/gov/contrib/aca/ptc_700_fpl_cliff/brackets.yaml +52 -0
  2. policyengine_us/parameters/gov/contrib/aca/ptc_700_fpl_cliff/in_effect.yaml +9 -0
  3. policyengine_us/parameters/gov/contrib/aca/ptc_700_fpl_cliff/income_eligibility.yaml +27 -0
  4. policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/applies.yaml +115 -0
  5. policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/couple.yaml +14 -0
  6. policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/individual.yaml +14 -0
  7. policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/qi/fpl_limit.yaml +14 -0
  8. policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/qmb/fpl_limit.yaml +18 -0
  9. policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/slmb/fpl_limit.yaml +15 -0
  10. policyengine_us/parameters/gov/states/az/tax/income/credits/property_tax/income_sources.yaml +17 -9
  11. policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/head_of_household.yaml +1 -1
  12. policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/joint.yaml +1 -1
  13. policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/separate.yaml +1 -1
  14. policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/single.yaml +1 -1
  15. policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/surviving_spouse.yaml +1 -1
  16. policyengine_us/parameters/gov/states/ia/tax/income/credits/child_care/fraction.yaml +1 -1
  17. policyengine_us/parameters/gov/states/il/dhs/aabd/asset/sources.yaml +0 -1
  18. policyengine_us/parameters/gov/states/mi/tax/income/household_resources.yaml +1 -1
  19. policyengine_us/parameters/gov/states/mo/dss/tanf/child_care_deduction/amount.yaml +27 -0
  20. policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/amount.yaml +14 -0
  21. policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/thirty_only/amount.yaml +14 -0
  22. policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/thirty_plus_one_third/flat_amount.yaml +14 -0
  23. policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/thirty_plus_one_third/percentage.yaml +14 -0
  24. policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/two_thirds_disregard/percentage.yaml +14 -0
  25. policyengine_us/parameters/gov/states/mo/dss/tanf/income_limit/max_table_size.yaml +12 -0
  26. policyengine_us/parameters/gov/states/mo/dss/tanf/income_limit/rate.yaml +14 -0
  27. policyengine_us/parameters/gov/states/mo/dss/tanf/maximum_benefit/percentage.yaml +14 -0
  28. policyengine_us/parameters/gov/states/mo/dss/tanf/minimum_payment.yaml +12 -0
  29. policyengine_us/parameters/gov/states/mo/dss/tanf/resource_limit/amount.yaml +14 -0
  30. policyengine_us/parameters/gov/states/mo/dss/tanf/standard_of_need/additional_person_increment.yaml +12 -0
  31. policyengine_us/parameters/gov/states/mo/dss/tanf/standard_of_need/amount.yaml +38 -0
  32. policyengine_us/parameters/gov/states/mo/dss/tanf/standard_of_need/base_table_max_size.yaml +12 -0
  33. policyengine_us/parameters/gov/states/pa/dhs/tanf/county_group/group_1.yaml +19 -0
  34. policyengine_us/parameters/gov/states/pa/dhs/tanf/county_group/group_2.yaml +44 -0
  35. policyengine_us/parameters/gov/states/pa/dhs/tanf/county_group/group_3.yaml +31 -0
  36. policyengine_us/parameters/gov/states/pa/dhs/tanf/county_group/group_4.yaml +29 -0
  37. policyengine_us/parameters/gov/states/pa/dhs/tanf/family_size_allowance/additional_person.yaml +14 -0
  38. policyengine_us/parameters/gov/states/pa/dhs/tanf/family_size_allowance/amount.yaml +69 -0
  39. policyengine_us/parameters/gov/states/pa/dhs/tanf/income/deductions/earned_income_disregard/percentage.yaml +14 -0
  40. policyengine_us/parameters/gov/states/pa/dhs/tanf/income/deductions/work_expense/additional.yaml +15 -0
  41. policyengine_us/parameters/gov/states/pa/dhs/tanf/income/deductions/work_expense/initial.yaml +14 -0
  42. policyengine_us/parameters/gov/states/pa/dhs/tanf/max_family_size_in_table.yaml +12 -0
  43. policyengine_us/parameters/gov/states/pa/dhs/tanf/resource_limit.yaml +7 -6
  44. policyengine_us/parameters/gov/states/pa/dhs/tanf/standard_of_need/additional_person.yaml +14 -0
  45. policyengine_us/parameters/gov/states/pa/dhs/tanf/standard_of_need/amount.yaml +69 -0
  46. policyengine_us/parameters/gov/states/wi/dcf/README.md +1 -0
  47. policyengine_us/parameters/gov/states/wi/dcf/works/README.md +1 -0
  48. policyengine_us/parameters/gov/states/wi/dcf/works/asset/limit.yaml +16 -0
  49. policyengine_us/parameters/gov/states/wi/dcf/works/asset/vehicle_exclusion.yaml +14 -0
  50. policyengine_us/parameters/gov/states/wi/dcf/works/income_limit/rate.yaml +16 -0
  51. policyengine_us/parameters/gov/states/wi/dcf/works/placement/amount.yaml +30 -0
  52. policyengine_us/parameters/gov/states/wi/dcf/works/placement/arp_pregnancy_month_threshold.yaml +14 -0
  53. policyengine_us/parameters/gov/states/wi/dcf/works/placement/cmc_infant_age_limit.yaml +15 -0
  54. policyengine_us/reforms/aca/__init__.py +3 -0
  55. policyengine_us/reforms/aca/aca_ptc_700_fpl_cliff.py +125 -0
  56. policyengine_us/reforms/reforms.py +5 -0
  57. policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/category/msp_category.yaml +69 -0
  58. policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_eligible.yaml +62 -0
  59. policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_fpg.yaml +22 -0
  60. policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/integration.yaml +84 -0
  61. policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/msp_benefit_value.yaml +62 -0
  62. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/social_security/taxable_social_security_tier_1.yaml +157 -0
  63. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/social_security/taxable_social_security_tier_2.yaml +106 -0
  64. policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_revenue_medicare_hi.yaml +105 -0
  65. policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_revenue_oasdi.yaml +86 -0
  66. policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_revenue_total.yaml +19 -0
  67. policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_tier_split.yaml +90 -0
  68. policyengine_us/tests/policy/baseline/gov/states/az/tax/income/az_property_tax_credit_agi.yaml +58 -0
  69. policyengine_us/tests/policy/baseline/gov/states/az/tax/income/integration.yaml +28 -0
  70. policyengine_us/tests/policy/baseline/gov/states/dc/tax/income/dc_ptc.yaml +27 -0
  71. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/food_excise/hi_food_excise_credit.yaml +29 -1
  72. policyengine_us/tests/policy/baseline/gov/states/ia/tax/income/ia_cdcc.yaml +3 -3
  73. policyengine_us/tests/policy/baseline/gov/states/ia/tax/income/ia_integration.yaml +31 -1
  74. policyengine_us/tests/policy/baseline/gov/states/il/dhs/aabd/eligibility/il_aabd_non_financial_eligible_person.yaml +6 -6
  75. policyengine_us/tests/policy/baseline/gov/states/il/hfs/fpp/integration.yaml +2 -2
  76. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_disability_eligible.yaml +18 -5
  77. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.yaml +5 -5
  78. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/integration.yaml +8 -8
  79. policyengine_us/tests/policy/baseline/gov/states/ma/tax/income/gross_income/integration.yaml +28 -0
  80. policyengine_us/tests/policy/baseline/gov/states/me/tax/income/credits/integration.yaml +87 -0
  81. policyengine_us/tests/policy/baseline/gov/states/me/tax/income/credits/me_dependent_exemption_credit_amount_person.yaml +3 -2
  82. policyengine_us/tests/policy/baseline/gov/states/mi/tax/income/credits/home_heating/mi_home_heating_credit.yaml +87 -0
  83. policyengine_us/tests/policy/baseline/gov/states/mi/tax/income/mi_household_resources.yaml +57 -0
  84. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/integration.yaml +275 -0
  85. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf.yaml +60 -0
  86. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_child_care_deduction.yaml +187 -0
  87. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_countable_income.yaml +49 -0
  88. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_earned_income_deductions.yaml +53 -0
  89. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_eligible.yaml +59 -0
  90. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_gross_income_eligible.yaml +29 -0
  91. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_income_eligible.yaml +49 -0
  92. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_maximum_benefit.yaml +47 -0
  93. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_percentage_of_need_test.yaml +53 -0
  94. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_resources_eligible.yaml +23 -0
  95. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_standard_of_need.yaml +71 -0
  96. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_standard_of_need_test.yaml +44 -0
  97. policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/integration.yaml +29 -0
  98. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/eligibility/pa_tanf_disregard_eligible.yaml +114 -0
  99. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/eligibility/pa_tanf_eligible.yaml +65 -0
  100. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/eligibility/pa_tanf_income_eligible.yaml +62 -0
  101. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/eligibility/pa_tanf_resources_eligible.yaml +47 -0
  102. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/income/pa_tanf_earned_income_after_deductions_person.yaml +81 -0
  103. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/integration.yaml +386 -0
  104. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/pa_tanf.yaml +53 -0
  105. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/pa_tanf_county_group.yaml +63 -0
  106. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/pa_tanf_maximum_benefit.yaml +92 -0
  107. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/pa_tanf_standard_of_need.yaml +73 -0
  108. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/integration.yaml +282 -0
  109. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works.yaml +50 -0
  110. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_countable_income.yaml +49 -0
  111. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_countable_resources.yaml +54 -0
  112. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_eligible.yaml +61 -0
  113. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_income_eligible.yaml +43 -0
  114. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_placement.yaml +111 -0
  115. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_resources_eligible.yaml +38 -0
  116. policyengine_us/tests/policy/baseline/gov/states/wv/tax/income/credits/heptc/wv_homestead_excess_property_tax_credit.yaml +31 -0
  117. policyengine_us/tests/policy/contrib/aca/ptc_700_fpl_cliff.yaml +136 -0
  118. policyengine_us/tests/test_batched.py +39 -68
  119. policyengine_us/variables/gov/hhs/medicare/savings_programs/category/is_qi_eligible.py +33 -0
  120. policyengine_us/variables/gov/hhs/medicare/savings_programs/category/is_qmb_eligible.py +28 -0
  121. policyengine_us/variables/gov/hhs/medicare/savings_programs/category/is_slmb_eligible.py +33 -0
  122. policyengine_us/variables/gov/hhs/medicare/savings_programs/category/msp_category.py +33 -0
  123. policyengine_us/variables/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.py +26 -0
  124. policyengine_us/variables/gov/hhs/medicare/savings_programs/eligibility/msp_eligible.py +20 -0
  125. policyengine_us/variables/gov/hhs/medicare/savings_programs/eligibility/msp_income_eligible.py +26 -0
  126. policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py +35 -0
  127. policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_fpg.py +40 -0
  128. policyengine_us/variables/gov/hhs/medicare/savings_programs/msp.py +15 -0
  129. policyengine_us/variables/gov/hhs/medicare/savings_programs/msp_benefit_value.py +37 -0
  130. policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/social_security/taxable_social_security_tier_1.py +58 -0
  131. policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/social_security/taxable_social_security_tier_2.py +17 -0
  132. policyengine_us/variables/gov/simulation/labor_supply_response/labor_supply_behavioral_response.py +57 -42
  133. policyengine_us/variables/gov/ssa/revenue/tob_revenue_medicare_hi.py +31 -0
  134. policyengine_us/variables/gov/ssa/revenue/tob_revenue_oasdi.py +31 -0
  135. policyengine_us/variables/gov/ssa/revenue/tob_revenue_total.py +44 -0
  136. policyengine_us/variables/gov/states/az/tax/income/credits/property_tax_credit/az_property_tax_credit_agi.py +53 -0
  137. policyengine_us/variables/gov/states/dc/tax/income/credits/dc_ptc.py +7 -3
  138. policyengine_us/variables/gov/states/ia/tax/income/credits/ia_cdcc.py +4 -2
  139. policyengine_us/variables/gov/states/il/dhs/aabd/eligibility/il_aabd_non_financial_eligible_person.py +23 -5
  140. policyengine_us/variables/gov/states/il/hfs/fpp/eligibility/il_fpp_eligible.py +1 -1
  141. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_disability_eligible.py +7 -3
  142. policyengine_us/variables/gov/states/ma/tax/income/gross_income/ma_part_c_gross_income.py +7 -1
  143. policyengine_us/variables/gov/states/me/tax/income/credits/dependent_exemption/me_dependent_exemption_credit_amount_person.py +1 -1
  144. policyengine_us/variables/gov/states/mi/tax/income/mi_household_resources.py +34 -5
  145. policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_eligible.py +23 -0
  146. policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_gross_income_eligible.py +24 -0
  147. policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_income_eligible.py +18 -0
  148. policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_percentage_of_need_test.py +20 -0
  149. policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_resources_eligible.py +18 -0
  150. policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_standard_of_need_test.py +17 -0
  151. policyengine_us/variables/gov/states/mo/dss/tanf/income/deductions/mo_tanf_child_care_deduction.py +24 -0
  152. policyengine_us/variables/gov/states/mo/dss/tanf/income/deductions/mo_tanf_earned_income_deductions.py +36 -0
  153. policyengine_us/variables/gov/states/mo/dss/tanf/income/mo_tanf_countable_income.py +21 -0
  154. policyengine_us/variables/gov/states/mo/dss/tanf/income/mo_tanf_income_for_need_test.py +23 -0
  155. policyengine_us/variables/gov/states/mo/dss/tanf/mo_tanf.py +21 -0
  156. policyengine_us/variables/gov/states/mo/dss/tanf/mo_tanf_maximum_benefit.py +19 -0
  157. policyengine_us/variables/gov/states/mo/dss/tanf/mo_tanf_standard_of_need.py +23 -0
  158. policyengine_us/variables/gov/states/mt/tax/income/capital_gains/mt_capital_gains_tax_indiv.py +3 -1
  159. policyengine_us/variables/gov/states/mt/tax/income/capital_gains/mt_capital_gains_tax_joint.py +3 -1
  160. policyengine_us/variables/gov/states/mt/tax/income/tax_calculation/mt_regular_income_tax_indiv.py +3 -0
  161. policyengine_us/variables/gov/states/mt/tax/income/tax_calculation/mt_regular_income_tax_joint.py +3 -0
  162. policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pa_tanf_disregard_eligible.py +31 -0
  163. policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pa_tanf_eligible.py +29 -0
  164. policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pa_tanf_income_eligible.py +16 -0
  165. policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pa_tanf_resources_eligible.py +7 -5
  166. policyengine_us/variables/gov/states/pa/dhs/tanf/income/pa_tanf_countable_earned_income.py +15 -0
  167. policyengine_us/variables/gov/states/pa/dhs/tanf/income/pa_tanf_countable_income.py +16 -0
  168. policyengine_us/variables/gov/states/pa/dhs/tanf/income/pa_tanf_earned_income_after_deductions_person.py +27 -0
  169. policyengine_us/variables/gov/states/pa/dhs/tanf/pa_tanf.py +19 -0
  170. policyengine_us/variables/gov/states/pa/dhs/tanf/pa_tanf_county_group.py +38 -0
  171. policyengine_us/variables/gov/states/pa/dhs/tanf/pa_tanf_maximum_benefit.py +30 -0
  172. policyengine_us/variables/gov/states/pa/dhs/tanf/pa_tanf_standard_of_need.py +30 -0
  173. policyengine_us/variables/gov/states/wi/dcf/works/eligibility/wi_works_eligible.py +22 -0
  174. policyengine_us/variables/gov/states/wi/dcf/works/eligibility/wi_works_income_eligible.py +20 -0
  175. policyengine_us/variables/gov/states/wi/dcf/works/eligibility/wi_works_resources_eligible.py +18 -0
  176. policyengine_us/variables/gov/states/wi/dcf/works/income/wi_works_countable_income.py +18 -0
  177. policyengine_us/variables/gov/states/wi/dcf/works/resources/wi_works_countable_resources.py +21 -0
  178. policyengine_us/variables/gov/states/wi/dcf/works/wi_works.py +19 -0
  179. policyengine_us/variables/gov/states/wi/dcf/works/wi_works_placement.py +45 -0
  180. policyengine_us/variables/gov/states/wv/tax/income/credits/heptc/wv_homestead_excess_property_tax_credit.py +3 -3
  181. policyengine_us/variables/gov/states/wv/tax/income/credits/heptc/wv_homestead_excess_property_tax_credit_eligible.py +5 -2
  182. {policyengine_us-1.458.0.dist-info → policyengine_us-1.465.0.dist-info}/METADATA +1 -1
  183. {policyengine_us-1.458.0.dist-info → policyengine_us-1.465.0.dist-info}/RECORD +186 -62
  184. policyengine_us/parameters/gov/states/il/dhs/aabd/aged_age_threshold.yaml +0 -11
  185. policyengine_us/parameters/gov/states/mo/dss/tanf/income_limit.yaml +0 -26
  186. policyengine_us/parameters/gov/states/pa/dhs/tanf/cash_assistance/age_limit.yaml +0 -11
  187. policyengine_us/parameters/gov/states/pa/dhs/tanf/pregnancy_eligibility/age_limit.yaml +0 -9
  188. policyengine_us/tests/policy/baseline/gov/states/il/dhs/aabd/eligibility/il_aabd_aged_blind_disabled_person.yaml +0 -39
  189. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_income_limit.yaml +0 -23
  190. policyengine_us/tests/policy/baseline/gov/states/pa/tanf/cash_assistance/pa_tanf_age_eligible.yaml +0 -44
  191. policyengine_us/tests/policy/baseline/gov/states/pa/tanf/pregnancy_eligibility/pa_tanf_pregnancy_eligibility.yaml +0 -59
  192. policyengine_us/tests/policy/baseline/gov/states/pa/tax/income/dhs/tanf/eligibility/pa_tanf_resources_eligible.yaml +0 -24
  193. policyengine_us/variables/gov/states/il/dhs/aabd/eligibility/il_aabd_aged_blind_disabled_person.py +0 -22
  194. policyengine_us/variables/gov/states/mo/dss/tanf/mo_tanf_income_limit.py +0 -18
  195. policyengine_us/variables/gov/states/pa/dhs/tanf/cash_assistance/pa_tanf_age_eligible.py +0 -22
  196. policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pa_tanf_countable_resources.py +0 -10
  197. policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pregnancy_eligibility/age_eligibility.py +0 -22
  198. {policyengine_us-1.458.0.dist-info → policyengine_us-1.465.0.dist-info}/WHEEL +0 -0
  199. {policyengine_us-1.458.0.dist-info → policyengine_us-1.465.0.dist-info}/entry_points.txt +0 -0
  200. {policyengine_us-1.458.0.dist-info → policyengine_us-1.465.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,17 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class mo_tanf_standard_of_need_test(Variable):
5
+ value_type = bool
6
+ entity = SPMUnit
7
+ label = "Missouri TANF Standard of Need test eligibility"
8
+ definition_period = MONTH
9
+ reference = (
10
+ "https://www.law.cornell.edu/regulations/missouri/13-CSR-40-2-310",
11
+ )
12
+ defined_for = StateCode.MO
13
+
14
+ def formula(spm_unit, period, parameters):
15
+ standard_of_need = spm_unit("mo_tanf_standard_of_need", period)
16
+ income = spm_unit("mo_tanf_income_for_need_test", period)
17
+ return income < standard_of_need
@@ -0,0 +1,24 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class mo_tanf_child_care_deduction(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "Missouri TANF child care cost deduction"
8
+ unit = USD
9
+ definition_period = MONTH
10
+ reference = (
11
+ "https://www.law.cornell.edu/regulations/missouri/13-CSR-40-2-120",
12
+ "https://dssmanuals.mo.gov/temporary-assistance-case-management/0210-015-30/",
13
+ )
14
+ defined_for = StateCode.MO
15
+
16
+ def formula(spm_unit, period, parameters):
17
+ p = parameters(period).gov.states.mo.dss.tanf.child_care_deduction
18
+ person = spm_unit.members
19
+ dependent = person("is_tax_unit_dependent", period)
20
+ age = person("age", period.this_year)
21
+ childcare_expenses = spm_unit("childcare_expenses", period)
22
+ max_deduction_per_child = p.amount.calc(age) * dependent
23
+ total_max_deduction = spm_unit.sum(max_deduction_per_child)
24
+ return min_(childcare_expenses, total_max_deduction)
@@ -0,0 +1,36 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class mo_tanf_earned_income_deductions(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = (
8
+ "Missouri TANF earned income deductions for Percentage of Need test"
9
+ )
10
+ unit = USD
11
+ definition_period = MONTH
12
+ reference = (
13
+ "https://www.law.cornell.edu/regulations/missouri/13-CSR-40-2-310",
14
+ "https://dssmanuals.mo.gov/temporary-assistance-case-management/0210-015-30/",
15
+ )
16
+ defined_for = StateCode.MO
17
+
18
+ def formula(spm_unit, period, parameters):
19
+ # Note: Missouri has time-limited earned income disregards ($30+1/3 for
20
+ # first 4 months, $30-only for next 8 months, 2/3 for up to 12 months).
21
+ # This simplified implementation does not model these month limits.
22
+ p = parameters(period).gov.states.mo.dss.tanf.earned_income_disregard
23
+ gross_earned = add(spm_unit, period, ["tanf_gross_earned_income"])
24
+ is_enrolled = spm_unit("is_tanf_enrolled", period)
25
+ work_expense = min_(gross_earned, p.amount)
26
+ child_care = spm_unit("mo_tanf_child_care_deduction", period)
27
+ after_work_expense = max_(gross_earned - p.amount, 0)
28
+ two_thirds = after_work_expense * p.two_thirds_disregard.percentage
29
+ thirty_one_third = where(
30
+ gross_earned > 0,
31
+ p.thirty_plus_one_third.flat_amount
32
+ + after_work_expense * p.thirty_plus_one_third.percentage,
33
+ 0,
34
+ )
35
+ earned_disregard = where(is_enrolled, two_thirds, thirty_one_third)
36
+ return work_expense + earned_disregard + child_care
@@ -0,0 +1,21 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class mo_tanf_countable_income(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "Missouri TANF countable income after all disregards for Percentage of Need test"
8
+ unit = USD
9
+ definition_period = MONTH
10
+ reference = (
11
+ "https://www.law.cornell.edu/regulations/missouri/13-CSR-40-2-310",
12
+ "https://dssmanuals.mo.gov/temporary-assistance-case-management/0210-010-15/",
13
+ )
14
+ defined_for = StateCode.MO
15
+
16
+ def formula(spm_unit, period, parameters):
17
+ gross_earned = add(spm_unit, period, ["tanf_gross_earned_income"])
18
+ gross_unearned = add(spm_unit, period, ["tanf_gross_unearned_income"])
19
+ deductions = spm_unit("mo_tanf_earned_income_deductions", period)
20
+ countable_earned = max_(gross_earned - deductions, 0)
21
+ return countable_earned + gross_unearned
@@ -0,0 +1,23 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class mo_tanf_income_for_need_test(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "Missouri TANF income for Standard of Need test"
8
+ unit = USD
9
+ definition_period = MONTH
10
+ reference = (
11
+ "https://www.law.cornell.edu/regulations/missouri/13-CSR-40-2-310",
12
+ "https://dssmanuals.mo.gov/temporary-assistance-case-management/0210-010-10/",
13
+ )
14
+ defined_for = StateCode.MO
15
+
16
+ def formula(spm_unit, period, parameters):
17
+ p = parameters(period).gov.states.mo.dss.tanf.earned_income_disregard
18
+ gross_earned = add(spm_unit, period, ["tanf_gross_earned_income"])
19
+ gross_unearned = add(spm_unit, period, ["tanf_gross_unearned_income"])
20
+ work_expense = min_(gross_earned, p.amount)
21
+ child_care = spm_unit("mo_tanf_child_care_deduction", period)
22
+ countable_earned = max_(gross_earned - work_expense - child_care, 0)
23
+ return countable_earned + gross_unearned
@@ -0,0 +1,21 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class mo_tanf(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "Missouri Temporary Assistance for Needy Families (TANF)"
8
+ unit = USD
9
+ definition_period = MONTH
10
+ reference = (
11
+ "https://www.law.cornell.edu/regulations/missouri/13-CSR-40-2-310",
12
+ "https://dssmanuals.mo.gov/temporary-assistance-case-management/0210-010-15/",
13
+ )
14
+ defined_for = "mo_tanf_eligible"
15
+
16
+ def formula(spm_unit, period, parameters):
17
+ maximum_benefit = spm_unit("mo_tanf_maximum_benefit", period)
18
+ countable_income = spm_unit("mo_tanf_countable_income", period)
19
+ benefit = max_(maximum_benefit - countable_income, 0)
20
+ p = parameters(period).gov.states.mo.dss.tanf
21
+ return where(benefit >= p.minimum_payment, benefit, 0)
@@ -0,0 +1,19 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class mo_tanf_maximum_benefit(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "Missouri TANF maximum benefit amount"
8
+ unit = USD
9
+ definition_period = MONTH
10
+ reference = (
11
+ "https://www.law.cornell.edu/regulations/missouri/13-CSR-40-2-310",
12
+ "https://dssmanuals.mo.gov/temporary-assistance-case-management/0210-010-15/",
13
+ )
14
+ defined_for = StateCode.MO
15
+
16
+ def formula(spm_unit, period, parameters):
17
+ p = parameters(period).gov.states.mo.dss.tanf
18
+ standard_of_need = spm_unit("mo_tanf_standard_of_need", period)
19
+ return standard_of_need * p.maximum_benefit.percentage
@@ -0,0 +1,23 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class mo_tanf_standard_of_need(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "Missouri TANF Standard of Need amount"
8
+ unit = USD
9
+ definition_period = MONTH
10
+ reference = (
11
+ "https://www.law.cornell.edu/regulations/missouri/13-CSR-40-2-120",
12
+ "https://dssmanuals.mo.gov/temporary-assistance-case-management/0210-010-05-185/",
13
+ )
14
+ defined_for = StateCode.MO
15
+
16
+ def formula(spm_unit, period, parameters):
17
+ p = parameters(period).gov.states.mo.dss.tanf.standard_of_need
18
+ size = spm_unit("spm_unit_size", period)
19
+ table_size = min_(size, p.base_table_max_size)
20
+ base_amount = p.amount[table_size]
21
+ additional_persons = max_(size - p.base_table_max_size, 0)
22
+ additional = additional_persons * p.additional_person_increment
23
+ return base_amount + additional
@@ -15,6 +15,7 @@ class mt_capital_gains_tax_indiv(Variable):
15
15
  # the tax for capital gains comes into effect after 2024
16
16
  if p.in_effect:
17
17
  capital_gains = person("long_term_capital_gains", period)
18
+ # No tax on zero or negative capital gains
18
19
  filing_status = person.tax_unit(
19
20
  "state_filing_status_if_married_filing_separately_on_same_return",
20
21
  period,
@@ -67,6 +68,7 @@ class mt_capital_gains_tax_indiv(Variable):
67
68
  capital_gains_above_threshold * higher_rate
68
69
  )
69
70
 
70
- return lower_capital_gains_tax + higher_capital_gains_tax
71
+ return max_(lower_capital_gains_tax + higher_capital_gains_tax, 0)
72
+ # Only apply tax if capital gains are positive
71
73
 
72
74
  return 0
@@ -20,6 +20,7 @@ class mt_capital_gains_tax_joint(Variable):
20
20
  taxable_income = person("mt_taxable_income_joint", period)
21
21
  # Line 2
22
22
  capital_gains = person("long_term_capital_gains", period)
23
+ # No tax on zero or negative capital gains
23
24
  # Line 3
24
25
  lesser_of_cg_and_taxable_income = min_(
25
26
  capital_gains, taxable_income
@@ -86,6 +87,7 @@ class mt_capital_gains_tax_joint(Variable):
86
87
  # Line 10
87
88
  higher_capital_gains_tax = income_above_threshold * higher_rate
88
89
  # Line 11
89
- return lower_capital_gains_tax + higher_capital_gains_tax
90
+ return max_(lower_capital_gains_tax + higher_capital_gains_tax, 0)
91
+ # Only apply tax if capital gains are positive
90
92
 
91
93
  return 0
@@ -18,6 +18,9 @@ class mt_regular_income_tax_indiv(Variable):
18
18
  )
19
19
  if p.capital_gains.in_effect:
20
20
  capital_gains = person("long_term_capital_gains", period)
21
+ # Only subtract positive capital gains (they're taxed separately)
22
+ # Negative capital gains should not create phantom taxable income
23
+ capital_gains = max_(capital_gains, 0)
21
24
  taxable_income = max_(taxable_income - capital_gains, 0)
22
25
  status = filing_status.possible_values
23
26
  return select(
@@ -17,6 +17,9 @@ class mt_regular_income_tax_joint(Variable):
17
17
 
18
18
  if p.capital_gains.in_effect:
19
19
  capital_gains = add(tax_unit, period, ["long_term_capital_gains"])
20
+ # Only subtract positive capital gains (they're taxed separately)
21
+ # Negative capital gains should not create phantom taxable income
22
+ capital_gains = max_(capital_gains, 0)
20
23
  taxable_income = max_(taxable_income - capital_gains, 0)
21
24
  return select(
22
25
  [
@@ -0,0 +1,31 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pa_tanf_disregard_eligible(Variable):
5
+ value_type = bool
6
+ entity = SPMUnit
7
+ label = "Pennsylvania TANF earned income disregard eligibility"
8
+ definition_period = MONTH
9
+ defined_for = StateCode.PA
10
+ reference = "https://www.law.cornell.edu/regulations/pennsylvania/55-Pa-Code-SS-183-94"
11
+
12
+ def formula(spm_unit, period, parameters):
13
+ person = spm_unit.members
14
+ p = parameters(period).gov.states.pa.dhs.tanf.income.deductions
15
+
16
+ is_enrolled = spm_unit("is_tanf_enrolled", period)
17
+
18
+ gross_earned = person("tanf_gross_earned_income", period)
19
+ preliminary_earned_per_person = max_(
20
+ gross_earned - p.work_expense.initial, 0
21
+ )
22
+ preliminary_earned = spm_unit.sum(preliminary_earned_per_person)
23
+
24
+ preliminary_unearned = add(
25
+ spm_unit, period, ["tanf_gross_unearned_income"]
26
+ )
27
+
28
+ preliminary_income = preliminary_earned + preliminary_unearned
29
+ standard_of_need = spm_unit("pa_tanf_standard_of_need", period)
30
+
31
+ return is_enrolled | (preliminary_income < standard_of_need)
@@ -0,0 +1,29 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pa_tanf_eligible(Variable):
5
+ value_type = bool
6
+ entity = SPMUnit
7
+ label = "Pennsylvania TANF eligibility"
8
+ definition_period = MONTH
9
+ defined_for = StateCode.PA
10
+ reference = (
11
+ "https://www.pa.gov/agencies/dhs/resources/cash-assistance/tanf"
12
+ )
13
+
14
+ def formula(spm_unit, period, parameters):
15
+ person = spm_unit.members
16
+
17
+ demographic_eligible = spm_unit("is_demographic_tanf_eligible", period)
18
+ has_citizen = spm_unit.any(
19
+ person("is_citizen_or_legal_immigrant", period)
20
+ )
21
+ income_eligible = spm_unit("pa_tanf_income_eligible", period)
22
+ resources_eligible = spm_unit("pa_tanf_resources_eligible", period)
23
+
24
+ return (
25
+ demographic_eligible
26
+ & has_citizen
27
+ & income_eligible
28
+ & resources_eligible
29
+ )
@@ -0,0 +1,16 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pa_tanf_income_eligible(Variable):
5
+ value_type = bool
6
+ entity = SPMUnit
7
+ label = "Pennsylvania TANF income eligibility"
8
+ definition_period = MONTH
9
+ defined_for = StateCode.PA
10
+ reference = "https://www.pacodeandbulletin.gov/Display/pacode?file=/secure/pacode/data/055/chapter183/chap183toc.html"
11
+
12
+ def formula(spm_unit, period, parameters):
13
+ countable_income = spm_unit("pa_tanf_countable_income", period)
14
+ maximum_benefit = spm_unit("pa_tanf_maximum_benefit", period)
15
+
16
+ return countable_income < maximum_benefit
@@ -4,12 +4,14 @@ from policyengine_us.model_api import *
4
4
  class pa_tanf_resources_eligible(Variable):
5
5
  value_type = bool
6
6
  entity = SPMUnit
7
- label = "Meets Pennsylvania TANF resource limit"
8
- unit = USD
9
- definition_period = YEAR
7
+ label = "Pennsylvania TANF resources eligibility"
8
+ definition_period = MONTH
10
9
  defined_for = StateCode.PA
10
+ reference = "https://www.pacodeandbulletin.gov/Display/pacode?file=/secure/pacode/data/055/chapter178/chap178toc.html"
11
11
 
12
12
  def formula(spm_unit, period, parameters):
13
13
  p = parameters(period).gov.states.pa.dhs.tanf
14
- resources = spm_unit("pa_tanf_countable_resources", period)
15
- return resources <= p.resource_limit
14
+
15
+ household_assets = spm_unit("spm_unit_assets", period.this_year)
16
+
17
+ return household_assets <= p.resource_limit
@@ -0,0 +1,15 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pa_tanf_countable_earned_income(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "Pennsylvania TANF countable earned income"
8
+ unit = USD
9
+ definition_period = MONTH
10
+ defined_for = StateCode.PA
11
+ reference = (
12
+ "http://services.dpw.state.pa.us/oimpolicymanuals/cash/160_Income_Deductions/160_2_TANF_Earned_Income_Deductions.htm",
13
+ "https://www.law.cornell.edu/regulations/pennsylvania/55-Pa-Code-SS-183-94",
14
+ )
15
+ adds = ["pa_tanf_earned_income_after_deductions_person"]
@@ -0,0 +1,16 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pa_tanf_countable_income(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "Pennsylvania TANF countable income"
8
+ unit = USD
9
+ definition_period = MONTH
10
+ defined_for = StateCode.PA
11
+ reference = "https://www.pacodeandbulletin.gov/Display/pacode?file=/secure/pacode/data/055/chapter183/chap183toc.html"
12
+
13
+ adds = [
14
+ "pa_tanf_countable_earned_income",
15
+ "tanf_gross_unearned_income",
16
+ ]
@@ -0,0 +1,27 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pa_tanf_earned_income_after_deductions_person(Variable):
5
+ value_type = float
6
+ entity = Person
7
+ label = "Pennsylvania TANF earned income after deductions per person"
8
+ unit = USD
9
+ definition_period = MONTH
10
+ defined_for = StateCode.PA
11
+ reference = (
12
+ "http://services.dpw.state.pa.us/oimpolicymanuals/cash/160_Income_Deductions/160_2_TANF_Earned_Income_Deductions.htm",
13
+ "https://www.law.cornell.edu/regulations/pennsylvania/55-Pa-Code-SS-183-94",
14
+ )
15
+
16
+ def formula(person, period, parameters):
17
+ p = parameters(period).gov.states.pa.dhs.tanf.income.deductions
18
+
19
+ gross_earned = person("tanf_gross_earned_income", period)
20
+ disregard_eligible = person.spm_unit(
21
+ "pa_tanf_disregard_eligible", period
22
+ )
23
+
24
+ after_eid = gross_earned * (1 - p.earned_income_disregard.percentage)
25
+ after_wed = max_(after_eid - p.work_expense.additional, 0)
26
+
27
+ return where(disregard_eligible, after_wed, gross_earned)
@@ -0,0 +1,19 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pa_tanf(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "Pennsylvania TANF"
8
+ unit = USD
9
+ definition_period = MONTH
10
+ defined_for = "pa_tanf_eligible"
11
+ reference = (
12
+ "https://www.pa.gov/agencies/dhs/resources/cash-assistance/tanf"
13
+ )
14
+
15
+ def formula(spm_unit, period, parameters):
16
+ maximum_benefit = spm_unit("pa_tanf_maximum_benefit", period)
17
+ countable_income = spm_unit("pa_tanf_countable_income", period)
18
+
19
+ return max_(maximum_benefit - countable_income, 0)
@@ -0,0 +1,38 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class PATANFCountyGroup(Enum):
5
+ GROUP_1 = "Group 1"
6
+ GROUP_2 = "Group 2"
7
+ GROUP_3 = "Group 3"
8
+ GROUP_4 = "Group 4"
9
+
10
+
11
+ class pa_tanf_county_group(Variable):
12
+ value_type = Enum
13
+ possible_values = PATANFCountyGroup
14
+ default_value = PATANFCountyGroup.GROUP_2
15
+ entity = Household
16
+ definition_period = YEAR
17
+ label = "Pennsylvania TANF county group"
18
+ defined_for = StateCode.PA
19
+ reference = "http://services.dpw.state.pa.us/oimpolicymanuals/cash/168_Determining_Eligibility_and_Payment_Amount/168_Appendix_B.htm"
20
+
21
+ def formula(household, period, parameters):
22
+ county = household("county_str", period)
23
+ p = parameters(period).gov.states.pa.dhs.tanf.county_group
24
+
25
+ group_1 = np.isin(county, p.group_1)
26
+ group_2 = np.isin(county, p.group_2)
27
+ group_3 = np.isin(county, p.group_3)
28
+ group_4 = np.isin(county, p.group_4)
29
+
30
+ conditions = [group_1, group_2, group_3, group_4]
31
+ results = [
32
+ PATANFCountyGroup.GROUP_1,
33
+ PATANFCountyGroup.GROUP_2,
34
+ PATANFCountyGroup.GROUP_3,
35
+ PATANFCountyGroup.GROUP_4,
36
+ ]
37
+
38
+ return select(conditions, results, default=PATANFCountyGroup.GROUP_2)
@@ -0,0 +1,30 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pa_tanf_maximum_benefit(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "Pennsylvania TANF maximum benefit"
8
+ unit = USD
9
+ definition_period = MONTH
10
+ defined_for = StateCode.PA
11
+ reference = "https://www.pacodeandbulletin.gov/Display/pacode?file=/secure/pacode/data/055/chapter183/chap183toc.html"
12
+
13
+ def formula(spm_unit, period, parameters):
14
+ p = parameters(period).gov.states.pa.dhs.tanf
15
+ household = spm_unit.household
16
+
17
+ county_group = household("pa_tanf_county_group", period)
18
+ size = spm_unit("spm_unit_size", period)
19
+
20
+ max_size = p.max_family_size_in_table
21
+ capped_size = min_(size, max_size).astype(int)
22
+
23
+ benefit = p.family_size_allowance.amount[county_group][capped_size]
24
+
25
+ additional_people = max_(size - max_size, 0)
26
+ additional_benefit = (
27
+ additional_people * p.family_size_allowance.additional_person
28
+ )
29
+
30
+ return benefit + additional_benefit
@@ -0,0 +1,30 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pa_tanf_standard_of_need(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "Pennsylvania TANF standard of need"
8
+ unit = USD
9
+ definition_period = MONTH
10
+ defined_for = StateCode.PA
11
+ reference = "http://services.dpw.state.pa.us/oimpolicymanuals/cash/168_Determining_Eligibility_and_Payment_Amount/168_Appendix_A.htm"
12
+
13
+ def formula(spm_unit, period, parameters):
14
+ p = parameters(period).gov.states.pa.dhs.tanf
15
+ household = spm_unit.household
16
+
17
+ county_group = household("pa_tanf_county_group", period)
18
+ size = spm_unit("spm_unit_size", period)
19
+
20
+ max_size = p.max_family_size_in_table
21
+ capped_size = min_(size, max_size).astype(int)
22
+
23
+ standard = p.standard_of_need.amount[county_group][capped_size]
24
+
25
+ additional_people = max_(size - max_size, 0)
26
+ additional_amount = (
27
+ additional_people * p.standard_of_need.additional_person
28
+ )
29
+
30
+ return standard + additional_amount
@@ -0,0 +1,22 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class wi_works_eligible(Variable):
5
+ value_type = bool
6
+ entity = SPMUnit
7
+ label = "Wisconsin Works eligible"
8
+ definition_period = MONTH
9
+ reference = (
10
+ "https://docs.legis.wisconsin.gov/statutes/statutes/49/iii/145",
11
+ "https://docs.legis.wisconsin.gov/code/admin_code/dcf/101_199/101/09",
12
+ )
13
+ defined_for = StateCode.WI
14
+
15
+ def formula(spm_unit, period, parameters):
16
+ demographic = spm_unit("is_demographic_tanf_eligible", period)
17
+ person = spm_unit.members
18
+ is_qualified = person("is_citizen_or_legal_immigrant", period)
19
+ citizenship = spm_unit.any(is_qualified)
20
+ income = spm_unit("wi_works_income_eligible", period)
21
+ resources = spm_unit("wi_works_resources_eligible", period)
22
+ return demographic & citizenship & income & resources
@@ -0,0 +1,20 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class wi_works_income_eligible(Variable):
5
+ value_type = bool
6
+ entity = SPMUnit
7
+ label = "Wisconsin Works income eligible"
8
+ definition_period = MONTH
9
+ reference = (
10
+ "https://dcf.wisconsin.gov/manuals/w-2-manual/Production/03/03.2.1_115_Percent_Gross_Income_Test.htm",
11
+ "https://docs.legis.wisconsin.gov/code/admin_code/dcf/101_199/101/09/3/a",
12
+ )
13
+ defined_for = StateCode.WI
14
+
15
+ def formula(spm_unit, period, parameters):
16
+ countable_income = spm_unit("wi_works_countable_income", period)
17
+ fpg = spm_unit("spm_unit_fpg", period)
18
+ p = parameters(period).gov.states.wi.dcf.works.income_limit
19
+ income_limit = fpg * p.rate
20
+ return countable_income <= income_limit
@@ -0,0 +1,18 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class wi_works_resources_eligible(Variable):
5
+ value_type = bool
6
+ entity = SPMUnit
7
+ label = "Wisconsin Works resources eligible"
8
+ definition_period = YEAR
9
+ reference = (
10
+ "https://dcf.wisconsin.gov/manuals/w-2-manual/Production/03/03.3.4_COUNTING_ASSETS.htm",
11
+ "https://docs.legis.wisconsin.gov/code/admin_code/dcf/101_199/101/09/3/b",
12
+ )
13
+ defined_for = StateCode.WI
14
+
15
+ def formula(spm_unit, period, parameters):
16
+ countable = spm_unit("wi_works_countable_resources", period)
17
+ p = parameters(period).gov.states.wi.dcf.works.asset
18
+ return countable <= p.limit
@@ -0,0 +1,18 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class wi_works_countable_income(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "Wisconsin Works countable income"
8
+ unit = USD
9
+ definition_period = MONTH
10
+ reference = (
11
+ "https://dcf.wisconsin.gov/manuals/w-2-manual/Production/03/03.2.7_Counting_Income.htm",
12
+ "https://dcf.wisconsin.gov/manuals/w-2-manual/Production/03/03.2.8_DISREGARDING_INCOME.htm",
13
+ )
14
+ defined_for = StateCode.WI
15
+ # Wisconsin disregards child support, which is included in
16
+ # tanf_gross_unearned_income. The result cannot be negative.
17
+ adds = ["tanf_gross_earned_income", "tanf_gross_unearned_income"]
18
+ subtracts = ["child_support_received"]
@@ -0,0 +1,21 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class wi_works_countable_resources(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "Wisconsin Works countable resources"
8
+ unit = USD
9
+ definition_period = YEAR
10
+ reference = (
11
+ "https://dcf.wisconsin.gov/manuals/w-2-manual/Production/03/03.3.4_COUNTING_ASSETS.htm",
12
+ "https://docs.legis.wisconsin.gov/code/admin_code/dcf/101_199/101/09/3/b",
13
+ )
14
+ defined_for = StateCode.WI
15
+
16
+ def formula(spm_unit, period, parameters):
17
+ liquid_assets = spm_unit("spm_unit_cash_assets", period)
18
+ vehicle_value = spm_unit.household("household_vehicles_value", period)
19
+ p = parameters(period).gov.states.wi.dcf.works.asset
20
+ countable_vehicle = max_(vehicle_value - p.vehicle_exclusion, 0)
21
+ return liquid_assets + countable_vehicle