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
@@ -0,0 +1,71 @@
1
+ - name: No income
2
+ period: 2024-01
3
+ input:
4
+ people:
5
+ person1:
6
+ tanf_gross_earned_income: 0
7
+ tanf_gross_unearned_income: 0
8
+ spm_units:
9
+ spm_unit:
10
+ members: [person1]
11
+ households:
12
+ household:
13
+ members: [person1]
14
+ state_code: IN
15
+ output:
16
+ in_tanf_countable_income_for_payment: 0
17
+
18
+ - name: Earned income only
19
+ period: 2024-01
20
+ input:
21
+ people:
22
+ person1:
23
+ tanf_gross_earned_income: 400
24
+ tanf_gross_unearned_income: 0
25
+ spm_units:
26
+ spm_unit:
27
+ members: [person1]
28
+ households:
29
+ household:
30
+ members: [person1]
31
+ state_code: IN
32
+ output:
33
+ in_tanf_countable_income_for_payment: 100
34
+ # $400 × 0.25 = $100 (75% disregard)
35
+
36
+ - name: Unearned income only
37
+ period: 2024-01
38
+ input:
39
+ people:
40
+ person1:
41
+ tanf_gross_earned_income: 0
42
+ tanf_gross_unearned_income: 300
43
+ spm_units:
44
+ spm_unit:
45
+ members: [person1]
46
+ households:
47
+ household:
48
+ members: [person1]
49
+ state_code: IN
50
+ output:
51
+ in_tanf_countable_income_for_payment: 300
52
+ # Unearned income has no disregard
53
+
54
+ - name: Mixed earned and unearned income
55
+ period: 2024-01
56
+ input:
57
+ people:
58
+ person1:
59
+ tanf_gross_earned_income: 500
60
+ tanf_gross_unearned_income: 200
61
+ spm_units:
62
+ spm_unit:
63
+ members: [person1]
64
+ households:
65
+ household:
66
+ members: [person1]
67
+ state_code: IN
68
+ output:
69
+ in_tanf_countable_income_for_payment: 325
70
+ # $500 × 0.25 = $125 (earned with 75% disregard)
71
+ # $125 + $200 (unearned) = $325
@@ -0,0 +1,249 @@
1
+ # Indiana TANF Integration Tests
2
+ # Tests the full benefit calculation pipeline
3
+
4
+ - name: Case 1 - Single parent with no income receives maximum benefit
5
+ period: 2024-01
6
+ input:
7
+ people:
8
+ person1:
9
+ age: 30
10
+ tanf_gross_earned_income: 0
11
+ tanf_gross_unearned_income: 0
12
+ person2:
13
+ age: 10
14
+ person3:
15
+ age: 8
16
+ spm_units:
17
+ spm_unit:
18
+ members: [person1, person2, person3]
19
+ spm_unit_cash_assets: 500
20
+ households:
21
+ household:
22
+ members: [person1, person2, person3]
23
+ state_code: IN
24
+ output:
25
+ spm_unit_size: [3, 3, 3]
26
+ in_tanf_countable_earned_income_for_eligibility: [0, 0, 0]
27
+ in_tanf_countable_income_for_eligibility: [0, 0, 0]
28
+ in_tanf_countable_earned_income: [0, 0, 0]
29
+ in_tanf_countable_income_for_payment: [0, 0, 0]
30
+ in_tanf_countable_income_eligible: [true, true, true]
31
+ # Countable income ($0) < standard of need ($320) → eligible
32
+ in_tanf_payment_eligible: [true, true, true]
33
+ # Countable income ($0) < standard of need ($320) → eligible
34
+ in_tanf_payment_standard: [320, 320, 320]
35
+ # Family of 3 → $320
36
+ in_tanf_eligible: [true, true, true]
37
+ in_tanf: [320, 320, 320]
38
+ # Max benefit ($320) - countable income ($0) = $320
39
+
40
+ - name: Case 2 - Single parent with earned income receives reduced benefit
41
+ period: 2024-01
42
+ input:
43
+ people:
44
+ person1:
45
+ age: 28
46
+ tanf_gross_earned_income: 200
47
+ person2:
48
+ age: 5
49
+ spm_units:
50
+ spm_unit:
51
+ members: [person1, person2]
52
+ spm_unit_cash_assets: 800
53
+ households:
54
+ household:
55
+ members: [person1, person2]
56
+ state_code: IN
57
+ output:
58
+ spm_unit_size: [2, 2]
59
+ in_tanf_countable_earned_income_for_eligibility: [53.6, 53.6]
60
+ # $200 - $90 = $110 → $110 - $30 = $80 → $80 * 0.67 = $53.60
61
+ in_tanf_countable_income_for_eligibility: [53.6, 53.6]
62
+ in_tanf_countable_earned_income: [50, 50]
63
+ # $200 × 0.25 (75% disregard) = $50
64
+ in_tanf_countable_income_for_payment: [50, 50]
65
+ in_tanf_countable_income_eligible: [true, true]
66
+ # Countable for elig ($53.60) < standard of need ($255) → eligible
67
+ in_tanf_payment_eligible: [true, true]
68
+ # Countable for benefit ($50) < standard of need ($255) → eligible
69
+ in_tanf_payment_standard: [255, 255]
70
+ # Family of 2 → $255
71
+ in_tanf_eligible: [true, true]
72
+ in_tanf: [205, 205]
73
+ # Max benefit ($255) - countable income ($50) = $205
74
+
75
+ - name: Case 3 - Family with mixed earned and unearned income
76
+ period: 2024-01
77
+ input:
78
+ people:
79
+ person1:
80
+ age: 35
81
+ tanf_gross_earned_income: 300
82
+ person2:
83
+ age: 12
84
+ tanf_gross_unearned_income: 100
85
+ spm_units:
86
+ spm_unit:
87
+ members: [person1, person2]
88
+ spm_unit_cash_assets: 700
89
+ households:
90
+ household:
91
+ members: [person1, person2]
92
+ state_code: IN
93
+ output:
94
+ spm_unit_size: [2, 2]
95
+ in_tanf_countable_earned_income_for_eligibility: [120.6, 120.6]
96
+ # $300 - $90 = $210 → $210 - $30 = $180 → $180 * 0.67 = $120.60
97
+ in_tanf_countable_income_for_eligibility: [220.6, 220.6]
98
+ # $120.60 (earned) + $100 (unearned) = $220.60
99
+ in_tanf_countable_earned_income: [75, 75]
100
+ # $300 × 0.25 = $75
101
+ in_tanf_countable_income_for_payment: [175, 175]
102
+ # $75 (earned) + $100 (unearned) = $175
103
+ in_tanf_countable_income_eligible: [true, true]
104
+ # Countable for elig ($220.60) < standard of need ($255) → eligible
105
+ in_tanf_payment_eligible: [true, true]
106
+ # Countable for benefit ($175) < standard of need ($255) → eligible
107
+ in_tanf_payment_standard: [255, 255]
108
+ in_tanf_eligible: [true, true]
109
+ in_tanf: [80, 80]
110
+ # Max benefit ($255) - countable income ($175) = $80
111
+
112
+ - name: Case 4 - High earner exceeds eligibility threshold
113
+ period: 2024-01
114
+ input:
115
+ people:
116
+ person1:
117
+ age: 32
118
+ tanf_gross_earned_income: 600
119
+ person2:
120
+ age: 7
121
+ person3:
122
+ age: 4
123
+ spm_units:
124
+ spm_unit:
125
+ members: [person1, person2, person3]
126
+ spm_unit_cash_assets: 900
127
+ households:
128
+ household:
129
+ members: [person1, person2, person3]
130
+ state_code: IN
131
+ output:
132
+ spm_unit_size: [3, 3, 3]
133
+ in_tanf_countable_earned_income_for_eligibility: [321.6, 321.6, 321.6]
134
+ # $600 - $90 = $510 → $510 - $30 = $480 → $480 * 0.67 = $321.60
135
+ in_tanf_countable_income_for_eligibility: [321.6, 321.6, 321.6]
136
+ in_tanf_countable_earned_income: [150, 150, 150]
137
+ # $600 × 0.25 = $150
138
+ in_tanf_countable_income_for_payment: [150, 150, 150]
139
+ in_tanf_countable_income_eligible: [false, false, false]
140
+ # Countable for elig ($321.60) >= standard of need ($320) → NOT eligible
141
+ in_tanf_payment_eligible: [true, true, true]
142
+ # Countable for benefit ($150) < standard of need ($320) → eligible
143
+ in_tanf_payment_standard: [320, 320, 320]
144
+ in_tanf_eligible: [false, false, false]
145
+ # Failed countable income test
146
+ in_tanf: [0, 0, 0]
147
+
148
+ - name: Case 5 - Two parent household with one working
149
+ period: 2024-01
150
+ input:
151
+ people:
152
+ person1:
153
+ age: 30
154
+ tanf_gross_earned_income: 300
155
+ person2:
156
+ age: 29
157
+ person3:
158
+ age: 6
159
+ person4:
160
+ age: 3
161
+ spm_units:
162
+ spm_unit:
163
+ members: [person1, person2, person3, person4]
164
+ spm_unit_cash_assets: 1_500
165
+ households:
166
+ household:
167
+ members: [person1, person2, person3, person4]
168
+ state_code: IN
169
+ output:
170
+ spm_unit_size: [4, 4, 4, 4]
171
+ in_tanf_countable_earned_income_for_eligibility: [120.6, 120.6, 120.6, 120.6]
172
+ # $300 - $90 = $210 → $210 - $30 = $180 → $180 * 0.67 = $120.60
173
+ in_tanf_countable_income_for_eligibility: [120.6, 120.6, 120.6, 120.6]
174
+ in_tanf_countable_earned_income: [75, 75, 75, 75]
175
+ # $300 × 0.25 = $75
176
+ in_tanf_countable_income_for_payment: [75, 75, 75, 75]
177
+ in_tanf_countable_income_eligible: [true, true, true, true]
178
+ # Countable for elig ($120.60) < standard of need ($385) → eligible
179
+ in_tanf_payment_eligible: [true, true, true, true]
180
+ # Countable for benefit ($75) < standard of need ($385) → eligible
181
+ in_tanf_payment_standard: [385, 385, 385, 385]
182
+ # Family of 4 → $385
183
+ in_tanf_eligible: [true, true, true, true]
184
+ in_tanf: [310, 310, 310, 310]
185
+ # Max benefit ($385) - countable income ($75) = $310
186
+
187
+ - name: Case 6 - Two earners both get $90 disregard
188
+ period: 2024-01
189
+ input:
190
+ people:
191
+ person1:
192
+ age: 30
193
+ tanf_gross_earned_income: 200
194
+ person2:
195
+ age: 28
196
+ tanf_gross_earned_income: 200
197
+ person3:
198
+ age: 8
199
+ spm_units:
200
+ spm_unit:
201
+ members: [person1, person2, person3]
202
+ spm_unit_cash_assets: 500
203
+ households:
204
+ household:
205
+ members: [person1, person2, person3]
206
+ state_code: IN
207
+ output:
208
+ spm_unit_size: [3, 3, 3]
209
+ in_tanf_countable_earned_income_for_eligibility: [127.3, 127.3, 127.3]
210
+ # Person1: $200 - $90 = $110
211
+ # Person2: $200 - $90 = $110
212
+ # Unit total: $220 - $30 = $190 → $190 * 0.67 = $127.30
213
+ in_tanf_countable_income_for_eligibility: [127.3, 127.3, 127.3]
214
+ in_tanf_countable_earned_income: [100, 100, 100]
215
+ # ($200 + $200) × 0.25 = $100
216
+ in_tanf_countable_income_for_payment: [100, 100, 100]
217
+ in_tanf_countable_income_eligible: [true, true, true]
218
+ # Countable for elig ($127.30) < standard of need ($320) → eligible
219
+ in_tanf_payment_eligible: [true, true, true]
220
+ # Countable for benefit ($100) < standard of need ($320) → eligible
221
+ in_tanf_payment_standard: [320, 320, 320]
222
+ in_tanf_eligible: [true, true, true]
223
+ in_tanf: [220, 220, 220]
224
+ # Max benefit ($320) - countable income ($100) = $220
225
+
226
+ - name: Case 7 - Single adult with no children (not demographically eligible)
227
+ period: 2024-01
228
+ input:
229
+ people:
230
+ person1:
231
+ age: 25
232
+ spm_units:
233
+ spm_unit:
234
+ members: [person1]
235
+ spm_unit_cash_assets: 300
236
+ households:
237
+ household:
238
+ members: [person1]
239
+ state_code: IN
240
+ output:
241
+ spm_unit_size: 1
242
+ in_tanf_countable_income_for_payment: 0
243
+ in_tanf_countable_income_eligible: true
244
+ in_tanf_payment_eligible: true
245
+ in_tanf_payment_standard: 155
246
+ # Family of 1 → $155
247
+ in_tanf_eligible: false
248
+ # Single adult with no children → not demographically eligible
249
+ in_tanf: 0
@@ -0,0 +1,38 @@
1
+ - name: No assets means zero countable resources
2
+ period: 2024-01
3
+ input:
4
+ state_code: IN
5
+ # SPM unit assets currently returns 0 in baseline
6
+ spm_unit_assets: 0
7
+ output:
8
+ in_tanf_countable_resources: 0
9
+
10
+ - name: Non-vehicle assets are fully countable
11
+ period: 2024-01
12
+ input:
13
+ state_code: IN
14
+ spm_unit_assets: 5_000
15
+ household_vehicles_value: 0 # No vehicle
16
+ output:
17
+ in_tanf_countable_resources: 5_000
18
+ # 5_000 - 0 vehicle exclusion = 5_000
19
+
20
+ - name: Vehicle exclusion reduces countable resources
21
+ period: 2024-01
22
+ input:
23
+ state_code: IN
24
+ spm_unit_assets: 25_000 # Includes vehicle value
25
+ household_vehicles_value: 15_000 # Vehicle worth $15,000
26
+ output:
27
+ in_tanf_countable_resources: 10_000
28
+ # 25_000 - min(15_000, 20_000) = 25_000 - 15_000 = 10_000
29
+
30
+ - name: Vehicle exclusion capped at limit
31
+ period: 2024-01
32
+ input:
33
+ state_code: IN
34
+ spm_unit_assets: 30_000 # Includes vehicle value
35
+ household_vehicles_value: 25_000 # Vehicle worth more than exclusion limit
36
+ output:
37
+ in_tanf_countable_resources: 10_000
38
+ # 30_000 - min(25_000, 20_000) = 30_000 - 20_000 = 10_000
@@ -0,0 +1,60 @@
1
+ - name: Resources below application limit passes eligibility
2
+ period: 2024-01
3
+ input:
4
+ state_code: IN
5
+ in_tanf_countable_resources: 500 # Below $1_000 limit
6
+ is_tanf_enrolled: false # Not enrolled in TANF
7
+ output:
8
+ in_tanf_resources_eligible: true
9
+ # 500 <= 1_000 = true
10
+
11
+ - name: Resources at application limit passes eligibility
12
+ period: 2024-01
13
+ input:
14
+ state_code: IN
15
+ in_tanf_countable_resources: 1_000 # At $1_000 limit
16
+ is_tanf_enrolled: false # Not enrolled in TANF
17
+ output:
18
+ in_tanf_resources_eligible: true
19
+ # 1_000 <= 1_000 = true
20
+
21
+ - name: Resources above application limit fails eligibility
22
+ period: 2024-01
23
+ input:
24
+ state_code: IN
25
+ in_tanf_countable_resources: 1_500 # Above $1_000 limit
26
+ is_tanf_enrolled: false # Not enrolled in TANF
27
+ output:
28
+ in_tanf_resources_eligible: false
29
+ # 1_500 <= 1_000 = false
30
+
31
+ - name: Resources below limit while enrolled passes eligibility
32
+ period: 2024-01
33
+ input:
34
+ state_code: IN
35
+ in_tanf_countable_resources: 5_000 # Below $10_000 ongoing limit
36
+ is_tanf_enrolled: true # Currently enrolled in TANF
37
+ output:
38
+ in_tanf_resources_eligible: true
39
+ # Uses limit_while_receiving parameter: $10_000
40
+ # 5_000 <= 10_000 = true
41
+
42
+ - name: Resources above limit while enrolled fails eligibility
43
+ period: 2024-01
44
+ input:
45
+ state_code: IN
46
+ in_tanf_countable_resources: 15_000 # Above $10_000 ongoing limit
47
+ is_tanf_enrolled: true # Currently enrolled in TANF
48
+ output:
49
+ in_tanf_resources_eligible: false
50
+ # 15_000 <= 10_000 = false
51
+
52
+ - name: Zero resources always passes eligibility
53
+ period: 2024-01
54
+ input:
55
+ state_code: IN
56
+ in_tanf_countable_resources: 0
57
+ is_tanf_enrolled: false
58
+ output:
59
+ in_tanf_resources_eligible: true
60
+ # 0 <= 1_000 = true
@@ -0,0 +1,78 @@
1
+ - name: Eligible with low resources and low income
2
+ period: 2024-01
3
+ input:
4
+ people:
5
+ parent:
6
+ age: 30
7
+ is_pregnant: false
8
+ employment_income:
9
+ 2024: 12_000 # $1_000/month
10
+ child:
11
+ age: 5
12
+ spm_units:
13
+ spm_unit:
14
+ members: [parent, child]
15
+ spm_unit_assets: 500 # Below $1_000 limit
16
+ households:
17
+ household:
18
+ members: [parent, child]
19
+ state_code: IN
20
+ household_vehicles_value: 0 # No vehicle
21
+ output:
22
+ in_tanf_countable_resources: 500 # 500 - 0 vehicle exclusion = 500
23
+ in_tanf_resources_eligible: true
24
+ in_tanf_eligible: true
25
+ # Meets all eligibility criteria
26
+
27
+ - name: Ineligible due to excess resources despite low income
28
+ period: 2024-01
29
+ input:
30
+ people:
31
+ parent:
32
+ age: 30
33
+ is_pregnant: false
34
+ employment_income:
35
+ 2024: 12_000 # $1_000/month (low income)
36
+ child:
37
+ age: 5
38
+ spm_units:
39
+ spm_unit:
40
+ members: [parent, child]
41
+ spm_unit_assets: 25_000 # Well above limits (includes vehicle)
42
+ households:
43
+ household:
44
+ members: [parent, child]
45
+ state_code: IN
46
+ household_vehicles_value: 20_000 # Vehicle at exclusion limit
47
+ output:
48
+ in_tanf_countable_resources: 5_000 # 25_000 - min(20_000, 20_000) = 5_000
49
+ in_tanf_resources_eligible: false # 5_000 > 1_000 application limit
50
+ in_tanf_eligible: false # Fails resources test
51
+ # Income eligible but resources too high
52
+
53
+ - name: Enrolled recipient can have higher resources
54
+ period: 2024-01
55
+ input:
56
+ people:
57
+ parent:
58
+ age: 30
59
+ is_pregnant: false
60
+ employment_income:
61
+ 2024: 12_000
62
+ child:
63
+ age: 5
64
+ spm_units:
65
+ spm_unit:
66
+ members: [parent, child]
67
+ spm_unit_assets: 25_000 # Above application limit but below ongoing (includes vehicle)
68
+ is_tanf_enrolled: true # Currently enrolled
69
+ households:
70
+ household:
71
+ members: [parent, child]
72
+ state_code: IN
73
+ household_vehicles_value: 20_000 # Vehicle at exclusion limit
74
+ output:
75
+ in_tanf_countable_resources: 5_000 # 25_000 - min(20_000, 20_000) = 5_000
76
+ in_tanf_resources_eligible: true # 5_000 < 10_000 ongoing limit
77
+ in_tanf_eligible: true
78
+ # Uses higher limit for enrolled recipients
@@ -0,0 +1,176 @@
1
+ - name: Pre capital gains subtraction law and qualified premiums, cap gains
2
+ period: 2024
3
+ absolute_error_margin: 0
4
+ input:
5
+ people:
6
+ person1:
7
+ long_term_capital_gains: 1_000
8
+ short_term_capital_gains: 500
9
+ health_insurance_premiums: 12_000
10
+ medical_out_of_pocket_expenses: 12_000
11
+ tax_units:
12
+ tax_unit1:
13
+ members: [person1]
14
+ medical_expense_deduction: 0
15
+ tax_unit_itemizes: false
16
+ taxable_income: 100_000
17
+ households:
18
+ household1:
19
+ members: [person1]
20
+ state_code: MO
21
+ output:
22
+ mo_capital_gains_subtraction: 0
23
+
24
+
25
+ - name: Pre capital gains subtraction law and qualified premiums, health insurance
26
+ period: 2024
27
+ absolute_error_margin: 0
28
+ input:
29
+ people:
30
+ person1:
31
+ long_term_capital_gains: 1_000
32
+ short_term_capital_gains: 500
33
+ health_insurance_premiums: 12_000
34
+ medical_out_of_pocket_expenses: 12_000
35
+ tax_units:
36
+ tax_unit1:
37
+ members: [person1]
38
+ medical_expense_deduction: 0
39
+ tax_unit_itemizes: false
40
+ taxable_income: 100_000
41
+ households:
42
+ household1:
43
+ members: [person1]
44
+ state_code: MO
45
+ output:
46
+ mo_qualified_health_insurance_premiums: 12_000
47
+
48
+
49
+ - name: Pre capital gains subtraction law and qualified premiums, subtractions
50
+ period: 2024
51
+ absolute_error_margin: 0
52
+ input:
53
+ people:
54
+ person1:
55
+ long_term_capital_gains: 1_000
56
+ short_term_capital_gains: 500
57
+ health_insurance_premiums: 12_000
58
+ medical_out_of_pocket_expenses: 12_000
59
+ tax_units:
60
+ tax_unit1:
61
+ members: [person1]
62
+ medical_expense_deduction: 0
63
+ tax_unit_itemizes: false
64
+ taxable_income: 100_000
65
+ households:
66
+ household1:
67
+ members: [person1]
68
+ state_code: MO
69
+ output:
70
+ mo_agi_subtractions: 12_000
71
+
72
+
73
+ - name: Post capital gains subtraction law and qualified premiums, capital gains
74
+ period: 2025
75
+ absolute_error_margin: 0
76
+ input:
77
+ people:
78
+ person1:
79
+ long_term_capital_gains: 1_000
80
+ short_term_capital_gains: 500
81
+ health_insurance_premiums: 12_000
82
+ medical_out_of_pocket_expenses: 12_000
83
+ tax_units:
84
+ tax_unit1:
85
+ members: [person1]
86
+ medical_expense_deduction: 0
87
+ tax_unit_itemizes: false
88
+ taxable_income: 100_000
89
+ households:
90
+ household1:
91
+ members: [person1]
92
+ state_code: MO
93
+ output:
94
+ mo_capital_gains_subtraction: 1_000
95
+
96
+
97
+ - name: Post capital gains subtraction law and qualified premiums, health insurance
98
+ period: 2025
99
+ absolute_error_margin: 0
100
+ input:
101
+ people:
102
+ person1:
103
+ long_term_capital_gains: 1_000
104
+ short_term_capital_gains: 500
105
+ health_insurance_premiums: 12_000
106
+ medical_out_of_pocket_expenses: 12_000
107
+ tax_units:
108
+ tax_unit1:
109
+ members: [person1]
110
+ medical_expense_deduction: 0
111
+ tax_unit_itemizes: false
112
+ taxable_income: 100_000
113
+ households:
114
+ household1:
115
+ members: [person1]
116
+ state_code: MO
117
+ output:
118
+ mo_qualified_health_insurance_premiums: 12_000
119
+
120
+
121
+ - name: Post capital gains subtraction law and qualified premiums, subtractions
122
+ period: 2025
123
+ absolute_error_margin: 0
124
+ input:
125
+ people:
126
+ person1:
127
+ long_term_capital_gains: 1_000
128
+ short_term_capital_gains: 500
129
+ health_insurance_premiums: 12_000
130
+ medical_out_of_pocket_expenses: 12_000
131
+ tax_units:
132
+ tax_unit1:
133
+ members: [person1]
134
+ medical_expense_deduction: 0
135
+ tax_unit_itemizes: false
136
+ taxable_income: 100_000
137
+ households:
138
+ household1:
139
+ members: [person1]
140
+ state_code: MO
141
+ output:
142
+ mo_agi_subtractions: 13_000
143
+
144
+
145
+ - name: Married couple - capital gains allocated by person
146
+ period: 2025
147
+ absolute_error_margin: 0
148
+ input:
149
+ people:
150
+ person1:
151
+ long_term_capital_gains: 6_000
152
+ short_term_capital_gains: 0
153
+ health_insurance_premiums: 6_000
154
+ medical_out_of_pocket_expenses: 6_000
155
+ person2:
156
+ long_term_capital_gains: 4_000
157
+ short_term_capital_gains: 0
158
+ health_insurance_premiums: 6_000
159
+ medical_out_of_pocket_expenses: 6_000
160
+ tax_units:
161
+ tax_unit1:
162
+ members: [person1, person2]
163
+ medical_expense_deduction: 0
164
+ tax_unit_itemizes: false
165
+ taxable_income: 100_000
166
+ households:
167
+ household1:
168
+ members: [person1, person2]
169
+ state_code: MO
170
+ output:
171
+ # Person-level capital gains subtraction allocation: 60%/40% of 10_000
172
+ mo_capital_gains_subtraction_person: [6_000, 4_000]
173
+ # Person-level health insurance: 50%/50% of 12_000
174
+ mo_qualified_health_insurance_premiums: [6_000, 6_000]
175
+ # Total subtractions per person: 6_000+6_000=12_000 and 4_000+6_000=10_000
176
+ mo_agi_subtractions: [12_000, 10_000]