Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions changelog.d/fix-tip-deduction-sstb-mixed.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Extend `tip_income_deduction_occupation_requirement_met` to recognize
SSTB status from the per-category `sstb_self_employment_income` input,
not only the legacy all-or-nothing `business_is_sstb` flag. This keeps
the §224 SSTB exclusion in force for self-employed tipped workers who
populate the new SSTB inputs added in #7944.
Original file line number Diff line number Diff line change
Expand Up @@ -139,3 +139,24 @@
output:
tip_income_deduction_occupation_requirement_met: false
tip_income_deduction: 0

- name: SSTB self-employment income blocks tip deduction even without legacy flag
period: 2025
input:
people:
worker:
ssn_card_type: CITIZEN
is_tax_unit_head: true
is_tax_unit_spouse: false
tip_income: 5_000
treasury_tipped_occupation_code: 102
business_is_sstb: false
sstb_self_employment_income: 50_000
tax_units:
tax_unit:
adjusted_gross_income: 100_000
filing_status: SINGLE
members: [worker]
output:
tip_income_deduction_occupation_requirement_met: false
tip_income_deduction: 0
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,9 @@ def formula(person, period, _parameters):
treasury_tipped_occupation_code = person(
"treasury_tipped_occupation_code", period
)
is_sstb = person("business_is_sstb", period)
is_sstb_legacy = person("business_is_sstb", period)
has_sstb_self_employment_income = (
person("sstb_self_employment_income", period) > 0
)
is_sstb = is_sstb_legacy | has_sstb_self_employment_income
return (treasury_tipped_occupation_code > 0) & ~is_sstb
Loading