policyengine-us 1.449.6__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 (306) 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/contrib/states/de/dependent_credit/age_limit/in_effect.yaml +9 -0
  5. policyengine_us/parameters/gov/contrib/states/de/dependent_credit/age_limit/threshold.yaml +9 -0
  6. policyengine_us/parameters/gov/contrib/states/de/dependent_credit/amount.yaml +9 -0
  7. policyengine_us/parameters/gov/contrib/states/de/dependent_credit/in_effect.yaml +9 -0
  8. policyengine_us/parameters/gov/contrib/states/de/dependent_credit/phaseout/rate.yaml +9 -0
  9. policyengine_us/parameters/gov/contrib/states/de/dependent_credit/phaseout/threshold.yaml +23 -0
  10. policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/applies.yaml +115 -0
  11. policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/couple.yaml +14 -0
  12. policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/individual.yaml +14 -0
  13. policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/qi/fpl_limit.yaml +14 -0
  14. policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/qmb/fpl_limit.yaml +18 -0
  15. policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/slmb/fpl_limit.yaml +15 -0
  16. policyengine_us/parameters/gov/irs/deductions/qbi/max/reit_ptp_rate.yaml +13 -0
  17. policyengine_us/parameters/gov/states/az/tax/income/credits/property_tax/income_sources.yaml +17 -9
  18. policyengine_us/parameters/gov/states/ca/chhs/medi_cal_enrollment_freeze/in_effect.yaml +12 -0
  19. policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/head_of_household.yaml +1 -1
  20. policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/joint.yaml +1 -1
  21. policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/separate.yaml +1 -1
  22. policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/single.yaml +1 -1
  23. policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/surviving_spouse.yaml +1 -1
  24. policyengine_us/parameters/gov/states/ia/tax/income/credits/child_care/fraction.yaml +1 -1
  25. policyengine_us/parameters/gov/states/il/dhs/aabd/asset/sources.yaml +0 -1
  26. policyengine_us/parameters/gov/states/il/dhs/aabd/{qualified_noncitizen_status.yaml → qualified_noncitizen_statuses.yaml} +3 -5
  27. policyengine_us/parameters/gov/states/il/dhs/tanf/{qualified_noncitizen_status.yaml → qualified_noncitizen_statuses.yaml} +2 -2
  28. policyengine_us/parameters/gov/states/il/hfs/bcc/eligibility/age.yaml +12 -0
  29. policyengine_us/parameters/gov/states/il/hfs/fpp/eligibility/household_size.yaml +14 -0
  30. policyengine_us/parameters/gov/states/il/hfs/fpp/eligibility/income_limit.yaml +15 -0
  31. policyengine_us/parameters/gov/states/il/hfs/mpe/eligibility/income_limit.yaml +13 -0
  32. policyengine_us/parameters/gov/states/il/hfs/qualified_noncitizen_statuses.yaml +17 -0
  33. policyengine_us/parameters/gov/states/mi/tax/income/household_resources.yaml +1 -1
  34. policyengine_us/parameters/gov/states/mo/dss/tanf/child_care_deduction/amount.yaml +27 -0
  35. policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/amount.yaml +14 -0
  36. policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/thirty_only/amount.yaml +14 -0
  37. policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/thirty_plus_one_third/flat_amount.yaml +14 -0
  38. policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/thirty_plus_one_third/percentage.yaml +14 -0
  39. policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/two_thirds_disregard/percentage.yaml +14 -0
  40. policyengine_us/parameters/gov/states/mo/dss/tanf/income_limit/max_table_size.yaml +12 -0
  41. policyengine_us/parameters/gov/states/mo/dss/tanf/income_limit/rate.yaml +14 -0
  42. policyengine_us/parameters/gov/states/mo/dss/tanf/maximum_benefit/percentage.yaml +14 -0
  43. policyengine_us/parameters/gov/states/mo/dss/tanf/minimum_payment.yaml +12 -0
  44. policyengine_us/parameters/gov/states/mo/dss/tanf/resource_limit/amount.yaml +14 -0
  45. policyengine_us/parameters/gov/states/mo/dss/tanf/standard_of_need/additional_person_increment.yaml +12 -0
  46. policyengine_us/parameters/gov/states/mo/dss/tanf/standard_of_need/amount.yaml +38 -0
  47. policyengine_us/parameters/gov/states/mo/dss/tanf/standard_of_need/base_table_max_size.yaml +12 -0
  48. policyengine_us/parameters/gov/states/nj/tax/income/additions.yaml +12 -0
  49. policyengine_us/parameters/gov/states/nj/tax/income/gross_income_sources.yaml +32 -0
  50. policyengine_us/parameters/gov/states/pa/dhs/tanf/county_group/group_1.yaml +19 -0
  51. policyengine_us/parameters/gov/states/pa/dhs/tanf/county_group/group_2.yaml +44 -0
  52. policyengine_us/parameters/gov/states/pa/dhs/tanf/county_group/group_3.yaml +31 -0
  53. policyengine_us/parameters/gov/states/pa/dhs/tanf/county_group/group_4.yaml +29 -0
  54. policyengine_us/parameters/gov/states/pa/dhs/tanf/family_size_allowance/additional_person.yaml +14 -0
  55. policyengine_us/parameters/gov/states/pa/dhs/tanf/family_size_allowance/amount.yaml +69 -0
  56. policyengine_us/parameters/gov/states/pa/dhs/tanf/income/deductions/earned_income_disregard/percentage.yaml +14 -0
  57. policyengine_us/parameters/gov/states/pa/dhs/tanf/income/deductions/work_expense/additional.yaml +15 -0
  58. policyengine_us/parameters/gov/states/pa/dhs/tanf/income/deductions/work_expense/initial.yaml +14 -0
  59. policyengine_us/parameters/gov/states/pa/dhs/tanf/max_family_size_in_table.yaml +12 -0
  60. policyengine_us/parameters/gov/states/pa/dhs/tanf/resource_limit.yaml +7 -6
  61. policyengine_us/parameters/gov/states/pa/dhs/tanf/standard_of_need/additional_person.yaml +14 -0
  62. policyengine_us/parameters/gov/states/pa/dhs/tanf/standard_of_need/amount.yaml +69 -0
  63. policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/amount.yaml +4 -0
  64. policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/max_agi.yaml +6 -2
  65. policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/max_child_age.yaml +6 -2
  66. policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/parent_max_earnings.yaml +6 -2
  67. policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/amount.yaml +4 -0
  68. policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/child_age_threshold.yaml +4 -0
  69. policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/reduction/rate.yaml +4 -0
  70. policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/reduction/start.yaml +4 -0
  71. policyengine_us/parameters/gov/states/ut/tax/income/credits/earned_income/rate.yaml +4 -0
  72. policyengine_us/parameters/gov/states/ut/tax/income/credits/military_retirement/rate.yaml +26 -0
  73. policyengine_us/parameters/gov/states/ut/tax/income/credits/non_refundable.yaml +5 -0
  74. policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/birth_year.yaml +4 -0
  75. policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/max.yaml +4 -0
  76. policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/phase_out/rate.yaml +4 -0
  77. policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/phase_out/threshold.yaml +4 -0
  78. policyengine_us/parameters/gov/states/ut/tax/income/credits/ss_benefits/phase_out/rate.yaml +4 -0
  79. policyengine_us/parameters/gov/states/ut/tax/income/credits/ss_benefits/phase_out/threshold.yaml +4 -0
  80. policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/in_effect.yaml +2 -0
  81. policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/personal_exemption.yaml +5 -0
  82. policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/phase_out/rate.yaml +5 -1
  83. policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/phase_out/threshold.yaml +9 -0
  84. policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/rate.yaml +4 -0
  85. policyengine_us/parameters/gov/states/ut/tax/income/rate.yaml +3 -0
  86. policyengine_us/parameters/gov/states/wi/dcf/README.md +1 -0
  87. policyengine_us/parameters/gov/states/wi/dcf/works/README.md +1 -0
  88. policyengine_us/parameters/gov/states/wi/dcf/works/asset/limit.yaml +16 -0
  89. policyengine_us/parameters/gov/states/wi/dcf/works/asset/vehicle_exclusion.yaml +14 -0
  90. policyengine_us/parameters/gov/states/wi/dcf/works/income_limit/rate.yaml +16 -0
  91. policyengine_us/parameters/gov/states/wi/dcf/works/placement/amount.yaml +30 -0
  92. policyengine_us/parameters/gov/states/wi/dcf/works/placement/arp_pregnancy_month_threshold.yaml +14 -0
  93. policyengine_us/parameters/gov/states/wi/dcf/works/placement/cmc_infant_age_limit.yaml +15 -0
  94. policyengine_us/reforms/aca/__init__.py +3 -0
  95. policyengine_us/reforms/aca/aca_ptc_700_fpl_cliff.py +125 -0
  96. policyengine_us/reforms/reforms.py +12 -0
  97. policyengine_us/reforms/state_dependent_exemptions/repeal_state_dependent_exemptions.py +1 -1
  98. policyengine_us/reforms/states/de/__init__.py +3 -0
  99. policyengine_us/reforms/states/de/dependent_credit/de_dependent_credit_reform.py +165 -0
  100. policyengine_us/tests/policy/baseline/gov/hhs/medicaid/medicaid_enrolled.yaml +105 -0
  101. policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/category/msp_category.yaml +69 -0
  102. policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_eligible.yaml +62 -0
  103. policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_fpg.yaml +22 -0
  104. policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/integration.yaml +84 -0
  105. policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/msp_benefit_value.yaml +62 -0
  106. 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
  107. 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
  108. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/qbid/qbid_amount.yaml +75 -3
  109. policyengine_us/tests/policy/baseline/gov/local/ca/la/general_relief/eligible/immigration/la_general_relief_immigration_status_eligible_person.yaml +2 -2
  110. policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_revenue_medicare_hi.yaml +105 -0
  111. policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_revenue_oasdi.yaml +86 -0
  112. policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_revenue_total.yaml +19 -0
  113. policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_tier_split.yaml +90 -0
  114. policyengine_us/tests/policy/baseline/gov/states/az/tax/income/az_property_tax_credit_agi.yaml +58 -0
  115. policyengine_us/tests/policy/baseline/gov/states/az/tax/income/integration.yaml +28 -0
  116. policyengine_us/tests/policy/baseline/gov/states/ca/chhs/is_ca_medicaid_immigration_status_eligible.yaml +59 -5
  117. policyengine_us/tests/policy/baseline/gov/states/dc/tax/income/dc_ptc.yaml +27 -0
  118. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/food_excise/hi_food_excise_credit.yaml +29 -1
  119. policyengine_us/tests/policy/baseline/gov/states/ia/tax/income/ia_cdcc.yaml +3 -3
  120. policyengine_us/tests/policy/baseline/gov/states/ia/tax/income/ia_integration.yaml +31 -1
  121. policyengine_us/tests/policy/baseline/gov/states/il/dhs/aabd/eligibility/il_aabd_non_financial_eligible_person.yaml +6 -6
  122. policyengine_us/tests/policy/baseline/gov/states/il/dhs/tanf/eligibility/il_tanf_immigration_status_eligible_person.yaml +2 -10
  123. policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_age_eligible.yaml +39 -0
  124. policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_eligible.yaml +95 -0
  125. policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_insurance_eligible.yaml +35 -0
  126. policyengine_us/tests/policy/baseline/gov/states/il/hfs/fpp/il_fpp_income_eligible.yaml +35 -0
  127. policyengine_us/tests/policy/baseline/gov/states/il/hfs/fpp/il_fpp_income_level.yaml +27 -0
  128. policyengine_us/tests/policy/baseline/gov/states/il/hfs/fpp/integration.yaml +116 -0
  129. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_disability_eligible.yaml +18 -5
  130. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.yaml +5 -5
  131. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/integration.yaml +8 -8
  132. policyengine_us/tests/policy/baseline/gov/states/il/hfs/il_hfs_immigration_status_eligible.yaml +47 -0
  133. policyengine_us/tests/policy/baseline/gov/states/il/hfs/mpe/il_mpe_eligible.yaml +39 -0
  134. policyengine_us/tests/policy/baseline/gov/states/il/hfs/mpe/il_mpe_income_eligible.yaml +23 -0
  135. policyengine_us/tests/policy/baseline/gov/states/il/hfs/mpe/integration.yaml +138 -0
  136. policyengine_us/tests/policy/baseline/gov/states/il/hfs/smib/eligibility/il_smib_eligible.yaml +88 -0
  137. policyengine_us/tests/policy/baseline/gov/states/il/hfs/smib/integration.yaml +73 -0
  138. policyengine_us/tests/policy/baseline/gov/states/ky/tax/income/credits/family_size_tax_credit/ky_family_size_tax_credit_rate.yaml +8 -8
  139. policyengine_us/tests/policy/baseline/gov/states/ma/tax/income/gross_income/integration.yaml +28 -0
  140. policyengine_us/tests/policy/baseline/gov/states/me/tax/income/credits/integration.yaml +87 -0
  141. policyengine_us/tests/policy/baseline/gov/states/me/tax/income/credits/me_dependent_exemption_credit_amount_person.yaml +3 -2
  142. policyengine_us/tests/policy/baseline/gov/states/mi/tax/income/credits/home_heating/mi_home_heating_credit.yaml +87 -0
  143. policyengine_us/tests/policy/baseline/gov/states/mi/tax/income/mi_household_resources.yaml +57 -0
  144. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/integration.yaml +275 -0
  145. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf.yaml +60 -0
  146. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_child_care_deduction.yaml +187 -0
  147. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_countable_income.yaml +49 -0
  148. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_earned_income_deductions.yaml +53 -0
  149. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_eligible.yaml +59 -0
  150. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_gross_income_eligible.yaml +29 -0
  151. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_income_eligible.yaml +49 -0
  152. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_maximum_benefit.yaml +47 -0
  153. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_percentage_of_need_test.yaml +53 -0
  154. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_resources_eligible.yaml +23 -0
  155. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_standard_of_need.yaml +71 -0
  156. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_standard_of_need_test.yaml +44 -0
  157. policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/integration.yaml +29 -0
  158. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/credits/eitc/nj_eitc.yaml +8 -3
  159. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integration.yaml +137 -0
  160. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/taxable_income/nj_agi.yaml +7 -8
  161. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/eligibility/pa_tanf_disregard_eligible.yaml +114 -0
  162. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/eligibility/pa_tanf_eligible.yaml +65 -0
  163. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/eligibility/pa_tanf_income_eligible.yaml +62 -0
  164. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/eligibility/pa_tanf_resources_eligible.yaml +47 -0
  165. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/income/pa_tanf_earned_income_after_deductions_person.yaml +81 -0
  166. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/integration.yaml +386 -0
  167. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/pa_tanf.yaml +53 -0
  168. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/pa_tanf_county_group.yaml +63 -0
  169. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/pa_tanf_maximum_benefit.yaml +92 -0
  170. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/pa_tanf_standard_of_need.yaml +73 -0
  171. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/assistance_unit/tx_tanf_categorically_eligible_person.yaml +1 -1
  172. policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit.yaml +89 -0
  173. policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit_eligible.yaml +50 -0
  174. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/integration.yaml +282 -0
  175. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works.yaml +50 -0
  176. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_countable_income.yaml +49 -0
  177. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_countable_resources.yaml +54 -0
  178. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_eligible.yaml +61 -0
  179. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_income_eligible.yaml +43 -0
  180. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_placement.yaml +111 -0
  181. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_resources_eligible.yaml +38 -0
  182. policyengine_us/tests/policy/baseline/gov/states/wv/tax/income/credits/heptc/wv_homestead_excess_property_tax_credit.yaml +31 -0
  183. policyengine_us/tests/policy/baseline/gov/states/wv/tax/income/credits/liftc/wv_low_income_family_tax_credit_fpg.yaml +10 -6
  184. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi.yaml +1 -1
  185. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi_person.yaml +1 -1
  186. policyengine_us/tests/policy/baseline/gov/usda/snap/snap_min_allotment.yaml +3 -3
  187. policyengine_us/tests/policy/baseline/household/expense/health/has_bcc_qualifying_coverage.yaml +12 -0
  188. policyengine_us/tests/policy/contrib/aca/ptc_700_fpl_cliff.yaml +136 -0
  189. policyengine_us/tests/policy/contrib/state_dependent_exemptions/repeal_state_dependent_exemptions.yaml +25 -1
  190. policyengine_us/tests/policy/contrib/states/de/dependent_credit_reform_test.yaml +210 -0
  191. policyengine_us/tests/test_batched.py +39 -68
  192. policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_group.py +2 -2
  193. policyengine_us/variables/gov/hhs/medicaid/receives_medicaid.py +17 -0
  194. policyengine_us/variables/gov/hhs/medicare/savings_programs/category/is_qi_eligible.py +33 -0
  195. policyengine_us/variables/gov/hhs/medicare/savings_programs/category/is_qmb_eligible.py +28 -0
  196. policyengine_us/variables/gov/hhs/medicare/savings_programs/category/is_slmb_eligible.py +33 -0
  197. policyengine_us/variables/gov/hhs/medicare/savings_programs/category/msp_category.py +33 -0
  198. policyengine_us/variables/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.py +26 -0
  199. policyengine_us/variables/gov/hhs/medicare/savings_programs/eligibility/msp_eligible.py +20 -0
  200. policyengine_us/variables/gov/hhs/medicare/savings_programs/eligibility/msp_income_eligible.py +26 -0
  201. policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py +35 -0
  202. policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_fpg.py +40 -0
  203. policyengine_us/variables/gov/hhs/medicare/savings_programs/msp.py +15 -0
  204. policyengine_us/variables/gov/hhs/medicare/savings_programs/msp_benefit_value.py +37 -0
  205. policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/social_security/taxable_social_security_tier_1.py +58 -0
  206. policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/social_security/taxable_social_security_tier_2.py +17 -0
  207. policyengine_us/variables/gov/irs/income/taxable_income/deductions/qualified_business_income_deduction/qbid_amount.py +16 -6
  208. policyengine_us/variables/gov/simulation/labor_supply_response/labor_supply_behavioral_response.py +57 -42
  209. policyengine_us/variables/gov/ssa/revenue/tob_revenue_medicare_hi.py +31 -0
  210. policyengine_us/variables/gov/ssa/revenue/tob_revenue_oasdi.py +31 -0
  211. policyengine_us/variables/gov/ssa/revenue/tob_revenue_total.py +44 -0
  212. policyengine_us/variables/gov/states/az/tax/income/credits/property_tax_credit/az_property_tax_credit_agi.py +53 -0
  213. policyengine_us/variables/gov/states/ca/chhs/is_ca_medicaid_immigration_status_eligible.py +25 -4
  214. policyengine_us/variables/gov/states/dc/tax/income/credits/dc_ptc.py +7 -3
  215. policyengine_us/variables/gov/states/ia/tax/income/credits/ia_cdcc.py +4 -2
  216. policyengine_us/variables/gov/states/il/dhs/aabd/eligibility/il_aabd_immigration_status_eligible_person.py +1 -1
  217. policyengine_us/variables/gov/states/il/dhs/aabd/eligibility/il_aabd_non_financial_eligible_person.py +23 -5
  218. policyengine_us/variables/gov/states/il/dhs/tanf/eligibility/il_tanf_immigration_status_eligible_person.py +1 -1
  219. policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_age_eligible.py +15 -0
  220. policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_eligible.py +27 -0
  221. policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_insurance_eligible.py +29 -0
  222. policyengine_us/variables/gov/states/il/hfs/fpp/eligibility/il_fpp_eligible.py +40 -0
  223. policyengine_us/variables/gov/states/il/hfs/fpp/eligibility/il_fpp_income_eligible.py +18 -0
  224. policyengine_us/variables/gov/states/il/hfs/fpp/il_fpp_income_level.py +29 -0
  225. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_disability_eligible.py +7 -3
  226. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.py +1 -1
  227. policyengine_us/variables/gov/states/il/hfs/{hbwd/eligibility/il_hbwd_immigration_status_eligible.py → il_hfs_immigration_status_eligible.py} +5 -8
  228. policyengine_us/variables/gov/states/il/hfs/mpe/eligibility/il_mpe_income_eligible.py +15 -0
  229. policyengine_us/variables/gov/states/il/hfs/mpe/il_mpe_eligible.py +15 -0
  230. policyengine_us/variables/gov/states/il/hfs/smib/eligibility/il_smib_categorical_eligible.py +26 -0
  231. policyengine_us/variables/gov/states/il/hfs/smib/eligibility/il_smib_eligible.py +28 -0
  232. policyengine_us/variables/gov/states/il/hfs/smib/il_smib.py +21 -0
  233. policyengine_us/variables/gov/states/il/hfs/smib/il_smib_person.py +24 -0
  234. policyengine_us/variables/gov/states/ky/tax/income/credits/family_size_credit/ky_family_size_tax_credit_rate.py +1 -1
  235. policyengine_us/variables/gov/states/ma/tax/income/gross_income/ma_part_c_gross_income.py +7 -1
  236. policyengine_us/variables/gov/states/me/tax/income/credits/dependent_exemption/me_dependent_exemption_credit_amount_person.py +1 -1
  237. policyengine_us/variables/gov/states/mi/tax/income/mi_household_resources.py +34 -5
  238. policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_eligible.py +23 -0
  239. policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_gross_income_eligible.py +24 -0
  240. policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_income_eligible.py +18 -0
  241. policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_percentage_of_need_test.py +20 -0
  242. policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_resources_eligible.py +18 -0
  243. policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_standard_of_need_test.py +17 -0
  244. policyengine_us/variables/gov/states/mo/dss/tanf/income/deductions/mo_tanf_child_care_deduction.py +24 -0
  245. policyengine_us/variables/gov/states/mo/dss/tanf/income/deductions/mo_tanf_earned_income_deductions.py +36 -0
  246. policyengine_us/variables/gov/states/mo/dss/tanf/income/mo_tanf_countable_income.py +21 -0
  247. policyengine_us/variables/gov/states/mo/dss/tanf/income/mo_tanf_income_for_need_test.py +23 -0
  248. policyengine_us/variables/gov/states/mo/dss/tanf/mo_tanf.py +21 -0
  249. policyengine_us/variables/gov/states/mo/dss/tanf/mo_tanf_maximum_benefit.py +19 -0
  250. policyengine_us/variables/gov/states/mo/dss/tanf/mo_tanf_standard_of_need.py +23 -0
  251. policyengine_us/variables/gov/states/mt/tax/income/capital_gains/mt_capital_gains_tax_indiv.py +3 -1
  252. policyengine_us/variables/gov/states/mt/tax/income/capital_gains/mt_capital_gains_tax_joint.py +3 -1
  253. policyengine_us/variables/gov/states/mt/tax/income/tax_calculation/mt_regular_income_tax_indiv.py +3 -0
  254. policyengine_us/variables/gov/states/mt/tax/income/tax_calculation/mt_regular_income_tax_joint.py +3 -0
  255. policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_additions.py +8 -3
  256. policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_gross_income.py +17 -0
  257. policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_total_income.py +12 -6
  258. policyengine_us/variables/gov/states/nj/tax/income/credits/eitc/nj_eitc.py +7 -1
  259. policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pa_tanf_disregard_eligible.py +31 -0
  260. policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pa_tanf_eligible.py +29 -0
  261. policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pa_tanf_income_eligible.py +16 -0
  262. policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pa_tanf_resources_eligible.py +7 -5
  263. policyengine_us/variables/gov/states/pa/dhs/tanf/income/pa_tanf_countable_earned_income.py +15 -0
  264. policyengine_us/variables/gov/states/pa/dhs/tanf/income/pa_tanf_countable_income.py +16 -0
  265. policyengine_us/variables/gov/states/pa/dhs/tanf/income/pa_tanf_earned_income_after_deductions_person.py +27 -0
  266. policyengine_us/variables/gov/states/pa/dhs/tanf/pa_tanf.py +19 -0
  267. policyengine_us/variables/gov/states/pa/dhs/tanf/pa_tanf_county_group.py +38 -0
  268. policyengine_us/variables/gov/states/pa/dhs/tanf/pa_tanf_maximum_benefit.py +30 -0
  269. policyengine_us/variables/gov/states/pa/dhs/tanf/pa_tanf_standard_of_need.py +30 -0
  270. policyengine_us/variables/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit.py +20 -0
  271. policyengine_us/variables/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit_eligible.py +22 -0
  272. policyengine_us/variables/gov/states/wi/dcf/works/eligibility/wi_works_eligible.py +22 -0
  273. policyengine_us/variables/gov/states/wi/dcf/works/eligibility/wi_works_income_eligible.py +20 -0
  274. policyengine_us/variables/gov/states/wi/dcf/works/eligibility/wi_works_resources_eligible.py +18 -0
  275. policyengine_us/variables/gov/states/wi/dcf/works/income/wi_works_countable_income.py +18 -0
  276. policyengine_us/variables/gov/states/wi/dcf/works/resources/wi_works_countable_resources.py +21 -0
  277. policyengine_us/variables/gov/states/wi/dcf/works/wi_works.py +19 -0
  278. policyengine_us/variables/gov/states/wi/dcf/works/wi_works_placement.py +45 -0
  279. policyengine_us/variables/gov/states/wv/tax/income/credits/heptc/wv_homestead_excess_property_tax_credit.py +3 -3
  280. policyengine_us/variables/gov/states/wv/tax/income/credits/heptc/wv_homestead_excess_property_tax_credit_eligible.py +5 -2
  281. policyengine_us/variables/gov/states/wv/tax/income/credits/liftc/wv_low_income_family_tax_credit_fpg.py +1 -1
  282. policyengine_us/variables/household/expense/health/has_bcc_qualifying_coverage.py +16 -0
  283. policyengine_us/variables/household/income/person/dividends/qualified_reit_and_ptp_income.py +1 -1
  284. policyengine_us/variables/household/income/spm_unit/spm_unit_tenure_type.py +17 -0
  285. {policyengine_us-1.449.6.dist-info → policyengine_us-1.465.0.dist-info}/METADATA +2 -2
  286. {policyengine_us-1.449.6.dist-info → policyengine_us-1.465.0.dist-info}/RECORD +289 -114
  287. policyengine_us/parameters/gov/states/il/dhs/aabd/aged_age_threshold.yaml +0 -11
  288. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/qualified_noncitizen_statuses.yaml +0 -21
  289. policyengine_us/parameters/gov/states/mo/dss/tanf/income_limit.yaml +0 -26
  290. policyengine_us/parameters/gov/states/pa/dhs/tanf/cash_assistance/age_limit.yaml +0 -11
  291. policyengine_us/parameters/gov/states/pa/dhs/tanf/pregnancy_eligibility/age_limit.yaml +0 -9
  292. policyengine_us/tests/policy/baseline/gov/states/il/dhs/aabd/eligibility/il_aabd_aged_blind_disabled_person.yaml +0 -39
  293. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_immigration_status_eligible.yaml +0 -47
  294. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_income_limit.yaml +0 -23
  295. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integation.yaml +0 -57
  296. policyengine_us/tests/policy/baseline/gov/states/pa/tanf/cash_assistance/pa_tanf_age_eligible.yaml +0 -44
  297. policyengine_us/tests/policy/baseline/gov/states/pa/tanf/pregnancy_eligibility/pa_tanf_pregnancy_eligibility.yaml +0 -59
  298. policyengine_us/tests/policy/baseline/gov/states/pa/tax/income/dhs/tanf/eligibility/pa_tanf_resources_eligible.yaml +0 -24
  299. policyengine_us/variables/gov/states/il/dhs/aabd/eligibility/il_aabd_aged_blind_disabled_person.py +0 -22
  300. policyengine_us/variables/gov/states/mo/dss/tanf/mo_tanf_income_limit.py +0 -18
  301. policyengine_us/variables/gov/states/pa/dhs/tanf/cash_assistance/pa_tanf_age_eligible.py +0 -22
  302. policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pa_tanf_countable_resources.py +0 -10
  303. policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pregnancy_eligibility/age_eligibility.py +0 -22
  304. {policyengine_us-1.449.6.dist-info → policyengine_us-1.465.0.dist-info}/WHEEL +0 -0
  305. {policyengine_us-1.449.6.dist-info → policyengine_us-1.465.0.dist-info}/entry_points.txt +0 -0
  306. {policyengine_us-1.449.6.dist-info → policyengine_us-1.465.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,15 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class il_mpe_eligible(Variable):
5
+ value_type = bool
6
+ entity = Person
7
+ label = "Illinois Medicaid Presumptive Eligibility eligible"
8
+ definition_period = MONTH
9
+ reference = "https://www.law.cornell.edu/regulations/illinois/Ill-Admin-Code-tit-89-SS-120.66"
10
+ defined_for = StateCode.IL
11
+
12
+ def formula(person, period, parameters):
13
+ is_pregnant = person("is_pregnant", period.this_year)
14
+ income_eligible = person("il_mpe_income_eligible", period)
15
+ return is_pregnant & income_eligible
@@ -0,0 +1,26 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class il_smib_categorical_eligible(Variable):
5
+ value_type = bool
6
+ entity = Person
7
+ label = "Illinois SMIB categorical eligibility"
8
+ definition_period = MONTH
9
+ documentation = (
10
+ "Eligible for SMIB based on categorical eligibility: "
11
+ "receiving AABD, TANF, or SSI benefits."
12
+ )
13
+ reference = (
14
+ "https://www.ilga.gov/commission/jcar/admincode/089/089001200D00700R.html",
15
+ "https://www.dhs.state.il.us/page.aspx?item=18685",
16
+ )
17
+ defined_for = StateCode.IL
18
+
19
+ def formula(person, period, parameters):
20
+ # AABD recipient
21
+ is_aabd = person("il_aabd_eligible_person", period)
22
+ # TANF recipient (SPM unit level, check if person is in eligible unit)
23
+ is_tanf = person.spm_unit("il_tanf_eligible", period)
24
+ # SSI recipient
25
+ is_ssi = person("is_ssi_eligible", period)
26
+ return is_aabd | is_tanf | is_ssi
@@ -0,0 +1,28 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class il_smib_eligible(Variable):
5
+ value_type = bool
6
+ entity = Person
7
+ label = "Illinois SMIB Buy-In Program eligible"
8
+ definition_period = MONTH
9
+ documentation = (
10
+ "Eligible for Illinois Supplementary Medical Insurance Benefit "
11
+ "(SMIB) Buy-In Program. The program pays Medicare Part B premiums "
12
+ "for eligible individuals receiving AABD, TANF, SSI, or who qualify "
13
+ "as QMB/SLMB/QI under the Medicare Savings Program."
14
+ )
15
+ reference = (
16
+ "https://www.ilga.gov/commission/jcar/admincode/089/089001200D00700R.html",
17
+ "https://www.dhs.state.il.us/page.aspx?item=18685",
18
+ )
19
+ defined_for = StateCode.IL
20
+
21
+ def formula(person, period, parameters):
22
+ # Must be Medicare eligible (or meet other SMIB criteria)
23
+ is_medicare = person("is_medicare_eligible", period.this_year)
24
+ # Check categorical eligibility (AABD, TANF, SSI)
25
+ categorical_eligible = person("il_smib_categorical_eligible", period)
26
+ # Note: QMB/SLMB/QI eligibility will come from MSP when that PR merges
27
+ # For now, categorical eligibility is the primary path
28
+ return is_medicare & categorical_eligible
@@ -0,0 +1,21 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class il_smib(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ unit = USD
8
+ label = "Illinois SMIB Buy-In Program benefit"
9
+ definition_period = MONTH
10
+ documentation = (
11
+ "Illinois Supplementary Medical Insurance Benefit (SMIB) Buy-In "
12
+ "Program. The state pays Medicare Part B premiums for eligible "
13
+ "individuals receiving AABD, TANF, SSI, or who qualify under the "
14
+ "Medicare Savings Program (QMB, SLMB, QI)."
15
+ )
16
+ reference = (
17
+ "https://www.ilga.gov/commission/jcar/admincode/089/089001200D00700R.html",
18
+ "https://www.dhs.state.il.us/page.aspx?item=18685",
19
+ )
20
+ defined_for = StateCode.IL
21
+ adds = ["il_smib_person"]
@@ -0,0 +1,24 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class il_smib_person(Variable):
5
+ value_type = float
6
+ entity = Person
7
+ unit = USD
8
+ label = "Illinois SMIB benefit (person)"
9
+ definition_period = MONTH
10
+ documentation = (
11
+ "Illinois Supplementary Medical Insurance Benefit (SMIB) Buy-In "
12
+ "Program benefit. The state pays the Medicare Part B premium for "
13
+ "eligible individuals."
14
+ )
15
+ reference = (
16
+ "https://www.ilga.gov/commission/jcar/admincode/089/089001200D00700R.html",
17
+ "https://www.dhs.state.il.us/page.aspx?item=18685",
18
+ )
19
+ defined_for = "il_smib_eligible"
20
+
21
+ def formula(person, period, parameters):
22
+ # SMIB pays the Part B premium
23
+ # base_part_b_premium is annual, convert to monthly
24
+ return person("base_part_b_premium", period.this_year) / MONTHS_IN_YEAR
@@ -16,7 +16,7 @@ class ky_family_size_tax_credit_rate(Variable):
16
16
  income = tax_unit("ky_modified_agi", period)
17
17
  fpg = parameters(period).gov.hhs.fpg
18
18
  # This will be CONTIGUOUS_US for Kentucky.
19
- state_group = tax_unit.household("state_group", period)
19
+ state_group = tax_unit.household("state_group_str", period)
20
20
  p1 = fpg.first_person[state_group]
21
21
  padd = fpg.additional_person[state_group]
22
22
  family_size = tax_unit("tax_unit_size", period)
@@ -11,4 +11,10 @@ class ma_part_c_gross_income(Variable):
11
11
  defined_for = StateCode.MA
12
12
 
13
13
  def formula(tax_unit, period, parameters):
14
- return max_(0, add(tax_unit, period, ["long_term_capital_gains"]))
14
+ # Long-term capital gains
15
+ ltcg = add(tax_unit, period, ["long_term_capital_gains"])
16
+ # Short-term capital gains (can be negative)
17
+ stcg = add(tax_unit, period, ["short_term_capital_gains"])
18
+ # Per MA Schedule B line 22, short-term losses offset long-term gains
19
+ stcg_losses = min_(0, stcg)
20
+ return max_(0, ltcg + stcg_losses)
@@ -8,7 +8,7 @@ class me_dependent_exemption_credit_amount_person(Variable):
8
8
  label = "Maine dependent exemption credit amount for each person"
9
9
  reference = "https://www.mainelegislature.org/legis/statutes/36/title36sec5219-SS.html"
10
10
  definition_period = YEAR
11
- defined_for = "ctc_qualifying_child"
11
+ defined_for = "is_tax_unit_dependent"
12
12
 
13
13
  def formula(person, period, parameters):
14
14
  dependent = person("is_tax_unit_dependent", period)
@@ -8,11 +8,42 @@ class mi_household_resources(Variable):
8
8
  unit = USD
9
9
  definition_period = YEAR
10
10
  defined_for = StateCode.MI
11
- reference = "https://law.justia.com/codes/michigan/2022/chapter-206/statute-act-281-of-1967/division-281-1967-1/division-281-1967-1-9/section-206-508/"
11
+ reference = (
12
+ "https://law.justia.com/codes/michigan/2022/chapter-206/"
13
+ "statute-act-281-of-1967/division-281-1967-1/division-281-1967-1-9/"
14
+ "section-206-508/",
15
+ "https://www.michigan.gov/taxes/-/media/Project/Websites/taxes/"
16
+ "Forms/IIT/TY2024/BOOK_MI-1040CR-7.pdf",
17
+ )
12
18
 
13
19
  def formula(tax_unit, period, parameters):
14
20
  p = parameters(period).gov.states.mi.tax.income
15
- household_resources = add(tax_unit, period, p.household_resources)
21
+ # Per form instructions, only certain income sources must be
22
+ # floored at 0 if negative. Capital gains have special loss limitation.
23
+ income_sources = p.household_resources
24
+
25
+ # Sources that must be floored at 0 per form instructions:
26
+ # "Net business income (including net farm income). If negative, enter 0"
27
+ # "Net royalty or rent income. If negative, enter 0"
28
+ floored_sources = {
29
+ "farm_income",
30
+ "self_employment_income",
31
+ "partnership_s_corp_income",
32
+ "rental_income",
33
+ "farm_rent_income",
34
+ }
35
+
36
+ # Iterate through each source, applying flooring only to
37
+ # sources that require it per form instructions
38
+ total = 0
39
+ for source in income_sources:
40
+ if source in floored_sources:
41
+ # Per MI-1040CR instructions: "If negative, enter 0"
42
+ total += max_(add(tax_unit, period, [source]), 0)
43
+ else:
44
+ # Other sources are added as-is without flooring
45
+ total += add(tax_unit, period, [source])
46
+
16
47
  health_insurance_premiums = add(
17
48
  tax_unit, period, ["health_insurance_premiums"]
18
49
  )
@@ -21,7 +52,5 @@ class mi_household_resources(Variable):
21
52
  )
22
53
  return max_(
23
54
  0,
24
- household_resources
25
- - health_insurance_premiums
26
- - above_the_line_deductions,
55
+ total - health_insurance_premiums - above_the_line_deductions,
27
56
  )
@@ -0,0 +1,23 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class mo_tanf_eligible(Variable):
5
+ value_type = bool
6
+ entity = SPMUnit
7
+ label = (
8
+ "Eligible for Missouri Temporary Assistance for Needy Families (TANF)"
9
+ )
10
+ definition_period = MONTH
11
+ reference = (
12
+ "https://www.law.cornell.edu/regulations/missouri/13-CSR-40-2-310",
13
+ "https://dssmanuals.mo.gov/temporary-assistance-case-management/0200-000-00/",
14
+ )
15
+ defined_for = StateCode.MO
16
+
17
+ def formula(spm_unit, period, parameters):
18
+ person = spm_unit.members
19
+ demographic = person("is_person_demographic_tanf_eligible", period)
20
+ has_eligible_member = spm_unit.any(demographic)
21
+ income_eligible = spm_unit("mo_tanf_income_eligible", period)
22
+ resources_eligible = spm_unit("mo_tanf_resources_eligible", period)
23
+ return has_eligible_member & income_eligible & resources_eligible
@@ -0,0 +1,24 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class mo_tanf_gross_income_eligible(Variable):
5
+ value_type = bool
6
+ entity = SPMUnit
7
+ label = "Missouri TANF gross income eligibility"
8
+ definition_period = MONTH
9
+ reference = (
10
+ "https://www.law.cornell.edu/regulations/missouri/13-CSR-40-2-310",
11
+ "https://dssmanuals.mo.gov/temporary-assistance-case-management/0210-010-05-185/",
12
+ )
13
+ defined_for = StateCode.MO
14
+
15
+ def formula(spm_unit, period, parameters):
16
+ p = parameters(period).gov.states.mo.dss.tanf
17
+ gross_income = add(
18
+ spm_unit,
19
+ period,
20
+ ["tanf_gross_earned_income", "tanf_gross_unearned_income"],
21
+ )
22
+ standard_of_need = spm_unit("mo_tanf_standard_of_need", period)
23
+ limit = standard_of_need * p.income_limit.rate
24
+ return gross_income < limit
@@ -0,0 +1,18 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class mo_tanf_income_eligible(Variable):
5
+ value_type = bool
6
+ entity = SPMUnit
7
+ label = "Missouri TANF income eligibility (passes all three income tests)"
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
+ gross = spm_unit("mo_tanf_gross_income_eligible", period)
16
+ need = spm_unit("mo_tanf_standard_of_need_test", period)
17
+ pct = spm_unit("mo_tanf_percentage_of_need_test", period)
18
+ return gross & need & pct
@@ -0,0 +1,20 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class mo_tanf_percentage_of_need_test(Variable):
5
+ value_type = bool
6
+ entity = SPMUnit
7
+ label = "Missouri TANF Percentage of Need test eligibility"
8
+ definition_period = MONTH
9
+ reference = (
10
+ "https://www.law.cornell.edu/regulations/missouri/13-CSR-40-2-310",
11
+ "https://dssmanuals.mo.gov/temporary-assistance-case-management/0210-010-15/",
12
+ )
13
+ defined_for = StateCode.MO
14
+
15
+ def formula(spm_unit, period, parameters):
16
+ p = parameters(period).gov.states.mo.dss.tanf
17
+ standard_of_need = spm_unit("mo_tanf_standard_of_need", period)
18
+ income = spm_unit("mo_tanf_countable_income", period)
19
+ limit = standard_of_need * p.maximum_benefit.percentage
20
+ return income < limit
@@ -0,0 +1,18 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class mo_tanf_resources_eligible(Variable):
5
+ value_type = bool
6
+ entity = SPMUnit
7
+ label = "Missouri TANF resource eligibility"
8
+ definition_period = MONTH
9
+ reference = (
10
+ "https://www.law.cornell.edu/regulations/missouri/13-CSR-40-2-310",
11
+ "https://dssmanuals.mo.gov/temporary-assistance-case-management/0200-000-00/",
12
+ )
13
+ defined_for = StateCode.MO
14
+
15
+ def formula(spm_unit, period, parameters):
16
+ p = parameters(period).gov.states.mo.dss.tanf.resource_limit
17
+ resources = spm_unit("spm_unit_cash_assets", period.this_year)
18
+ return resources <= p.amount
@@ -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
  [
@@ -4,9 +4,14 @@ from policyengine_us.model_api import *
4
4
  class nj_additions(Variable):
5
5
  value_type = float
6
6
  entity = Person
7
- label = "New Jersey additions to federal AGI by person"
7
+ label = "New Jersey additions to gross income"
8
8
  unit = USD
9
- documentation = "Additions to federal AGI to get NJ total income."
9
+ documentation = "Additions to New Jersey gross income per NJ Statute 54A:5-1. These are amounts added back to gross income that may have been excluded or deducted for federal purposes."
10
10
  definition_period = YEAR
11
- reference = "https://law.justia.com/codes/new-jersey/2022/title-54/section-54-8a-36/"
11
+ reference = (
12
+ "https://law.justia.com/codes/new-jersey/title-54a/section-54a-5-1/",
13
+ "https://www.nj.gov/treasury/taxation/pdf/current/1040.pdf", # Lines 28-38
14
+ )
12
15
  defined_for = StateCode.NJ
16
+
17
+ adds = "gov.states.nj.tax.income.additions"
@@ -0,0 +1,17 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class nj_gross_income(Variable):
5
+ value_type = float
6
+ entity = Person
7
+ label = "New Jersey gross income"
8
+ unit = USD
9
+ documentation = "Gross income calculated from specific income categories per NJ statute, before additions and subtractions. This is built from gross income sources, not federal AGI."
10
+ definition_period = YEAR
11
+ reference = (
12
+ "https://law.justia.com/codes/new-jersey/title-54a/section-54a-5-1/",
13
+ "https://www.nj.gov/treasury/taxation/pdf/current/1040.pdf", # Lines 15-27
14
+ )
15
+ defined_for = StateCode.NJ
16
+
17
+ adds = "gov.states.nj.tax.income.gross_income_sources"
@@ -4,14 +4,20 @@ from policyengine_us.model_api import *
4
4
  class nj_total_income(Variable):
5
5
  value_type = float
6
6
  entity = Person
7
- label = "New Jersey total income by person"
7
+ label = "New Jersey total income"
8
8
  unit = USD
9
+ documentation = "New Jersey total income calculated as gross income plus additions minus subtractions per NJ Statute 54A:5-1. This is the income base before exclusions."
9
10
  definition_period = YEAR
10
- reference = "https://law.justia.com/codes/new-jersey/2022/title-54/section-54-8a-36/"
11
+ reference = (
12
+ "https://law.justia.com/codes/new-jersey/title-54a/section-54a-5-1/",
13
+ "https://www.nj.gov/treasury/taxation/pdf/current/1040.pdf",
14
+ )
11
15
  defined_for = StateCode.NJ
12
16
 
13
17
  def formula(person, period, parameters):
14
- agi = person("adjusted_gross_income_person", period)
15
- nj_additions = person("nj_additions", period)
16
- nj_subtractions = person("nj_agi_subtractions", period)
17
- return max_(0, agi + nj_additions - nj_subtractions)
18
+ # NJ Total Income = Gross Income + Additions - Subtractions
19
+ # Per NJ Statute 54A:5-1 and Form NJ-1040
20
+ gross_income = person("nj_gross_income", period)
21
+ additions = person("nj_additions", period)
22
+ subtractions = person("nj_agi_subtractions", period)
23
+ return max_(0, gross_income + additions - subtractions)