policyengine-us 1.413.0__py3-none-any.whl → 1.439.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 (480) hide show
  1. policyengine_us/parameters/gov/aca/state_rating_area_cost.yaml +511 -12
  2. policyengine_us/parameters/gov/bls/cpi/c_cpi_u.yaml +23 -6
  3. policyengine_us/parameters/gov/bls/cpi/cpi_u.yaml +21 -18
  4. policyengine_us/parameters/gov/bls/cpi/cpi_w.yaml +25 -22
  5. policyengine_us/parameters/gov/contrib/aca/ptc_simplified_bracket/brackets.yaml +6 -6
  6. policyengine_us/parameters/gov/contrib/aca/ptc_simplified_bracket/income_eligibility.yaml +6 -6
  7. policyengine_us/parameters/gov/contrib/congress/tlaib/economic_dignity_for_all_agenda/end_child_poverty_act/adult_dependent_credit/amount.yaml +9 -0
  8. policyengine_us/parameters/gov/contrib/congress/tlaib/economic_dignity_for_all_agenda/end_child_poverty_act/adult_dependent_credit/min_age.yaml +8 -0
  9. policyengine_us/parameters/gov/contrib/congress/tlaib/economic_dignity_for_all_agenda/end_child_poverty_act/child_benefit/age_limit.yaml +8 -0
  10. policyengine_us/parameters/gov/contrib/congress/tlaib/economic_dignity_for_all_agenda/end_child_poverty_act/filer_credit/amount.yaml +20 -0
  11. policyengine_us/parameters/gov/contrib/congress/tlaib/economic_dignity_for_all_agenda/end_child_poverty_act/filer_credit/eligibility/max_age.yaml +10 -0
  12. policyengine_us/parameters/gov/contrib/congress/tlaib/economic_dignity_for_all_agenda/end_child_poverty_act/filer_credit/eligibility/min_age.yaml +8 -0
  13. policyengine_us/parameters/gov/contrib/congress/tlaib/economic_dignity_for_all_agenda/end_child_poverty_act/filer_credit/phase_out/rate.yaml +8 -0
  14. policyengine_us/parameters/gov/contrib/congress/tlaib/economic_dignity_for_all_agenda/end_child_poverty_act/filer_credit/phase_out/start.yaml +20 -0
  15. policyengine_us/parameters/gov/contrib/congress/tlaib/economic_dignity_for_all_agenda/end_child_poverty_act/in_effect.yaml +8 -0
  16. policyengine_us/parameters/gov/contrib/ctc/per_child_phase_out/avoid_overlap.yaml +7 -0
  17. policyengine_us/parameters/gov/contrib/harris/capital_gains/rates.yaml +12 -0
  18. policyengine_us/parameters/gov/contrib/harris/capital_gains/thresholds.yaml +168 -0
  19. policyengine_us/parameters/gov/contrib/states/ri/ctc/age_limit.yaml +9 -0
  20. policyengine_us/parameters/gov/contrib/states/ri/ctc/amount.yaml +9 -0
  21. policyengine_us/parameters/gov/contrib/states/ri/ctc/in_effect.yaml +9 -0
  22. policyengine_us/parameters/gov/contrib/states/ri/ctc/phaseout/rate.yaml +9 -0
  23. policyengine_us/parameters/gov/contrib/states/ri/ctc/phaseout/threshold.yaml +23 -0
  24. policyengine_us/parameters/gov/contrib/states/ri/ctc/refundability/cap.yaml +9 -0
  25. policyengine_us/parameters/gov/contrib/states/ri/ctc/young_child_boost/age_limit.yaml +9 -0
  26. policyengine_us/parameters/gov/contrib/states/ri/ctc/young_child_boost/amount.yaml +9 -0
  27. policyengine_us/parameters/gov/contrib/states/ri/dependent_exemption/age_limit/in_effect.yaml +9 -0
  28. policyengine_us/parameters/gov/contrib/states/ri/dependent_exemption/age_limit/threshold.yaml +9 -0
  29. policyengine_us/parameters/gov/contrib/states/ri/dependent_exemption/amount.yaml +15 -0
  30. policyengine_us/parameters/gov/contrib/states/ri/dependent_exemption/in_effect.yaml +9 -0
  31. policyengine_us/parameters/gov/contrib/states/ri/dependent_exemption/phaseout/rate.yaml +9 -0
  32. policyengine_us/parameters/gov/contrib/states/ri/dependent_exemption/phaseout/threshold.yaml +23 -0
  33. policyengine_us/parameters/gov/dhs/immigration/qualified_noncitizen_status.yaml +18 -0
  34. policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/income/limit/couple.yaml +60 -51
  35. policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/income/limit/individual.yaml +60 -51
  36. policyengine_us/parameters/gov/hhs/tanf/cash/income/sources/earned.yaml +13 -0
  37. policyengine_us/parameters/gov/hhs/tanf/cash/income/sources/unearned.yaml +23 -0
  38. policyengine_us/parameters/gov/irs/ald/student_loan_interest/reduction/start.yaml +7 -1
  39. policyengine_us/parameters/gov/irs/capital_gains/rates.yaml +17 -0
  40. policyengine_us/parameters/gov/irs/capital_gains/thresholds.yaml +182 -0
  41. policyengine_us/parameters/gov/irs/credits/ctc/amount/base.yaml +14 -9
  42. policyengine_us/parameters/gov/irs/credits/ctc/refundable/individual_max.yaml +14 -7
  43. policyengine_us/parameters/gov/irs/credits/eitc/max.yaml +73 -81
  44. policyengine_us/parameters/gov/irs/deductions/qbi/phase_out/start.yaml +19 -7
  45. policyengine_us/parameters/gov/irs/deductions/standard/aged_or_blind/amount.yaml +10 -52
  46. policyengine_us/parameters/gov/irs/deductions/standard/amount.yaml +16 -59
  47. policyengine_us/parameters/gov/irs/gross_income/retirement_contributions/catch_up/limit/401k.yaml +8 -1
  48. policyengine_us/parameters/gov/irs/gross_income/retirement_contributions/catch_up/limit/ira.yaml +7 -0
  49. policyengine_us/parameters/gov/irs/gross_income/retirement_contributions/limit/401k.yaml +6 -0
  50. policyengine_us/parameters/gov/irs/gross_income/retirement_contributions/limit/ira.yaml +5 -0
  51. policyengine_us/parameters/gov/irs/income/amt/exemption/amount.yaml +15 -59
  52. policyengine_us/parameters/gov/irs/income/amt/exemption/phase_out/start.yaml +11 -60
  53. policyengine_us/parameters/gov/irs/income/bracket.yaml +114 -213
  54. policyengine_us/parameters/gov/local/tx/harris/rides/age_threshold.yaml +13 -0
  55. policyengine_us/parameters/gov/local/tx/harris/rides/customer_payment_rate.yaml +12 -0
  56. policyengine_us/parameters/gov/states/ca/tax/income/agi/subtractions.yaml +1 -0
  57. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/amount/joint.yaml +10 -0
  58. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/amount/single.yaml +10 -0
  59. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/income_limit/joint.yaml +10 -0
  60. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/income_limit/single.yaml +10 -0
  61. policyengine_us/parameters/gov/states/co/tax/income/credits/refundable.yaml +11 -0
  62. policyengine_us/parameters/gov/states/co/tax/income/credits/sales_tax_refund/amount/scale.yaml +1 -1
  63. policyengine_us/parameters/gov/states/co/tax/income/credits/tabor/joint.yaml +12 -0
  64. policyengine_us/parameters/gov/states/co/tax/income/credits/tabor/single.yaml +12 -0
  65. policyengine_us/parameters/gov/states/de/tax/income/credits/refundable.yaml +2 -2
  66. policyengine_us/parameters/gov/states/de/tax/income/credits/relief_rebate/amount.yaml +1 -1
  67. policyengine_us/parameters/gov/states/ga/tax/income/credits/itemizer/amount.yaml +14 -0
  68. policyengine_us/parameters/gov/states/ga/tax/income/credits/non_refundable.yaml +8 -2
  69. policyengine_us/parameters/gov/states/ga/tax/income/credits/surplus_tax_rebate/amount.yaml +5 -5
  70. policyengine_us/parameters/gov/states/hi/tax/income/alternative_tax/availability.yaml +2 -3
  71. policyengine_us/parameters/gov/states/hi/tax/income/credits/act_115_rebate/joint.yaml +20 -0
  72. policyengine_us/parameters/gov/states/hi/tax/income/credits/act_115_rebate/single.yaml +20 -0
  73. policyengine_us/parameters/gov/states/hi/tax/income/credits/refundable.yaml +6 -0
  74. policyengine_us/parameters/gov/states/id/tax/income/credits/2022_rebate/floor.yaml +1 -1
  75. policyengine_us/parameters/gov/states/id/tax/income/credits/2022_rebate/rate.yaml +1 -1
  76. policyengine_us/parameters/gov/states/id/tax/income/credits/refundable.yaml +4 -4
  77. policyengine_us/parameters/gov/states/id/tax/income/credits/special_seasonal_rebate/floor.yaml +5 -5
  78. policyengine_us/parameters/gov/states/id/tax/income/credits/special_seasonal_rebate/rate.yaml +1 -1
  79. policyengine_us/parameters/gov/states/il/tax/income/credits/income_tax_rebate/amount/dependent.yaml +10 -0
  80. policyengine_us/parameters/gov/states/il/tax/income/credits/income_tax_rebate/amount/joint.yaml +20 -0
  81. policyengine_us/parameters/gov/states/il/tax/income/credits/income_tax_rebate/amount/other.yaml +20 -0
  82. policyengine_us/parameters/gov/states/il/tax/income/credits/income_tax_rebate/max_dependents.yaml +10 -0
  83. policyengine_us/parameters/gov/states/il/tax/income/credits/refundable.yaml +5 -0
  84. policyengine_us/parameters/gov/states/in/tax/income/credits/automatic_refund_rebate/amount/additional.yaml +10 -0
  85. policyengine_us/parameters/gov/states/in/tax/income/credits/automatic_refund_rebate/amount/base.yaml +12 -0
  86. policyengine_us/parameters/gov/states/in/tax/income/credits/refundable.yaml +6 -1
  87. policyengine_us/parameters/gov/states/ma/dta/tcap/gross_income/earned.yaml +2 -2
  88. policyengine_us/parameters/gov/states/ma/eec/ccfa/income/countable_income/sources.yaml +3 -3
  89. policyengine_us/parameters/gov/states/ma/tax/income/credits/refundable.yaml +12 -0
  90. policyengine_us/parameters/gov/states/ma/tax/income/credits/taxpayer_refund_rebate/rate.yaml +10 -0
  91. policyengine_us/parameters/gov/states/me/tax/income/credits/refundable.yaml +6 -0
  92. policyengine_us/parameters/gov/states/me/tax/income/credits/relief_rebate/amount.yaml +10 -0
  93. policyengine_us/parameters/gov/states/me/tax/income/credits/relief_rebate/income_limit.yaml +21 -0
  94. policyengine_us/parameters/gov/states/mn/tax/income/credits/cwfc/ctc/age_limit.yaml +14 -0
  95. policyengine_us/parameters/gov/states/mt/tax/income/credits/non_refundable.yaml +1 -4
  96. policyengine_us/parameters/gov/states/mt/tax/income/credits/rebate/amount.yaml +5 -5
  97. policyengine_us/parameters/gov/states/nm/tax/income/modified_gross_income.yaml +0 -1
  98. policyengine_us/parameters/gov/states/pa/tax/income/credits/eitc/match.yaml +10 -0
  99. policyengine_us/parameters/gov/states/pa/tax/income/credits/refundable.yaml +6 -0
  100. policyengine_us/parameters/gov/states/pa/tax/income/forgiveness/base.yaml +0 -1
  101. policyengine_us/parameters/gov/states/pa/tax/income/forgiveness/dependent_rate.yaml +0 -1
  102. policyengine_us/parameters/gov/states/pa/tax/income/forgiveness/eligibility_income_sources.yaml +1 -1
  103. policyengine_us/parameters/gov/states/pa/tax/income/forgiveness/rate_increment.yaml +0 -1
  104. policyengine_us/parameters/gov/states/pa/tax/income/forgiveness/tax_back.yaml +0 -1
  105. policyengine_us/parameters/gov/states/pa/tax/income/rate.yaml +0 -1
  106. policyengine_us/parameters/gov/states/ri/tax/income/credits/child_tax_rebate/amount.yaml +1 -1
  107. policyengine_us/parameters/gov/states/ri/tax/income/credits/child_tax_rebate/limit/age.yaml +1 -1
  108. policyengine_us/parameters/gov/states/ri/tax/income/credits/child_tax_rebate/limit/child.yaml +1 -1
  109. policyengine_us/parameters/gov/states/ri/tax/income/credits/child_tax_rebate/limit/income.yaml +5 -5
  110. policyengine_us/parameters/gov/states/ri/tax/income/credits/refundable.yaml +1 -4
  111. policyengine_us/parameters/gov/states/sc/tax/income/credits/2022_rebate/amount.yaml +12 -0
  112. policyengine_us/parameters/gov/states/sc/tax/income/credits/non_refundable.yaml +7 -1
  113. policyengine_us/parameters/gov/states/tx/dta/csfp/fpg_limit.yaml +10 -0
  114. policyengine_us/parameters/gov/states/tx/fpp/age_threshold.yaml +10 -0
  115. policyengine_us/parameters/gov/states/tx/fpp/annual_benefit.yaml +12 -0
  116. policyengine_us/parameters/gov/states/tx/fpp/fpg_percentage.yaml +15 -0
  117. policyengine_us/parameters/gov/states/tx/tanf/age_threshold/minor_child.yaml +13 -0
  118. policyengine_us/parameters/gov/states/tx/tanf/age_threshold/student_dependent.yaml +13 -0
  119. policyengine_us/parameters/gov/states/tx/tanf/income/deductions/child_support.yaml +14 -0
  120. policyengine_us/parameters/gov/states/tx/tanf/income/deductions/dependent_care.yaml +23 -0
  121. policyengine_us/parameters/gov/states/tx/tanf/income/deductions/work_expense.yaml +13 -0
  122. policyengine_us/parameters/gov/states/tx/tanf/income/disregards/applicant_fraction.yaml +12 -0
  123. policyengine_us/parameters/gov/states/tx/tanf/income/disregards/continuing_recipient_cap.yaml +13 -0
  124. policyengine_us/parameters/gov/states/tx/tanf/income/disregards/continuing_recipient_months.yaml +14 -0
  125. policyengine_us/parameters/gov/states/tx/tanf/income/disregards/continuing_recipient_rate.yaml +13 -0
  126. policyengine_us/parameters/gov/states/tx/tanf/income/sources/earned.yaml +15 -0
  127. policyengine_us/parameters/gov/states/tx/tanf/income/sources/unearned.yaml +28 -0
  128. policyengine_us/parameters/gov/states/tx/tanf/minimum_grant.yaml +13 -0
  129. policyengine_us/parameters/gov/states/tx/tanf/needs_standard/budgetary_needs/additional_person.yaml +17 -0
  130. policyengine_us/parameters/gov/states/tx/tanf/needs_standard/budgetary_needs/caretaker_with_second_parent.yaml +81 -0
  131. policyengine_us/parameters/gov/states/tx/tanf/needs_standard/budgetary_needs/caretaker_without_second_parent.yaml +85 -0
  132. policyengine_us/parameters/gov/states/tx/tanf/needs_standard/budgetary_needs/non_caretaker.yaml +85 -0
  133. policyengine_us/parameters/gov/states/tx/tanf/needs_standard/recognizable_needs/additional_person.yaml +17 -0
  134. policyengine_us/parameters/gov/states/tx/tanf/needs_standard/recognizable_needs/rate.yaml +17 -0
  135. policyengine_us/parameters/gov/states/tx/tanf/ottanf/payment_amount.yaml +13 -0
  136. policyengine_us/parameters/gov/states/tx/tanf/payment_standard/additional_person.yaml +19 -0
  137. policyengine_us/parameters/gov/states/tx/tanf/payment_standard/caretaker_with_second_parent.yaml +105 -0
  138. policyengine_us/parameters/gov/states/tx/tanf/payment_standard/caretaker_without_second_parent.yaml +112 -0
  139. policyengine_us/parameters/gov/states/tx/tanf/payment_standard/non_caretaker.yaml +111 -0
  140. policyengine_us/parameters/gov/states/tx/tanf/resources/resource_limit.yaml +13 -0
  141. policyengine_us/parameters/gov/states/tx/tanf/resources/vehicle_exemption.yaml +11 -0
  142. policyengine_us/parameters/gov/states/tx/twc/README.md +1 -0
  143. policyengine_us/parameters/gov/states/tx/twc/ccs/README.md +1 -0
  144. policyengine_us/parameters/gov/states/tx/twc/ccs/age_threshold/child.yaml +11 -0
  145. policyengine_us/parameters/gov/states/tx/twc/ccs/age_threshold/disabled_child.yaml +11 -0
  146. policyengine_us/parameters/gov/states/tx/twc/ccs/age_threshold/infant.yaml +11 -0
  147. policyengine_us/parameters/gov/states/tx/twc/ccs/age_threshold/school_age.yaml +11 -0
  148. policyengine_us/parameters/gov/states/tx/twc/ccs/age_threshold/toddler.yaml +11 -0
  149. policyengine_us/parameters/gov/states/tx/twc/ccs/assets/limit.yaml +11 -0
  150. policyengine_us/parameters/gov/states/tx/twc/ccs/copay/rate/additional_child.yaml +13 -0
  151. policyengine_us/parameters/gov/states/tx/twc/ccs/copay/rate/first_child.yaml +55 -0
  152. policyengine_us/parameters/gov/states/tx/twc/ccs/copay/rate/maximum.yaml +11 -0
  153. policyengine_us/parameters/gov/states/tx/twc/ccs/income/smi_rate.yaml +11 -0
  154. policyengine_us/parameters/gov/states/tx/twc/ccs/income/sources.yaml +23 -0
  155. policyengine_us/parameters/gov/states/tx/twc/ccs/payment/rates.yaml +10459 -0
  156. policyengine_us/parameters/gov/states/tx/twc/ccs/region/alamo.yaml +25 -0
  157. policyengine_us/parameters/gov/states/tx/twc/ccs/region/borderplex.yaml +18 -0
  158. policyengine_us/parameters/gov/states/tx/twc/ccs/region/brazos_valley.yaml +19 -0
  159. policyengine_us/parameters/gov/states/tx/twc/ccs/region/cameron_county.yaml +13 -0
  160. policyengine_us/parameters/gov/states/tx/twc/ccs/region/capital_area.yaml +13 -0
  161. policyengine_us/parameters/gov/states/tx/twc/ccs/region/central_texas.yaml +19 -0
  162. policyengine_us/parameters/gov/states/tx/twc/ccs/region/coastal_bend.yaml +24 -0
  163. policyengine_us/parameters/gov/states/tx/twc/ccs/region/concho_valley.yaml +25 -0
  164. policyengine_us/parameters/gov/states/tx/twc/ccs/region/dallas_county.yaml +13 -0
  165. policyengine_us/parameters/gov/states/tx/twc/ccs/region/deep_east.yaml +24 -0
  166. policyengine_us/parameters/gov/states/tx/twc/ccs/region/east_texas.yaml +26 -0
  167. policyengine_us/parameters/gov/states/tx/twc/ccs/region/golden_crescent.yaml +19 -0
  168. policyengine_us/parameters/gov/states/tx/twc/ccs/region/gulf_coast.yaml +25 -0
  169. policyengine_us/parameters/gov/states/tx/twc/ccs/region/heart_of_texas.yaml +18 -0
  170. policyengine_us/parameters/gov/states/tx/twc/ccs/region/lower_rio.yaml +15 -0
  171. policyengine_us/parameters/gov/states/tx/twc/ccs/region/middle_rio.yaml +21 -0
  172. policyengine_us/parameters/gov/states/tx/twc/ccs/region/north_central.yaml +26 -0
  173. policyengine_us/parameters/gov/states/tx/twc/ccs/region/north_texas.yaml +23 -0
  174. policyengine_us/parameters/gov/states/tx/twc/ccs/region/northeast_texas.yaml +21 -0
  175. policyengine_us/parameters/gov/states/tx/twc/ccs/region/panhandle.yaml +38 -0
  176. policyengine_us/parameters/gov/states/tx/twc/ccs/region/permian_basin.yaml +29 -0
  177. policyengine_us/parameters/gov/states/tx/twc/ccs/region/rural_capital.yaml +21 -0
  178. policyengine_us/parameters/gov/states/tx/twc/ccs/region/south_plains.yaml +27 -0
  179. policyengine_us/parameters/gov/states/tx/twc/ccs/region/south_texas.yaml +15 -0
  180. policyengine_us/parameters/gov/states/tx/twc/ccs/region/southeast.yaml +15 -0
  181. policyengine_us/parameters/gov/states/tx/twc/ccs/region/tarrant_county.yaml +13 -0
  182. policyengine_us/parameters/gov/states/tx/twc/ccs/region/texoma.yaml +15 -0
  183. policyengine_us/parameters/gov/states/tx/twc/ccs/region/west_central.yaml +31 -0
  184. policyengine_us/parameters/gov/states/tx/twc/ccs/work_requirements/single_parent.yaml +11 -0
  185. policyengine_us/parameters/gov/states/tx/twc/ccs/work_requirements/two_parent.yaml +11 -0
  186. policyengine_us/parameters/gov/states/tx/uct/lifeline/fpg_limit.yaml +10 -0
  187. policyengine_us/parameters/gov/states/tx/uct/lifeline/supplement.yaml +10 -0
  188. policyengine_us/parameters/gov/states/va/tax/income/credits/non_refundable.yaml +5 -1
  189. policyengine_us/parameters/gov/states/va/tax/income/rebate/amount.yaml +10 -0
  190. policyengine_us/parameters/gov/territories/pr/tax/income/credits/refundable.yaml +2 -0
  191. policyengine_us/parameters/gov/territories/pr/tax/income/tax_rate/amount.yaml +35 -0
  192. policyengine_us/parameters/gov/usda/snap/work_requirements/general/age_threshold/caring_dependent_child.yaml +1 -1
  193. policyengine_us/parameters/gov/usda/snap/work_requirements/general/age_threshold/exempted.yaml +1 -1
  194. policyengine_us/parameters/gov/usda/snap/work_requirements/general/weekly_hours_threshold.yaml +1 -1
  195. policyengine_us/reforms/aca/aca_ptc_additional_bracket.py +2 -2
  196. policyengine_us/reforms/aca/aca_ptc_simplified_bracket.py +2 -2
  197. policyengine_us/reforms/additional_tax_bracket/additional_tax_bracket_reform.py +10 -7
  198. policyengine_us/reforms/biden/budget_2025/capital_gains_tax_increase.py +5 -7
  199. policyengine_us/reforms/congress/tlaib/__init__.py +5 -0
  200. policyengine_us/reforms/congress/tlaib/economic_dignity_for_all_agenda/__init__.py +9 -0
  201. policyengine_us/reforms/congress/tlaib/economic_dignity_for_all_agenda/edaa_end_child_poverty_act.py +237 -0
  202. policyengine_us/reforms/ctc/ctc_minimum_refundable_amount.py +11 -0
  203. policyengine_us/reforms/ctc/ctc_per_child_phase_out.py +36 -3
  204. policyengine_us/reforms/harris/capital_gains/harris_capital_gains.py +7 -7
  205. policyengine_us/reforms/reforms.py +15 -0
  206. policyengine_us/reforms/states/ri/__init__.py +2 -0
  207. policyengine_us/reforms/states/ri/ctc/__init__.py +1 -0
  208. policyengine_us/reforms/states/ri/ctc/ri_ctc_reform.py +207 -0
  209. policyengine_us/reforms/states/ri/exemption/__init__.py +1 -0
  210. policyengine_us/reforms/states/ri/exemption/ri_exemption_reform.py +167 -0
  211. policyengine_us/tests/policy/baseline/gov/aca/ptc/aca_ptc.yaml +3 -3
  212. policyengine_us/tests/policy/baseline/gov/aca/ptc/aca_required_contribution_percentage.yaml +71 -0
  213. policyengine_us/tests/policy/baseline/gov/aca/ptc/integration.yaml +1 -1
  214. policyengine_us/tests/policy/baseline/gov/aca/ptc/separate_esi.yaml +2 -2
  215. policyengine_us/tests/policy/baseline/gov/ed/pell_grant/pell_grant_simplified_formula_applies.yaml +1 -1
  216. policyengine_us/tests/policy/baseline/gov/fcc/lifeline/is_lifeline_eligible.yaml +10 -0
  217. policyengine_us/tests/policy/baseline/gov/fcc/lifeline/is_lifeline_income_eligible.yaml +47 -0
  218. policyengine_us/tests/policy/baseline/gov/fcc/lifeline/lifeline.yaml +19 -0
  219. policyengine_us/tests/policy/baseline/gov/hhs/tanf/tanf_fpg.yaml +53 -0
  220. policyengine_us/tests/policy/baseline/gov/irs/integration/us_itemize.yaml +1 -1
  221. policyengine_us/tests/policy/baseline/gov/local/tx/harris/in_harris_county_tx.yaml +27 -0
  222. policyengine_us/tests/policy/baseline/gov/local/tx/harris/rides/tx_harris_rides_eligible.yaml +35 -0
  223. policyengine_us/tests/policy/baseline/gov/local/tx/harris/rides/tx_harris_rides_subsidy.yaml +32 -0
  224. policyengine_us/tests/policy/baseline/gov/ssa/ssi/integration_tests.yaml +150 -4
  225. policyengine_us/tests/policy/baseline/gov/states/ca/tax/income/integration.yaml +50 -0
  226. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit.yaml +64 -0
  227. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible.yaml +122 -0
  228. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible_care_worker_count.yaml +65 -0
  229. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/co_tabor_cash_back.yaml +71 -0
  230. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/integration.yaml +38 -0
  231. policyengine_us/tests/policy/baseline/gov/states/ga/tax/income/credits/ga_itemizer_credit.yaml +44 -0
  232. policyengine_us/tests/policy/baseline/gov/states/ga/tax/income/integration.yaml +47 -0
  233. policyengine_us/tests/policy/baseline/gov/states/ga/tax/income/subtractions/retirement/ga_retirement_exclusion_countable_earned_income.yaml +17 -0
  234. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/alternative_tax/hi_alternative_tax_on_capital_gains_eligible.yaml +0 -8
  235. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/cdcc/hi_cdcc.yaml +4 -0
  236. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/cdcc/hi_cdcc_eligible.yaml +15 -0
  237. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/hi_act_115_rebate.yaml +35 -0
  238. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/integration.yaml +159 -0
  239. policyengine_us/tests/policy/baseline/gov/states/il/tax/income/credits/il_income_tax_rebate.yaml +49 -0
  240. policyengine_us/tests/policy/baseline/gov/states/il/tax/income/credits/il_income_tax_rebate_eligible.yaml +35 -0
  241. policyengine_us/tests/policy/baseline/gov/states/in/tax/income/credits/in_automatic_refund_rebate.yaml +47 -0
  242. policyengine_us/tests/policy/baseline/gov/states/ks/tax/income/ks_fstc.yaml +4 -4
  243. policyengine_us/tests/policy/baseline/gov/states/ks/tax/income/ks_integration.yaml +48 -0
  244. policyengine_us/tests/policy/baseline/gov/states/la/tax/income/credits/cdcc/la_non_refundable_cdcc.yaml +5 -5
  245. policyengine_us/tests/policy/baseline/gov/states/la/tax/income/integration.yaml +58 -0
  246. policyengine_us/tests/policy/baseline/gov/states/ma/dta/tcap/eaedc/dependent_care_deduction/ma_eaedc_dependent_care_deduction.yaml +13 -13
  247. policyengine_us/tests/policy/baseline/gov/states/ma/dta/tcap/eaedc/dependent_care_deduction/ma_eaedc_dependent_care_deduction_person.yaml +8 -8
  248. policyengine_us/tests/policy/baseline/gov/states/ma/dta/tcap/eaedc/ma_eaedc.yaml +2 -2
  249. policyengine_us/tests/policy/baseline/gov/states/ma/dta/tcap/tafdc/income/deductions/ma_tafdc_dependent_care_deduction_person.yaml +6 -6
  250. policyengine_us/tests/policy/baseline/gov/states/ma/dta/tcap/tafdc/income/earned/ma_tafdc_partially_disregarded_earned_income.yaml +7 -7
  251. policyengine_us/tests/policy/baseline/gov/states/ma/dta/tcap/tafdc/integration.yaml +14 -14
  252. policyengine_us/tests/policy/baseline/gov/states/ma/dta/tcap/tafdc/ma_tafdc.yaml +1 -1
  253. policyengine_us/tests/policy/baseline/gov/states/ma/eec/ccfa/copay/ma_ccfa_total_copay.yaml +4 -4
  254. policyengine_us/tests/policy/baseline/gov/states/ma/eec/ccfa/eligibility/ma_ccfa_activity_eligible.yaml +20 -20
  255. policyengine_us/tests/policy/baseline/gov/states/ma/eec/ccfa/ma_ccfa.yaml +7 -7
  256. policyengine_us/tests/policy/baseline/gov/states/ma/tax/income/credits/ma_taxpayer_refund_rebate.yaml +42 -0
  257. policyengine_us/tests/policy/baseline/gov/states/ma/tax/income/integration_ma.yaml +6 -0
  258. policyengine_us/tests/policy/baseline/gov/states/me/tax/income/credits/me_relief_rebate.yaml +26 -0
  259. policyengine_us/tests/policy/baseline/gov/states/me/tax/income/credits/me_relief_rebate_eligible.yaml +35 -0
  260. policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/credits/mn_child_and_working_families_credits_ctc_eligible_child.yaml +26 -0
  261. policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/mn_integration.yaml +55 -0
  262. policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/integration.yaml +3 -0
  263. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/credits/cdcc/nj_cdcc.yaml +8 -8
  264. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integation.yaml +57 -0
  265. policyengine_us/tests/policy/baseline/gov/states/nm/tax/income/integration.yaml +60 -0
  266. policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/oh_cdcc.yaml +4 -4
  267. policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/integration.yaml +59 -0
  268. policyengine_us/tests/policy/baseline/gov/states/pa/tax/income/credits/pa_eitc.yaml +26 -0
  269. policyengine_us/tests/policy/baseline/gov/states/pa/tax/income/forgiveness/pa_tax_forgiveness_rate.yaml +5 -11
  270. policyengine_us/tests/policy/baseline/gov/states/pa/tax/income/integration.yaml +54 -0
  271. policyengine_us/tests/policy/baseline/gov/states/ri/tax/income/integration.yaml +47 -0
  272. policyengine_us/tests/policy/baseline/gov/states/sc/tax/income/credits/sc_2022_rebate.yaml +76 -0
  273. policyengine_us/tests/policy/baseline/gov/states/sc/tax/income/credits/sc_cdcc.yaml +9 -9
  274. policyengine_us/tests/policy/baseline/gov/states/sc/tax/income/integration.yaml +58 -0
  275. policyengine_us/tests/policy/baseline/gov/states/tx/dta/csfp/tx_dta_csfp_income_eligible.yaml +15 -0
  276. policyengine_us/tests/policy/baseline/gov/states/tx/fpp/integration.yaml +133 -0
  277. policyengine_us/tests/policy/baseline/gov/states/tx/fpp/tx_fpp_age_eligible.yaml +39 -0
  278. policyengine_us/tests/policy/baseline/gov/states/tx/fpp/tx_fpp_benefit.yaml +39 -0
  279. policyengine_us/tests/policy/baseline/gov/states/tx/fpp/tx_fpp_income_eligible.yaml +53 -0
  280. policyengine_us/tests/policy/baseline/gov/states/tx/fpp/tx_fpp_income_limit.yaml +44 -0
  281. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/assistance_unit/tx_tanf_age_eligible_child.yaml +34 -0
  282. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/assistance_unit/tx_tanf_assistance_unit_size.yaml +62 -0
  283. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/assistance_unit/tx_tanf_categorically_eligible_person.yaml +49 -0
  284. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/assistance_unit/tx_tanf_eligible_child.yaml +34 -0
  285. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/assistance_unit/tx_tanf_eligible_parent.yaml +38 -0
  286. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/eligibility/tx_tanf_budgetary_needs.yaml +65 -0
  287. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/eligibility/tx_tanf_budgetary_needs_test.yaml +30 -0
  288. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/eligibility/tx_tanf_caretaker_type.yaml +116 -0
  289. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/eligibility/tx_tanf_eligible.yaml +123 -0
  290. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/eligibility/tx_tanf_income_eligible.yaml +69 -0
  291. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/eligibility/tx_tanf_recognizable_needs_test.yaml +54 -0
  292. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/eligibility/tx_tanf_resources_eligible.yaml +44 -0
  293. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/income/deductions/tx_tanf_child_support_deduction.yaml +55 -0
  294. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/income/deductions/tx_tanf_dependent_care_deduction.yaml +54 -0
  295. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/income/earned/tx_tanf_countable_earned_income.yaml +39 -0
  296. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/income/earned/tx_tanf_earned_income_after_disregard_person.yaml +36 -0
  297. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/income/tx_tanf_income_for_budgetary_needs_test.yaml +102 -0
  298. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/income/unearned/tx_tanf_countable_unearned_income.yaml +49 -0
  299. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/integration.yaml +291 -0
  300. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/ottanf/tx_ottanf.yaml +47 -0
  301. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/ottanf/tx_ottanf_crisis_criteria.yaml +17 -0
  302. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/ottanf/tx_ottanf_eligible.yaml +158 -0
  303. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/resources/tx_tanf_countable_resources.yaml +39 -0
  304. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/tx_regular_tanf.yaml +74 -0
  305. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/tx_tanf.yaml +89 -0
  306. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/tx_tanf_payment_standard.yaml +61 -0
  307. policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/copay/tx_ccs_copay.yaml +165 -0
  308. policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/eligibility/tx_ccs_asset_eligible.yaml +67 -0
  309. policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/eligibility/tx_ccs_eligible.yaml +114 -0
  310. policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/eligibility/tx_ccs_eligible_child.yaml +172 -0
  311. policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/eligibility/tx_ccs_income_eligible.yaml +65 -0
  312. policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/eligibility/tx_ccs_work_exempt.yaml +24 -0
  313. policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/eligibility/tx_ccs_work_requirement_eligible.yaml +155 -0
  314. policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/payment/tx_ccs_payment_rate.yaml +224 -0
  315. policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/tx_ccs.yaml +132 -0
  316. policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/tx_ccs_child_age_category.yaml +127 -0
  317. policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/tx_ccs_maximum_payment.yaml +141 -0
  318. policyengine_us/tests/policy/baseline/gov/states/tx/twc/ccs/tx_ccs_workforce_board_region.yaml +79 -0
  319. policyengine_us/tests/policy/baseline/gov/states/tx/uct/lifeline/integration.yaml +251 -0
  320. policyengine_us/tests/policy/baseline/gov/states/va/tax/income/integration.yaml +2 -0
  321. policyengine_us/tests/policy/baseline/gov/states/wi/tax/income/integration.yaml +48 -0
  322. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_normal_tax.yaml +31 -0
  323. policyengine_us/tests/policy/baseline/gov/test_categorical_eligibility_vectorization.yaml +41 -0
  324. policyengine_us/tests/policy/baseline/gov/usda/csfp/commodity_supplemental_food_program_eligible.yaml +171 -0
  325. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/is_snap_ineligible_student.yaml +2 -2
  326. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/work_requirements/meets_snap_abawd_work_requirements.yaml +17 -17
  327. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/work_requirements/meets_snap_general_work_requirements.yaml +7 -7
  328. policyengine_us/tests/policy/baseline/gov/usda/snap/income/deductions/self_employment_income/integration.yaml +6 -6
  329. policyengine_us/tests/policy/baseline/gov/usda/snap/income/deductions/self_employment_income/snap_self_employment_expense_deduction.yaml +4 -4
  330. policyengine_us/tests/policy/baseline/gov/usda/snap/income/deductions/self_employment_income/snap_self_employment_income_after_expense_deduction.yaml +1 -1
  331. policyengine_us/tests/policy/baseline/gov/usda/snap/integration.yaml +1 -1
  332. policyengine_us/tests/policy/baseline/gov/usda/snap/snap.yaml +5 -5
  333. policyengine_us/tests/policy/baseline/household/demographic/geographic/in_nyc.yaml +20 -0
  334. policyengine_us/tests/policy/baseline/household/demographic/person/is_citizen_or_legal_immigrant.yaml +55 -0
  335. policyengine_us/tests/policy/contrib/aca/ptc_additional_bracket.yaml +12 -12
  336. policyengine_us/tests/policy/contrib/aca/ptc_simplified_bracket.yaml +24 -24
  337. policyengine_us/tests/policy/contrib/additional_tax_bracket/additional_tax_bracket_reform.yaml +4 -4
  338. policyengine_us/tests/policy/contrib/congress/tlaib/economic_dignity_for_all_agenda/edaa_end_child_poverty_act.yaml +198 -0
  339. policyengine_us/tests/policy/contrib/congress/tlaib/end_child_poverty_act/integration.yaml +0 -42
  340. policyengine_us/tests/policy/contrib/crfb/senior_deduction_extension.yaml +2 -2
  341. policyengine_us/tests/policy/contrib/ctc/integration.yaml +205 -2
  342. policyengine_us/tests/policy/contrib/states/ri/ctc_reform_test.yaml +321 -0
  343. policyengine_us/tests/policy/contrib/states/ri/exemption_reform_test.yaml +117 -0
  344. policyengine_us/variables/gov/aca/ptc/aca_ptc.py +3 -1
  345. policyengine_us/variables/gov/aca/ptc/{aca_ptc_phase_out_rate.py → aca_required_contribution_percentage.py} +2 -2
  346. policyengine_us/variables/gov/ed/pell_grant/efc/pell_grant_simplified_formula_applies.py +1 -2
  347. policyengine_us/variables/gov/fcc/lifeline/is_lifeline_eligible.py +5 -6
  348. policyengine_us/variables/gov/fcc/lifeline/is_lifeline_income_eligible.py +35 -0
  349. policyengine_us/variables/gov/fcc/lifeline/lifeline.py +5 -2
  350. policyengine_us/variables/gov/hhs/head_start/early_head_start.py +2 -1
  351. policyengine_us/variables/gov/hhs/head_start/head_start.py +2 -1
  352. policyengine_us/variables/gov/hhs/head_start/is_head_start_categorically_eligible.py +1 -3
  353. policyengine_us/variables/gov/hhs/tanf/cash/income/tanf_gross_earned_income.py +13 -0
  354. policyengine_us/variables/gov/hhs/tanf/cash/income/tanf_gross_unearned_income.py +13 -0
  355. policyengine_us/variables/gov/hhs/tanf/tanf_fpg.py +28 -0
  356. policyengine_us/variables/gov/irs/tax/federal_income/alternative_minimum_tax/amt_tax_including_cg.py +5 -9
  357. policyengine_us/variables/gov/irs/tax/federal_income/alternative_minimum_tax/regular_tax_before_credits.py +12 -13
  358. policyengine_us/variables/gov/irs/tax/federal_income/capital_gains/capital_gains_excluded_from_taxable_income.py +2 -2
  359. policyengine_us/variables/gov/irs/tax/federal_income/capital_gains/capital_gains_tax.py +5 -5
  360. policyengine_us/variables/gov/irs/tax/federal_income/capital_gains/dwks19.py +2 -2
  361. policyengine_us/variables/gov/local/tx/harris/in_harris_county_tx.py +12 -0
  362. policyengine_us/variables/gov/local/tx/harris/rides/tx_harris_rides_eligible.py +22 -0
  363. policyengine_us/variables/gov/local/tx/harris/rides/tx_harris_rides_subsidy.py +26 -0
  364. policyengine_us/variables/gov/ssa/ssi/eligibility/income/deemed/from_ineligible_spouse/is_ssi_spousal_deeming_applies.py +41 -0
  365. policyengine_us/variables/gov/ssa/ssi/eligibility/income/deemed/from_ineligible_spouse/ssi_income_deemed_from_ineligible_spouse.py +20 -20
  366. policyengine_us/variables/gov/ssa/ssi/ssi.py +22 -1
  367. policyengine_us/variables/gov/ssa/ssi/ssi_amount_if_eligible.py +26 -4
  368. policyengine_us/variables/gov/states/ca/cpuc/care/eligibility/ca_care_categorically_eligible.py +2 -2
  369. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit.py +26 -0
  370. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible.py +27 -0
  371. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible_care_worker.py +10 -0
  372. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible_care_worker_count.py +18 -0
  373. policyengine_us/variables/gov/states/co/tax/income/credits/co_tabor_cash_back.py +17 -0
  374. policyengine_us/variables/gov/states/ga/tax/income/credits/ga_itemizer_credit.py +19 -0
  375. policyengine_us/variables/gov/states/ga/tax/income/subtractions/retirement/ga_retirement_exclusion_countable_earned_income.py +5 -2
  376. policyengine_us/variables/gov/states/hi/tax/income/credits/cdcc/hi_cdcc.py +1 -1
  377. policyengine_us/variables/gov/states/hi/tax/income/credits/cdcc/hi_cdcc_eligible.py +14 -0
  378. policyengine_us/variables/gov/states/hi/tax/income/credits/hi_act_115_rebate.py +32 -0
  379. policyengine_us/variables/gov/states/il/tax/income/credits/il_income_tax_rebate.py +27 -0
  380. policyengine_us/variables/gov/states/il/tax/income/credits/il_income_tax_rebate_eligible.py +24 -0
  381. policyengine_us/variables/gov/states/in/tax/income/credits/in_automatic_refund_rebate.py +26 -0
  382. policyengine_us/variables/gov/states/ks/tax/income/credits/ks_fstc.py +1 -1
  383. policyengine_us/variables/gov/states/la/tax/income/credits/cdcc/la_non_refundable_cdcc.py +1 -1
  384. policyengine_us/variables/gov/states/ma/dta/tcap/eaedc/dependent_care_deduction/ma_eaedc_dependent_care_deduction_person.py +1 -1
  385. policyengine_us/variables/gov/states/ma/dta/tcap/tafdc/income/deductions/ma_tafdc_dependent_care_deduction_person.py +1 -1
  386. policyengine_us/variables/gov/states/ma/eec/ccfa/eligibility/ma_ccfa_activity_eligible.py +3 -1
  387. policyengine_us/variables/gov/states/ma/tax/income/credits/ma_taxpayer_refund_rebate.py +29 -0
  388. policyengine_us/variables/gov/states/me/tax/income/credits/me_relief_rebate.py +16 -0
  389. policyengine_us/variables/gov/states/me/tax/income/credits/me_relief_rebate_eligible.py +17 -0
  390. policyengine_us/variables/gov/states/mn/tax/income/credits/mn_child_and_working_families_credits.py +5 -1
  391. policyengine_us/variables/gov/states/mn/tax/income/credits/mn_child_and_working_families_credits_ctc_eligible_child.py +24 -0
  392. policyengine_us/variables/gov/states/mt/tax/income/credits/rebate/mt_income_tax_rebate.py +1 -2
  393. policyengine_us/variables/gov/states/nj/tax/income/credits/cdcc/nj_cdcc.py +2 -2
  394. policyengine_us/variables/gov/states/oh/tax/income/credits/oh_cdcc.py +2 -2
  395. policyengine_us/variables/gov/states/pa/tax/income/credits/pa_eitc.py +16 -0
  396. policyengine_us/variables/gov/states/pa/tax/income/forgiveness/pa_tax_forgiveness_rate.py +1 -3
  397. policyengine_us/variables/gov/states/sc/tax/income/credits/cdcc/sc_cdcc.py +1 -1
  398. policyengine_us/variables/gov/states/sc/tax/income/credits/sc_2022_rebate.py +29 -0
  399. policyengine_us/variables/gov/states/tx/dta/csfp/tx_dta_csfp_income_eligible.py +14 -0
  400. policyengine_us/variables/gov/states/tx/fpp/tx_fpp_age_eligible.py +16 -0
  401. policyengine_us/variables/gov/states/tx/fpp/tx_fpp_benefit.py +15 -0
  402. policyengine_us/variables/gov/states/tx/fpp/tx_fpp_eligible.py +18 -0
  403. policyengine_us/variables/gov/states/tx/fpp/tx_fpp_income_eligible.py +18 -0
  404. policyengine_us/variables/gov/states/tx/fpp/tx_fpp_income_limit.py +24 -0
  405. policyengine_us/variables/gov/states/tx/tanf/assistance_unit/tx_tanf_age_eligible_child.py +27 -0
  406. policyengine_us/variables/gov/states/tx/tanf/assistance_unit/tx_tanf_assistance_unit_size.py +18 -0
  407. policyengine_us/variables/gov/states/tx/tanf/assistance_unit/tx_tanf_categorically_eligible_person.py +19 -0
  408. policyengine_us/variables/gov/states/tx/tanf/assistance_unit/tx_tanf_eligible_child.py +24 -0
  409. policyengine_us/variables/gov/states/tx/tanf/assistance_unit/tx_tanf_eligible_parent.py +24 -0
  410. policyengine_us/variables/gov/states/tx/tanf/eligibility/tx_tanf_budgetary_needs.py +57 -0
  411. policyengine_us/variables/gov/states/tx/tanf/eligibility/tx_tanf_budgetary_needs_test.py +21 -0
  412. policyengine_us/variables/gov/states/tx/tanf/eligibility/tx_tanf_caretaker_type.py +50 -0
  413. policyengine_us/variables/gov/states/tx/tanf/eligibility/tx_tanf_eligible.py +29 -0
  414. policyengine_us/variables/gov/states/tx/tanf/eligibility/tx_tanf_income_eligible.py +40 -0
  415. policyengine_us/variables/gov/states/tx/tanf/eligibility/tx_tanf_recognizable_needs_test.py +23 -0
  416. policyengine_us/variables/gov/states/tx/tanf/eligibility/tx_tanf_resources_eligible.py +19 -0
  417. policyengine_us/variables/gov/states/tx/tanf/income/deductions/tx_tanf_child_support_deduction.py +21 -0
  418. policyengine_us/variables/gov/states/tx/tanf/income/deductions/tx_tanf_dependent_care_deduction.py +39 -0
  419. policyengine_us/variables/gov/states/tx/tanf/income/earned/tx_tanf_countable_earned_income.py +28 -0
  420. policyengine_us/variables/gov/states/tx/tanf/income/earned/tx_tanf_earned_income_after_disregard_person.py +52 -0
  421. policyengine_us/variables/gov/states/tx/tanf/income/earned/tx_tanf_gross_earned_income.py +16 -0
  422. policyengine_us/variables/gov/states/tx/tanf/income/tx_tanf_countable_income.py +19 -0
  423. policyengine_us/variables/gov/states/tx/tanf/income/tx_tanf_income_for_budgetary_needs_test.py +47 -0
  424. policyengine_us/variables/gov/states/tx/tanf/income/unearned/tx_tanf_countable_unearned_income.py +27 -0
  425. policyengine_us/variables/gov/states/tx/tanf/income/unearned/tx_tanf_gross_unearned_income.py +16 -0
  426. policyengine_us/variables/gov/states/tx/tanf/ottanf/tx_ottanf.py +17 -0
  427. policyengine_us/variables/gov/states/tx/tanf/ottanf/tx_ottanf_crisis_criteria.py +21 -0
  428. policyengine_us/variables/gov/states/tx/tanf/ottanf/tx_ottanf_eligible.py +36 -0
  429. policyengine_us/variables/gov/states/tx/tanf/resources/tx_tanf_countable_resources.py +31 -0
  430. policyengine_us/variables/gov/states/tx/tanf/tx_regular_tanf.py +27 -0
  431. policyengine_us/variables/gov/states/tx/tanf/tx_tanf.py +25 -0
  432. policyengine_us/variables/gov/states/tx/tanf/tx_tanf_payment_standard.py +51 -0
  433. policyengine_us/variables/gov/states/tx/twc/ccs/copay/tx_ccs_copay.py +40 -0
  434. policyengine_us/variables/gov/states/tx/twc/ccs/eligibility/tx_ccs_asset_eligible.py +16 -0
  435. policyengine_us/variables/gov/states/tx/twc/ccs/eligibility/tx_ccs_eligible.py +28 -0
  436. policyengine_us/variables/gov/states/tx/twc/ccs/eligibility/tx_ccs_eligible_child.py +22 -0
  437. policyengine_us/variables/gov/states/tx/twc/ccs/eligibility/tx_ccs_income_eligible.py +19 -0
  438. policyengine_us/variables/gov/states/tx/twc/ccs/eligibility/tx_ccs_work_exempt.py +26 -0
  439. policyengine_us/variables/gov/states/tx/twc/ccs/eligibility/tx_ccs_work_requirement_eligible.py +44 -0
  440. policyengine_us/variables/gov/states/tx/twc/ccs/payment/tx_ccs_care_schedule.py +18 -0
  441. policyengine_us/variables/gov/states/tx/twc/ccs/payment/tx_ccs_payment_rate.py +36 -0
  442. policyengine_us/variables/gov/states/tx/twc/ccs/payment/tx_ccs_provider_rating.py +21 -0
  443. policyengine_us/variables/gov/states/tx/twc/ccs/payment/tx_ccs_provider_type.py +19 -0
  444. policyengine_us/variables/gov/states/tx/twc/ccs/tx_ccs.py +21 -0
  445. policyengine_us/variables/gov/states/tx/twc/ccs/tx_ccs_child_age_category.py +41 -0
  446. policyengine_us/variables/gov/states/tx/twc/ccs/tx_ccs_countable_income.py +13 -0
  447. policyengine_us/variables/gov/states/tx/twc/ccs/tx_ccs_maximum_payment.py +15 -0
  448. policyengine_us/variables/gov/states/tx/twc/ccs/tx_ccs_workforce_board_region.py +68 -0
  449. policyengine_us/variables/gov/states/tx/uct/lifeline/tx_lifeline_supplement.py +13 -0
  450. policyengine_us/variables/gov/states/wi/tax/income/credits/married_couple/wi_married_couple_credit.py +7 -5
  451. policyengine_us/variables/gov/territories/pr/tax/income/pr_income_tax.py +14 -0
  452. policyengine_us/variables/gov/territories/pr/tax/income/pr_normal_tax.py +16 -0
  453. policyengine_us/variables/gov/territories/pr/tax/income/pr_regular_tax_before_credits.py +11 -0
  454. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/pr_net_taxable_income.py +11 -0
  455. policyengine_us/variables/gov/usda/csfp/commodity_supplemental_food_program_eligible.py +7 -2
  456. policyengine_us/variables/gov/usda/snap/eligibility/student/is_snap_ineligible_student.py +1 -1
  457. policyengine_us/variables/gov/usda/snap/eligibility/work_requirements/meets_snap_abawd_work_requirements.py +3 -1
  458. policyengine_us/variables/gov/usda/snap/eligibility/work_requirements/meets_snap_general_work_requirements.py +3 -1
  459. policyengine_us/variables/gov/usda/snap/income/deductions/self_employment/snap_self_employment_expense_deduction.py +1 -1
  460. policyengine_us/variables/gov/usda/snap/income/deductions/self_employment/snap_self_employment_income_after_expense_deduction.py +1 -1
  461. policyengine_us/variables/gov/usda/snap/income/deductions/snap_dependent_care_deduction.py +5 -1
  462. policyengine_us/variables/household/demographic/geographic/in_nyc.py +12 -3
  463. policyengine_us/variables/household/demographic/person/is_citizen_or_legal_immigrant.py +22 -0
  464. policyengine_us/variables/household/expense/person/pre_subsidy_transportation_expense.py +9 -0
  465. {policyengine_us-1.413.0.dist-info → policyengine_us-1.439.0.dist-info}/METADATA +1 -1
  466. {policyengine_us-1.413.0.dist-info → policyengine_us-1.439.0.dist-info}/RECORD +471 -182
  467. policyengine_us/parameters/gov/contrib/harris/capital_gains/brackets.yaml +0 -194
  468. policyengine_us/parameters/gov/irs/capital_gains/brackets.yaml +0 -188
  469. policyengine_us/parameters/gov/states/tx/index.yaml +0 -4
  470. policyengine_us/parameters/gov/states/tx/tanf/monthly_income_limit.yaml +0 -31
  471. policyengine_us/tests/policy/baseline/gov/aca/ptc/aca_ptc_phase_out_rate.yaml +0 -71
  472. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/hi_low_income_household_renters/integration.yaml +0 -61
  473. policyengine_us/tests/policy/baseline/gov/states/ri/tax/income/agi/subtractions/taxable_retirement_income/integration.yaml +0 -45
  474. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/tx_tanf_income_limit.yaml +0 -17
  475. policyengine_us/variables/gov/states/tx/tanf/tx_tanf_income_limit.py +0 -18
  476. /policyengine_us/parameters/gov/aca/{ptc_phase_out_rate.yaml → required_contribution_percentage.yaml} +0 -0
  477. /policyengine_us/variables/gov/states/oh/tax/income/{oh_modifed_agi.py → oh_modified_agi.py} +0 -0
  478. {policyengine_us-1.413.0.dist-info → policyengine_us-1.439.0.dist-info}/WHEEL +0 -0
  479. {policyengine_us-1.413.0.dist-info → policyengine_us-1.439.0.dist-info}/entry_points.txt +0 -0
  480. {policyengine_us-1.413.0.dist-info → policyengine_us-1.439.0.dist-info}/licenses/LICENSE +0 -0
@@ -21,10 +21,9 @@ class is_lifeline_eligible(Variable):
21
21
  )
22
22
  categorically_eligible = np.where(
23
23
  is_on_tribal_land,
24
- np.any(tribal_lifeline_programs),
25
- np.any(non_tribal_lifeline_programs),
24
+ tribal_lifeline_programs > 0,
25
+ non_tribal_lifeline_programs > 0,
26
26
  )
27
- fpg_ratio = spm_unit("fcc_fpg_ratio", period)
28
- fpg_limit = p.fpg_limit
29
- fpg_eligible = fpg_ratio <= fpg_limit
30
- return categorically_eligible | fpg_eligible
27
+ # Use the new unified income eligibility variable
28
+ income_eligible = spm_unit("is_lifeline_income_eligible", period)
29
+ return categorically_eligible | income_eligible
@@ -0,0 +1,35 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class is_lifeline_income_eligible(Variable):
5
+ value_type = bool
6
+ entity = SPMUnit
7
+ label = "Income-eligible for Lifeline"
8
+ documentation = (
9
+ "Meets income requirements for Lifeline (federal or state-expanded)"
10
+ )
11
+ definition_period = YEAR
12
+ reference = (
13
+ "https://www.law.cornell.edu/cfr/text/47/54.409",
14
+ "https://statutes.capitol.texas.gov/Docs/UT/htm/UT.55.htm#55.015",
15
+ )
16
+
17
+ def formula(spm_unit, period, parameters):
18
+ p = parameters(period).gov.fcc.lifeline
19
+ fpg_ratio = spm_unit("fcc_fpg_ratio", period)
20
+
21
+ # Some states expand eligibility beyond federal limit
22
+ state = spm_unit.household("state_code_str", period)
23
+ is_tx = state == "TX"
24
+
25
+ # Texas expands to 150% FPG per Texas Utilities Code § 55.015(d-1)
26
+ tx_p = parameters(period).gov.states.tx.uct.lifeline
27
+
28
+ # Use state-specific limit where applicable, otherwise federal (135%)
29
+ # Convert to float32 to match fpg_ratio dtype for comparison
30
+ # Without this, float32(1.35) > float64(1.35) due to precision differences
31
+ fpg_limit = where(is_tx, tx_p.fpg_limit, p.fpg_limit).astype(
32
+ np.float32
33
+ )
34
+
35
+ return fpg_ratio <= fpg_limit
@@ -33,11 +33,14 @@ class lifeline(Variable):
33
33
  base_amount,
34
34
  )
35
35
 
36
- max_monthly_amount = (
36
+ federal_monthly_amount = (
37
37
  base_amount
38
38
  + is_rural_tribal * p.fcc.lifeline.amount.rural_tribal_supplement
39
39
  )
40
- max_amount = max_monthly_amount * MONTHS_IN_YEAR
40
+ # Get TX supplement for the specific month (now properly defined as MONTH period)
41
+ tx_supplement = spm_unit("tx_lifeline_supplement", period.first_month)
42
+ total_monthly_amount = federal_monthly_amount + tx_supplement
43
+ max_amount = total_monthly_amount * MONTHS_IN_YEAR
41
44
  phone_broadband_cost = add(
42
45
  spm_unit, period, ["phone_cost", "broadband_cost"]
43
46
  )
@@ -4,7 +4,8 @@ from policyengine_us.model_api import *
4
4
  class early_head_start(Variable):
5
5
  value_type = float
6
6
  entity = Person
7
- label = "Amount of Early Head Start benefit"
7
+ label = "Early Head Start"
8
+ unit = USD
8
9
  definition_period = YEAR
9
10
  defined_for = "is_early_head_start_eligible"
10
11
  reference = "https://headstart.gov/program-data/article/head-start-program-facts-fiscal-year-2022"
@@ -4,7 +4,8 @@ from policyengine_us.model_api import *
4
4
  class head_start(Variable):
5
5
  value_type = float
6
6
  entity = Person
7
- label = "Amount of Head Start benefit"
7
+ label = "Head Start"
8
+ unit = USD
8
9
  definition_period = YEAR
9
10
  defined_for = "is_head_start_eligible"
10
11
  reference = "https://headstart.gov/program-data/article/head-start-program-facts-fiscal-year-2022"
@@ -12,7 +12,5 @@ class is_head_start_categorically_eligible(Variable):
12
12
  )
13
13
 
14
14
  def formula(person, period, parameters):
15
- tax_unit = person.tax_unit
16
15
  p = parameters(period).gov.hhs.head_start
17
- programs = add(tax_unit, period, p.categorical_eligibility)
18
- return np.any(programs)
16
+ return add(person.tax_unit, period, p.categorical_eligibility) > 0
@@ -0,0 +1,13 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class tanf_gross_earned_income(Variable):
5
+ value_type = float
6
+ entity = Person
7
+ label = (
8
+ "Temporary Assistance for Needy Families (TANF) gross earned income"
9
+ )
10
+ unit = USD
11
+ definition_period = MONTH
12
+
13
+ adds = "gov.hhs.tanf.cash.income.sources.earned"
@@ -0,0 +1,13 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class tanf_gross_unearned_income(Variable):
5
+ value_type = float
6
+ entity = Person
7
+ label = (
8
+ "Temporary Assistance for Needy Families (TANF) gross unearned income"
9
+ )
10
+ unit = USD
11
+ definition_period = MONTH
12
+
13
+ adds = "gov.hhs.tanf.cash.income.sources.unearned"
@@ -0,0 +1,28 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class tanf_fpg(Variable):
5
+ value_type = float
6
+ entity = SPMUnit
7
+ label = "TANF federal poverty guideline"
8
+ unit = USD
9
+ documentation = (
10
+ "The federal poverty guideline used to determine TANF eligibility."
11
+ )
12
+ definition_period = MONTH
13
+ reference = "https://www.law.cornell.edu/uscode/text/42/9902"
14
+
15
+ def formula(spm_unit, period, parameters):
16
+ # We can use tanf_unit_size for more accurate model in the future
17
+ n = spm_unit("spm_unit_size", period.this_year)
18
+ state_group = spm_unit.household("state_group_str", period.this_year)
19
+ year = period.start.year
20
+ month = period.start.month
21
+ if month >= 10:
22
+ instant_str = f"{year}-10-01"
23
+ else:
24
+ instant_str = f"{year - 1}-10-01"
25
+ p_fpg = parameters(instant_str).gov.hhs.fpg
26
+ p1 = p_fpg.first_person[state_group] / MONTHS_IN_YEAR
27
+ pn = p_fpg.additional_person[state_group] / MONTHS_IN_YEAR
28
+ return p1 + pn * (n - 1)
@@ -34,7 +34,7 @@ class amt_tax_including_cg(Variable):
34
34
  income_taxes_at_amt_rates = p.income.amt.brackets.calc(excess_income)
35
35
  # Line 19 - First CG tax bracket threshold
36
36
  filing_status = tax_unit("filing_status", period)
37
- cg_bracket = p.capital_gains.brackets.thresholds["1"][filing_status]
37
+ cg_bracket = p.capital_gains.thresholds["1"][filing_status]
38
38
  # Line 20 - Schedule D Line 14
39
39
  lt_capital_loss_carryover = tax_unit("dwks14", period)
40
40
  # Line 21 - Line 20 minus Line 19
@@ -42,7 +42,7 @@ class amt_tax_including_cg(Variable):
42
42
  # Line 22 - smaller of Line 12 or Line 13
43
43
  smaller_of_income_or_cg = min_(reduced_income, cg_distributions)
44
44
  # Line 23 - smaller of Line 22 or Line 21 (amount is taxed at 0%)
45
- cg_first_rate = p.capital_gains.brackets.rates["1"]
45
+ cg_first_rate = p.capital_gains.rates["1"]
46
46
  disregarded_gains = (
47
47
  min_(smaller_of_income_or_cg, reduced_cg_bracket) * cg_first_rate
48
48
  )
@@ -51,9 +51,7 @@ class amt_tax_including_cg(Variable):
51
51
  smaller_of_income_or_cg - disregarded_gains, 0
52
52
  )
53
53
  # Line 25 - Second CG tax bracket threshold
54
- second_cg_bracket = p.capital_gains.brackets.thresholds["2"][
55
- filing_status
56
- ]
54
+ second_cg_bracket = p.capital_gains.thresholds["2"][filing_status]
57
55
  # Line 26 - same as line 21
58
56
  # Line 27 - Schedule D Line 21
59
57
  loss_limited_net_capital_gains = tax_unit(
@@ -73,16 +71,14 @@ class amt_tax_including_cg(Variable):
73
71
  )
74
72
  # Line 31 - multiply Line 30by second CG tax rate
75
73
  cg_second_bracket_tax = (
76
- capped_income_including_cg * p.capital_gains.brackets.rates["2"]
74
+ capped_income_including_cg * p.capital_gains.rates["2"]
77
75
  )
78
76
  # Line 32 - Line 23 plus Line 30
79
77
  taxed_gains = disregarded_gains + capped_income_including_cg
80
78
  # Line 33 - Line 22 minus Line 32
81
79
  excess_taxed_gains = max_(0, smaller_of_income_or_cg - taxed_gains)
82
80
  # Line 34 - multiply Line 33 by third CG tax rate
83
- cg_third_bracket_tax = (
84
- excess_taxed_gains * p.capital_gains.brackets.rates["3"]
85
- )
81
+ cg_third_bracket_tax = excess_taxed_gains * p.capital_gains.rates["3"]
86
82
  # Line 35 - sum of Line 17, Line 32, Line 33
87
83
  final_taxed_income = excess_income + taxed_gains + excess_taxed_gains
88
84
  # Line 36 Line 12 minus Line 35
@@ -10,29 +10,28 @@ class regular_tax_before_credits(Variable):
10
10
  unit = USD
11
11
 
12
12
  def formula(tax_unit, period, parameters):
13
+ p = parameters(period).gov.irs
13
14
  filing_status = tax_unit("filing_status", period)
14
15
  dwks1 = tax_unit("taxable_income", period)
15
16
 
16
- capital_gains = parameters(period).gov.irs.capital_gains.brackets
17
-
18
- dwks16 = min_(capital_gains.thresholds["1"][filing_status], dwks1)
17
+ dwks16 = min_(p.capital_gains.thresholds["1"][filing_status], dwks1)
19
18
  dwks17 = min_(tax_unit("dwks14", period), dwks16)
20
19
  dwks20 = dwks16 - dwks17
21
- lowest_rate_tax = capital_gains.rates["1"] * dwks20
20
+ lowest_rate_tax = p.capital_gains.rates["1"] * dwks20
22
21
  # Break in worksheet lines
23
22
  dwks13 = tax_unit("dwks13", period)
24
23
  dwks21 = min_(dwks1, dwks13)
25
24
  dwks22 = dwks20
26
25
  dwks23 = max_(0, dwks21 - dwks22)
27
- dwks25 = min_(capital_gains.thresholds["2"][filing_status], dwks1)
26
+ dwks25 = min_(p.capital_gains.thresholds["2"][filing_status], dwks1)
28
27
  dwks19 = tax_unit("dwks19", period)
29
28
  dwks26 = min_(dwks19, dwks20)
30
29
  dwks27 = max_(0, dwks25 - dwks26)
31
30
  dwks28 = min_(dwks23, dwks27)
32
- dwks29 = capital_gains.rates["2"] * dwks28
31
+ dwks29 = p.capital_gains.rates["2"] * dwks28
33
32
  dwks30 = dwks22 + dwks28
34
33
  dwks31 = dwks21 - dwks30
35
- dwks32 = capital_gains.rates["3"] * dwks31
34
+ dwks32 = p.capital_gains.rates["3"] * dwks31
36
35
  # Break in worksheet lines
37
36
  dwks33 = min_(
38
37
  tax_unit("dwks09", period),
@@ -43,18 +42,18 @@ class regular_tax_before_credits(Variable):
43
42
  dwks36 = max_(0, dwks34 - dwks1)
44
43
  dwks37 = max_(0, dwks33 - dwks36)
45
44
 
46
- p = parameters(period).gov.irs.income
47
-
48
- dwks38 = p.amt.capital_gains.capital_gain_excess_tax_rate * dwks37
45
+ dwks38 = (
46
+ p.income.amt.capital_gains.capital_gain_excess_tax_rate * dwks37
47
+ )
49
48
  # Break in worksheet lines
50
49
  dwks39 = dwks19 + dwks20 + dwks28 + dwks31 + dwks37
51
50
  dwks40 = dwks1 - dwks39
52
- dwks41 = p.amt.brackets.rates[-1] * dwks40
51
+ dwks41 = p.income.amt.brackets.rates[-1] * dwks40
53
52
 
54
53
  # Compute regular tax using bracket rates and thresholds
55
54
  reg_taxinc = max_(0, dwks19)
56
- bracket_tops = p.bracket.thresholds
57
- bracket_rates = p.bracket.rates
55
+ bracket_tops = p.income.bracket.thresholds
56
+ bracket_rates = p.income.bracket.rates
58
57
  reg_tax = 0
59
58
  bracket_bottom = 0
60
59
  for i in range(1, len(list(bracket_rates.__iter__())) + 1):
@@ -14,15 +14,15 @@ class capital_gains_excluded_from_taxable_income(Variable):
14
14
  )
15
15
 
16
16
  def formula(tax_unit, period, parameters):
17
+ p = parameters(period).gov.irs.capital_gains
17
18
  net_capital_gain = tax_unit("net_capital_gain", period)
18
19
  adjusted_net_capital_gain = tax_unit(
19
20
  "adjusted_net_capital_gain", period
20
21
  )
21
22
  taxable_income = tax_unit("taxable_income", period)
22
23
  filing_status = tax_unit("filing_status", period)
23
- cg = parameters(period).gov.irs.capital_gains.brackets
24
24
  income_taxed_below_first_rate = clip(
25
- taxable_income, 0, cg.thresholds["1"][filing_status]
25
+ taxable_income, 0, p.thresholds["1"][filing_status]
26
26
  )
27
27
  reduced_taxable_income = max_(
28
28
  taxable_income - net_capital_gain,
@@ -27,8 +27,8 @@ class capital_gains_tax(Variable):
27
27
 
28
28
  filing_status = tax_unit("filing_status", period)
29
29
 
30
- first_threshold = cg.brackets.thresholds["1"][filing_status]
31
- second_threshold = cg.brackets.thresholds["2"][filing_status]
30
+ first_threshold = cg.thresholds["1"][filing_status]
31
+ second_threshold = cg.thresholds["2"][filing_status]
32
32
 
33
33
  income_ordinarily_under_second_rate = clip(
34
34
  taxable_income, 0, first_threshold
@@ -55,9 +55,9 @@ class capital_gains_tax(Variable):
55
55
  )
56
56
 
57
57
  main_cg_tax = (
58
- cg_in_first_bracket * cg.brackets.rates["1"]
59
- + cg_in_second_bracket * cg.brackets.rates["2"]
60
- + cg_in_third_bracket * cg.brackets.rates["3"]
58
+ cg_in_first_bracket * cg.rates["1"]
59
+ + cg_in_second_bracket * cg.rates["2"]
60
+ + cg_in_third_bracket * cg.rates["3"]
61
61
  )
62
62
 
63
63
  unrecaptured_s_1250_gain = tax_unit(
@@ -9,11 +9,11 @@ class dwks19(Variable):
9
9
  unit = USD
10
10
 
11
11
  def formula(tax_unit, period, parameters):
12
+ p = parameters(period).gov.irs.capital_gains
12
13
  dwks14 = tax_unit("dwks14", period)
13
- capital_gains = parameters(period).gov.irs.capital_gains.brackets
14
14
  filing_status = tax_unit("filing_status", period)
15
15
  dwks01 = tax_unit("taxable_income", period)
16
- dwks16 = min_(capital_gains.thresholds["1"][filing_status], dwks01)
16
+ dwks16 = min_(p.thresholds["1"][filing_status], dwks01)
17
17
  dwks17 = min_(dwks14, dwks16)
18
18
  dwks10 = tax_unit("dwks10", period)
19
19
  dwks18 = max_(0, dwks01 - dwks10)
@@ -0,0 +1,12 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class in_harris_county_tx(Variable):
5
+ value_type = bool
6
+ entity = Household
7
+ definition_period = YEAR
8
+ label = "Is in Harris County, Texas"
9
+
10
+ def formula(household, period, parameters):
11
+ county = household("county_str", period)
12
+ return county == "HARRIS_COUNTY_TX"
@@ -0,0 +1,22 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class tx_harris_rides_eligible(Variable):
5
+ value_type = bool
6
+ entity = Person
7
+ definition_period = YEAR
8
+ label = "Harris County RIDES eligibility"
9
+ reference = "https://rides.harriscountytx.gov/Registration/Registration-Information"
10
+ defined_for = "in_harris_county_tx"
11
+
12
+ def formula(person, period, parameters):
13
+ p = parameters(period).gov.local.tx.harris.rides
14
+
15
+ # Age eligibility
16
+ age = person("age", period)
17
+ age_eligible = age >= p.age_threshold
18
+
19
+ # Disability eligibility
20
+ has_disability = person("is_disabled", period)
21
+
22
+ return age_eligible | has_disability
@@ -0,0 +1,26 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class tx_harris_rides_subsidy(Variable):
5
+ value_type = float
6
+ entity = Person
7
+ definition_period = YEAR
8
+ label = "Harris County RIDES transportation subsidy"
9
+ reference = "https://rides.harriscountytx.gov/"
10
+ unit = USD
11
+ defined_for = "tx_harris_rides_eligible"
12
+
13
+ def formula(person, period, parameters):
14
+ p = parameters(period).gov.local.tx.harris.rides
15
+
16
+ # Get estimated transportation costs
17
+ # In a real implementation, this would be based on actual trip data
18
+ # For now, we'll use a simplified estimate
19
+ transportation_costs = person(
20
+ "pre_subsidy_transportation_expense", period
21
+ )
22
+
23
+ # RIDES subsidizes 60% of trip costs (customer pays 40%)
24
+ subsidy_rate = 1 - p.customer_payment_rate
25
+
26
+ return transportation_costs * subsidy_rate
@@ -0,0 +1,41 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class is_ssi_spousal_deeming_applies(Variable):
5
+ value_type = bool
6
+ entity = Person
7
+ label = "SSI spousal deeming applies"
8
+ definition_period = YEAR
9
+ reference = "https://www.law.cornell.edu/cfr/text/20/416.1163"
10
+ defined_for = "is_ssi_eligible_individual"
11
+ documentation = """
12
+ Returns True when spousal deeming applies according to 20 CFR §416.1163.
13
+
14
+ Spousal deeming applies when:
15
+ 1. Person is an eligible individual (not part of an eligible couple)
16
+ 2. Spouse is ineligible (not aged/blind/disabled)
17
+ 3. Spouse's leftover income (after child allocations) exceeds the difference
18
+ between couple FBR and individual FBR
19
+
20
+ When deeming applies, the benefit calculation uses the couple FBR instead
21
+ of the individual FBR, recognizing that two people have higher expenses.
22
+ """
23
+
24
+ def formula(person, period, parameters):
25
+ # Get spouse's deemed income (after child allocations)
26
+ spouse_deemed_income = add(
27
+ person,
28
+ period,
29
+ [
30
+ "ssi_earned_income_deemed_from_ineligible_spouse",
31
+ "ssi_unearned_income_deemed_from_ineligible_spouse",
32
+ ],
33
+ )
34
+
35
+ # Compare to FBR differential (couple rate - individual rate)
36
+ p = parameters(period).gov.ssa.ssi.amount
37
+ diff = (p.couple - p.individual) * MONTHS_IN_YEAR
38
+
39
+ # Deeming applies when spouse's deemed income exceeds the differential
40
+ # Note: regulation says "not more than" means ≤, so we use > for deeming
41
+ return spouse_deemed_income > diff
@@ -22,37 +22,37 @@ class ssi_income_deemed_from_ineligible_spouse(Variable):
22
22
  unit = USD
23
23
 
24
24
  def formula(person, period, parameters):
25
- # 1. Sum leftover spouse earned/unearned (post-child allocations).
25
+ # 1. Check if spousal deeming applies (avoids duplicating threshold logic)
26
+ deeming_applies = person("is_ssi_spousal_deeming_applies", period)
27
+
28
+ # 2. If deeming applies, calculate deemed amount using "difference" approach:
29
+ # (couple combined countable) - (individual alone countable)
30
+
31
+ # Get spouse's leftover income (post-child allocations)
26
32
  spouse_earned = person(
27
33
  "ssi_earned_income_deemed_from_ineligible_spouse", period
28
34
  )
29
35
  spouse_unearned = person(
30
36
  "ssi_unearned_income_deemed_from_ineligible_spouse", period
31
37
  )
32
- leftover_spouse = spouse_earned + spouse_unearned
33
-
34
- # 2. Compare leftover to FBR difference
35
- p = parameters(period).gov.ssa.ssi.amount
36
- diff = (p.couple - p.individual) * MONTHS_IN_YEAR
37
- if_leftover_exceeds = leftover_spouse > diff
38
-
39
- # 3. If leftover <= diff => no deeming
40
- # If leftover > diff => difference of incomes approach
41
- # (couple combined) - (individual alone).
42
- # (a) individual's own income
43
- indiv_earned = person("ssi_earned_income", period)
44
- indiv_unearned = person("ssi_unearned_income", period)
38
+
39
+ # Get individual's own income
40
+ individual_earned = person("ssi_earned_income", period)
41
+ individual_unearned = person("ssi_unearned_income", period)
42
+
43
+ # Calculate individual's countable income (alone)
45
44
  alone_countable = _apply_ssi_exclusions(
46
- indiv_earned, indiv_unearned, parameters, period
45
+ individual_earned, individual_unearned, parameters, period
47
46
  )
48
47
 
49
- # (b) couple combined income
48
+ # Calculate couple's combined countable income
50
49
  couple_countable = _apply_ssi_exclusions(
51
- indiv_earned + spouse_earned,
52
- indiv_unearned + spouse_unearned,
50
+ individual_earned + spouse_earned,
51
+ individual_unearned + spouse_unearned,
53
52
  parameters,
54
53
  period,
55
54
  )
56
55
 
57
- deemed_if_exceeds = max_(0, couple_countable - alone_countable)
58
- return if_leftover_exceeds * deemed_if_exceeds
56
+ # Deemed amount is the difference (only when deeming applies)
57
+ deemed_amount = max_(0, couple_countable - alone_countable)
58
+ return deeming_applies * deemed_amount
@@ -13,4 +13,25 @@ class ssi(Variable):
13
13
  def formula(person, period, parameters):
14
14
  if parameters(period).gov.ssa.ssi.abolish_ssi:
15
15
  return 0
16
- return max_(0, person("uncapped_ssi", period))
16
+
17
+ uncapped = person("uncapped_ssi", period)
18
+
19
+ # Apply floor: SSI cannot be negative
20
+ benefit = max_(0, uncapped)
21
+
22
+ # Apply cap when spousal deeming: cannot exceed individual FBR
23
+ # per 20 CFR §416.1163
24
+ # This cap is necessary when spouse's gross income is just above $483:
25
+ # - Deeming applies (uses couple FBR)
26
+ # - After exclusions, countable may be low
27
+ # - Benefit could exceed individual FBR without this cap
28
+ deeming_applies = person("is_ssi_spousal_deeming_applies", period)
29
+ p = parameters(period).gov.ssa.ssi.amount
30
+ individual_max = p.individual * MONTHS_IN_YEAR
31
+ capped_benefit = min_(benefit, individual_max)
32
+
33
+ return where(
34
+ deeming_applies,
35
+ capped_benefit,
36
+ benefit,
37
+ )
@@ -12,12 +12,34 @@ class ssi_amount_if_eligible(Variable):
12
12
  def formula(person, period, parameters):
13
13
  p = parameters(period).gov.ssa.ssi.amount
14
14
  is_dependent = person("is_tax_unit_dependent", period)
15
+
16
+ # Three scenarios for adults:
17
+ # 1. Both spouses eligible (joint claim) → couple rate / 2
18
+ # 2. One eligible, no deeming → individual rate
19
+ # 3. One eligible, deeming applies → couple rate (capped in ssi)
20
+ #
21
+ # Note: In scenario 3, deeming applies when spouse's GROSS income > $483.
22
+ # Income exclusions are applied to the COMBINED income afterwards.
23
+ # This means countable income can be much lower than $483, and the
24
+ # benefit can exceed individual FBR, requiring the cap in ssi.
25
+
26
+ is_joint_claim = person("ssi_claim_is_joint", period)
27
+ deeming_applies = person("is_ssi_spousal_deeming_applies", period)
28
+
29
+ # Determine FBR to use based on scenario
30
+ individual_or_deeming_amount = where(
31
+ deeming_applies,
32
+ p.couple, # Scenario 3: Deeming applies - use couple rate!
33
+ p.individual, # Scenario 2: No deeming
34
+ )
35
+
15
36
  head_or_spouse_amount = where(
16
- person("ssi_claim_is_joint", period),
17
- p.couple / 2,
18
- p.individual,
37
+ is_joint_claim,
38
+ p.couple / 2, # Scenario 1: Both eligible
39
+ individual_or_deeming_amount,
19
40
  )
20
- # Adults amount is based on whether it is a joint claim
41
+
42
+ # Adults amount is based on scenario (see above)
21
43
  # Dependents always use individual amount.
22
44
  ssi_per_month = where(
23
45
  is_dependent, p.individual, head_or_spouse_amount
@@ -17,6 +17,6 @@ class ca_care_categorically_eligible(Variable):
17
17
  tribal_lifeline_programs = add(household, period, p.tribal_categorical)
18
18
  return np.where(
19
19
  is_on_tribal_land,
20
- np.any(tribal_lifeline_programs),
21
- np.any(non_tribal_lifeline_programs),
20
+ tribal_lifeline_programs > 0,
21
+ non_tribal_lifeline_programs > 0,
22
22
  )
@@ -0,0 +1,26 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class co_care_worker_credit(Variable):
5
+ value_type = float
6
+ entity = TaxUnit
7
+ label = "Colorado Care Worker Tax Credit"
8
+ defined_for = "co_care_worker_credit_eligible"
9
+ unit = USD
10
+ definition_period = YEAR
11
+ reference = "https://law.justia.com/codes/colorado/title-39/specific-taxes/income-tax/article-22/part-5/section-39-22-566/"
12
+
13
+ def formula(tax_unit, period, parameters):
14
+ p = parameters(period).gov.states.co.tax.income.credits.care_worker
15
+ joint = tax_unit("tax_unit_is_joint", period)
16
+ eligible_care_worker_count = tax_unit(
17
+ "co_care_worker_credit_eligible_care_worker_count", period
18
+ )
19
+ joint_with_two_eligible_care_workers = joint & (
20
+ eligible_care_worker_count == 2
21
+ )
22
+ return where(
23
+ joint_with_two_eligible_care_workers,
24
+ p.amount.joint,
25
+ p.amount.single,
26
+ )
@@ -0,0 +1,27 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class co_care_worker_credit_eligible(Variable):
5
+ value_type = float
6
+ entity = TaxUnit
7
+ label = "Colorado Care Worker Tax Credit eligible"
8
+ defined_for = StateCode.CO
9
+ unit = USD
10
+ definition_period = YEAR
11
+ reference = "https://law.justia.com/codes/colorado/title-39/specific-taxes/income-tax/article-22/part-5/section-39-22-566/"
12
+
13
+ def formula(tax_unit, period, parameters):
14
+ p = parameters(period).gov.states.co.tax.income.credits.care_worker
15
+ joint = tax_unit("tax_unit_is_joint", period)
16
+ agi = tax_unit("adjusted_gross_income", period)
17
+ income_limit = where(
18
+ joint, p.income_limit.joint, p.income_limit.single
19
+ )
20
+ income_eligible = agi <= income_limit
21
+ eligible_care_worker_present = (
22
+ tax_unit(
23
+ "co_care_worker_credit_eligible_care_worker_count", period
24
+ )
25
+ > 0
26
+ )
27
+ return income_eligible & eligible_care_worker_present
@@ -0,0 +1,10 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class co_care_worker_credit_eligible_care_worker(Variable):
5
+ value_type = bool
6
+ entity = Person
7
+ label = "Eligible Care Worker for the Colorado Care Worker Tax Credit"
8
+ defined_for = StateCode.CO
9
+ definition_period = YEAR
10
+ reference = "https://law.justia.com/codes/colorado/title-39/specific-taxes/income-tax/article-22/part-5/section-39-22-566/"