policyengine-us 1.353.0__py3-none-any.whl → 1.355.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.

Potentially problematic release.


This version of policyengine-us might be problematic. Click here for more details.

Files changed (176) hide show
  1. policyengine_us/parameters/gov/aca/ineligible_immigration_statuses.yaml +11 -0
  2. policyengine_us/parameters/gov/hhs/medicaid/eligibility/work_requirements/age_range.yaml +25 -0
  3. policyengine_us/parameters/gov/hhs/medicaid/eligibility/work_requirements/applies.yaml +13 -0
  4. policyengine_us/parameters/gov/hhs/medicaid/eligibility/work_requirements/dependent_age_limit.yaml +12 -0
  5. policyengine_us/parameters/gov/hhs/medicaid/eligibility/work_requirements/monthly_hours_threshold.yaml +12 -0
  6. policyengine_us/parameters/gov/irs/credits/cdcc/phase_out/amended_structure/applies.yaml +13 -0
  7. policyengine_us/parameters/gov/irs/credits/cdcc/phase_out/amended_structure/second_increment.yaml +19 -0
  8. policyengine_us/parameters/gov/irs/credits/cdcc/phase_out/amended_structure/second_min.yaml +11 -0
  9. policyengine_us/parameters/gov/irs/credits/cdcc/phase_out/amended_structure/second_start.yaml +21 -0
  10. policyengine_us/parameters/gov/irs/credits/cdcc/phase_out/max.yaml +2 -0
  11. policyengine_us/parameters/gov/irs/credits/cdcc/phase_out/min.yaml +2 -0
  12. policyengine_us/parameters/gov/irs/credits/ctc/adult_ssn_requirement_applies.yaml +11 -0
  13. policyengine_us/parameters/gov/irs/credits/ctc/child_ssn_requirement_applies.yaml +0 -1
  14. policyengine_us/parameters/gov/irs/credits/ctc/eligible_ssn_card_type.yaml +13 -0
  15. policyengine_us/parameters/gov/irs/deductions/auto_loan_interest/cap.yaml +12 -0
  16. policyengine_us/parameters/gov/irs/deductions/auto_loan_interest/phase_out/increment.yaml +11 -0
  17. policyengine_us/parameters/gov/irs/deductions/auto_loan_interest/phase_out/start.yaml +21 -0
  18. policyengine_us/parameters/gov/irs/deductions/auto_loan_interest/phase_out/step.yaml +12 -0
  19. policyengine_us/parameters/gov/irs/deductions/deductions_if_itemizing.yaml +14 -0
  20. policyengine_us/parameters/gov/irs/deductions/deductions_if_not_itemizing.yaml +12 -0
  21. policyengine_us/parameters/gov/irs/deductions/itemized/casualty/active.yaml +0 -1
  22. policyengine_us/parameters/gov/irs/deductions/itemized/charity/ceiling/all.yaml +0 -1
  23. policyengine_us/parameters/gov/irs/deductions/itemized/charity/ceiling/non_cash.yaml +2 -0
  24. policyengine_us/parameters/gov/irs/deductions/itemized/charity/floor/amount.yaml +11 -0
  25. policyengine_us/parameters/gov/irs/deductions/itemized/charity/floor/applies.yaml +12 -0
  26. policyengine_us/parameters/gov/irs/deductions/itemized/charity/non_itemizers_amount.yaml +8 -0
  27. policyengine_us/parameters/gov/irs/deductions/itemized/interest/mortgage/cap.yaml +0 -5
  28. policyengine_us/parameters/gov/irs/deductions/itemized/misc/applies.yaml +0 -1
  29. policyengine_us/parameters/gov/irs/deductions/itemized/reduction/amended_structure/applies.yaml +13 -0
  30. policyengine_us/parameters/gov/irs/deductions/itemized/reduction/amended_structure/rate.yaml +12 -0
  31. policyengine_us/parameters/gov/irs/deductions/itemized/salt_and_real_estate/cap.yaml +30 -5
  32. policyengine_us/parameters/gov/irs/deductions/itemized/salt_and_real_estate/phase_out/floor/amount.yaml +21 -0
  33. policyengine_us/parameters/gov/irs/deductions/itemized/salt_and_real_estate/phase_out/floor/applies.yaml +13 -0
  34. policyengine_us/parameters/gov/irs/deductions/itemized/salt_and_real_estate/phase_out/in_effect.yaml +13 -0
  35. policyengine_us/parameters/gov/irs/deductions/itemized/salt_and_real_estate/phase_out/rate.yaml +12 -0
  36. policyengine_us/parameters/gov/irs/deductions/itemized/salt_and_real_estate/phase_out/threshold.yaml +41 -0
  37. policyengine_us/parameters/gov/irs/deductions/overtime_income/cap.yaml +22 -0
  38. policyengine_us/parameters/gov/irs/deductions/overtime_income/eligible_ssn_card_type.yaml +13 -0
  39. policyengine_us/parameters/gov/irs/deductions/overtime_income/phase_out/rate.yaml +12 -0
  40. policyengine_us/parameters/gov/irs/deductions/overtime_income/phase_out/start.yaml +22 -0
  41. policyengine_us/parameters/gov/irs/deductions/qbi/deduction_floor/amount.yaml +21 -0
  42. policyengine_us/parameters/gov/irs/deductions/qbi/deduction_floor/in_effect.yaml +13 -0
  43. policyengine_us/parameters/gov/irs/deductions/qbi/max/business_property/rate.yaml +1 -6
  44. policyengine_us/parameters/gov/irs/deductions/qbi/max/rate.yaml +1 -2
  45. policyengine_us/parameters/gov/irs/deductions/qbi/max/w2_wages/alt_rate.yaml +1 -6
  46. policyengine_us/parameters/gov/irs/deductions/qbi/max/w2_wages/rate.yaml +1 -6
  47. policyengine_us/parameters/gov/irs/deductions/qbi/phase_out/length.yaml +12 -10
  48. policyengine_us/parameters/gov/irs/deductions/qbi/phase_out/start.yaml +7 -5
  49. policyengine_us/parameters/gov/irs/deductions/senior_deduction/amount.yaml +12 -0
  50. policyengine_us/parameters/gov/irs/deductions/senior_deduction/eligible_ssn_card_type.yaml +13 -0
  51. policyengine_us/parameters/gov/irs/deductions/senior_deduction/phase_out_rate/joint.yaml +20 -0
  52. policyengine_us/parameters/gov/irs/deductions/senior_deduction/phase_out_rate/other.yaml +20 -0
  53. policyengine_us/parameters/gov/irs/deductions/tip_income/cap.yaml +12 -0
  54. policyengine_us/parameters/gov/irs/deductions/tip_income/eligible_ssn_card_type.yaml +13 -0
  55. policyengine_us/parameters/gov/irs/deductions/tip_income/phase_out/rate.yaml +12 -0
  56. policyengine_us/parameters/gov/irs/deductions/tip_income/phase_out/start.yaml +22 -0
  57. policyengine_us/parameters/gov/usda/snap/work_requirements/abawd/age_threshold/dependent.yaml +4 -2
  58. policyengine_us/parameters/gov/usda/snap/work_requirements/abawd/age_threshold/exempted.yaml +4 -1
  59. policyengine_us/parameters/gov/usda/snap/work_requirements/abawd/amended_structure/in_effect.yaml +13 -0
  60. policyengine_us/parameters/gov/usda/snap/work_requirements/abawd/amended_structure/sunset_provisions_apply.yaml +13 -0
  61. policyengine_us/parameters/gov/usda/snap/work_requirements/general/age_threshold/caring_dependent_child.yaml +1 -1
  62. policyengine_us/parameters/gov/usda/snap/work_requirements/general/age_threshold/exempted.yaml +1 -1
  63. policyengine_us/parameters/gov/usda/snap/work_requirements/general/weekly_hours_threshold.yaml +1 -1
  64. policyengine_us/reforms/reconciliation/__init__.py +0 -36
  65. policyengine_us/reforms/reforms.py +0 -63
  66. policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility/medicaid_work_requirement_eligible.yaml +88 -0
  67. policyengine_us/tests/policy/baseline/gov/irs/credits/cdcc/cdcc_rate.yaml +40 -0
  68. policyengine_us/tests/policy/baseline/gov/irs/credits/ctc/maximum/individual/filer_meets_ctc_identification_requirements.yaml +51 -0
  69. policyengine_us/tests/policy/baseline/gov/irs/credits/ctc/maximum/individual/meets_ctc_child_identification_requirements.yaml +2 -2
  70. policyengine_us/tests/policy/baseline/gov/irs/deductions/itemized/salt_and_real_estate/reported_salt.yaml +2 -4
  71. policyengine_us/tests/policy/baseline/gov/irs/deductions/itemized/salt_and_real_estate/salt_deduction.yaml +78 -0
  72. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/auto_loan_interest_deduction.yaml +26 -0
  73. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/itemizing/charitable_deduction.yaml +42 -6
  74. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/itemizing/itemized_taxable_income_deductions_reduction.yaml +18 -5
  75. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/itemizing/misc_deduction.yaml +0 -18
  76. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/overtime_income/overtime_income_deduction.yaml +39 -0
  77. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/overtime_income/overtime_income_deduction_ssn_requirement_met.yaml +53 -0
  78. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/qbid/qualified_business_income_deduction.yaml +33 -0
  79. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/senior_deduction/integration.yaml +107 -0
  80. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/senior_deduction/meets_additional_senior_deduction_identification_requirements.yaml +71 -0
  81. policyengine_us/tests/policy/{contrib/reconciliation/reconciled_tip_and_overtime_exempt.yaml → baseline/gov/irs/income/taxable_income/deductions/tip_and_overtime_income_deduction.yaml} +39 -114
  82. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/tip_income/tip_income_deduction.yaml +79 -0
  83. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/tip_income/tip_income_deduction_ineligible_cardholder_present.yaml +53 -0
  84. policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/work_requirements/meets_snap_abawd_work_requirements.yaml +105 -0
  85. policyengine_us/variables/gov/hhs/medicaid/eligibility/is_medicaid_eligible.py +9 -0
  86. policyengine_us/variables/gov/hhs/medicaid/eligibility/medicaid_work_requirement_eligible.py +57 -0
  87. policyengine_us/variables/gov/irs/credits/cdcc/cdcc_rate.py +18 -0
  88. policyengine_us/variables/gov/irs/credits/ctc/ctc.py +1 -0
  89. policyengine_us/variables/gov/irs/credits/ctc/maximum/individual/filer_meets_ctc_identification_requirements.py +20 -0
  90. policyengine_us/variables/gov/irs/credits/ctc/maximum/individual/meets_ctc_child_identification_requirements.py +3 -6
  91. policyengine_us/variables/gov/irs/credits/ctc/maximum/individual/meets_ctc_identification_requirements.py +17 -0
  92. policyengine_us/variables/gov/irs/income/taxable_income/deductions/auto_loan_interest/auto_loan_interest_deduction.py +30 -0
  93. policyengine_us/variables/gov/irs/income/taxable_income/deductions/itemizing/charitable_deduction.py +18 -3
  94. policyengine_us/variables/gov/irs/income/taxable_income/deductions/itemizing/itemized_taxable_income_deductions_reduction.py +18 -0
  95. policyengine_us/variables/gov/irs/income/taxable_income/deductions/itemizing/salt_cap.py +12 -2
  96. policyengine_us/variables/gov/irs/income/taxable_income/deductions/overtime_income/overtime_income_deduction.py +24 -0
  97. policyengine_us/variables/gov/irs/income/taxable_income/deductions/overtime_income/overtime_income_deduction_ssn_requirement_met.py +25 -0
  98. policyengine_us/variables/gov/irs/income/taxable_income/deductions/qualified_business_income_deduction/qualified_business_income_deduction.py +10 -3
  99. policyengine_us/variables/gov/irs/income/taxable_income/deductions/senior_deduction/additional_senior_deduction.py +31 -0
  100. policyengine_us/variables/gov/irs/income/taxable_income/deductions/senior_deduction/additional_senior_deduction_eligible_person.py +24 -0
  101. policyengine_us/variables/gov/irs/income/taxable_income/deductions/tax_unit_itemizes.py +0 -1
  102. policyengine_us/variables/gov/irs/income/taxable_income/deductions/tip_income/tip_income_deduction.py +23 -0
  103. policyengine_us/variables/gov/irs/income/taxable_income/deductions/tip_income/tip_income_deduction_ssn_requirement_met.py +25 -0
  104. policyengine_us/variables/gov/usda/snap/eligibility/work_requirements/meets_snap_abawd_work_requirements.py +37 -7
  105. {policyengine_us-1.353.0.dist-info → policyengine_us-1.355.0.dist-info}/METADATA +1 -1
  106. {policyengine_us-1.353.0.dist-info → policyengine_us-1.355.0.dist-info}/RECORD +109 -118
  107. policyengine_us/parameters/gov/contrib/reconciliation/aca_ptc_immigration_status/in_effect.yaml +0 -13
  108. policyengine_us/parameters/gov/contrib/reconciliation/additional_senior_standard_deduction/amount.yaml +0 -12
  109. policyengine_us/parameters/gov/contrib/reconciliation/additional_senior_standard_deduction/in_effect.yaml +0 -12
  110. policyengine_us/parameters/gov/contrib/reconciliation/additional_senior_standard_deduction/rate/joint.yaml +0 -20
  111. policyengine_us/parameters/gov/contrib/reconciliation/additional_senior_standard_deduction/rate/other.yaml +0 -20
  112. policyengine_us/parameters/gov/contrib/reconciliation/auto_loan_interest_ald/cap.yaml +0 -12
  113. policyengine_us/parameters/gov/contrib/reconciliation/auto_loan_interest_ald/in_effect.yaml +0 -13
  114. policyengine_us/parameters/gov/contrib/reconciliation/auto_loan_interest_ald/phase_out/increment.yaml +0 -11
  115. policyengine_us/parameters/gov/contrib/reconciliation/auto_loan_interest_ald/phase_out/start.yaml +0 -21
  116. policyengine_us/parameters/gov/contrib/reconciliation/auto_loan_interest_ald/phase_out/step.yaml +0 -11
  117. policyengine_us/parameters/gov/contrib/reconciliation/auto_loan_interest_ald/senate_version/applies.yaml +0 -12
  118. policyengine_us/parameters/gov/contrib/reconciliation/cdcc/in_effect.yaml +0 -12
  119. policyengine_us/parameters/gov/contrib/reconciliation/cdcc/phase_out/second_increment.yaml +0 -19
  120. policyengine_us/parameters/gov/contrib/reconciliation/cdcc/phase_out/second_min.yaml +0 -11
  121. policyengine_us/parameters/gov/contrib/reconciliation/cdcc/phase_out/second_start.yaml +0 -19
  122. policyengine_us/parameters/gov/contrib/reconciliation/charitable_donations/floor.yaml +0 -12
  123. policyengine_us/parameters/gov/contrib/reconciliation/charitable_donations/in_effect.yaml +0 -12
  124. policyengine_us/parameters/gov/contrib/reconciliation/ctc/in_effect.yaml +0 -12
  125. policyengine_us/parameters/gov/contrib/reconciliation/ctc/one_person_ssn_req.yaml +0 -12
  126. policyengine_us/parameters/gov/contrib/reconciliation/overtime_income_exempt/cap.yaml +0 -22
  127. policyengine_us/parameters/gov/contrib/reconciliation/overtime_income_exempt/in_effect.yaml +0 -12
  128. policyengine_us/parameters/gov/contrib/reconciliation/overtime_income_exempt/phase_out/applies.yaml +0 -12
  129. policyengine_us/parameters/gov/contrib/reconciliation/overtime_income_exempt/phase_out/rate.yaml +0 -12
  130. policyengine_us/parameters/gov/contrib/reconciliation/overtime_income_exempt/phase_out/start.yaml +0 -24
  131. policyengine_us/parameters/gov/contrib/reconciliation/pease/amended_structure/in_effect.yaml +0 -12
  132. policyengine_us/parameters/gov/contrib/reconciliation/pease/amended_structure/salt_rate.yaml +0 -12
  133. policyengine_us/parameters/gov/contrib/reconciliation/pease/in_effect.yaml +0 -12
  134. policyengine_us/parameters/gov/contrib/reconciliation/pease/rate.yaml +0 -12
  135. policyengine_us/parameters/gov/contrib/reconciliation/qbid/deduction_floor/amount.yaml +0 -21
  136. policyengine_us/parameters/gov/contrib/reconciliation/qbid/deduction_floor/in_effect.yaml +0 -12
  137. policyengine_us/parameters/gov/contrib/reconciliation/qbid/in_effect.yaml +0 -12
  138. policyengine_us/parameters/gov/contrib/reconciliation/qbid/phase_out_rate.yaml +0 -12
  139. policyengine_us/parameters/gov/contrib/reconciliation/qbid/use_bdc_income.yaml +0 -12
  140. policyengine_us/parameters/gov/contrib/reconciliation/tip_income_exempt/cap.yaml +0 -22
  141. policyengine_us/parameters/gov/contrib/reconciliation/tip_income_exempt/in_effect.yaml +0 -12
  142. policyengine_us/parameters/gov/contrib/reconciliation/tip_income_exempt/phase_out/applies.yaml +0 -12
  143. policyengine_us/parameters/gov/contrib/reconciliation/tip_income_exempt/phase_out/rate.yaml +0 -12
  144. policyengine_us/parameters/gov/contrib/reconciliation/tip_income_exempt/phase_out/start.yaml +0 -23
  145. policyengine_us/parameters/gov/contrib/salt_phase_out/floor/amount.yaml +0 -21
  146. policyengine_us/parameters/gov/contrib/salt_phase_out/floor/applies.yaml +0 -11
  147. policyengine_us/parameters/gov/contrib/salt_phase_out/in_effect.yaml +0 -8
  148. policyengine_us/parameters/gov/contrib/salt_phase_out/rate.yaml +0 -13
  149. policyengine_us/parameters/gov/contrib/salt_phase_out/threshold.yaml +0 -21
  150. policyengine_us/reforms/reconciliation/aca_ptc_immigration_status.py +0 -55
  151. policyengine_us/reforms/reconciliation/ctc_ssn.py +0 -86
  152. policyengine_us/reforms/reconciliation/reconciled_additional_senior_standard_deduction.py +0 -151
  153. policyengine_us/reforms/reconciliation/reconciled_auto_loan_interest_ald.py +0 -153
  154. policyengine_us/reforms/reconciliation/reconciled_medicaid_work_requirement.py +0 -157
  155. policyengine_us/reforms/reconciliation/reconciled_pease.py +0 -85
  156. policyengine_us/reforms/reconciliation/reconciled_qbid.py +0 -78
  157. policyengine_us/reforms/reconciliation/reconciled_snap_abawd_work_requirement.py +0 -125
  158. policyengine_us/reforms/reconciliation/reconciled_tip_and_overtime_exempt.py +0 -177
  159. policyengine_us/reforms/reconciliation/reconciliation_cdcc.py +0 -78
  160. policyengine_us/reforms/reconciliation/reconciliation_charitable_deduction.py +0 -78
  161. policyengine_us/reforms/reconciliation/reconciliation_qbid_with_floor.py +0 -72
  162. policyengine_us/reforms/salt_phase_out/__init__.py +0 -3
  163. policyengine_us/reforms/salt_phase_out/salt_phase_out_reform.py +0 -59
  164. policyengine_us/tests/policy/contrib/reconciliation/ctc_ssn.yaml +0 -150
  165. policyengine_us/tests/policy/contrib/reconciliation/reconciled_additional_senior_standard_deduction.yaml +0 -173
  166. policyengine_us/tests/policy/contrib/reconciliation/reconciled_auto_loan_interest_ald.yaml +0 -96
  167. policyengine_us/tests/policy/contrib/reconciliation/reconciled_pease.yaml +0 -85
  168. policyengine_us/tests/policy/contrib/reconciliation/reconciled_qbid.yaml +0 -31
  169. policyengine_us/tests/policy/contrib/reconciliation/reconciled_snap_abawd_work_requirement.yaml +0 -118
  170. policyengine_us/tests/policy/contrib/reconciliation/reconciliation_cdcc.yaml +0 -59
  171. policyengine_us/tests/policy/contrib/reconciliation/reconciliation_charitable_deduction.yaml +0 -58
  172. policyengine_us/tests/policy/contrib/reconciliation/reconciliation_qbid_with_floor.yaml +0 -38
  173. policyengine_us/tests/policy/contrib/salt_phase_out/salt_phase_out_reform.yaml +0 -118
  174. {policyengine_us-1.353.0.dist-info → policyengine_us-1.355.0.dist-info}/WHEEL +0 -0
  175. {policyengine_us-1.353.0.dist-info → policyengine_us-1.355.0.dist-info}/entry_points.txt +0 -0
  176. {policyengine_us-1.353.0.dist-info → policyengine_us-1.355.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,88 @@
1
+ - name: Case 1, age 18, work exempted age.
2
+ period: 2026
3
+ input:
4
+ age: 18
5
+ output:
6
+ medicaid_work_requirement_eligible: true
7
+
8
+ - name: Case 2, age 65, work exempted age.
9
+ period: 2026
10
+ input:
11
+ age: 65
12
+ output:
13
+ medicaid_work_requirement_eligible: true
14
+
15
+ - name: Case 3, age 19, need working.
16
+ period: 2026
17
+ input:
18
+ age: 19
19
+ output:
20
+ medicaid_work_requirement_eligible: false
21
+
22
+ - name: Case 4, age 30, working 79 hours per month.
23
+ period: 2026
24
+ input:
25
+ age: 30
26
+ monthly_hours_worked: 79
27
+ output:
28
+ medicaid_work_requirement_eligible: false
29
+
30
+ - name: Case 5, age 30, working 80 hours per month.
31
+ period: 2026
32
+ input:
33
+ age: 30
34
+ monthly_hours_worked: 80
35
+ output:
36
+ medicaid_work_requirement_eligible: true
37
+
38
+ - name: Case 6, age 30, is disabled.
39
+ period: 2026
40
+ input:
41
+ age: 19
42
+ monthly_hours_worked: 5
43
+ is_disabled: true
44
+ output:
45
+ medicaid_work_requirement_eligible: true
46
+
47
+ - name: Case 7, integration.
48
+ period: 2026
49
+ input:
50
+ people:
51
+ person1:
52
+ age: 30
53
+ is_tax_unit_head_or_spouse: true
54
+ monthly_hours_worked: 80
55
+ person2:
56
+ age: 30
57
+ is_tax_unit_head_or_spouse: true
58
+ monthly_hours_worked: 79
59
+ output:
60
+ medicaid_work_requirement_eligible: [true, false]
61
+
62
+ - name: Case 8, not working, but has child at age 13.
63
+ period: 2026
64
+ input:
65
+ people:
66
+ person1:
67
+ age: 30
68
+ is_tax_unit_head_or_spouse: true
69
+ monthly_hours_worked: 0
70
+ person2:
71
+ age: 13
72
+ is_tax_unit_dependent: true
73
+ output:
74
+ medicaid_work_requirement_eligible: [true, true]
75
+
76
+ - name: Case 9, not working, has child at age 14, ineligible under Senate Version.
77
+ period: 2026
78
+ input:
79
+ people:
80
+ person1:
81
+ age: 30
82
+ is_tax_unit_head_or_spouse: true
83
+ monthly_hours_worked: 0
84
+ person2:
85
+ age: 14
86
+ is_tax_unit_dependent: true
87
+ output:
88
+ medicaid_work_requirement_eligible: [false, true]
@@ -51,3 +51,43 @@
51
51
  adjusted_gross_income: 438_001
52
52
  output:
53
53
  cdcc_rate: 0
54
+
55
+ - name: AGI below first phase-out start, no second phase-out
56
+ period: 2026
57
+ input:
58
+ adjusted_gross_income: 15_000
59
+ filing_status: HEAD_OF_HOUSEHOLD
60
+ output:
61
+ cdcc_rate: 0.5
62
+
63
+ - name: Phased-out at first increment
64
+ period: 2026
65
+ input:
66
+ adjusted_gross_income: 16_000
67
+ filing_status: HEAD_OF_HOUSEHOLD
68
+ output:
69
+ cdcc_rate: 0.49
70
+
71
+ - name: First phase-out plateau
72
+ period: 2026
73
+ input:
74
+ adjusted_gross_income: 60_000
75
+ filing_status: HEAD_OF_HOUSEHOLD
76
+ output:
77
+ cdcc_rate: 0.35
78
+
79
+ - name: Second phase-out starts
80
+ period: 2026
81
+ input:
82
+ adjusted_gross_income: 90_000
83
+ filing_status: HEAD_OF_HOUSEHOLD
84
+ output:
85
+ cdcc_rate: 0.27
86
+
87
+ - name: Fully phased-out
88
+ period: 2026
89
+ input:
90
+ adjusted_gross_income: 400_000
91
+ filing_status: HEAD_OF_HOUSEHOLD
92
+ output:
93
+ cdcc_rate: 0.2
@@ -0,0 +1,51 @@
1
+ - name: One person has a valid SSN card type, the other does not, senate finance rules
2
+ period: 2026
3
+ absolute_error_margin: 0.9
4
+ input:
5
+ people:
6
+ person1:
7
+ ssn_card_type: CITIZEN
8
+ person2:
9
+ ssn_card_type: NONE
10
+ output:
11
+ meets_ctc_identification_requirements: [true, false]
12
+ filer_meets_ctc_identification_requirements: true
13
+
14
+ - name: One person has a valid SSN card type, the other does not, senate finance rules, child status irrelevant
15
+ period: 2026
16
+ absolute_error_margin: 0.9
17
+ input:
18
+ people:
19
+ person1:
20
+ ssn_card_type: CITIZEN
21
+ person2:
22
+ ssn_card_type: NONE
23
+ person3:
24
+ age: 5
25
+ is_tax_unit_dependent: true
26
+ ssn_card_type: NONE
27
+ output:
28
+ meets_ctc_identification_requirements: [true, false, false]
29
+ filer_meets_ctc_identification_requirements: true
30
+
31
+ - name: Single person eligible
32
+ period: 2026
33
+ absolute_error_margin: 0.9
34
+ input:
35
+ people:
36
+ person1:
37
+ ssn_card_type: CITIZEN
38
+ output:
39
+ meets_ctc_identification_requirements: [true]
40
+ filer_meets_ctc_identification_requirements: true
41
+
42
+ - name: Single person ineligible
43
+ period: 2026
44
+ absolute_error_margin: 0.9
45
+ input:
46
+ people:
47
+ person1:
48
+ ssn_card_type: NONE
49
+ output:
50
+ meets_ctc_identification_requirements: [false]
51
+ filer_meets_ctc_identification_requirements: false
@@ -17,9 +17,9 @@
17
17
  output:
18
18
  meets_ctc_child_identification_requirements: true
19
19
 
20
- - name: After 2025, the CTC does not require a Social Security Number for qualifying children.
20
+ - name: After 2025, the CTC still requires a Social Security Number for qualifying children.
21
21
  period: 2026
22
22
  input:
23
23
  ssn_card_type: OTHER_NON_CITIZEN
24
24
  output:
25
- meets_ctc_child_identification_requirements: true
25
+ meets_ctc_child_identification_requirements: false
@@ -29,7 +29,6 @@
29
29
  - name: Integration test with amt, limit is applied
30
30
  period: 2026
31
31
  input:
32
- gov.simulation.limit_itemized_deductions_to_taxable_income: True
33
32
  salt: 45_000
34
33
  employment_income: 40_000
35
34
  output:
@@ -42,12 +41,11 @@
42
41
  - name: Integration test with amt, limit is not applied
43
42
  period: 2026
44
43
  input:
45
- gov.simulation.limit_itemized_deductions_to_taxable_income: False
46
44
  salt: 45_000
47
45
  employment_income: 40_000
48
46
  output:
49
47
  adjusted_gross_income: 40_000
50
48
  exemptions: 5_300
51
- reported_salt: 45_000
52
- amt_income: 50_300
49
+ reported_salt: 34_700
50
+ amt_income: 40_000
53
51
  taxable_income: 0
@@ -13,3 +13,81 @@
13
13
  filing_status: SINGLE
14
14
  output:
15
15
  salt_deduction: 4_000
16
+
17
+ - name: Single filer with income below reduction amount
18
+ period: 2025
19
+ input:
20
+ people:
21
+ person1:
22
+ real_estate_taxes: 10_000
23
+ tax_units:
24
+ tax_unit:
25
+ members: [person1]
26
+ filing_status: SINGLE
27
+ adjusted_gross_income: 100_000
28
+ state_and_local_sales_or_income_tax: 1_000
29
+ output:
30
+ salt_deduction: 11_000
31
+
32
+ - name: Separate filer with income above reduction amount
33
+ period: 2025
34
+ input:
35
+ people:
36
+ person1:
37
+ real_estate_taxes: 10_000
38
+ tax_units:
39
+ tax_unit:
40
+ members: [person1]
41
+ filing_status: SEPARATE
42
+ adjusted_gross_income: 290_000
43
+ state_and_local_sales_or_income_tax: 1_000
44
+ output:
45
+ salt_deduction: 8_000
46
+
47
+ - name: Fully phased out, floor applies
48
+ period: 2026
49
+ input:
50
+ people:
51
+ person1:
52
+ real_estate_taxes: 10_000
53
+ tax_units:
54
+ tax_unit:
55
+ members: [person1]
56
+ filing_status: SEPARATE
57
+ adjusted_gross_income: 500_000
58
+ output:
59
+ salt_deduction: 5_000
60
+
61
+ - name: Floor applies
62
+ period: 2026
63
+ input:
64
+ people:
65
+ person1:
66
+ real_estate_taxes: 10_000
67
+ person2:
68
+ real_estate_taxes: 0
69
+ tax_units:
70
+ tax_unit:
71
+ members: [person1, person2]
72
+ filing_status: JOINT
73
+ adjusted_gross_income: 1_000_000
74
+ output:
75
+ salt_cap: 10_000
76
+ salt_deduction: 10_000
77
+
78
+ - name: The SALT itself is not subject to phase-out
79
+ period: 2026
80
+ input:
81
+ people:
82
+ person1:
83
+ real_estate_taxes: 11_000
84
+ person2:
85
+ real_estate_taxes: 0
86
+ tax_units:
87
+ tax_unit:
88
+ members: [person1, person2]
89
+ filing_status: JOINT
90
+ adjusted_gross_income: 600_000
91
+ state_and_local_sales_or_income_tax: 0
92
+ output:
93
+ salt_deduction: 11_000
@@ -0,0 +1,26 @@
1
+ - name: Senate version of auto loan interest deduction
2
+ period: 2026
3
+ input:
4
+ irs_gross_income: 220_000
5
+ filing_status: JOINT
6
+ auto_loan_interest: 20_000
7
+ standard_deduction: 0
8
+ tax_unit_itemizes: false
9
+ output:
10
+ auto_loan_interest_deduction: 6_000
11
+ adjusted_gross_income: 220_000
12
+ taxable_income_deductions: 6_000
13
+
14
+ - name: Senate version of auto loan interest deduction, itemizing
15
+ period: 2026
16
+ input:
17
+ irs_gross_income: 220_000
18
+ filing_status: JOINT
19
+ auto_loan_interest: 20_000
20
+ standard_deduction: 0
21
+ tax_unit_itemizes: true
22
+ salt_deduction: 10_000
23
+ output:
24
+ auto_loan_interest_deduction: 6_000
25
+ adjusted_gross_income: 220_000
26
+ taxable_income_deductions: 16_000
@@ -47,11 +47,47 @@
47
47
  output: # min(min(200, 1000 * 0.3) + min(500 - 600, 0), 1000 * 0.6)
48
48
  charitable_deduction: 600
49
49
 
50
- - name: 2026 filer
50
+ - name: No AGI
51
51
  period: 2026
52
52
  input:
53
- charitable_cash_donations: 100
54
- charitable_non_cash_donations: 400
55
- positive_agi: 1_000
56
- output: # min(min(400, 1000 * 0.3) + 100, 1000 * 0.5)
57
- charitable_deduction: 400
53
+ charitable_cash_donations: 10_000
54
+ charitable_non_cash_donations: 30_000
55
+ positive_agi: 0
56
+ output:
57
+ charitable_deduction: 0
58
+
59
+ - name: Charitable deduction with a 0.5% floor
60
+ period: 2026
61
+ input:
62
+ charitable_cash_donations: 10_000
63
+ charitable_non_cash_donations: 30_000
64
+ positive_agi: 200_000
65
+ output:
66
+ charitable_deduction: 39_000
67
+
68
+ - name: Contributions below floor
69
+ period: 2026
70
+ input:
71
+ charitable_cash_donations: 500
72
+ charitable_non_cash_donations: 300
73
+ positive_agi: 200_000
74
+ output:
75
+ charitable_deduction: 0
76
+
77
+ - name: Non cash donations are capped at 50% of AGI and cash donation increase the cap to 60%, partial cap
78
+ period: 2026
79
+ input:
80
+ charitable_cash_donations: 600
81
+ charitable_non_cash_donations: 12_000
82
+ positive_agi: 20_000
83
+ output:
84
+ charitable_deduction: 10_600
85
+
86
+ - name: Non cash donations are capped at 50% of AGI and cash donation increase the cap to 60%, full cap
87
+ period: 2026
88
+ input:
89
+ charitable_cash_donations: 3_000
90
+ charitable_non_cash_donations: 12_000
91
+ positive_agi: 20_000
92
+ output:
93
+ charitable_deduction: 12_000
@@ -7,21 +7,34 @@
7
7
  output:
8
8
  itemized_taxable_income_deductions_reduction: 0
9
9
 
10
- - name: Reduction in 2026, due to AGI reduction
10
+ - name: Reduction in 2026, due to AGI
11
11
  period: 2026
12
12
  absolute_error_margin: 1
13
13
  input:
14
- adjusted_gross_income: 500_000
14
+ adjusted_gross_income: 700_000
15
15
  filing_status: SINGLE
16
16
  total_itemized_taxable_income_deductions: 200_000
17
17
  output:
18
- itemized_taxable_income_deductions_reduction: 4_805
18
+ itemized_taxable_income_deductions_reduction: 8_443
19
19
 
20
20
  - name: Reduction in 2026, due to total deductions reduction
21
21
  period: 2026
22
+ absolute_error_margin: 1
22
23
  input:
23
- adjusted_gross_income: 500_000
24
+ adjusted_gross_income: 600_000
24
25
  filing_status: SINGLE
25
26
  total_itemized_taxable_income_deductions: 1_000
26
27
  output:
27
- itemized_taxable_income_deductions_reduction: 800
28
+ itemized_taxable_income_deductions_reduction: 54
29
+
30
+ - name: Amended structure in effect, no salt deduction
31
+ period: 2026
32
+ absolute_error_margin: 1
33
+ input:
34
+ total_itemized_taxable_income_deductions: 10_000
35
+ salt_deduction: 0
36
+ exemptions: 0
37
+ filing_status: JOINT
38
+ adjusted_gross_income: 700_000
39
+ output:
40
+ itemized_taxable_income_deductions_reduction: 540.54
@@ -1,21 +1,3 @@
1
- - name: Deduction floor applies
2
- period: 2026
3
- input:
4
- unreimbursed_business_employee_expenses: 600
5
- tax_preparation_fees: 400
6
- adjusted_gross_income: 2_000
7
- output:
8
- misc_deduction: 960
9
-
10
- - name: Deduction floor does not apply
11
- period: 2026
12
- input:
13
- unreimbursed_business_employee_expenses: 1_800
14
- tax_preparation_fees: 200
15
- adjusted_gross_income: 0
16
- output:
17
- misc_deduction: 2_000
18
-
19
1
  - name: No deduction allowed
20
2
  period: 2026
21
3
  input:
@@ -0,0 +1,39 @@
1
+ - name: Ineligible cardholder present
2
+ period: 2025
3
+ input:
4
+ overtime_income_deduction_ssn_requirement_met: false
5
+ fsla_overtime_premium: 10_000
6
+ adjusted_gross_income: 100_000
7
+ filing_status: JOINT
8
+ output:
9
+ overtime_income_deduction: 0
10
+
11
+ - name: AGI below phase out start
12
+ period: 2025
13
+ input:
14
+ overtime_income_deduction_ssn_requirement_met: true
15
+ fsla_overtime_premium: 10_000
16
+ adjusted_gross_income: 100_000
17
+ filing_status: JOINT
18
+ output:
19
+ overtime_income_deduction: 10_000
20
+
21
+ - name: Fully phased out
22
+ period: 2025
23
+ input:
24
+ overtime_income_deduction_ssn_requirement_met: true
25
+ fsla_overtime_premium: 10_000
26
+ adjusted_gross_income: 1_000_000
27
+ filing_status: JOINT
28
+ output:
29
+ overtime_income_deduction: 0
30
+
31
+ - name: Partially phased out
32
+ period: 2025
33
+ input:
34
+ overtime_income_deduction_ssn_requirement_met: true
35
+ fsla_overtime_premium: 10_000
36
+ adjusted_gross_income: 190_000
37
+ filing_status: JOINT
38
+ output:
39
+ overtime_income_deduction: 10_000
@@ -0,0 +1,53 @@
1
+ - name: Ineligible cardholder present
2
+ period: 2025
3
+ input:
4
+ people:
5
+ person1:
6
+ ssn_card_type: CITIZEN
7
+ is_tax_unit_head: true
8
+ is_tax_unit_spouse: false
9
+ person2:
10
+ ssn_card_type: OTHER_NON_CITIZEN
11
+ is_tax_unit_head: false
12
+ is_tax_unit_spouse: true
13
+ tax_units:
14
+ tax_unit:
15
+ members: [person1, person2]
16
+ output:
17
+ overtime_income_deduction_ssn_requirement_met: false
18
+
19
+ - name: Ineligible cardholder present, but not head or spouse
20
+ period: 2025
21
+ input:
22
+ people:
23
+ person1:
24
+ ssn_card_type: CITIZEN
25
+ is_tax_unit_head: true
26
+ is_tax_unit_spouse: false
27
+ person2:
28
+ ssn_card_type: OTHER_NON_CITIZEN
29
+ is_tax_unit_head: false
30
+ is_tax_unit_spouse: false
31
+ tax_units:
32
+ tax_unit:
33
+ members: [person1, person2]
34
+ output:
35
+ overtime_income_deduction_ssn_requirement_met: true
36
+
37
+ - name: Ineligible cardholder not present
38
+ period: 2025
39
+ input:
40
+ people:
41
+ person1:
42
+ ssn_card_type: CITIZEN
43
+ is_tax_unit_head: true
44
+ is_tax_unit_spouse: false
45
+ person2:
46
+ ssn_card_type: NON_CITIZEN_VALID_EAD
47
+ is_tax_unit_head: true
48
+ is_tax_unit_spouse: false
49
+ tax_units:
50
+ tax_unit:
51
+ members: [person1, person2]
52
+ output:
53
+ overtime_income_deduction_ssn_requirement_met: true
@@ -24,3 +24,36 @@
24
24
  adjusted_net_capital_gain: 32_000
25
25
  output:
26
26
  qualified_business_income_deduction: 0
27
+
28
+ - name: Deduction floor in effect, income above threshold
29
+ absolute_error_margin: 0.01
30
+ period: 2026
31
+ input:
32
+ qbid_amount: 200
33
+ taxable_income_less_qbid: 600
34
+ adjusted_net_capital_gain: 0
35
+ qualified_business_income: 1_000
36
+ output:
37
+ qualified_business_income_deduction: 400
38
+
39
+ - name: Deduction floor in effect, income below threshold
40
+ absolute_error_margin: 0.01
41
+ period: 2026
42
+ input:
43
+ qbid_amount: 200
44
+ taxable_income_less_qbid: 0
45
+ adjusted_net_capital_gain: 0
46
+ qualified_business_income: 999
47
+ output:
48
+ qualified_business_income_deduction: 0
49
+
50
+ - name: QBID above floor
51
+ absolute_error_margin: 0.01
52
+ period: 2026
53
+ input:
54
+ qbid_amount: 2_000
55
+ taxable_income_less_qbid: 20_000
56
+ adjusted_net_capital_gain: 0
57
+ qualified_business_income: 1_000
58
+ output:
59
+ qualified_business_income_deduction: 2_000
@@ -0,0 +1,107 @@
1
+ - name: Two eligible seniors, income above the phase-out
2
+ period: 2025
3
+ input:
4
+ people:
5
+ person1:
6
+ age: 65
7
+ is_tax_unit_head_or_spouse: true
8
+ ssn_card_type: CITIZEN
9
+ person2:
10
+ age: 65
11
+ is_tax_unit_head_or_spouse: true
12
+ ssn_card_type: NON_CITIZEN_VALID_EAD
13
+ tax_units:
14
+ tax_unit:
15
+ members: [person1, person2]
16
+ filing_status: JOINT
17
+ adjusted_gross_income: 200_000
18
+ salt_deduction: 0
19
+ standard_deduction: 0
20
+ output:
21
+ additional_senior_deduction: 9_000
22
+ taxable_income_deductions_if_itemizing: 9_000
23
+ taxable_income_deductions_if_not_itemizing: 9_000
24
+
25
+ - name: Single senior, income above the phase-out, 2025
26
+ period: 2025
27
+ input:
28
+ people:
29
+ person1:
30
+ age: 65
31
+ is_tax_unit_head_or_spouse: true
32
+ ssn_card_type: CITIZEN
33
+ tax_units:
34
+ tax_unit:
35
+ members: [person1]
36
+ adjusted_gross_income: 90_000
37
+ salt_deduction: 0
38
+ standard_deduction: 0
39
+ output:
40
+ additional_senior_deduction: 5_100
41
+ taxable_income_deductions_if_itemizing: 5_100
42
+ taxable_income_deductions_if_not_itemizing: 5_100
43
+
44
+ - name: Single non-senior, income above the phase-out
45
+ period: 2025
46
+ input:
47
+ people:
48
+ person1:
49
+ age: 64
50
+ is_tax_unit_head_or_spouse: true
51
+ ssn_card_type: CITIZEN
52
+ tax_units:
53
+ tax_unit:
54
+ members: [person1]
55
+ adjusted_gross_income: 90_000
56
+ salt_deduction: 0
57
+ standard_deduction: 0
58
+ output:
59
+ additional_senior_deduction: 0
60
+ taxable_income_deductions_if_itemizing: 0
61
+ taxable_income_deductions_if_not_itemizing: 0
62
+
63
+ - name: Test with two structural reforms, tips, overtime and the SD are added
64
+ period: 2025
65
+ input:
66
+ people:
67
+ person1:
68
+ age: 65
69
+ is_tax_unit_head_or_spouse: true
70
+ ssn_card_type: CITIZEN
71
+ tip_income: 1_000
72
+ fsla_overtime_premium: 2_000
73
+ tax_units:
74
+ tax_unit:
75
+ members: [person1]
76
+ adjusted_gross_income: 90_000
77
+ salt_deduction: 0
78
+ standard_deduction: 0
79
+ output:
80
+ additional_senior_deduction: 5_100
81
+ overtime_income_deduction: 2_000
82
+ tip_income_deduction: 1_000
83
+ taxable_income_deductions_if_itemizing: 8_100
84
+ taxable_income_deductions_if_not_itemizing: 8_100
85
+
86
+ - name: Testing when reforms are initialized in another order
87
+ period: 2025
88
+ input:
89
+ people:
90
+ person1:
91
+ age: 65
92
+ is_tax_unit_head_or_spouse: true
93
+ ssn_card_type: CITIZEN
94
+ tip_income: 1_000
95
+ fsla_overtime_premium: 2_000
96
+ tax_units:
97
+ tax_unit:
98
+ members: [person1]
99
+ adjusted_gross_income: 90_000
100
+ salt_deduction: 0
101
+ standard_deduction: 0
102
+ output:
103
+ additional_senior_deduction: 5_100
104
+ overtime_income_deduction: 2_000
105
+ tip_income_deduction: 1_000
106
+ taxable_income_deductions_if_itemizing: 8_100
107
+ taxable_income_deductions_if_not_itemizing: 8_100