policyengine-us 1.353.0__py3-none-any.whl → 1.354.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 (154) hide show
  1. policyengine_us/parameters/gov/irs/credits/cdcc/phase_out/amended_structure/applies.yaml +13 -0
  2. policyengine_us/parameters/gov/irs/credits/cdcc/phase_out/amended_structure/second_increment.yaml +19 -0
  3. policyengine_us/parameters/gov/irs/credits/cdcc/phase_out/amended_structure/second_min.yaml +11 -0
  4. policyengine_us/parameters/gov/irs/credits/cdcc/phase_out/amended_structure/second_start.yaml +21 -0
  5. policyengine_us/parameters/gov/irs/credits/cdcc/phase_out/max.yaml +2 -0
  6. policyengine_us/parameters/gov/irs/credits/cdcc/phase_out/min.yaml +2 -0
  7. policyengine_us/parameters/gov/irs/credits/ctc/adult_ssn_requirement_applies.yaml +11 -0
  8. policyengine_us/parameters/gov/irs/credits/ctc/child_ssn_requirement_applies.yaml +0 -1
  9. policyengine_us/parameters/gov/irs/credits/ctc/eligible_ssn_card_type.yaml +13 -0
  10. policyengine_us/parameters/gov/irs/deductions/auto_loan_interest/cap.yaml +12 -0
  11. policyengine_us/parameters/gov/irs/deductions/auto_loan_interest/phase_out/increment.yaml +11 -0
  12. policyengine_us/parameters/gov/irs/deductions/auto_loan_interest/phase_out/start.yaml +21 -0
  13. policyengine_us/parameters/gov/irs/deductions/auto_loan_interest/phase_out/step.yaml +12 -0
  14. policyengine_us/parameters/gov/irs/deductions/deductions_if_itemizing.yaml +14 -0
  15. policyengine_us/parameters/gov/irs/deductions/deductions_if_not_itemizing.yaml +12 -0
  16. policyengine_us/parameters/gov/irs/deductions/itemized/casualty/active.yaml +0 -1
  17. policyengine_us/parameters/gov/irs/deductions/itemized/charity/ceiling/all.yaml +0 -1
  18. policyengine_us/parameters/gov/irs/deductions/itemized/charity/ceiling/non_cash.yaml +2 -0
  19. policyengine_us/parameters/gov/irs/deductions/itemized/charity/floor/amount.yaml +11 -0
  20. policyengine_us/parameters/gov/irs/deductions/itemized/charity/floor/applies.yaml +12 -0
  21. policyengine_us/parameters/gov/irs/deductions/itemized/charity/non_itemizers_amount.yaml +8 -0
  22. policyengine_us/parameters/gov/irs/deductions/itemized/interest/mortgage/cap.yaml +0 -5
  23. policyengine_us/parameters/gov/irs/deductions/itemized/misc/applies.yaml +0 -1
  24. policyengine_us/parameters/gov/irs/deductions/itemized/reduction/amended_structure/applies.yaml +13 -0
  25. policyengine_us/parameters/gov/irs/deductions/itemized/reduction/amended_structure/rate.yaml +12 -0
  26. policyengine_us/parameters/gov/irs/deductions/itemized/salt_and_real_estate/cap.yaml +30 -5
  27. policyengine_us/parameters/gov/irs/deductions/itemized/salt_and_real_estate/phase_out/floor/amount.yaml +21 -0
  28. policyengine_us/parameters/gov/irs/deductions/itemized/salt_and_real_estate/phase_out/floor/applies.yaml +13 -0
  29. policyengine_us/parameters/gov/irs/deductions/itemized/salt_and_real_estate/phase_out/in_effect.yaml +13 -0
  30. policyengine_us/parameters/gov/irs/deductions/itemized/salt_and_real_estate/phase_out/rate.yaml +12 -0
  31. policyengine_us/parameters/gov/irs/deductions/itemized/salt_and_real_estate/phase_out/threshold.yaml +41 -0
  32. policyengine_us/parameters/gov/irs/deductions/overtime_income/cap.yaml +22 -0
  33. policyengine_us/parameters/gov/irs/deductions/overtime_income/eligible_ssn_card_type.yaml +13 -0
  34. policyengine_us/parameters/gov/irs/deductions/overtime_income/phase_out/rate.yaml +12 -0
  35. policyengine_us/parameters/gov/irs/deductions/overtime_income/phase_out/start.yaml +22 -0
  36. policyengine_us/parameters/gov/irs/deductions/qbi/deduction_floor/amount.yaml +21 -0
  37. policyengine_us/parameters/gov/irs/deductions/qbi/deduction_floor/in_effect.yaml +13 -0
  38. policyengine_us/parameters/gov/irs/deductions/qbi/max/business_property/rate.yaml +1 -6
  39. policyengine_us/parameters/gov/irs/deductions/qbi/max/rate.yaml +1 -2
  40. policyengine_us/parameters/gov/irs/deductions/qbi/max/w2_wages/alt_rate.yaml +1 -6
  41. policyengine_us/parameters/gov/irs/deductions/qbi/max/w2_wages/rate.yaml +1 -6
  42. policyengine_us/parameters/gov/irs/deductions/qbi/phase_out/length.yaml +12 -10
  43. policyengine_us/parameters/gov/irs/deductions/qbi/phase_out/start.yaml +7 -5
  44. policyengine_us/parameters/gov/irs/deductions/senior_deduction/amount.yaml +12 -0
  45. policyengine_us/parameters/gov/irs/deductions/senior_deduction/eligible_ssn_card_type.yaml +13 -0
  46. policyengine_us/parameters/gov/irs/deductions/senior_deduction/phase_out_rate/joint.yaml +20 -0
  47. policyengine_us/parameters/gov/irs/deductions/senior_deduction/phase_out_rate/other.yaml +20 -0
  48. policyengine_us/parameters/gov/irs/deductions/tip_income/cap.yaml +12 -0
  49. policyengine_us/parameters/gov/irs/deductions/tip_income/eligible_ssn_card_type.yaml +13 -0
  50. policyengine_us/parameters/gov/irs/deductions/tip_income/phase_out/rate.yaml +12 -0
  51. policyengine_us/parameters/gov/irs/deductions/tip_income/phase_out/start.yaml +22 -0
  52. policyengine_us/reforms/reconciliation/__init__.py +0 -27
  53. policyengine_us/reforms/reforms.py +0 -45
  54. policyengine_us/tests/policy/baseline/gov/irs/credits/cdcc/cdcc_rate.yaml +40 -0
  55. policyengine_us/tests/policy/baseline/gov/irs/credits/ctc/maximum/individual/filer_meets_ctc_identification_requirements.yaml +51 -0
  56. policyengine_us/tests/policy/baseline/gov/irs/credits/ctc/maximum/individual/meets_ctc_child_identification_requirements.yaml +2 -2
  57. policyengine_us/tests/policy/baseline/gov/irs/deductions/itemized/salt_and_real_estate/reported_salt.yaml +2 -4
  58. policyengine_us/tests/policy/baseline/gov/irs/deductions/itemized/salt_and_real_estate/salt_deduction.yaml +78 -0
  59. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/auto_loan_interest_deduction.yaml +26 -0
  60. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/itemizing/charitable_deduction.yaml +42 -6
  61. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/itemizing/itemized_taxable_income_deductions_reduction.yaml +18 -5
  62. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/itemizing/misc_deduction.yaml +0 -18
  63. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/overtime_income/overtime_income_deduction.yaml +39 -0
  64. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/overtime_income/overtime_income_deduction_ssn_requirement_met.yaml +53 -0
  65. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/qbid/qualified_business_income_deduction.yaml +33 -0
  66. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/senior_deduction/integration.yaml +107 -0
  67. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/senior_deduction/meets_additional_senior_deduction_identification_requirements.yaml +71 -0
  68. 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
  69. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/tip_income/tip_income_deduction.yaml +79 -0
  70. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/tip_income/tip_income_deduction_ineligible_cardholder_present.yaml +53 -0
  71. policyengine_us/variables/gov/irs/credits/cdcc/cdcc_rate.py +18 -0
  72. policyengine_us/variables/gov/irs/credits/ctc/ctc.py +1 -0
  73. policyengine_us/variables/gov/irs/credits/ctc/maximum/individual/filer_meets_ctc_identification_requirements.py +20 -0
  74. policyengine_us/variables/gov/irs/credits/ctc/maximum/individual/meets_ctc_child_identification_requirements.py +3 -6
  75. policyengine_us/variables/gov/irs/credits/ctc/maximum/individual/meets_ctc_identification_requirements.py +17 -0
  76. policyengine_us/variables/gov/irs/income/taxable_income/deductions/auto_loan_interest/auto_loan_interest_deduction.py +30 -0
  77. policyengine_us/variables/gov/irs/income/taxable_income/deductions/itemizing/charitable_deduction.py +18 -3
  78. policyengine_us/variables/gov/irs/income/taxable_income/deductions/itemizing/itemized_taxable_income_deductions_reduction.py +18 -0
  79. policyengine_us/variables/gov/irs/income/taxable_income/deductions/itemizing/salt_cap.py +12 -2
  80. policyengine_us/variables/gov/irs/income/taxable_income/deductions/overtime_income/overtime_income_deduction.py +24 -0
  81. policyengine_us/variables/gov/irs/income/taxable_income/deductions/overtime_income/overtime_income_deduction_ssn_requirement_met.py +25 -0
  82. policyengine_us/variables/gov/irs/income/taxable_income/deductions/qualified_business_income_deduction/qualified_business_income_deduction.py +10 -3
  83. policyengine_us/variables/gov/irs/income/taxable_income/deductions/senior_deduction/additional_senior_deduction.py +31 -0
  84. policyengine_us/variables/gov/irs/income/taxable_income/deductions/senior_deduction/additional_senior_deduction_eligible_person.py +24 -0
  85. policyengine_us/variables/gov/irs/income/taxable_income/deductions/tax_unit_itemizes.py +0 -1
  86. policyengine_us/variables/gov/irs/income/taxable_income/deductions/tip_income/tip_income_deduction.py +23 -0
  87. policyengine_us/variables/gov/irs/income/taxable_income/deductions/tip_income/tip_income_deduction_ssn_requirement_met.py +25 -0
  88. {policyengine_us-1.353.0.dist-info → policyengine_us-1.354.0.dist-info}/METADATA +1 -1
  89. {policyengine_us-1.353.0.dist-info → policyengine_us-1.354.0.dist-info}/RECORD +92 -104
  90. policyengine_us/parameters/gov/contrib/reconciliation/additional_senior_standard_deduction/amount.yaml +0 -12
  91. policyengine_us/parameters/gov/contrib/reconciliation/additional_senior_standard_deduction/in_effect.yaml +0 -12
  92. policyengine_us/parameters/gov/contrib/reconciliation/additional_senior_standard_deduction/rate/joint.yaml +0 -20
  93. policyengine_us/parameters/gov/contrib/reconciliation/additional_senior_standard_deduction/rate/other.yaml +0 -20
  94. policyengine_us/parameters/gov/contrib/reconciliation/auto_loan_interest_ald/cap.yaml +0 -12
  95. policyengine_us/parameters/gov/contrib/reconciliation/auto_loan_interest_ald/in_effect.yaml +0 -13
  96. policyengine_us/parameters/gov/contrib/reconciliation/auto_loan_interest_ald/phase_out/increment.yaml +0 -11
  97. policyengine_us/parameters/gov/contrib/reconciliation/auto_loan_interest_ald/phase_out/start.yaml +0 -21
  98. policyengine_us/parameters/gov/contrib/reconciliation/auto_loan_interest_ald/phase_out/step.yaml +0 -11
  99. policyengine_us/parameters/gov/contrib/reconciliation/auto_loan_interest_ald/senate_version/applies.yaml +0 -12
  100. policyengine_us/parameters/gov/contrib/reconciliation/cdcc/in_effect.yaml +0 -12
  101. policyengine_us/parameters/gov/contrib/reconciliation/cdcc/phase_out/second_increment.yaml +0 -19
  102. policyengine_us/parameters/gov/contrib/reconciliation/cdcc/phase_out/second_min.yaml +0 -11
  103. policyengine_us/parameters/gov/contrib/reconciliation/cdcc/phase_out/second_start.yaml +0 -19
  104. policyengine_us/parameters/gov/contrib/reconciliation/charitable_donations/floor.yaml +0 -12
  105. policyengine_us/parameters/gov/contrib/reconciliation/charitable_donations/in_effect.yaml +0 -12
  106. policyengine_us/parameters/gov/contrib/reconciliation/ctc/in_effect.yaml +0 -12
  107. policyengine_us/parameters/gov/contrib/reconciliation/ctc/one_person_ssn_req.yaml +0 -12
  108. policyengine_us/parameters/gov/contrib/reconciliation/overtime_income_exempt/cap.yaml +0 -22
  109. policyengine_us/parameters/gov/contrib/reconciliation/overtime_income_exempt/in_effect.yaml +0 -12
  110. policyengine_us/parameters/gov/contrib/reconciliation/overtime_income_exempt/phase_out/applies.yaml +0 -12
  111. policyengine_us/parameters/gov/contrib/reconciliation/overtime_income_exempt/phase_out/rate.yaml +0 -12
  112. policyengine_us/parameters/gov/contrib/reconciliation/overtime_income_exempt/phase_out/start.yaml +0 -24
  113. policyengine_us/parameters/gov/contrib/reconciliation/pease/amended_structure/in_effect.yaml +0 -12
  114. policyengine_us/parameters/gov/contrib/reconciliation/pease/amended_structure/salt_rate.yaml +0 -12
  115. policyengine_us/parameters/gov/contrib/reconciliation/pease/in_effect.yaml +0 -12
  116. policyengine_us/parameters/gov/contrib/reconciliation/pease/rate.yaml +0 -12
  117. policyengine_us/parameters/gov/contrib/reconciliation/qbid/deduction_floor/amount.yaml +0 -21
  118. policyengine_us/parameters/gov/contrib/reconciliation/qbid/deduction_floor/in_effect.yaml +0 -12
  119. policyengine_us/parameters/gov/contrib/reconciliation/qbid/in_effect.yaml +0 -12
  120. policyengine_us/parameters/gov/contrib/reconciliation/qbid/phase_out_rate.yaml +0 -12
  121. policyengine_us/parameters/gov/contrib/reconciliation/qbid/use_bdc_income.yaml +0 -12
  122. policyengine_us/parameters/gov/contrib/reconciliation/tip_income_exempt/cap.yaml +0 -22
  123. policyengine_us/parameters/gov/contrib/reconciliation/tip_income_exempt/in_effect.yaml +0 -12
  124. policyengine_us/parameters/gov/contrib/reconciliation/tip_income_exempt/phase_out/applies.yaml +0 -12
  125. policyengine_us/parameters/gov/contrib/reconciliation/tip_income_exempt/phase_out/rate.yaml +0 -12
  126. policyengine_us/parameters/gov/contrib/reconciliation/tip_income_exempt/phase_out/start.yaml +0 -23
  127. policyengine_us/parameters/gov/contrib/salt_phase_out/floor/amount.yaml +0 -21
  128. policyengine_us/parameters/gov/contrib/salt_phase_out/floor/applies.yaml +0 -11
  129. policyengine_us/parameters/gov/contrib/salt_phase_out/in_effect.yaml +0 -8
  130. policyengine_us/parameters/gov/contrib/salt_phase_out/rate.yaml +0 -13
  131. policyengine_us/parameters/gov/contrib/salt_phase_out/threshold.yaml +0 -21
  132. policyengine_us/reforms/reconciliation/ctc_ssn.py +0 -86
  133. policyengine_us/reforms/reconciliation/reconciled_additional_senior_standard_deduction.py +0 -151
  134. policyengine_us/reforms/reconciliation/reconciled_auto_loan_interest_ald.py +0 -153
  135. policyengine_us/reforms/reconciliation/reconciled_pease.py +0 -85
  136. policyengine_us/reforms/reconciliation/reconciled_qbid.py +0 -78
  137. policyengine_us/reforms/reconciliation/reconciled_tip_and_overtime_exempt.py +0 -177
  138. policyengine_us/reforms/reconciliation/reconciliation_cdcc.py +0 -78
  139. policyengine_us/reforms/reconciliation/reconciliation_charitable_deduction.py +0 -78
  140. policyengine_us/reforms/reconciliation/reconciliation_qbid_with_floor.py +0 -72
  141. policyengine_us/reforms/salt_phase_out/__init__.py +0 -3
  142. policyengine_us/reforms/salt_phase_out/salt_phase_out_reform.py +0 -59
  143. policyengine_us/tests/policy/contrib/reconciliation/ctc_ssn.yaml +0 -150
  144. policyengine_us/tests/policy/contrib/reconciliation/reconciled_additional_senior_standard_deduction.yaml +0 -173
  145. policyengine_us/tests/policy/contrib/reconciliation/reconciled_auto_loan_interest_ald.yaml +0 -96
  146. policyengine_us/tests/policy/contrib/reconciliation/reconciled_pease.yaml +0 -85
  147. policyengine_us/tests/policy/contrib/reconciliation/reconciled_qbid.yaml +0 -31
  148. policyengine_us/tests/policy/contrib/reconciliation/reconciliation_cdcc.yaml +0 -59
  149. policyengine_us/tests/policy/contrib/reconciliation/reconciliation_charitable_deduction.yaml +0 -58
  150. policyengine_us/tests/policy/contrib/reconciliation/reconciliation_qbid_with_floor.yaml +0 -38
  151. policyengine_us/tests/policy/contrib/salt_phase_out/salt_phase_out_reform.yaml +0 -118
  152. {policyengine_us-1.353.0.dist-info → policyengine_us-1.354.0.dist-info}/WHEEL +0 -0
  153. {policyengine_us-1.353.0.dist-info → policyengine_us-1.354.0.dist-info}/entry_points.txt +0 -0
  154. {policyengine_us-1.353.0.dist-info → policyengine_us-1.354.0.dist-info}/licenses/LICENSE +0 -0
@@ -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
@@ -0,0 +1,71 @@
1
+ - name: Two eligible seniors
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
+ output:
17
+ additional_senior_deduction_eligible_person: [true, true]
18
+
19
+ - name: One non-senior
20
+ period: 2025
21
+ input:
22
+ people:
23
+ person1:
24
+ age: 65
25
+ is_tax_unit_head_or_spouse: true
26
+ ssn_card_type: CITIZEN
27
+ person2:
28
+ age: 64
29
+ is_tax_unit_head_or_spouse: true
30
+ ssn_card_type: NON_CITIZEN_VALID_EAD
31
+ tax_units:
32
+ tax_unit:
33
+ members: [person1, person2]
34
+ output:
35
+ additional_senior_deduction_eligible_person: [true, false]
36
+
37
+ - name: One senior dependent
38
+ period: 2025
39
+ input:
40
+ people:
41
+ person1:
42
+ age: 65
43
+ is_tax_unit_head_or_spouse: true
44
+ ssn_card_type: CITIZEN
45
+ person2:
46
+ age: 65
47
+ is_tax_unit_head_or_spouse: false
48
+ ssn_card_type: NON_CITIZEN_VALID_EAD
49
+ tax_units:
50
+ tax_unit:
51
+ members: [person1, person2]
52
+ output:
53
+ additional_senior_deduction_eligible_person: [true, false]
54
+
55
+ - name: One person without an SSN card
56
+ period: 2025
57
+ input:
58
+ people:
59
+ person1:
60
+ age: 65
61
+ is_tax_unit_head_or_spouse: true
62
+ ssn_card_type: CITIZEN
63
+ person2:
64
+ age: 65
65
+ is_tax_unit_head_or_spouse: true
66
+ ssn_card_type: NONE
67
+ tax_units:
68
+ tax_unit:
69
+ members: [person1, person2]
70
+ output:
71
+ additional_senior_deduction_eligible_person: [true, false]
@@ -1,68 +1,6 @@
1
- - name: Tip income is exempt but overtime income is not
2
- period: 2026
3
- reforms: policyengine_us.reforms.reconciliation.reconciled_tip_and_overtime_exempt.reconciled_tip_and_overtime_exempt
4
- input:
5
- gov.contrib.reconciliation.tip_income_exempt.in_effect: true
6
- gov.contrib.reconciliation.overtime_income_exempt.in_effect: false
7
- tip_income: 200
8
- fsla_overtime_premium: 300
9
- standard_deduction: 0
10
- qualified_business_income_deduction: 0
11
- charitable_deduction: 0
12
- interest_deduction: 0
13
- salt_deduction: 0
14
- medical_expense_deduction: 0
15
- casualty_loss_deduction: 0
16
- misc_deduction: 0
17
- output:
18
- taxable_income_deductions_if_itemizing: 200
19
- taxable_income_deductions_if_not_itemizing: 200
20
-
21
- - name: Baseline test - no deductions
22
- period: 2026
23
- input:
24
- gov.contrib.reconciliation.tip_income_exempt.in_effect: false
25
- gov.contrib.reconciliation.overtime_income_exempt.in_effect: false
26
- tip_income: 200
27
- fsla_overtime_premium: 300
28
- standard_deduction: 0
29
- qualified_business_income_deduction: 0
30
- charitable_deduction: 0
31
- interest_deduction: 0
32
- salt_deduction: 0
33
- medical_expense_deduction: 0
34
- casualty_loss_deduction: 0
35
- misc_deduction: 0
36
- output:
37
- taxable_income_deductions_if_itemizing: 0
38
- taxable_income_deductions_if_not_itemizing: 0
39
-
40
- - name: Tip income is not exempt but overtime income is
41
- period: 2026
42
- reforms: policyengine_us.reforms.reconciliation.reconciled_tip_and_overtime_exempt.reconciled_tip_and_overtime_exempt
43
- input:
44
- gov.contrib.reconciliation.tip_income_exempt.in_effect: false
45
- gov.contrib.reconciliation.overtime_income_exempt.in_effect: true
46
- tip_income: 200
47
- fsla_overtime_premium: 300
48
- standard_deduction: 0
49
- qualified_business_income_deduction: 0
50
- charitable_deduction: 0
51
- interest_deduction: 0
52
- salt_deduction: 0
53
- medical_expense_deduction: 0
54
- casualty_loss_deduction: 0
55
- misc_deduction: 0
56
- output:
57
- taxable_income_deductions_if_itemizing: 300
58
- taxable_income_deductions_if_not_itemizing: 300
59
-
60
1
  - name: Tip and overtime income are exempt
61
2
  period: 2026
62
- reforms: policyengine_us.reforms.reconciliation.reconciled_tip_and_overtime_exempt.reconciled_tip_and_overtime_exempt
63
3
  input:
64
- gov.contrib.reconciliation.tip_income_exempt.in_effect: true
65
- gov.contrib.reconciliation.overtime_income_exempt.in_effect: true
66
4
  tip_income: 200
67
5
  fsla_overtime_premium: 300
68
6
  standard_deduction: 0
@@ -77,12 +15,9 @@
77
15
  taxable_income_deductions_if_itemizing: 500
78
16
  taxable_income_deductions_if_not_itemizing: 500
79
17
 
80
- - name: Test for SSN card type - head eligible
18
+ - name: Test for SSN card type - head eligible - no deduction allowed
81
19
  period: 2026
82
- reforms: policyengine_us.reforms.reconciliation.reconciled_tip_and_overtime_exempt.reconciled_tip_and_overtime_exempt
83
20
  input:
84
- gov.contrib.reconciliation.tip_income_exempt.in_effect: true
85
- gov.contrib.reconciliation.overtime_income_exempt.in_effect: true
86
21
  people:
87
22
  person1:
88
23
  ssn_card_type: CITIZEN
@@ -104,15 +39,14 @@
104
39
  casualty_loss_deduction: 0
105
40
  misc_deduction: 0
106
41
  output:
107
- taxable_income_deductions_if_itemizing: 500
108
- taxable_income_deductions_if_not_itemizing: 500
42
+ tip_income_deduction: 0
43
+ overtime_income_deduction: 0
44
+ taxable_income_deductions_if_itemizing: 0
45
+ taxable_income_deductions_if_not_itemizing: 0
109
46
 
110
- - name: Test for SSN card type - spouse eligible
47
+ - name: Test for SSN card type - spouse eligible - no deduction allowed
111
48
  period: 2026
112
- reforms: policyengine_us.reforms.reconciliation.reconciled_tip_and_overtime_exempt.reconciled_tip_and_overtime_exempt
113
49
  input:
114
- gov.contrib.reconciliation.tip_income_exempt.in_effect: true
115
- gov.contrib.reconciliation.overtime_income_exempt.in_effect: true
116
50
  people:
117
51
  person1:
118
52
  ssn_card_type: NONE
@@ -134,16 +68,43 @@
134
68
  casualty_loss_deduction: 0
135
69
  misc_deduction: 0
136
70
  output:
137
- taxable_income_deductions_if_itemizing: 1_500
138
- taxable_income_deductions_if_not_itemizing: 1_500
71
+ tip_income_deduction: 0
72
+ overtime_income_deduction: 0
73
+ taxable_income_deductions_if_itemizing: 0
74
+ taxable_income_deductions_if_not_itemizing: 0
75
+
76
+ - name: Test for SSN card type - both eligible
77
+ period: 2026
78
+ input:
79
+ people:
80
+ person1:
81
+ ssn_card_type: CITIZEN
82
+ tip_income: 200
83
+ fsla_overtime_premium: 300
84
+ person2:
85
+ ssn_card_type: NON_CITIZEN_VALID_EAD
86
+ tip_income: 600
87
+ fsla_overtime_premium: 900
88
+ tax_units:
89
+ tax_unit:
90
+ members: [person1, person2]
91
+ standard_deduction: 0
92
+ qualified_business_income_deduction: 0
93
+ charitable_deduction: 0
94
+ interest_deduction: 0
95
+ salt_deduction: 0
96
+ medical_expense_deduction: 0
97
+ casualty_loss_deduction: 0
98
+ misc_deduction: 0
99
+ output:
100
+ tip_income_deduction: 800
101
+ overtime_income_deduction: 1_200
102
+ taxable_income_deductions_if_itemizing: 2_000
103
+ taxable_income_deductions_if_not_itemizing: 2_000
139
104
 
140
105
  - name: Phase out structure applies, joint filing status, agi below phase out start
141
106
  period: 2026
142
- reforms: policyengine_us.reforms.reconciliation.reconciled_tip_and_overtime_exempt.reconciled_tip_and_overtime_exempt
143
107
  input:
144
- gov.contrib.reconciliation.tip_income_exempt.in_effect: true
145
- gov.contrib.reconciliation.overtime_income_exempt.in_effect: true
146
- gov.contrib.reconciliation.overtime_income_exempt.phase_out.applies: true
147
108
  people:
148
109
  person1:
149
110
  ssn_card_type: NON_CITIZEN_VALID_EAD
@@ -170,11 +131,7 @@
170
131
 
171
132
  - name: Phase out structure applies, joint filing status, agi below phase out start, head not eligible
172
133
  period: 2026
173
- reforms: policyengine_us.reforms.reconciliation.reconciled_tip_and_overtime_exempt.reconciled_tip_and_overtime_exempt
174
134
  input:
175
- gov.contrib.reconciliation.tip_income_exempt.in_effect: true
176
- gov.contrib.reconciliation.overtime_income_exempt.in_effect: true
177
- gov.contrib.reconciliation.overtime_income_exempt.phase_out.applies: true
178
135
  people:
179
136
  person1:
180
137
  ssn_card_type: NONE
@@ -201,11 +158,7 @@
201
158
 
202
159
  - name: Phase out structure applies, joint filing status, agi below phase out start, child without ssn card
203
160
  period: 2026
204
- reforms: policyengine_us.reforms.reconciliation.reconciled_tip_and_overtime_exempt.reconciled_tip_and_overtime_exempt
205
161
  input:
206
- gov.contrib.reconciliation.tip_income_exempt.in_effect: true
207
- gov.contrib.reconciliation.overtime_income_exempt.in_effect: true
208
- gov.contrib.reconciliation.overtime_income_exempt.phase_out.applies: true
209
162
  people:
210
163
  person1:
211
164
  ssn_card_type: NON_CITIZEN_VALID_EAD
@@ -235,11 +188,7 @@
235
188
 
236
189
  - name: Phase out structure applies, joint filing status, agi below phase out start, partially phased out
237
190
  period: 2026
238
- reforms: policyengine_us.reforms.reconciliation.reconciled_tip_and_overtime_exempt.reconciled_tip_and_overtime_exempt
239
191
  input:
240
- gov.contrib.reconciliation.tip_income_exempt.in_effect: true
241
- gov.contrib.reconciliation.overtime_income_exempt.in_effect: true
242
- gov.contrib.reconciliation.overtime_income_exempt.phase_out.applies: true
243
192
  people:
244
193
  person1:
245
194
  ssn_card_type: NON_CITIZEN_VALID_EAD
@@ -266,11 +215,7 @@
266
215
 
267
216
  - name: Phase out structure applies, joint filing status, agi below phase out start, fully phased out
268
217
  period: 2026
269
- reforms: policyengine_us.reforms.reconciliation.reconciled_tip_and_overtime_exempt.reconciled_tip_and_overtime_exempt
270
218
  input:
271
- gov.contrib.reconciliation.tip_income_exempt.in_effect: true
272
- gov.contrib.reconciliation.overtime_income_exempt.in_effect: true
273
- gov.contrib.reconciliation.overtime_income_exempt.phase_out.applies: true
274
219
  people:
275
220
  person1:
276
221
  ssn_card_type: NON_CITIZEN_VALID_EAD
@@ -297,11 +242,7 @@
297
242
 
298
243
  - name: Tip income phase out structure applies, joint filing status, agi below phase out start
299
244
  period: 2026
300
- reforms: policyengine_us.reforms.reconciliation.reconciled_tip_and_overtime_exempt.reconciled_tip_and_overtime_exempt
301
245
  input:
302
- gov.contrib.reconciliation.tip_income_exempt.in_effect: true
303
- gov.contrib.reconciliation.overtime_income_exempt.in_effect: true
304
- gov.contrib.reconciliation.tip_income_exempt.phase_out.applies: true
305
246
  people:
306
247
  person1:
307
248
  ssn_card_type: NON_CITIZEN_VALID_EAD
@@ -328,11 +269,7 @@
328
269
 
329
270
  - name: Tip income phase out structure applies, joint filing status, agi below phase out start, head not eligible
330
271
  period: 2026
331
- reforms: policyengine_us.reforms.reconciliation.reconciled_tip_and_overtime_exempt.reconciled_tip_and_overtime_exempt
332
272
  input:
333
- gov.contrib.reconciliation.tip_income_exempt.in_effect: true
334
- gov.contrib.reconciliation.overtime_income_exempt.in_effect: true
335
- gov.contrib.reconciliation.tip_income_exempt.phase_out.applies: true
336
273
  people:
337
274
  person1:
338
275
  ssn_card_type: NONE
@@ -359,11 +296,7 @@
359
296
 
360
297
  - name: Tip income phase out structure applies, joint filing status, agi below phase out start, child without ssn card
361
298
  period: 2026
362
- reforms: policyengine_us.reforms.reconciliation.reconciled_tip_and_overtime_exempt.reconciled_tip_and_overtime_exempt
363
299
  input:
364
- gov.contrib.reconciliation.tip_income_exempt.in_effect: true
365
- gov.contrib.reconciliation.overtime_income_exempt.in_effect: true
366
- gov.contrib.reconciliation.tip_income_exempt.phase_out.applies: true
367
300
  people:
368
301
  person1:
369
302
  ssn_card_type: NON_CITIZEN_VALID_EAD
@@ -393,11 +326,7 @@
393
326
 
394
327
  - name: Tip income phase out structure applies, joint filing status, agi below phase out start, partially phased out
395
328
  period: 2026
396
- reforms: policyengine_us.reforms.reconciliation.reconciled_tip_and_overtime_exempt.reconciled_tip_and_overtime_exempt
397
329
  input:
398
- gov.contrib.reconciliation.tip_income_exempt.in_effect: true
399
- gov.contrib.reconciliation.overtime_income_exempt.in_effect: true
400
- gov.contrib.reconciliation.tip_income_exempt.phase_out.applies: true
401
330
  people:
402
331
  person1:
403
332
  ssn_card_type: NON_CITIZEN_VALID_EAD
@@ -424,11 +353,7 @@
424
353
 
425
354
  - name: Tip income phase out structure applies, joint filing status, agi below phase out start, fully phased out
426
355
  period: 2026
427
- reforms: policyengine_us.reforms.reconciliation.reconciled_tip_and_overtime_exempt.reconciled_tip_and_overtime_exempt
428
356
  input:
429
- gov.contrib.reconciliation.tip_income_exempt.in_effect: true
430
- gov.contrib.reconciliation.overtime_income_exempt.in_effect: true
431
- gov.contrib.reconciliation.tip_income_exempt.phase_out.applies: true
432
357
  people:
433
358
  person1:
434
359
  ssn_card_type: NON_CITIZEN_VALID_EAD