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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. policyengine_us/parameters/gov/contrib/aca/ptc_700_fpl_cliff/brackets.yaml +52 -0
  2. policyengine_us/parameters/gov/contrib/aca/ptc_700_fpl_cliff/in_effect.yaml +9 -0
  3. policyengine_us/parameters/gov/contrib/aca/ptc_700_fpl_cliff/income_eligibility.yaml +27 -0
  4. policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/applies.yaml +115 -0
  5. policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/couple.yaml +14 -0
  6. policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/individual.yaml +14 -0
  7. policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/qi/fpl_limit.yaml +14 -0
  8. policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/qmb/fpl_limit.yaml +18 -0
  9. policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/slmb/fpl_limit.yaml +15 -0
  10. policyengine_us/parameters/gov/states/az/tax/income/credits/property_tax/income_sources.yaml +17 -9
  11. policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/head_of_household.yaml +1 -1
  12. policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/joint.yaml +1 -1
  13. policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/separate.yaml +1 -1
  14. policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/single.yaml +1 -1
  15. policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/surviving_spouse.yaml +1 -1
  16. policyengine_us/parameters/gov/states/ia/tax/income/credits/child_care/fraction.yaml +1 -1
  17. policyengine_us/parameters/gov/states/il/dhs/aabd/asset/sources.yaml +0 -1
  18. policyengine_us/parameters/gov/states/mi/tax/income/household_resources.yaml +1 -1
  19. policyengine_us/parameters/gov/states/mo/dss/tanf/child_care_deduction/amount.yaml +27 -0
  20. policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/amount.yaml +14 -0
  21. policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/thirty_only/amount.yaml +14 -0
  22. policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/thirty_plus_one_third/flat_amount.yaml +14 -0
  23. policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/thirty_plus_one_third/percentage.yaml +14 -0
  24. policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/two_thirds_disregard/percentage.yaml +14 -0
  25. policyengine_us/parameters/gov/states/mo/dss/tanf/income_limit/max_table_size.yaml +12 -0
  26. policyengine_us/parameters/gov/states/mo/dss/tanf/income_limit/rate.yaml +14 -0
  27. policyengine_us/parameters/gov/states/mo/dss/tanf/maximum_benefit/percentage.yaml +14 -0
  28. policyengine_us/parameters/gov/states/mo/dss/tanf/minimum_payment.yaml +12 -0
  29. policyengine_us/parameters/gov/states/mo/dss/tanf/resource_limit/amount.yaml +14 -0
  30. policyengine_us/parameters/gov/states/mo/dss/tanf/standard_of_need/additional_person_increment.yaml +12 -0
  31. policyengine_us/parameters/gov/states/mo/dss/tanf/standard_of_need/amount.yaml +38 -0
  32. policyengine_us/parameters/gov/states/mo/dss/tanf/standard_of_need/base_table_max_size.yaml +12 -0
  33. policyengine_us/parameters/gov/states/pa/dhs/tanf/county_group/group_1.yaml +19 -0
  34. policyengine_us/parameters/gov/states/pa/dhs/tanf/county_group/group_2.yaml +44 -0
  35. policyengine_us/parameters/gov/states/pa/dhs/tanf/county_group/group_3.yaml +31 -0
  36. policyengine_us/parameters/gov/states/pa/dhs/tanf/county_group/group_4.yaml +29 -0
  37. policyengine_us/parameters/gov/states/pa/dhs/tanf/family_size_allowance/additional_person.yaml +14 -0
  38. policyengine_us/parameters/gov/states/pa/dhs/tanf/family_size_allowance/amount.yaml +69 -0
  39. policyengine_us/parameters/gov/states/pa/dhs/tanf/income/deductions/earned_income_disregard/percentage.yaml +14 -0
  40. policyengine_us/parameters/gov/states/pa/dhs/tanf/income/deductions/work_expense/additional.yaml +15 -0
  41. policyengine_us/parameters/gov/states/pa/dhs/tanf/income/deductions/work_expense/initial.yaml +14 -0
  42. policyengine_us/parameters/gov/states/pa/dhs/tanf/max_family_size_in_table.yaml +12 -0
  43. policyengine_us/parameters/gov/states/pa/dhs/tanf/resource_limit.yaml +7 -6
  44. policyengine_us/parameters/gov/states/pa/dhs/tanf/standard_of_need/additional_person.yaml +14 -0
  45. policyengine_us/parameters/gov/states/pa/dhs/tanf/standard_of_need/amount.yaml +69 -0
  46. policyengine_us/parameters/gov/states/wi/dcf/README.md +1 -0
  47. policyengine_us/parameters/gov/states/wi/dcf/works/README.md +1 -0
  48. policyengine_us/parameters/gov/states/wi/dcf/works/asset/limit.yaml +16 -0
  49. policyengine_us/parameters/gov/states/wi/dcf/works/asset/vehicle_exclusion.yaml +14 -0
  50. policyengine_us/parameters/gov/states/wi/dcf/works/income_limit/rate.yaml +16 -0
  51. policyengine_us/parameters/gov/states/wi/dcf/works/placement/amount.yaml +30 -0
  52. policyengine_us/parameters/gov/states/wi/dcf/works/placement/arp_pregnancy_month_threshold.yaml +14 -0
  53. policyengine_us/parameters/gov/states/wi/dcf/works/placement/cmc_infant_age_limit.yaml +15 -0
  54. policyengine_us/reforms/aca/__init__.py +3 -0
  55. policyengine_us/reforms/aca/aca_ptc_700_fpl_cliff.py +125 -0
  56. policyengine_us/reforms/reforms.py +5 -0
  57. policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/category/msp_category.yaml +69 -0
  58. policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_eligible.yaml +62 -0
  59. policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_fpg.yaml +22 -0
  60. policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/integration.yaml +84 -0
  61. policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/msp_benefit_value.yaml +62 -0
  62. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/social_security/taxable_social_security_tier_1.yaml +157 -0
  63. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/social_security/taxable_social_security_tier_2.yaml +106 -0
  64. policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_revenue_medicare_hi.yaml +105 -0
  65. policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_revenue_oasdi.yaml +86 -0
  66. policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_revenue_total.yaml +19 -0
  67. policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_tier_split.yaml +90 -0
  68. policyengine_us/tests/policy/baseline/gov/states/az/tax/income/az_property_tax_credit_agi.yaml +58 -0
  69. policyengine_us/tests/policy/baseline/gov/states/az/tax/income/integration.yaml +28 -0
  70. policyengine_us/tests/policy/baseline/gov/states/dc/tax/income/dc_ptc.yaml +27 -0
  71. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/food_excise/hi_food_excise_credit.yaml +29 -1
  72. policyengine_us/tests/policy/baseline/gov/states/ia/tax/income/ia_cdcc.yaml +3 -3
  73. policyengine_us/tests/policy/baseline/gov/states/ia/tax/income/ia_integration.yaml +31 -1
  74. policyengine_us/tests/policy/baseline/gov/states/il/dhs/aabd/eligibility/il_aabd_non_financial_eligible_person.yaml +6 -6
  75. policyengine_us/tests/policy/baseline/gov/states/il/hfs/fpp/integration.yaml +2 -2
  76. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_disability_eligible.yaml +18 -5
  77. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.yaml +5 -5
  78. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/integration.yaml +8 -8
  79. policyengine_us/tests/policy/baseline/gov/states/ma/tax/income/gross_income/integration.yaml +28 -0
  80. policyengine_us/tests/policy/baseline/gov/states/me/tax/income/credits/integration.yaml +87 -0
  81. policyengine_us/tests/policy/baseline/gov/states/me/tax/income/credits/me_dependent_exemption_credit_amount_person.yaml +3 -2
  82. policyengine_us/tests/policy/baseline/gov/states/mi/tax/income/credits/home_heating/mi_home_heating_credit.yaml +87 -0
  83. policyengine_us/tests/policy/baseline/gov/states/mi/tax/income/mi_household_resources.yaml +57 -0
  84. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/integration.yaml +275 -0
  85. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf.yaml +60 -0
  86. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_child_care_deduction.yaml +187 -0
  87. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_countable_income.yaml +49 -0
  88. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_earned_income_deductions.yaml +53 -0
  89. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_eligible.yaml +59 -0
  90. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_gross_income_eligible.yaml +29 -0
  91. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_income_eligible.yaml +49 -0
  92. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_maximum_benefit.yaml +47 -0
  93. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_percentage_of_need_test.yaml +53 -0
  94. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_resources_eligible.yaml +23 -0
  95. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_standard_of_need.yaml +71 -0
  96. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_standard_of_need_test.yaml +44 -0
  97. policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/integration.yaml +29 -0
  98. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/eligibility/pa_tanf_disregard_eligible.yaml +114 -0
  99. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/eligibility/pa_tanf_eligible.yaml +65 -0
  100. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/eligibility/pa_tanf_income_eligible.yaml +62 -0
  101. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/eligibility/pa_tanf_resources_eligible.yaml +47 -0
  102. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/income/pa_tanf_earned_income_after_deductions_person.yaml +81 -0
  103. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/integration.yaml +386 -0
  104. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/pa_tanf.yaml +53 -0
  105. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/pa_tanf_county_group.yaml +63 -0
  106. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/pa_tanf_maximum_benefit.yaml +92 -0
  107. policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/pa_tanf_standard_of_need.yaml +73 -0
  108. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/integration.yaml +282 -0
  109. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works.yaml +50 -0
  110. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_countable_income.yaml +49 -0
  111. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_countable_resources.yaml +54 -0
  112. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_eligible.yaml +61 -0
  113. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_income_eligible.yaml +43 -0
  114. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_placement.yaml +111 -0
  115. policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_resources_eligible.yaml +38 -0
  116. policyengine_us/tests/policy/baseline/gov/states/wv/tax/income/credits/heptc/wv_homestead_excess_property_tax_credit.yaml +31 -0
  117. policyengine_us/tests/policy/contrib/aca/ptc_700_fpl_cliff.yaml +136 -0
  118. policyengine_us/tests/test_batched.py +39 -68
  119. policyengine_us/variables/gov/hhs/medicare/savings_programs/category/is_qi_eligible.py +33 -0
  120. policyengine_us/variables/gov/hhs/medicare/savings_programs/category/is_qmb_eligible.py +28 -0
  121. policyengine_us/variables/gov/hhs/medicare/savings_programs/category/is_slmb_eligible.py +33 -0
  122. policyengine_us/variables/gov/hhs/medicare/savings_programs/category/msp_category.py +33 -0
  123. policyengine_us/variables/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.py +26 -0
  124. policyengine_us/variables/gov/hhs/medicare/savings_programs/eligibility/msp_eligible.py +20 -0
  125. policyengine_us/variables/gov/hhs/medicare/savings_programs/eligibility/msp_income_eligible.py +26 -0
  126. policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py +35 -0
  127. policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_fpg.py +40 -0
  128. policyengine_us/variables/gov/hhs/medicare/savings_programs/msp.py +15 -0
  129. policyengine_us/variables/gov/hhs/medicare/savings_programs/msp_benefit_value.py +37 -0
  130. policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/social_security/taxable_social_security_tier_1.py +58 -0
  131. policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/social_security/taxable_social_security_tier_2.py +17 -0
  132. policyengine_us/variables/gov/simulation/labor_supply_response/labor_supply_behavioral_response.py +57 -42
  133. policyengine_us/variables/gov/ssa/revenue/tob_revenue_medicare_hi.py +31 -0
  134. policyengine_us/variables/gov/ssa/revenue/tob_revenue_oasdi.py +31 -0
  135. policyengine_us/variables/gov/ssa/revenue/tob_revenue_total.py +44 -0
  136. policyengine_us/variables/gov/states/az/tax/income/credits/property_tax_credit/az_property_tax_credit_agi.py +53 -0
  137. policyengine_us/variables/gov/states/dc/tax/income/credits/dc_ptc.py +7 -3
  138. policyengine_us/variables/gov/states/ia/tax/income/credits/ia_cdcc.py +4 -2
  139. policyengine_us/variables/gov/states/il/dhs/aabd/eligibility/il_aabd_non_financial_eligible_person.py +23 -5
  140. policyengine_us/variables/gov/states/il/hfs/fpp/eligibility/il_fpp_eligible.py +1 -1
  141. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_disability_eligible.py +7 -3
  142. policyengine_us/variables/gov/states/ma/tax/income/gross_income/ma_part_c_gross_income.py +7 -1
  143. policyengine_us/variables/gov/states/me/tax/income/credits/dependent_exemption/me_dependent_exemption_credit_amount_person.py +1 -1
  144. policyengine_us/variables/gov/states/mi/tax/income/mi_household_resources.py +34 -5
  145. policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_eligible.py +23 -0
  146. policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_gross_income_eligible.py +24 -0
  147. policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_income_eligible.py +18 -0
  148. policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_percentage_of_need_test.py +20 -0
  149. policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_resources_eligible.py +18 -0
  150. policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_standard_of_need_test.py +17 -0
  151. policyengine_us/variables/gov/states/mo/dss/tanf/income/deductions/mo_tanf_child_care_deduction.py +24 -0
  152. policyengine_us/variables/gov/states/mo/dss/tanf/income/deductions/mo_tanf_earned_income_deductions.py +36 -0
  153. policyengine_us/variables/gov/states/mo/dss/tanf/income/mo_tanf_countable_income.py +21 -0
  154. policyengine_us/variables/gov/states/mo/dss/tanf/income/mo_tanf_income_for_need_test.py +23 -0
  155. policyengine_us/variables/gov/states/mo/dss/tanf/mo_tanf.py +21 -0
  156. policyengine_us/variables/gov/states/mo/dss/tanf/mo_tanf_maximum_benefit.py +19 -0
  157. policyengine_us/variables/gov/states/mo/dss/tanf/mo_tanf_standard_of_need.py +23 -0
  158. policyengine_us/variables/gov/states/mt/tax/income/capital_gains/mt_capital_gains_tax_indiv.py +3 -1
  159. policyengine_us/variables/gov/states/mt/tax/income/capital_gains/mt_capital_gains_tax_joint.py +3 -1
  160. policyengine_us/variables/gov/states/mt/tax/income/tax_calculation/mt_regular_income_tax_indiv.py +3 -0
  161. policyengine_us/variables/gov/states/mt/tax/income/tax_calculation/mt_regular_income_tax_joint.py +3 -0
  162. policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pa_tanf_disregard_eligible.py +31 -0
  163. policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pa_tanf_eligible.py +29 -0
  164. policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pa_tanf_income_eligible.py +16 -0
  165. policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pa_tanf_resources_eligible.py +7 -5
  166. policyengine_us/variables/gov/states/pa/dhs/tanf/income/pa_tanf_countable_earned_income.py +15 -0
  167. policyengine_us/variables/gov/states/pa/dhs/tanf/income/pa_tanf_countable_income.py +16 -0
  168. policyengine_us/variables/gov/states/pa/dhs/tanf/income/pa_tanf_earned_income_after_deductions_person.py +27 -0
  169. policyengine_us/variables/gov/states/pa/dhs/tanf/pa_tanf.py +19 -0
  170. policyengine_us/variables/gov/states/pa/dhs/tanf/pa_tanf_county_group.py +38 -0
  171. policyengine_us/variables/gov/states/pa/dhs/tanf/pa_tanf_maximum_benefit.py +30 -0
  172. policyengine_us/variables/gov/states/pa/dhs/tanf/pa_tanf_standard_of_need.py +30 -0
  173. policyengine_us/variables/gov/states/wi/dcf/works/eligibility/wi_works_eligible.py +22 -0
  174. policyengine_us/variables/gov/states/wi/dcf/works/eligibility/wi_works_income_eligible.py +20 -0
  175. policyengine_us/variables/gov/states/wi/dcf/works/eligibility/wi_works_resources_eligible.py +18 -0
  176. policyengine_us/variables/gov/states/wi/dcf/works/income/wi_works_countable_income.py +18 -0
  177. policyengine_us/variables/gov/states/wi/dcf/works/resources/wi_works_countable_resources.py +21 -0
  178. policyengine_us/variables/gov/states/wi/dcf/works/wi_works.py +19 -0
  179. policyengine_us/variables/gov/states/wi/dcf/works/wi_works_placement.py +45 -0
  180. policyengine_us/variables/gov/states/wv/tax/income/credits/heptc/wv_homestead_excess_property_tax_credit.py +3 -3
  181. policyengine_us/variables/gov/states/wv/tax/income/credits/heptc/wv_homestead_excess_property_tax_credit_eligible.py +5 -2
  182. {policyengine_us-1.458.0.dist-info → policyengine_us-1.465.0.dist-info}/METADATA +1 -1
  183. {policyengine_us-1.458.0.dist-info → policyengine_us-1.465.0.dist-info}/RECORD +186 -62
  184. policyengine_us/parameters/gov/states/il/dhs/aabd/aged_age_threshold.yaml +0 -11
  185. policyengine_us/parameters/gov/states/mo/dss/tanf/income_limit.yaml +0 -26
  186. policyengine_us/parameters/gov/states/pa/dhs/tanf/cash_assistance/age_limit.yaml +0 -11
  187. policyengine_us/parameters/gov/states/pa/dhs/tanf/pregnancy_eligibility/age_limit.yaml +0 -9
  188. policyengine_us/tests/policy/baseline/gov/states/il/dhs/aabd/eligibility/il_aabd_aged_blind_disabled_person.yaml +0 -39
  189. policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_income_limit.yaml +0 -23
  190. policyengine_us/tests/policy/baseline/gov/states/pa/tanf/cash_assistance/pa_tanf_age_eligible.yaml +0 -44
  191. policyengine_us/tests/policy/baseline/gov/states/pa/tanf/pregnancy_eligibility/pa_tanf_pregnancy_eligibility.yaml +0 -59
  192. policyengine_us/tests/policy/baseline/gov/states/pa/tax/income/dhs/tanf/eligibility/pa_tanf_resources_eligible.yaml +0 -24
  193. policyengine_us/variables/gov/states/il/dhs/aabd/eligibility/il_aabd_aged_blind_disabled_person.py +0 -22
  194. policyengine_us/variables/gov/states/mo/dss/tanf/mo_tanf_income_limit.py +0 -18
  195. policyengine_us/variables/gov/states/pa/dhs/tanf/cash_assistance/pa_tanf_age_eligible.py +0 -22
  196. policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pa_tanf_countable_resources.py +0 -10
  197. policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pregnancy_eligibility/age_eligibility.py +0 -22
  198. {policyengine_us-1.458.0.dist-info → policyengine_us-1.465.0.dist-info}/WHEEL +0 -0
  199. {policyengine_us-1.458.0.dist-info → policyengine_us-1.465.0.dist-info}/entry_points.txt +0 -0
  200. {policyengine_us-1.458.0.dist-info → policyengine_us-1.465.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,69 @@
1
+ # MSP uses SSI income methodology per 42 U.S.C. 1396d(p)(1)(B):
2
+ # Countable = unearned - $20 (or earned - $85 - 50% remaining)
3
+ # For 2024 individual FPL = $15,060:
4
+ # QMB: <= 100% = $1,255/month countable
5
+ # SLMB: 100-120% = $1,255.01-$1,506/month countable
6
+ # QI: 120-135% = $1,506.01-$1,694.25/month countable
7
+
8
+ - name: MSP category - QMB (income at 100% FPL)
9
+ period: 2024-01
10
+ input:
11
+ age: 67
12
+ is_medicare_eligible: true
13
+ # $12,000 unearned -> ($1,000 - $20) = $980/month countable
14
+ # $980 < $1,255 (100% FPL) -> QMB
15
+ ssi_unearned_income: 12_000
16
+ spm_unit_cash_assets: 5_000
17
+ spm_unit_is_married: false
18
+ output:
19
+ msp_category: QMB
20
+
21
+ - name: MSP category - SLMB (income between 100-120% FPL)
22
+ period: 2024-01
23
+ input:
24
+ age: 67
25
+ is_medicare_eligible: true
26
+ # $16,500 unearned -> ($1,375 - $20) = $1,355/month countable
27
+ # $1,255 < $1,355 < $1,506 (100-120% FPL) -> SLMB
28
+ ssi_unearned_income: 16_500
29
+ spm_unit_cash_assets: 5_000
30
+ spm_unit_is_married: false
31
+ output:
32
+ msp_category: SLMB
33
+
34
+ - name: MSP category - QI (income between 120-135% FPL)
35
+ period: 2024-01
36
+ input:
37
+ age: 67
38
+ is_medicare_eligible: true
39
+ # $19,440 unearned -> ($1,620 - $20) = $1,600/month countable
40
+ # $1,506 < $1,600 < $1,694.25 (120-135% FPL) -> QI
41
+ ssi_unearned_income: 19_440
42
+ spm_unit_cash_assets: 5_000
43
+ spm_unit_is_married: false
44
+ output:
45
+ msp_category: QI
46
+
47
+ - name: MSP category - NONE (income above 135% FPL)
48
+ period: 2024-01
49
+ input:
50
+ age: 67
51
+ is_medicare_eligible: true
52
+ # $21_840 unearned -> ($1,820 - $20) = $1,800/month countable
53
+ # $1,800 > $1,694.25 (135% FPL) -> NONE
54
+ ssi_unearned_income: 21_840
55
+ spm_unit_cash_assets: 5_000
56
+ spm_unit_is_married: false
57
+ output:
58
+ msp_category: NONE
59
+
60
+ - name: MSP category - NONE (not Medicare eligible)
61
+ period: 2024-01
62
+ input:
63
+ age: 60
64
+ is_medicare_eligible: false
65
+ ssi_unearned_income: 10_000
66
+ spm_unit_cash_assets: 5_000
67
+ spm_unit_is_married: false
68
+ output:
69
+ msp_category: NONE
@@ -0,0 +1,62 @@
1
+ # MSP uses SSI income methodology per 42 U.S.C. 1396d(p)(1)(B)
2
+
3
+ - name: MSP eligible - QMB level (65+, low income, low assets)
4
+ period: 2024-01
5
+ input:
6
+ age: 67
7
+ is_medicare_eligible: true
8
+ # $10,000 unearned -> ($833.33 - $20) = $813.33/month countable
9
+ ssi_unearned_income: 10_000
10
+ spm_unit_cash_assets: 5_000
11
+ spm_unit_is_married: false
12
+ output:
13
+ msp_eligible: true
14
+
15
+ - name: MSP eligible - QI level (65+, moderate income, low assets)
16
+ period: 2024-01
17
+ input:
18
+ age: 68
19
+ is_medicare_eligible: true
20
+ # $19_200 unearned -> ($1,600 - $20) = $1,580/month countable
21
+ # $1,580 is between 120% ($1,506) and 135% ($1,694.25) FPL -> QI eligible
22
+ ssi_unearned_income: 19_200
23
+ spm_unit_cash_assets: 8_000
24
+ spm_unit_is_married: false
25
+ output:
26
+ msp_eligible: true
27
+
28
+ - name: MSP not eligible - income too high
29
+ period: 2024-01
30
+ input:
31
+ age: 67
32
+ is_medicare_eligible: true
33
+ # $24_000 unearned -> ($2,000 - $20) = $1,980/month countable
34
+ # $1,980 > $1,694.25 (135% FPL) -> not eligible
35
+ ssi_unearned_income: 24_000
36
+ spm_unit_cash_assets: 5_000
37
+ spm_unit_is_married: false
38
+ output:
39
+ msp_eligible: false
40
+
41
+ - name: MSP not eligible - assets too high
42
+ period: 2024-01
43
+ input:
44
+ age: 67
45
+ is_medicare_eligible: true
46
+ ssi_unearned_income: 10_000
47
+ spm_unit_cash_assets: 15_000 # Over $9,430 limit
48
+ spm_unit_is_married: false
49
+ state_code: TX # Use a state with asset test
50
+ output:
51
+ msp_eligible: false
52
+
53
+ - name: MSP not eligible - not Medicare eligible
54
+ period: 2024-01
55
+ input:
56
+ age: 60 # Under 65
57
+ is_medicare_eligible: false
58
+ ssi_unearned_income: 10_000
59
+ spm_unit_cash_assets: 5_000
60
+ spm_unit_is_married: false
61
+ output:
62
+ msp_eligible: false
@@ -0,0 +1,22 @@
1
+ # MSP uses individual (1 person) or couple (2 persons) FPL,
2
+ # not the full SPM unit size per 42 U.S.C. 1396d(p)
3
+ # 2024 FPL: individual = $15,060, couple = $20,440
4
+ # Note: Published limits are $20 higher (FPL + $20 exclusion built in)
5
+ # Our implementation applies $20 exclusion to income instead - mathematically equivalent
6
+
7
+ - name: Case 1, single person gets individual FPL.
8
+ period: 2024-01
9
+ input:
10
+ spm_unit_is_married: false
11
+ output:
12
+ # Individual FPL = $15,060/year, monthly = $1,255
13
+ msp_fpg: 1_255
14
+
15
+ - name: Case 2, married couple gets couple FPL.
16
+ period: 2024-01
17
+ absolute_error_margin: 0.01
18
+ input:
19
+ spm_unit_is_married: true
20
+ output:
21
+ # Couple FPL = $20,440/year, monthly = $1,703.33
22
+ msp_fpg: 1_703.33
@@ -0,0 +1,84 @@
1
+ # MSP uses SSI income methodology per 42 U.S.C. 1396d(p)(1)(B)
2
+ # For married couples, MSP uses couple FPL = $20,440 for 2024
3
+
4
+ - name: MSP integration - married couple, both QMB eligible
5
+ period: 2024-01
6
+ input:
7
+ people:
8
+ spouse1:
9
+ age: 68
10
+ is_medicare_eligible: true
11
+ # $9,000 unearned each -> ($750 - $20) = $730/month countable each
12
+ ssi_unearned_income: 9_000
13
+ spouse2:
14
+ age: 66
15
+ is_medicare_eligible: true
16
+ ssi_unearned_income: 9_000
17
+ spm_units:
18
+ spm_unit:
19
+ members: [spouse1, spouse2]
20
+ spm_unit_is_married: true
21
+ spm_unit_cash_assets: 10_000 # Under $14,130 couple limit
22
+ tax_units:
23
+ tax_unit:
24
+ members: [spouse1, spouse2]
25
+ households:
26
+ household:
27
+ members: [spouse1, spouse2]
28
+ output:
29
+ msp_eligible: [true, true]
30
+ msp_category: [QMB, QMB]
31
+
32
+ - name: MSP integration - single senior, SLMB level
33
+ period: 2024-01
34
+ input:
35
+ people:
36
+ person1:
37
+ age: 70
38
+ is_medicare_eligible: true
39
+ base_part_a_premium: 0
40
+ base_part_b_premium: 2_096.40 # $174.70 * 12
41
+ # $16_500 unearned -> ($1,375 - $20) = $1,355/month countable
42
+ # $1,255 < $1,355 < $1,506 (100-120% FPL) -> SLMB
43
+ ssi_unearned_income: 16_500
44
+ spm_units:
45
+ spm_unit:
46
+ members: [person1]
47
+ spm_unit_is_married: false
48
+ spm_unit_cash_assets: 8_000
49
+ tax_units:
50
+ tax_unit:
51
+ members: [person1]
52
+ households:
53
+ household:
54
+ members: [person1]
55
+ output:
56
+ msp_eligible: [true]
57
+ msp_category: [SLMB]
58
+ msp_benefit_value: [174.70]
59
+ msp: [174.70]
60
+
61
+ - name: MSP integration - not eligible, assets over limit
62
+ period: 2024-01
63
+ input:
64
+ people:
65
+ person1:
66
+ age: 67
67
+ is_medicare_eligible: true
68
+ ssi_unearned_income: 10_000
69
+ spm_units:
70
+ spm_unit:
71
+ members: [person1]
72
+ spm_unit_is_married: false
73
+ spm_unit_cash_assets: 12_000 # Over $9,430 individual limit
74
+ tax_units:
75
+ tax_unit:
76
+ members: [person1]
77
+ households:
78
+ household:
79
+ members: [person1]
80
+ state_code: TX # Use a state with asset test
81
+ output:
82
+ msp_eligible: [false]
83
+ msp_category: [NONE]
84
+ msp: [0]
@@ -0,0 +1,62 @@
1
+ # MSP uses SSI income methodology per 42 U.S.C. 1396d(p)(1)(B)
2
+
3
+ - name: MSP benefit - QMB (Part A + Part B premiums)
4
+ period: 2024-01
5
+ input:
6
+ age: 67
7
+ is_medicare_eligible: true
8
+ # $12,000 unearned -> ($1,000 - $20) = $980/month countable
9
+ # $980 < $1,255 (100% FPL) -> QMB
10
+ ssi_unearned_income: 12_000
11
+ spm_unit_cash_assets: 5_000
12
+ spm_unit_is_married: false
13
+ base_part_a_premium: 6_060 # Annual Part A premium ($505/month * 12)
14
+ base_part_b_premium: 2_096.40 # Annual Part B premium ($174.70/month * 12)
15
+ output:
16
+ # (505 + 174.70) = 679.70/month
17
+ msp_benefit_value: 679.70
18
+
19
+ - name: MSP benefit - SLMB (Part B premium only)
20
+ period: 2024-01
21
+ input:
22
+ age: 67
23
+ is_medicare_eligible: true
24
+ # $16,500 unearned -> ($1,375 - $20) = $1,355/month countable
25
+ # $1,255 < $1,355 < $1,506 (100-120% FPL) -> SLMB
26
+ ssi_unearned_income: 16_500
27
+ spm_unit_cash_assets: 5_000
28
+ spm_unit_is_married: false
29
+ base_part_a_premium: 0 # Assume premium-free Part A
30
+ base_part_b_premium: 2_096.40
31
+ output:
32
+ msp_benefit_value: 174.70
33
+
34
+ - name: MSP benefit - QI (Part B premium only)
35
+ period: 2024-01
36
+ input:
37
+ age: 67
38
+ is_medicare_eligible: true
39
+ # $19,440 unearned -> ($1,620 - $20) = $1,600/month countable
40
+ # $1,506 < $1,600 < $1,694.25 (120-135% FPL) -> QI
41
+ ssi_unearned_income: 19_440
42
+ spm_unit_cash_assets: 5_000
43
+ spm_unit_is_married: false
44
+ base_part_a_premium: 0
45
+ base_part_b_premium: 2_096.40
46
+ output:
47
+ msp_benefit_value: 174.70
48
+
49
+ - name: MSP benefit - not eligible (zero benefit)
50
+ period: 2024-01
51
+ input:
52
+ age: 67
53
+ is_medicare_eligible: true
54
+ # $24_000 unearned -> ($2,000 - $20) = $1,980/month countable
55
+ # $1,980 > $1,694.25 (135% FPL) -> not eligible
56
+ ssi_unearned_income: 24_000
57
+ spm_unit_cash_assets: 5_000
58
+ spm_unit_is_married: false
59
+ base_part_a_premium: 0
60
+ base_part_b_premium: 2_096.40
61
+ output:
62
+ msp_benefit_value: 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
@@ -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