policyengine-us 1.465.0__py3-none-any.whl → 1.471.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 (207) hide show
  1. policyengine_us/parameters/gov/hhs/medicaid/emergency_medicaid/enabled.yaml +14 -0
  2. policyengine_us/parameters/gov/hhs/medicaid/emergency_medicaid/uses_medicaid_income_thresholds.yaml +13 -0
  3. policyengine_us/parameters/gov/ssa/revenue/oasdi_share_of_gross_ss.yaml +13 -0
  4. policyengine_us/parameters/gov/states/il/isbe/age_threshold/teen_parent.yaml +15 -0
  5. policyengine_us/parameters/gov/states/il/isbe/income/countable_sources.yaml +28 -0
  6. policyengine_us/parameters/gov/states/il/isbe/income/income_limit_rate.yaml +13 -0
  7. policyengine_us/parameters/gov/states/il/isbe/pfa/benefit/amount.yaml +15 -0
  8. policyengine_us/parameters/gov/states/il/isbe/pfae/benefit/amount.yaml +15 -0
  9. policyengine_us/parameters/gov/states/il/isbe/pfae/eligibility/age_range.yaml +26 -0
  10. policyengine_us/parameters/gov/states/il/isbe/pfae/eligibility/income/deep_poverty_rate.yaml +10 -0
  11. policyengine_us/parameters/gov/states/il/isbe/pfae/eligibility/income/low_income_rate.yaml +10 -0
  12. policyengine_us/parameters/gov/states/il/isbe/pi/benefit/amount.yaml +16 -0
  13. policyengine_us/parameters/gov/states/il/isbe/pi/eligibility/age_threshold/child.yaml +13 -0
  14. policyengine_us/parameters/gov/states/il/isbe/pi/eligibility/age_threshold/young_parent.yaml +11 -0
  15. policyengine_us/parameters/gov/states/il/isbe/pi/eligibility/income/deep_poverty_rate.yaml +11 -0
  16. policyengine_us/parameters/gov/states/il/isbe/pi/eligibility/income/low_income_rate.yaml +11 -0
  17. policyengine_us/parameters/gov/states/il/isbe/pi/eligibility/income/poverty_rate.yaml +11 -0
  18. policyengine_us/parameters/gov/states/il/isbe/pi/eligibility/priority/geriatric_pregnancy_age.yaml +10 -0
  19. policyengine_us/parameters/gov/states/il/isbe/pi/eligibility/risk_factors/minimum_score.yaml +11 -0
  20. policyengine_us/parameters/gov/states/in/fssa/README.md +1 -0
  21. policyengine_us/parameters/gov/states/in/fssa/tanf/README.md +1 -0
  22. policyengine_us/parameters/gov/states/in/fssa/tanf/eligibility/continuing/fpg_rate.yaml +12 -0
  23. policyengine_us/parameters/gov/states/in/fssa/tanf/income/deductions/benefit/earned_income_disregard/rate.yaml +12 -0
  24. policyengine_us/parameters/gov/states/in/fssa/tanf/income/deductions/eligibility/earned_income_disregard/rate.yaml +12 -0
  25. policyengine_us/parameters/gov/states/in/fssa/tanf/income/deductions/eligibility/flat_disregard/amount.yaml +12 -0
  26. policyengine_us/parameters/gov/states/in/fssa/tanf/income/deductions/work_expense/amount.yaml +12 -0
  27. policyengine_us/parameters/gov/states/in/fssa/tanf/resources/limit/at_application/amount.yaml +12 -0
  28. policyengine_us/parameters/gov/states/in/fssa/tanf/resources/limit/while_receiving/amount.yaml +12 -0
  29. policyengine_us/parameters/gov/states/in/fssa/tanf/resources/vehicle_exemption/amount.yaml +12 -0
  30. policyengine_us/parameters/gov/states/in/fssa/tanf/standard_of_need/amount.yaml +34 -0
  31. policyengine_us/parameters/gov/states/in/fssa/tanf/standard_of_need/max_unit_size.yaml +12 -0
  32. policyengine_us/parameters/gov/states/mo/tax/income/minimum_taxable_income.yaml +3 -0
  33. policyengine_us/parameters/gov/states/mo/tax/income/rates.yaml +13 -4
  34. policyengine_us/parameters/gov/states/mo/tax/income/subtractions/agi_subtractions.yaml +18 -0
  35. policyengine_us/parameters/gov/states/mo/tax/income/subtractions/net_capital_gain/rate.yaml +14 -0
  36. policyengine_us/parameters/gov/states/oh/odjfs/owf/income/deductions/earned_income_disregard/flat_amount.yaml +14 -0
  37. policyengine_us/parameters/gov/states/oh/odjfs/owf/income/deductions/earned_income_disregard/percentage_of_disregard.yaml +16 -0
  38. policyengine_us/parameters/gov/states/oh/odjfs/owf/initial_eligibility/income_limit_rate.yaml +14 -0
  39. policyengine_us/parameters/gov/states/oh/odjfs/owf/payment_standard/additional_person_increment.yaml +14 -0
  40. policyengine_us/parameters/gov/states/oh/odjfs/owf/payment_standard/amounts.yaml +43 -0
  41. policyengine_us/parameters/gov/states/oh/odjfs/owf/payment_standard/max_group_size.yaml +12 -0
  42. policyengine_us/parameters/gov/states/or/odhs/tanf/age_threshold/minor_child.yaml +12 -0
  43. policyengine_us/parameters/gov/states/or/odhs/tanf/income/adjusted_income_limit/additional_person.yaml +12 -0
  44. policyengine_us/parameters/gov/states/or/odhs/tanf/income/adjusted_income_limit/amount.yaml +32 -0
  45. policyengine_us/parameters/gov/states/or/odhs/tanf/income/child_support_disregard/max.yaml +12 -0
  46. policyengine_us/parameters/gov/states/or/odhs/tanf/income/child_support_disregard/per_child.yaml +12 -0
  47. policyengine_us/parameters/gov/states/or/odhs/tanf/income/countable_income_limit/additional_person.yaml +12 -0
  48. policyengine_us/parameters/gov/states/or/odhs/tanf/income/countable_income_limit/amount.yaml +32 -0
  49. policyengine_us/parameters/gov/states/or/odhs/tanf/income/earned_income_disregard_rate.yaml +12 -0
  50. policyengine_us/parameters/gov/states/or/odhs/tanf/income/eli_multiplier.yaml +12 -0
  51. policyengine_us/parameters/gov/states/or/odhs/tanf/maximum_need_group_size.yaml +12 -0
  52. policyengine_us/parameters/gov/states/or/odhs/tanf/minimum_benefit.yaml +12 -0
  53. policyengine_us/parameters/gov/states/or/odhs/tanf/payment_standard/additional_person.yaml +12 -0
  54. policyengine_us/parameters/gov/states/or/odhs/tanf/payment_standard/amount.yaml +32 -0
  55. policyengine_us/parameters/gov/states/or/odhs/tanf/resources/limit/amount.yaml +12 -0
  56. policyengine_us/tests/microsimulation/test_microsim.py +46 -0
  57. policyengine_us/tests/policy/baseline/gov/hhs/medicaid/emergency_medicaid/integration.yaml +667 -0
  58. policyengine_us/tests/policy/baseline/gov/hhs/medicaid/emergency_medicaid/is_emergency_medicaid_eligible.yaml +376 -0
  59. policyengine_us/tests/policy/baseline/gov/ssa/revenue/employer_medicare_tax_income_tax_revenue.yaml +86 -0
  60. policyengine_us/tests/policy/baseline/gov/ssa/revenue/employer_ss_tax_income_tax_revenue.yaml +85 -0
  61. policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_revenue_medicare_hi.yaml +40 -21
  62. policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_revenue_oasdi.yaml +57 -14
  63. policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_tier_split.yaml +17 -35
  64. policyengine_us/tests/policy/baseline/gov/states/il/isbe/eligibility/il_isbe_income_eligible.yaml +15 -0
  65. policyengine_us/tests/policy/baseline/gov/states/il/isbe/eligibility/il_isbe_was_teen_parent_at_first_birth.yaml +310 -0
  66. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pfae/eligibility/il_pfae_age_eligible_child.yaml +39 -0
  67. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pfae/eligibility/il_pfae_basic_eligible.yaml +26 -0
  68. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pfae/eligibility/il_pfae_eligible.yaml +49 -0
  69. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pfae/integration.yaml +102 -0
  70. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pfae/priority/il_pfae_has_highest_priority_factor.yaml +31 -0
  71. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pfae/priority/il_pfae_is_deep_poverty.yaml +15 -0
  72. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pfae/priority/il_pfae_is_low_income.yaml +15 -0
  73. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pfae/priority/il_pfae_secondary_priority_factor_count.yaml +85 -0
  74. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/il_pi_basic_eligible.yaml +46 -0
  75. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/il_pi_demographic_eligible.yaml +48 -0
  76. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/il_pi_eligible.yaml +38 -0
  77. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/il_pi_risk_eligible.yaml +74 -0
  78. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/income/il_pi_is_deep_poverty.yaml +43 -0
  79. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/income/il_pi_is_low_income.yaml +43 -0
  80. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/income/il_pi_is_poverty.yaml +43 -0
  81. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/priority/il_pi_has_developmental_delay.yaml +75 -0
  82. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/priority/il_pi_has_geriatric_pregnancy.yaml +74 -0
  83. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/priority/il_pi_highest_priority_score.yaml +100 -0
  84. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/priority/il_pi_is_young_parent_family.yaml +91 -0
  85. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/priority/il_pi_lower_priority_score.yaml +102 -0
  86. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/priority/il_pi_other_priority_score.yaml +160 -0
  87. policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/integration.yaml +187 -0
  88. policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/benefit/in_tanf_payment_standard.yaml +58 -0
  89. policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/eligibility/in_tanf_countable_income_eligible.yaml +163 -0
  90. policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/eligibility/in_tanf_eligible.yaml +94 -0
  91. policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/eligibility/in_tanf_income_eligible.yaml +74 -0
  92. policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/eligibility/in_tanf_payment_eligible.yaml +63 -0
  93. policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/in_tanf.yaml +64 -0
  94. policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/income/in_tanf_countable_earned_income.yaml +83 -0
  95. policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/income/in_tanf_countable_earned_income_for_eligibility.yaml +112 -0
  96. policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/income/in_tanf_countable_income_for_payment.yaml +71 -0
  97. policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/integration.yaml +249 -0
  98. policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/resources/in_tanf_countable_resources.yaml +38 -0
  99. policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/resources/in_tanf_resources_eligible.yaml +60 -0
  100. policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/resources/integration_with_eligibility.yaml +78 -0
  101. policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/subtractions/mo_agi_subtractions.yaml +176 -0
  102. policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/subtractions/mo_capital_gains_subtraction.yaml +65 -0
  103. policyengine_us/tests/policy/baseline/gov/states/nc/tax/income/deductions/nc_itemized_deductions.yaml +2 -2
  104. policyengine_us/tests/policy/baseline/gov/states/oh/odjfs/owf/integration.yaml +152 -0
  105. policyengine_us/tests/policy/baseline/gov/states/oh/odjfs/owf/oh_owf_countable_income.yaml +113 -0
  106. policyengine_us/tests/policy/baseline/gov/states/oh/odjfs/owf/oh_owf_eligible.yaml +239 -0
  107. policyengine_us/tests/policy/baseline/gov/states/oh/odjfs/owf/oh_owf_fpg.yaml +73 -0
  108. policyengine_us/tests/policy/baseline/gov/states/oh/odjfs/owf/oh_owf_income_eligible.yaml +80 -0
  109. policyengine_us/tests/policy/baseline/gov/states/oh/odjfs/owf/oh_owf_initial_income_eligible.yaml +160 -0
  110. policyengine_us/tests/policy/baseline/gov/states/oh/odjfs/owf/oh_owf_payment_standard.yaml +77 -0
  111. policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/integration.yaml +363 -0
  112. policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf.yaml +94 -0
  113. policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_adjusted_income.yaml +77 -0
  114. policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_adjusted_income_eligible.yaml +73 -0
  115. policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_child_support_disregard.yaml +272 -0
  116. policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_countable_income.yaml +70 -0
  117. policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_countable_income_eligible.yaml +73 -0
  118. policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_eli_eligible.yaml +47 -0
  119. policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_eli_income_eligible.yaml +75 -0
  120. policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_eligible.yaml +68 -0
  121. policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_income_eligible.yaml +211 -0
  122. policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_payment_standard.yaml +68 -0
  123. policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_resources_eligible.yaml +37 -0
  124. policyengine_us/tests/run_selective_tests.py +5 -0
  125. policyengine_us/tests/test_batched.py +106 -11
  126. policyengine_us/variables/gov/hhs/medicaid/emergency_medicaid/has_emergency_medical_condition.py +16 -0
  127. policyengine_us/variables/gov/hhs/medicaid/emergency_medicaid/is_emergency_medicaid_eligible.py +33 -0
  128. policyengine_us/variables/gov/ssa/revenue/employer_medicare_tax_income_tax_revenue.py +58 -0
  129. policyengine_us/variables/gov/ssa/revenue/employer_ss_tax_income_tax_revenue.py +60 -0
  130. policyengine_us/variables/gov/ssa/revenue/tob_revenue_medicare_hi.py +51 -15
  131. policyengine_us/variables/gov/ssa/revenue/tob_revenue_oasdi.py +66 -15
  132. policyengine_us/variables/gov/ssa/revenue/tob_revenue_total.py +11 -6
  133. policyengine_us/variables/gov/states/il/isbe/eligibility/il_isbe_income_eligible.py +26 -0
  134. policyengine_us/variables/gov/states/il/isbe/eligibility/il_isbe_was_teen_parent_at_first_birth.py +32 -0
  135. policyengine_us/variables/gov/states/il/isbe/income/il_isbe_countable_income.py +13 -0
  136. policyengine_us/variables/gov/states/il/isbe/pfa/il_pfa.py +15 -0
  137. policyengine_us/variables/gov/states/il/isbe/pfa/il_pfa_eligible.py +18 -0
  138. policyengine_us/variables/gov/states/il/isbe/pfae/eligibility/il_pfae_age_eligible_child.py +23 -0
  139. policyengine_us/variables/gov/states/il/isbe/pfae/eligibility/il_pfae_basic_eligible.py +19 -0
  140. policyengine_us/variables/gov/states/il/isbe/pfae/eligibility/il_pfae_eligible.py +28 -0
  141. policyengine_us/variables/gov/states/il/isbe/pfae/il_pfae.py +19 -0
  142. policyengine_us/variables/gov/states/il/isbe/pfae/priority/il_pfae_has_highest_priority_factor.py +40 -0
  143. policyengine_us/variables/gov/states/il/isbe/pfae/priority/il_pfae_is_deep_poverty.py +23 -0
  144. policyengine_us/variables/gov/states/il/isbe/pfae/priority/il_pfae_is_low_income.py +21 -0
  145. policyengine_us/variables/gov/states/il/isbe/pfae/priority/il_pfae_secondary_priority_factor_count.py +65 -0
  146. policyengine_us/variables/gov/states/il/isbe/pi/eligibility/il_pi_basic_eligible.py +17 -0
  147. policyengine_us/variables/gov/states/il/isbe/pi/eligibility/il_pi_demographic_eligible.py +18 -0
  148. policyengine_us/variables/gov/states/il/isbe/pi/eligibility/il_pi_risk_eligible.py +18 -0
  149. policyengine_us/variables/gov/states/il/isbe/pi/eligibility/income/il_pi_is_deep_poverty.py +23 -0
  150. policyengine_us/variables/gov/states/il/isbe/pi/eligibility/income/il_pi_is_low_income.py +21 -0
  151. policyengine_us/variables/gov/states/il/isbe/pi/eligibility/income/il_pi_is_poverty.py +21 -0
  152. policyengine_us/variables/gov/states/il/isbe/pi/eligibility/priority/il_pi_has_developmental_delay.py +16 -0
  153. policyengine_us/variables/gov/states/il/isbe/pi/eligibility/priority/il_pi_has_geriatric_pregnancy.py +20 -0
  154. policyengine_us/variables/gov/states/il/isbe/pi/eligibility/priority/il_pi_highest_priority_score.py +37 -0
  155. policyengine_us/variables/gov/states/il/isbe/pi/eligibility/priority/il_pi_is_young_parent_family.py +21 -0
  156. policyengine_us/variables/gov/states/il/isbe/pi/eligibility/priority/il_pi_lower_priority_score.py +36 -0
  157. policyengine_us/variables/gov/states/il/isbe/pi/eligibility/priority/il_pi_other_priority_score.py +54 -0
  158. policyengine_us/variables/gov/states/il/isbe/pi/eligibility/priority/il_pi_priority_score.py +19 -0
  159. policyengine_us/variables/gov/states/il/isbe/pi/il_pi.py +15 -0
  160. policyengine_us/variables/gov/states/il/isbe/pi/il_pi_eligible.py +18 -0
  161. policyengine_us/variables/gov/states/in/fssa/tanf/eligibility/in_tanf_countable_income_eligible.py +31 -0
  162. policyengine_us/variables/gov/states/in/fssa/tanf/eligibility/in_tanf_eligible.py +36 -0
  163. policyengine_us/variables/gov/states/in/fssa/tanf/eligibility/in_tanf_income_eligible.py +21 -0
  164. policyengine_us/variables/gov/states/in/fssa/tanf/eligibility/in_tanf_payment_eligible.py +18 -0
  165. policyengine_us/variables/gov/states/in/fssa/tanf/eligibility/in_tanf_resources_eligible.py +25 -0
  166. policyengine_us/variables/gov/states/in/fssa/tanf/in_tanf.py +21 -0
  167. policyengine_us/variables/gov/states/in/fssa/tanf/in_tanf_payment_standard.py +19 -0
  168. policyengine_us/variables/gov/states/in/fssa/tanf/income/in_tanf_countable_earned_income.py +20 -0
  169. policyengine_us/variables/gov/states/in/fssa/tanf/income/in_tanf_countable_earned_income_for_eligibility.py +33 -0
  170. policyengine_us/variables/gov/states/in/fssa/tanf/income/in_tanf_countable_income_for_eligibility.py +19 -0
  171. policyengine_us/variables/gov/states/in/fssa/tanf/income/in_tanf_countable_income_for_payment.py +13 -0
  172. policyengine_us/variables/gov/states/in/fssa/tanf/resources/in_tanf_countable_resources.py +27 -0
  173. policyengine_us/variables/gov/states/mo/tax/income/adjusted_gross_income/mo_adjusted_gross_income.py +1 -1
  174. policyengine_us/variables/gov/states/mo/tax/income/subtractions/mo_agi_subtractions.py +16 -0
  175. policyengine_us/variables/gov/states/mo/tax/income/subtractions/mo_capital_gains_subtraction.py +20 -0
  176. policyengine_us/variables/gov/states/mo/tax/income/subtractions/mo_capital_gains_subtraction_person.py +28 -0
  177. policyengine_us/variables/gov/states/oh/odjfs/owf/eligibility/oh_owf_eligible.py +39 -0
  178. policyengine_us/variables/gov/states/oh/odjfs/owf/eligibility/oh_owf_income_eligible.py +33 -0
  179. policyengine_us/variables/gov/states/oh/odjfs/owf/eligibility/oh_owf_initial_income_eligible.py +30 -0
  180. policyengine_us/variables/gov/states/oh/odjfs/owf/income/oh_owf_countable_income.py +40 -0
  181. policyengine_us/variables/gov/states/oh/odjfs/owf/oh_owf.py +23 -0
  182. policyengine_us/variables/gov/states/oh/odjfs/owf/oh_owf_fpg.py +32 -0
  183. policyengine_us/variables/gov/states/oh/odjfs/owf/oh_owf_payment_standard.py +26 -0
  184. policyengine_us/variables/gov/states/or/odhs/tanf/benefit/or_tanf_payment_standard.py +23 -0
  185. policyengine_us/variables/gov/states/or/odhs/tanf/eligibility/or_tanf_adjusted_income_eligible.py +28 -0
  186. policyengine_us/variables/gov/states/or/odhs/tanf/eligibility/or_tanf_countable_income_eligible.py +28 -0
  187. policyengine_us/variables/gov/states/or/odhs/tanf/eligibility/or_tanf_eli_eligible.py +16 -0
  188. policyengine_us/variables/gov/states/or/odhs/tanf/eligibility/or_tanf_eli_income_eligible.py +20 -0
  189. policyengine_us/variables/gov/states/or/odhs/tanf/eligibility/or_tanf_eligible.py +25 -0
  190. policyengine_us/variables/gov/states/or/odhs/tanf/eligibility/or_tanf_income_eligible.py +26 -0
  191. policyengine_us/variables/gov/states/or/odhs/tanf/eligibility/or_tanf_resources_eligible.py +19 -0
  192. policyengine_us/variables/gov/states/or/odhs/tanf/income/or_tanf_adjusted_income.py +21 -0
  193. policyengine_us/variables/gov/states/or/odhs/tanf/income/or_tanf_child_support_disregard.py +25 -0
  194. policyengine_us/variables/gov/states/or/odhs/tanf/income/or_tanf_countable_income.py +20 -0
  195. policyengine_us/variables/gov/states/or/odhs/tanf/or_tanf.py +25 -0
  196. policyengine_us/variables/household/demographic/geographic/county/county.py +9 -0
  197. policyengine_us/variables/household/demographic/geographic/is_non_english_speaking_home.py +9 -0
  198. policyengine_us/variables/household/demographic/household/parent_has_less_than_high_school_education.py +9 -0
  199. policyengine_us/variables/household/demographic/person/has_developmental_delay.py +9 -0
  200. policyengine_us/variables/household/demographic/person/has_individualized_education_program.py +9 -0
  201. policyengine_us/variables/household/demographic/person/has_no_prior_formal_early_learning.py +9 -0
  202. policyengine_us/variables/household/demographic/person/is_born_outside_us.py +9 -0
  203. {policyengine_us-1.465.0.dist-info → policyengine_us-1.471.0.dist-info}/METADATA +1 -1
  204. {policyengine_us-1.465.0.dist-info → policyengine_us-1.471.0.dist-info}/RECORD +207 -19
  205. {policyengine_us-1.465.0.dist-info → policyengine_us-1.471.0.dist-info}/WHEEL +0 -0
  206. {policyengine_us-1.465.0.dist-info → policyengine_us-1.471.0.dist-info}/entry_points.txt +0 -0
  207. {policyengine_us-1.465.0.dist-info → policyengine_us-1.471.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  # Unit tests for tob_revenue_oasdi
2
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
3
+ # Uses double-branching methodology per 42 U.S.C. 401 note
4
4
 
5
5
  - name: No SS benefits - zero OASDI revenue
6
6
  period: 2024
@@ -36,12 +36,12 @@
36
36
  household:
37
37
  members: [person1]
38
38
  output:
39
- # No taxable SS no TOB revenue → no OASDI share
39
+ # Combined income below threshold - no taxable SS
40
40
  tob_revenue_oasdi: 0
41
41
 
42
42
  - name: Tier 1 only - all revenue to OASDI
43
43
  period: 2024
44
- absolute_error_margin: 50
44
+ absolute_error_margin: 10
45
45
  input:
46
46
  people:
47
47
  person1:
@@ -56,14 +56,13 @@
56
56
  household:
57
57
  members: [person1]
58
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)
59
+ # Taxable SS = $2,500 (in tier 1 only)
60
+ # Since taxable SS <= 50% of gross, all goes to OASDI
61
+ tax_unit_taxable_social_security: 2_500
62
+ tob_revenue_oasdi: 250
63
+ tob_revenue_medicare_hi: 0
65
64
 
66
- - name: In tier 2 - proportional split
65
+ - name: High income single - branching allocation
67
66
  period: 2024
68
67
  absolute_error_margin: 100
69
68
  input:
@@ -80,7 +79,51 @@
80
79
  household:
81
80
  members: [person1]
82
81
  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
82
+ # Using branching: OASDI gets marginal tax on first 50% of gross
83
+ tax_unit_taxable_social_security: 25_500
84
+ tob_revenue_total: 4_240
85
+ tob_revenue_oasdi: 1_930
86
+ tob_revenue_medicare_hi: 2_310
87
+
88
+ - name: Very high income - branching allocation
89
+ period: 2024
90
+ absolute_error_margin: 100
91
+ input:
92
+ people:
93
+ person1:
94
+ age: 67
95
+ social_security: 30_000
96
+ employment_income: 100_000
97
+ tax_units:
98
+ tax_unit:
99
+ members: [person1]
100
+ filing_status: SINGLE
101
+ households:
102
+ household:
103
+ members: [person1]
104
+ output:
105
+ # Higher marginal rates affect the split
106
+ tax_unit_taxable_social_security: 25_500
107
+ tob_revenue_total: 5_778
108
+ tob_revenue_oasdi: 3_300
109
+ tob_revenue_medicare_hi: 2_478
110
+
111
+ - name: Zero taxable SS - zero revenue
112
+ period: 2024
113
+ input:
114
+ people:
115
+ person1:
116
+ age: 67
117
+ social_security: 15_000
118
+ employment_income: 5_000
119
+ tax_units:
120
+ tax_unit:
121
+ members: [person1]
122
+ filing_status: SINGLE
123
+ households:
124
+ household:
125
+ members: [person1]
126
+ output:
127
+ tax_unit_taxable_social_security: 0
128
+ tob_revenue_oasdi: 0
129
+ tob_revenue_medicare_hi: 0
@@ -1,21 +1,9 @@
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)
1
+ # Test that TOB revenue split uses double-branching methodology
2
+ # Per 42 U.S.C. 401 note (Section 121(e) of PL 98-21):
3
+ # - OASDI receives tax on "first 50%" of gross SS benefits
4
+ # - Medicare HI receives tax on remaining portion (1993 amendments)
5
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"]
6
+ # The split depends on marginal tax rates, so varies by income level
19
7
 
20
8
  - name: TOB tier split - single retiree in tier 2
21
9
  period: 2024
@@ -34,16 +22,13 @@
34
22
  household:
35
23
  members: [person1]
36
24
  output:
37
- # Total taxable SS should be 85% of $30K = $25,500
25
+ # Total taxable SS = 85% of $30K = $25,500
38
26
  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
27
+ # IRC 86 tier calculations (for taxable income)
41
28
  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
29
  taxable_social_security_tier_2: 21_000
45
30
 
46
- - name: TOB revenue split follows tier proportions
31
+ - name: TOB revenue split using branching methodology
47
32
  period: 2024
48
33
  absolute_error_margin: 100
49
34
  input:
@@ -60,16 +45,14 @@
60
45
  household:
61
46
  members: [person1]
62
47
  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
48
+ # Using double-branching per 42 U.S.C. 401 note
49
+ # OASDI = tax(with 50% cap) - tax(with 0% SS)
50
+ # HI = tax(with full SS) - tax(with 50% cap)
51
+ tob_revenue_total: 4_240
52
+ tob_revenue_oasdi: 1_930
53
+ tob_revenue_medicare_hi: 2_310
71
54
 
72
- - name: Verify tier2 is positive (regression test for subtracts bug)
55
+ - name: Verify tier2 is positive (regression test)
73
56
  period: 2024
74
57
  input:
75
58
  people:
@@ -85,6 +68,5 @@
85
68
  household:
86
69
  members: [person1]
87
70
  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
71
+ # Tier 2 must be positive
72
+ taxable_social_security_tier_2: 12_500
@@ -0,0 +1,15 @@
1
+ - name: Case 1, income well below 400% FPL.
2
+ period: 2024
3
+ input:
4
+ state_code: IL
5
+ employment_income: 20_000
6
+ output:
7
+ il_isbe_income_eligible: true
8
+
9
+ - name: Case 2, income above 400% FPL.
10
+ period: 2024
11
+ input:
12
+ state_code: IL
13
+ employment_income: 150_000
14
+ output:
15
+ il_isbe_income_eligible: false
@@ -0,0 +1,310 @@
1
+ # Edge case tests for il_isbe_was_teen_parent_at_first_birth
2
+ # Tests if parent was under age 20 when their oldest child was born
3
+ # Formula: has_children & (head_age - oldest_child_age < 20)
4
+ # Threshold: teen_parent_age_threshold = 20
5
+
6
+ - name: Case 1, parent was teen at birth.
7
+ period: 2024
8
+ input:
9
+ people:
10
+ person1:
11
+ age: 35
12
+ is_tax_unit_head: true
13
+ person2:
14
+ age: 17
15
+ households:
16
+ household:
17
+ members: [person1, person2]
18
+ state_code: IL
19
+ spm_units:
20
+ spm_unit:
21
+ members: [person1, person2]
22
+ tax_units:
23
+ tax_unit:
24
+ members: [person1, person2]
25
+ output:
26
+ # Parent age 35, oldest child age 17
27
+ # Age at first birth: 35 - 17 = 18
28
+ # 18 < 20 = TRUE (was teen parent)
29
+ il_isbe_was_teen_parent_at_first_birth: true
30
+
31
+ - name: Case 2, parent was NOT teen at birth.
32
+ period: 2024
33
+ input:
34
+ people:
35
+ person1:
36
+ age: 45
37
+ is_tax_unit_head: true
38
+ person2:
39
+ age: 17
40
+ households:
41
+ household:
42
+ members: [person1, person2]
43
+ state_code: IL
44
+ spm_units:
45
+ spm_unit:
46
+ members: [person1, person2]
47
+ tax_units:
48
+ tax_unit:
49
+ members: [person1, person2]
50
+ output:
51
+ # Parent age 45, oldest child age 17
52
+ # Age at first birth: 45 - 17 = 28
53
+ # 28 < 20 = FALSE (was not teen parent)
54
+ il_isbe_was_teen_parent_at_first_birth: false
55
+
56
+ - name: Case 3, boundary exactly 19 at birth should be TRUE.
57
+ period: 2024
58
+ input:
59
+ people:
60
+ person1:
61
+ age: 36
62
+ is_tax_unit_head: true
63
+ person2:
64
+ age: 17
65
+ households:
66
+ household:
67
+ members: [person1, person2]
68
+ state_code: IL
69
+ spm_units:
70
+ spm_unit:
71
+ members: [person1, person2]
72
+ tax_units:
73
+ tax_unit:
74
+ members: [person1, person2]
75
+ output:
76
+ # Parent age 36, oldest child age 17
77
+ # Age at first birth: 36 - 17 = 19
78
+ # 19 < 20 = TRUE (was teen parent)
79
+ il_isbe_was_teen_parent_at_first_birth: true
80
+
81
+ - name: Case 4, boundary exactly 20 at birth should be FALSE.
82
+ period: 2024
83
+ input:
84
+ people:
85
+ person1:
86
+ age: 37
87
+ is_tax_unit_head: true
88
+ person2:
89
+ age: 17
90
+ households:
91
+ household:
92
+ members: [person1, person2]
93
+ state_code: IL
94
+ spm_units:
95
+ spm_unit:
96
+ members: [person1, person2]
97
+ tax_units:
98
+ tax_unit:
99
+ members: [person1, person2]
100
+ output:
101
+ # Parent age 37, oldest child age 17
102
+ # Age at first birth: 37 - 17 = 20
103
+ # 20 < 20 = FALSE (20 is NOT less than 20)
104
+ il_isbe_was_teen_parent_at_first_birth: false
105
+
106
+ - name: Case 5, no children in household.
107
+ period: 2024
108
+ input:
109
+ people:
110
+ person1:
111
+ age: 30
112
+ is_tax_unit_head: true
113
+ households:
114
+ household:
115
+ members: [person1]
116
+ state_code: IL
117
+ spm_units:
118
+ spm_unit:
119
+ members: [person1]
120
+ tax_units:
121
+ tax_unit:
122
+ members: [person1]
123
+ output:
124
+ # No children (is_child requires age < 18)
125
+ # has_children = FALSE
126
+ # Result: FALSE regardless of age
127
+ il_isbe_was_teen_parent_at_first_birth: false
128
+
129
+ - name: Case 6, multiple children uses oldest child age.
130
+ period: 2024
131
+ input:
132
+ people:
133
+ person1:
134
+ age: 35
135
+ is_tax_unit_head: true
136
+ person2:
137
+ age: 5
138
+ person3:
139
+ age: 17
140
+ households:
141
+ household:
142
+ members: [person1, person2, person3]
143
+ state_code: IL
144
+ spm_units:
145
+ spm_unit:
146
+ members: [person1, person2, person3]
147
+ tax_units:
148
+ tax_unit:
149
+ members: [person1, person2, person3]
150
+ output:
151
+ # Parent age 35, children ages 5 and 17
152
+ # Oldest child is 17 (rank 0 with -age ordering)
153
+ # Age at first birth: 35 - 17 = 18
154
+ # 18 < 20 = TRUE
155
+ il_isbe_was_teen_parent_at_first_birth: true
156
+
157
+ - name: Case 7, all adults no children under 18.
158
+ period: 2024
159
+ input:
160
+ people:
161
+ person1:
162
+ age: 40
163
+ is_tax_unit_head: true
164
+ person2:
165
+ age: 18
166
+ households:
167
+ household:
168
+ members: [person1, person2]
169
+ state_code: IL
170
+ spm_units:
171
+ spm_unit:
172
+ members: [person1, person2]
173
+ tax_units:
174
+ tax_unit:
175
+ members: [person1, person2]
176
+ output:
177
+ # Person2 is 18, is_child requires age < 18
178
+ # No qualifying children
179
+ # has_children = FALSE
180
+ il_isbe_was_teen_parent_at_first_birth: false
181
+
182
+ - name: Case 8, newborn with parent exactly 20 at birth.
183
+ period: 2024
184
+ input:
185
+ people:
186
+ person1:
187
+ age: 20
188
+ is_tax_unit_head: true
189
+ person2:
190
+ age: 0
191
+ households:
192
+ household:
193
+ members: [person1, person2]
194
+ state_code: IL
195
+ spm_units:
196
+ spm_unit:
197
+ members: [person1, person2]
198
+ tax_units:
199
+ tax_unit:
200
+ members: [person1, person2]
201
+ output:
202
+ # Parent age 20, child age 0
203
+ # Age at first birth: 20 - 0 = 20
204
+ # 20 < 20 = FALSE (exactly at threshold)
205
+ il_isbe_was_teen_parent_at_first_birth: false
206
+
207
+ - name: Case 9, young parent with young child was teen.
208
+ period: 2024
209
+ input:
210
+ people:
211
+ person1:
212
+ age: 21
213
+ is_tax_unit_head: true
214
+ person2:
215
+ age: 2
216
+ households:
217
+ household:
218
+ members: [person1, person2]
219
+ state_code: IL
220
+ spm_units:
221
+ spm_unit:
222
+ members: [person1, person2]
223
+ tax_units:
224
+ tax_unit:
225
+ members: [person1, person2]
226
+ output:
227
+ # Parent age 21, child age 2
228
+ # Age at first birth: 21 - 2 = 19
229
+ # 19 < 20 = TRUE
230
+ il_isbe_was_teen_parent_at_first_birth: true
231
+
232
+ - name: Case 10, newborn with parent exactly 19 at birth.
233
+ period: 2024
234
+ input:
235
+ people:
236
+ person1:
237
+ age: 19
238
+ is_tax_unit_head: true
239
+ person2:
240
+ age: 0
241
+ households:
242
+ household:
243
+ members: [person1, person2]
244
+ state_code: IL
245
+ spm_units:
246
+ spm_unit:
247
+ members: [person1, person2]
248
+ tax_units:
249
+ tax_unit:
250
+ members: [person1, person2]
251
+ output:
252
+ # Parent age 19, child age 0
253
+ # Age at first birth: 19 - 0 = 19
254
+ # 19 < 20 = TRUE
255
+ il_isbe_was_teen_parent_at_first_birth: true
256
+
257
+ - name: Case 11, three children uses oldest.
258
+ period: 2024
259
+ input:
260
+ people:
261
+ person1:
262
+ age: 40
263
+ is_tax_unit_head: true
264
+ person2:
265
+ age: 3
266
+ person3:
267
+ age: 10
268
+ person4:
269
+ age: 16
270
+ households:
271
+ household:
272
+ members: [person1, person2, person3, person4]
273
+ state_code: IL
274
+ spm_units:
275
+ spm_unit:
276
+ members: [person1, person2, person3, person4]
277
+ tax_units:
278
+ tax_unit:
279
+ members: [person1, person2, person3, person4]
280
+ output:
281
+ # Parent age 40, children ages 3, 10, 16
282
+ # Oldest child is 16
283
+ # Age at first birth: 40 - 16 = 24
284
+ # 24 < 20 = FALSE
285
+ il_isbe_was_teen_parent_at_first_birth: false
286
+
287
+ - name: Case 12, boundary 21 at birth should be FALSE.
288
+ period: 2024
289
+ input:
290
+ people:
291
+ person1:
292
+ age: 38
293
+ is_tax_unit_head: true
294
+ person2:
295
+ age: 17
296
+ households:
297
+ household:
298
+ members: [person1, person2]
299
+ state_code: IL
300
+ spm_units:
301
+ spm_unit:
302
+ members: [person1, person2]
303
+ tax_units:
304
+ tax_unit:
305
+ members: [person1, person2]
306
+ output:
307
+ # Parent age 38, oldest child age 17
308
+ # Age at first birth: 38 - 17 = 21
309
+ # 21 < 20 = FALSE
310
+ il_isbe_was_teen_parent_at_first_birth: false
@@ -0,0 +1,39 @@
1
+ - name: Case 1, eligible child age 3.
2
+ period: 2024
3
+ input:
4
+ age: 3
5
+ state_code: IL
6
+ output:
7
+ il_pfae_age_eligible_child: true
8
+
9
+ - name: Case 2, eligible child age 4.
10
+ period: 2024
11
+ input:
12
+ age: 4
13
+ state_code: IL
14
+ output:
15
+ il_pfae_age_eligible_child: true
16
+
17
+ - name: Case 3, eligible child age 5.
18
+ period: 2024
19
+ input:
20
+ age: 5
21
+ state_code: IL
22
+ output:
23
+ il_pfae_age_eligible_child: true
24
+
25
+ - name: Case 4, ineligible child age 2 too young.
26
+ period: 2024
27
+ input:
28
+ age: 2
29
+ state_code: IL
30
+ output:
31
+ il_pfae_age_eligible_child: false
32
+
33
+ - name: Case 5, ineligible child age 6 too old.
34
+ period: 2024
35
+ input:
36
+ age: 6
37
+ state_code: IL
38
+ output:
39
+ il_pfae_age_eligible_child: false
@@ -0,0 +1,26 @@
1
+ - name: Case 1, age and income eligible.
2
+ period: 2024
3
+ input:
4
+ state_code: IL
5
+ age: 4
6
+ employment_income: 20_000
7
+ output:
8
+ il_pfae_basic_eligible: true
9
+
10
+ - name: Case 2, age eligible but income too high.
11
+ period: 2024
12
+ input:
13
+ state_code: IL
14
+ age: 4
15
+ employment_income: 150_000
16
+ output:
17
+ il_pfae_basic_eligible: false
18
+
19
+ - name: Case 3, income eligible but age too old.
20
+ period: 2024
21
+ input:
22
+ state_code: IL
23
+ age: 7
24
+ employment_income: 20_000
25
+ output:
26
+ il_pfae_basic_eligible: false
@@ -0,0 +1,49 @@
1
+ - name: Case 1, eligible with highest priority factor (IEP).
2
+ period: 2024
3
+ input:
4
+ state_code: IL
5
+ age: 4
6
+ has_individualized_education_program: true
7
+ employment_income: 20_000
8
+ output:
9
+ il_pfae_eligible: true
10
+
11
+ - name: Case 2, eligible with highest priority factor (foster care).
12
+ period: 2024
13
+ input:
14
+ state_code: IL
15
+ age: 3
16
+ is_in_foster_care: true
17
+ employment_income: 15_000
18
+ output:
19
+ il_pfae_eligible: true
20
+
21
+ - name: Case 3, eligible with two secondary priority factors.
22
+ period: 2024
23
+ input:
24
+ state_code: IL
25
+ age: 4
26
+ parent_has_less_than_high_school_education: true
27
+ employment_income: 10_000
28
+ output:
29
+ # low_income (25pt) + low_education (25pt) = 2 factors
30
+ il_pfae_eligible: true
31
+
32
+ - name: Case 4, ineligible age too old.
33
+ period: 2024
34
+ input:
35
+ state_code: IL
36
+ age: 6
37
+ has_individualized_education_program: true
38
+ output:
39
+ il_pfae_eligible: false
40
+
41
+ - name: Case 5, ineligible income too high.
42
+ period: 2024
43
+ input:
44
+ state_code: IL
45
+ age: 4
46
+ has_individualized_education_program: true
47
+ employment_income: 150_000
48
+ output:
49
+ il_pfae_eligible: false