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,157 @@
1
+ # Unit tests for taxable_social_security_tier_1
2
+ # Tests the tier 1 (0-50%) taxation of Social Security benefits
3
+ # Reference: IRC §86(a)(1)
4
+ #
5
+ # Thresholds for 2024:
6
+ # SINGLE: base=$25,000, adjusted_base=$34,000
7
+ # JOINT: base=$32,000, adjusted_base=$44,000
8
+ # SEPARATE (cohabitating): base=$0, adjusted_base=$0
9
+
10
+ - name: Single filer below base threshold - no taxation
11
+ period: 2024
12
+ input:
13
+ people:
14
+ person1:
15
+ age: 67
16
+ social_security: 20_000
17
+ employment_income: 10_000
18
+ tax_units:
19
+ tax_unit:
20
+ members: [person1]
21
+ filing_status: SINGLE
22
+ households:
23
+ household:
24
+ members: [person1]
25
+ output:
26
+ # Combined income = $10K + $10K (half SS) = $20K < $25K base
27
+ taxable_social_security_tier_1: 0
28
+
29
+ - name: Single filer in tier 1 only (between thresholds)
30
+ period: 2024
31
+ input:
32
+ people:
33
+ person1:
34
+ age: 67
35
+ social_security: 20_000
36
+ employment_income: 20_000
37
+ tax_units:
38
+ tax_unit:
39
+ members: [person1]
40
+ filing_status: SINGLE
41
+ households:
42
+ household:
43
+ members: [person1]
44
+ output:
45
+ # Combined income = $20K + $10K (half SS) = $30K
46
+ # $30K > $25K base but < $34K adjusted_base → tier 1 only
47
+ # Tier 1 = min(0.5 * $20K, 0.5 * ($30K - $25K))
48
+ # = min($10K, $2.5K) = $2,500
49
+ taxable_social_security_tier_1: 2_500
50
+
51
+ - name: Single filer in tier 2 (above adjusted base)
52
+ period: 2024
53
+ input:
54
+ people:
55
+ person1:
56
+ age: 67
57
+ social_security: 30_000
58
+ employment_income: 50_000
59
+ tax_units:
60
+ tax_unit:
61
+ members: [person1]
62
+ filing_status: SINGLE
63
+ households:
64
+ household:
65
+ members: [person1]
66
+ output:
67
+ # Combined income = $50K + $15K = $65K > $34K adjusted_base
68
+ # Tier 1 in tier 2 = bracket_amount
69
+ # bracket_amount = min(amount_under_para_1, 0.5 * ($34K - $25K))
70
+ # = min(min($15K, 0.5*$40K), $4.5K)
71
+ # = min(min($15K, $20K), $4.5K) = $4,500
72
+ taxable_social_security_tier_1: 4_500
73
+
74
+ - name: Joint filers below base threshold
75
+ period: 2024
76
+ input:
77
+ people:
78
+ person1:
79
+ age: 67
80
+ social_security: 20_000
81
+ person2:
82
+ age: 65
83
+ tax_units:
84
+ tax_unit:
85
+ members: [person1, person2]
86
+ filing_status: JOINT
87
+ households:
88
+ household:
89
+ members: [person1, person2]
90
+ output:
91
+ # Combined income = $0 + $10K (half SS) = $10K < $32K base
92
+ taxable_social_security_tier_1: 0
93
+
94
+ - name: Joint filers in tier 1 only
95
+ period: 2024
96
+ input:
97
+ people:
98
+ person1:
99
+ age: 67
100
+ social_security: 24_000
101
+ employment_income: 20_000
102
+ person2:
103
+ age: 65
104
+ tax_units:
105
+ tax_unit:
106
+ members: [person1, person2]
107
+ filing_status: JOINT
108
+ households:
109
+ household:
110
+ members: [person1, person2]
111
+ output:
112
+ # Combined income = $20K + $12K (half SS) = $32K
113
+ # $32K = $32K base threshold → just at threshold
114
+ # Excess = $32K - $32K = $0
115
+ taxable_social_security_tier_1: 0
116
+
117
+ - name: Joint filers slightly above base threshold
118
+ period: 2024
119
+ input:
120
+ people:
121
+ person1:
122
+ age: 67
123
+ social_security: 24_000
124
+ employment_income: 25_000
125
+ person2:
126
+ age: 65
127
+ tax_units:
128
+ tax_unit:
129
+ members: [person1, person2]
130
+ filing_status: JOINT
131
+ households:
132
+ household:
133
+ members: [person1, person2]
134
+ output:
135
+ # Combined income = $25K + $12K = $37K
136
+ # $37K > $32K base but < $44K adjusted → tier 1 only
137
+ # Tier 1 = min(0.5 * $24K, 0.5 * ($37K - $32K))
138
+ # = min($12K, $2.5K) = $2,500
139
+ taxable_social_security_tier_1: 2_500
140
+
141
+ - name: Zero social security benefits
142
+ period: 2024
143
+ input:
144
+ people:
145
+ person1:
146
+ age: 67
147
+ social_security: 0
148
+ employment_income: 100_000
149
+ tax_units:
150
+ tax_unit:
151
+ members: [person1]
152
+ filing_status: SINGLE
153
+ households:
154
+ household:
155
+ members: [person1]
156
+ output:
157
+ taxable_social_security_tier_1: 0
@@ -0,0 +1,106 @@
1
+ # Unit tests for taxable_social_security_tier_2
2
+ # Tests the tier 2 (50-85%) taxation of Social Security benefits
3
+ # Reference: IRC §86(a)(2)
4
+ # Tier 2 = total_taxable_ss - tier_1
5
+
6
+ - name: Below base threshold - no tier 2
7
+ period: 2024
8
+ input:
9
+ people:
10
+ person1:
11
+ age: 67
12
+ social_security: 20_000
13
+ employment_income: 10_000
14
+ tax_units:
15
+ tax_unit:
16
+ members: [person1]
17
+ filing_status: SINGLE
18
+ households:
19
+ household:
20
+ members: [person1]
21
+ output:
22
+ # No taxable SS at all → tier 2 = 0
23
+ taxable_social_security_tier_2: 0
24
+
25
+ - name: In tier 1 only - no tier 2
26
+ period: 2024
27
+ input:
28
+ people:
29
+ person1:
30
+ age: 67
31
+ social_security: 20_000
32
+ employment_income: 20_000
33
+ tax_units:
34
+ tax_unit:
35
+ members: [person1]
36
+ filing_status: SINGLE
37
+ households:
38
+ household:
39
+ members: [person1]
40
+ output:
41
+ # In tier 1 only, total taxable = tier 1 = $2,500
42
+ # Tier 2 = $2,500 - $2,500 = $0
43
+ taxable_social_security_tier_2: 0
44
+
45
+ - name: In tier 2 - significant tier 2 amount
46
+ period: 2024
47
+ input:
48
+ people:
49
+ person1:
50
+ age: 67
51
+ social_security: 30_000
52
+ employment_income: 50_000
53
+ tax_units:
54
+ tax_unit:
55
+ members: [person1]
56
+ filing_status: SINGLE
57
+ households:
58
+ household:
59
+ members: [person1]
60
+ output:
61
+ # Total taxable = 85% * $30K = $25,500
62
+ # Tier 1 = $4,500 (bracket amount)
63
+ # Tier 2 = $25,500 - $4,500 = $21,000
64
+ taxable_social_security_tier_2: 21_000
65
+
66
+ - name: Zero social security - no tier 2
67
+ period: 2024
68
+ input:
69
+ people:
70
+ person1:
71
+ age: 67
72
+ social_security: 0
73
+ employment_income: 100_000
74
+ tax_units:
75
+ tax_unit:
76
+ members: [person1]
77
+ filing_status: SINGLE
78
+ households:
79
+ household:
80
+ members: [person1]
81
+ output:
82
+ taxable_social_security_tier_2: 0
83
+
84
+ - name: Joint filers in tier 2
85
+ period: 2024
86
+ input:
87
+ people:
88
+ person1:
89
+ age: 67
90
+ social_security: 40_000
91
+ employment_income: 60_000
92
+ person2:
93
+ age: 65
94
+ tax_units:
95
+ tax_unit:
96
+ members: [person1, person2]
97
+ filing_status: JOINT
98
+ households:
99
+ household:
100
+ members: [person1, person2]
101
+ output:
102
+ # Combined income = $60K + $20K (half SS) = $80K > $44K adjusted
103
+ # Total taxable = 85% * $40K = $34,000
104
+ # Tier 1 = bracket = min(..., 0.5 * ($44K - $32K)) = $6,000
105
+ # Tier 2 = $34,000 - $6,000 = $28,000
106
+ taxable_social_security_tier_2: 28_000
@@ -27,12 +27,14 @@
27
27
  w2_wages_from_qualified_business: 8_000
28
28
  unadjusted_basis_qualified_property: 50_000
29
29
  taxable_income_less_qbid: 400_100
30
+ qualified_reit_and_ptp_income: 1_000
30
31
  business_is_sstb: False
31
32
  filing_status: JOINT
32
33
  output:
33
- # Calculation: QBI component is $8,800. REIT component is 0.20 * 1k = $200.
34
- # Total = $8,800
35
- qbid_amount: 8_800
34
+ # Calculation: QBI component is $8,800 (same as Entity 1).
35
+ # REIT/PTP component = 0.20 * 1k = $200.
36
+ # Total = $8,800 + $200 = $9,000.
37
+ qbid_amount: 9_000
36
38
 
37
39
  - name: Non-SSTB above phase-in range (Entity 2 from Appendix A)
38
40
  period: 2022
@@ -127,3 +129,73 @@
127
129
  # The final taxable income cap (at 24k) is applied at the
128
130
  # tax-unit level, outside the scope of this business-level function.
129
131
  qbid_amount: 40_000
132
+
133
+ # REIT/PTP Income Tests - Form 8995 Lines 6-9
134
+ # REIT/PTP income gets 20% deduction WITHOUT W-2 wage or UBIA limitations
135
+
136
+ - name: REIT/PTP only - no QBI (Form 8995 simplified path)
137
+ period: 2022
138
+ input:
139
+ qualified_business_income: 0
140
+ w2_wages_from_qualified_business: 0
141
+ unadjusted_basis_qualified_property: 0
142
+ taxable_income_less_qbid: 100_000
143
+ qualified_reit_and_ptp_income: 10_000
144
+ business_is_sstb: False
145
+ filing_status: SINGLE
146
+ output:
147
+ # No QBI, so QBI component = $0.
148
+ # REIT/PTP component = 0.20 * 10k = $2,000.
149
+ # Total = $2,000.
150
+ qbid_amount: 2_000
151
+
152
+ - name: REIT/PTP with SSTB - REIT/PTP not affected by SSTB phase-out
153
+ period: 2022
154
+ input:
155
+ qualified_business_income: 110_000
156
+ w2_wages_from_qualified_business: 60_000
157
+ unadjusted_basis_qualified_property: 6_000
158
+ taxable_income_less_qbid: 460_100
159
+ qualified_reit_and_ptp_income: 50_000
160
+ business_is_sstb: True
161
+ filing_status: JOINT
162
+ output:
163
+ # SSTB above phase-in range, so QBI component = $0 (fully phased out).
164
+ # REIT/PTP is NOT subject to SSTB rules, so:
165
+ # REIT/PTP component = 0.20 * 50k = $10,000.
166
+ # Total = $0 + $10,000 = $10,000.
167
+ qbid_amount: 10_000
168
+
169
+ - name: REIT/PTP above wage limitation - no wage cap applies
170
+ period: 2022
171
+ input:
172
+ qualified_business_income: 0
173
+ w2_wages_from_qualified_business: 0
174
+ unadjusted_basis_qualified_property: 0
175
+ taxable_income_less_qbid: 500_000
176
+ qualified_reit_and_ptp_income: 100_000
177
+ business_is_sstb: False
178
+ filing_status: JOINT
179
+ output:
180
+ # No QBI, so QBI component = $0.
181
+ # Even though taxable income is above threshold and W-2 wages are $0,
182
+ # REIT/PTP is NOT subject to W-2 wage limitations.
183
+ # REIT/PTP component = 0.20 * 100k = $20,000.
184
+ qbid_amount: 20_000
185
+
186
+ - name: Combined QBI and REIT/PTP - below threshold
187
+ period: 2024
188
+ input:
189
+ qualified_business_income: 50_000
190
+ w2_wages_from_qualified_business: 30_000
191
+ unadjusted_basis_qualified_property: 0
192
+ taxable_income_less_qbid: 150_000
193
+ qualified_reit_and_ptp_income: 25_000
194
+ business_is_sstb: False
195
+ filing_status: SINGLE
196
+ output:
197
+ # Below threshold ($191,950 single in 2024), so no W-2/UBIA limit.
198
+ # QBI component = 0.20 * 50k = $10,000.
199
+ # REIT/PTP component = 0.20 * 25k = $5,000.
200
+ # Total = $15,000.
201
+ qbid_amount: 15_000
@@ -6,11 +6,11 @@
6
6
  output:
7
7
  la_general_relief_immigration_status_eligible_person: true
8
8
 
9
- - name: Residents are eligible
9
+ - name: Legal Permanent Residents are eligible
10
10
  period: 2022
11
11
  input:
12
12
  in_la: true
13
- immigration_status: RESIDENT
13
+ immigration_status: LEGAL_PERMANENT_RESIDENT
14
14
  output:
15
15
  la_general_relief_immigration_status_eligible_person: true
16
16
 
@@ -0,0 +1,105 @@
1
+ # Unit tests for tob_revenue_medicare_hi
2
+ # Tests Medicare HI trust fund revenue allocation from SS benefit taxation
3
+ # Medicare HI receives revenue proportional to tier 2's share of total taxable SS
4
+
5
+ - name: No SS benefits - zero Medicare revenue
6
+ period: 2024
7
+ input:
8
+ people:
9
+ person1:
10
+ age: 67
11
+ social_security: 0
12
+ employment_income: 100_000
13
+ tax_units:
14
+ tax_unit:
15
+ members: [person1]
16
+ filing_status: SINGLE
17
+ households:
18
+ household:
19
+ members: [person1]
20
+ output:
21
+ tob_revenue_medicare_hi: 0
22
+
23
+ - name: Below threshold - zero Medicare revenue
24
+ period: 2024
25
+ input:
26
+ people:
27
+ person1:
28
+ age: 67
29
+ social_security: 20_000
30
+ employment_income: 10_000
31
+ tax_units:
32
+ tax_unit:
33
+ members: [person1]
34
+ filing_status: SINGLE
35
+ households:
36
+ household:
37
+ members: [person1]
38
+ output:
39
+ # No taxable SS → no TOB revenue → no Medicare share
40
+ tob_revenue_medicare_hi: 0
41
+
42
+ - name: Tier 1 only - zero Medicare revenue
43
+ period: 2024
44
+ input:
45
+ people:
46
+ person1:
47
+ age: 67
48
+ social_security: 20_000
49
+ employment_income: 20_000
50
+ tax_units:
51
+ tax_unit:
52
+ members: [person1]
53
+ filing_status: SINGLE
54
+ households:
55
+ household:
56
+ members: [person1]
57
+ output:
58
+ # In tier 1 only: tier2 = $0 → 0% to Medicare
59
+ tob_revenue_medicare_hi: 0
60
+
61
+ - name: In tier 2 - proportional split
62
+ period: 2024
63
+ absolute_error_margin: 100
64
+ input:
65
+ people:
66
+ person1:
67
+ age: 67
68
+ social_security: 30_000
69
+ employment_income: 50_000
70
+ tax_units:
71
+ tax_unit:
72
+ members: [person1]
73
+ filing_status: SINGLE
74
+ households:
75
+ household:
76
+ members: [person1]
77
+ output:
78
+ # Tier 1 = $4,500, Tier 2 = $21,000, Total = $25,500
79
+ # Medicare share = 21,000 / 25,500 = 82.4%
80
+ # Total TOB ~$4,240 → Medicare = $4,240 * 0.824 = ~$3,492
81
+ tob_revenue_medicare_hi: 3_492
82
+
83
+ - name: Joint filers in tier 2
84
+ period: 2024
85
+ absolute_error_margin: 200
86
+ input:
87
+ people:
88
+ person1:
89
+ age: 67
90
+ social_security: 40_000
91
+ employment_income: 60_000
92
+ person2:
93
+ age: 65
94
+ tax_units:
95
+ tax_unit:
96
+ members: [person1, person2]
97
+ filing_status: JOINT
98
+ households:
99
+ household:
100
+ members: [person1, person2]
101
+ output:
102
+ # Tier 1 = $6,000, Tier 2 = $28,000, Total = $34,000
103
+ # Medicare share = 28,000 / 34,000 = 82.4%
104
+ taxable_social_security_tier_1: 6_000
105
+ taxable_social_security_tier_2: 28_000
@@ -0,0 +1,86 @@
1
+ # Unit tests for tob_revenue_oasdi
2
+ # Tests OASDI trust fund revenue allocation from SS benefit taxation
3
+ # OASDI receives revenue proportional to tier 1's share of total taxable SS
4
+
5
+ - name: No SS benefits - zero OASDI revenue
6
+ period: 2024
7
+ input:
8
+ people:
9
+ person1:
10
+ age: 67
11
+ social_security: 0
12
+ employment_income: 100_000
13
+ tax_units:
14
+ tax_unit:
15
+ members: [person1]
16
+ filing_status: SINGLE
17
+ households:
18
+ household:
19
+ members: [person1]
20
+ output:
21
+ tob_revenue_oasdi: 0
22
+
23
+ - name: Below threshold - zero OASDI revenue
24
+ period: 2024
25
+ input:
26
+ people:
27
+ person1:
28
+ age: 67
29
+ social_security: 20_000
30
+ employment_income: 10_000
31
+ tax_units:
32
+ tax_unit:
33
+ members: [person1]
34
+ filing_status: SINGLE
35
+ households:
36
+ household:
37
+ members: [person1]
38
+ output:
39
+ # No taxable SS → no TOB revenue → no OASDI share
40
+ tob_revenue_oasdi: 0
41
+
42
+ - name: Tier 1 only - all revenue to OASDI
43
+ period: 2024
44
+ absolute_error_margin: 50
45
+ input:
46
+ people:
47
+ person1:
48
+ age: 67
49
+ social_security: 20_000
50
+ employment_income: 20_000
51
+ tax_units:
52
+ tax_unit:
53
+ members: [person1]
54
+ filing_status: SINGLE
55
+ households:
56
+ household:
57
+ members: [person1]
58
+ output:
59
+ # In tier 1 only: tier1 = $2,500, tier2 = $0
60
+ # All taxable SS is tier 1 → 100% to OASDI
61
+ # Total TOB revenue all goes to OASDI
62
+ taxable_social_security_tier_1: 2_500
63
+ taxable_social_security_tier_2: 0
64
+ # tob_revenue_oasdi = tob_revenue_total (100% share)
65
+
66
+ - name: In tier 2 - proportional split
67
+ period: 2024
68
+ absolute_error_margin: 100
69
+ input:
70
+ people:
71
+ person1:
72
+ age: 67
73
+ social_security: 30_000
74
+ employment_income: 50_000
75
+ tax_units:
76
+ tax_unit:
77
+ members: [person1]
78
+ filing_status: SINGLE
79
+ households:
80
+ household:
81
+ members: [person1]
82
+ output:
83
+ # Tier 1 = $4,500, Tier 2 = $21,000, Total = $25,500
84
+ # OASDI share = 4,500 / 25,500 = 17.6%
85
+ # Total TOB ~$4,240 → OASDI = $4,240 * 0.176 = ~$748
86
+ tob_revenue_oasdi: 748
@@ -0,0 +1,19 @@
1
+ - name: TOB revenue - single retiree with SS and wages
2
+ period: 2024
3
+ absolute_error_margin: 100
4
+ input:
5
+ people:
6
+ person1:
7
+ age: 67
8
+ social_security: 30_000
9
+ employment_income: 50_000
10
+ tax_units:
11
+ tax_unit:
12
+ members: [person1]
13
+ filing_status: SINGLE
14
+ households:
15
+ household:
16
+ members: [person1]
17
+ output:
18
+ # Actual value is around $4,240
19
+ tob_revenue_total: 4_240
@@ -0,0 +1,90 @@
1
+ # Test that TOB revenue split matches Trustees Report projections
2
+ # Per 2025 Trustees Report (via CBPP):
3
+ # - OASDI (tier 1): ~59% of total TOB revenue ($60.8B / $103.4B)
4
+ # - Medicare HI (tier 2): ~41% of total TOB revenue ($42.6B / $103.4B)
5
+ #
6
+ # The statutory allocation is:
7
+ # - Tier 1 (first 50% of benefits taxable): Revenue to OASDI
8
+ # - Tier 2 (additional 35%, up to 85% taxable): Revenue to Medicare HI
9
+ #
10
+ # For a single retiree with $30K SS and $50K wages:
11
+ # - Combined income = $50K + $15K (half SS) = $65K
12
+ # - Above adjusted base ($34K), so 85% of SS taxable = $25,500
13
+ # - Tier 1 should be ~59% of taxable ($15,045)
14
+ # - Tier 2 should be ~41% of taxable ($10,455)
15
+ #
16
+ # BUG: Current implementation has tier_2 with only `subtracts` and no `adds`,
17
+ # which computes: 0 - total - tier1 = NEGATIVE (wrong!)
18
+ # Should be: adds=["tax_unit_taxable_social_security"], subtracts=["tier_1"]
19
+
20
+ - name: TOB tier split - single retiree in tier 2
21
+ period: 2024
22
+ absolute_error_margin: 500
23
+ input:
24
+ people:
25
+ person1:
26
+ age: 67
27
+ social_security: 30_000
28
+ employment_income: 50_000
29
+ tax_units:
30
+ tax_unit:
31
+ members: [person1]
32
+ filing_status: SINGLE
33
+ households:
34
+ household:
35
+ members: [person1]
36
+ output:
37
+ # Total taxable SS should be 85% of $30K = $25,500
38
+ tax_unit_taxable_social_security: 25_500
39
+ # Tier 1 (OASDI portion) - statutory bracket amount for single filer in tier 2
40
+ # = min(0.5 * $30K, 0.5 * ($34K - $25K)) = min($15K, $4.5K) = $4,500
41
+ taxable_social_security_tier_1: 4_500
42
+ # Tier 2 (Medicare HI portion) = total - tier1 = $25,500 - $4,500 = $21,000
43
+ # This is where the bug manifests - with only subtracts, it computes negative!
44
+ taxable_social_security_tier_2: 21_000
45
+
46
+ - name: TOB revenue split follows tier proportions
47
+ period: 2024
48
+ absolute_error_margin: 100
49
+ input:
50
+ people:
51
+ person1:
52
+ age: 67
53
+ social_security: 30_000
54
+ employment_income: 50_000
55
+ tax_units:
56
+ tax_unit:
57
+ members: [person1]
58
+ filing_status: SINGLE
59
+ households:
60
+ household:
61
+ members: [person1]
62
+ output:
63
+ # With tiers at ~18% tier1 / ~82% tier2 for this individual case,
64
+ # the TOB revenue should split proportionally.
65
+ # Total TOB revenue ~$4,240 (from existing test)
66
+ # OASDI share: $4,240 * (4,500 / 25,500) = $748
67
+ # Medicare HI share: $4,240 * (21,000 / 25,500) = $3,492
68
+ tob_revenue_total: 4240
69
+ tob_revenue_oasdi: 748
70
+ tob_revenue_medicare_hi: 3492
71
+
72
+ - name: Verify tier2 is positive (regression test for subtracts bug)
73
+ period: 2024
74
+ input:
75
+ people:
76
+ person1:
77
+ age: 67
78
+ social_security: 20_000
79
+ employment_income: 40_000
80
+ tax_units:
81
+ tax_unit:
82
+ members: [person1]
83
+ filing_status: SINGLE
84
+ households:
85
+ household:
86
+ members: [person1]
87
+ output:
88
+ # Tier 2 MUST be positive (total - tier1)
89
+ # If buggy subtracts computes 0 - total - tier1, this will be negative and fail
90
+ taxable_social_security_tier_2: 12_500 # Approximate, will fail if negative