Skip to content
Closed
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
1 change: 1 addition & 0 deletions changelog.d/fix-sc-salt-addback-pre-obbba.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix South Carolina State Tax addback to use the pre-OBBBA $10,000 / $5,000 MFS SALT cap per SC Information Letter #26-4 Item 6 (SC did not conform to the 2025 federal SALT cap increase to $40,000).
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
description: South Carolina applies this state and local tax cap when computing the State Tax addback worksheet, holding to the pre-OBBBA federal SALT cap because SC has not conformed to the 2025 federal SALT cap increase.
metadata:
label: South Carolina State Tax addback SALT cap
breakdown:
- filing_status
unit: currency-USD
period: year
reference:
- title: SC Information Letter #26-4 Revised — Item 6 (SALT cap non-conformity)
href: https://dor.sc.gov/income-tax-south-carolina-internal-revenue-code-conformity-update
- title: SC1040 Instructions — State Tax Addback Worksheet, Line 5 ("the federal limit of $10,000 ($5,000 if MFS)")
href: https://dor.sc.gov/forms-site/Forms/SC1040inst_2022.pdf#page=3
HEAD_OF_HOUSEHOLD:
values:
2018-01-01: 10_000
JOINT:
values:
2018-01-01: 10_000
SEPARATE:
values:
2018-01-01: 5_000
SINGLE:
values:
2018-01-01: 10_000
SURVIVING_SPOUSE:
values:
2018-01-01: 10_000
Original file line number Diff line number Diff line change
Expand Up @@ -90,3 +90,77 @@
state_code: SC
output:
sc_state_tax_addback: 0

# 2025+ tests: SC IL #26-4 Item 6 — SC has not conformed to OBBBA's federal SALT
# cap increase from $10K to $40K. SC's State Tax Addback worksheet must continue
# to use the pre-OBBBA $10K / $5K MFS cap. The federal SALT cap parameter
# steps up to $40K at 2025-01-01, so a SC-frozen cap parameter is required.
- name: 2025 SC JOINT itemizer with SALT just above $10K — non-conformity holds
period: 2025
input:
filing_status: JOINT
tax_unit_itemizes: true
itemized_taxable_income_deductions: 50_000
standard_deduction: 30_000
real_estate_taxes: 5_000
state_and_local_sales_or_income_tax: 8_000
state_code: SC
output:
# line 3 = 50000 - 30000 = 20000
# line 4 = 8000
# line 5 (SC-frozen $10K cap) = 10000 - 5000 = 5000
# addback = min(min(8000, 5000), 20000) = 5000
sc_state_tax_addback: 5_000

- name: 2025 SC JOINT high-SALT itemizer — addback capped by SC-frozen $10K, not federal $40K
period: 2025
input:
filing_status: JOINT
tax_unit_itemizes: true
itemized_taxable_income_deductions: 60_000
standard_deduction: 30_000
real_estate_taxes: 10_000
state_and_local_sales_or_income_tax: 30_000
state_code: SC
output:
# line 3 = 60000 - 30000 = 30000
# line 4 = 30000
# line 5 (SC-frozen $10K cap) = max(0, 10000 - 10000) = 0
# addback = min(min(30000, 0), 30000) = 0
# If using federal $40K cap: line 5 = 30000, addback = 30000 — wrong per IL #26-4
sc_state_tax_addback: 0

- name: 2025 SC SINGLE itemizer with SALT > $10K — non-conformity
period: 2025
input:
filing_status: SINGLE
tax_unit_itemizes: true
itemized_taxable_income_deductions: 30_000
standard_deduction: 15_000
real_estate_taxes: 2_000
state_and_local_sales_or_income_tax: 12_000
state_code: SC
output:
# line 3 = 30000 - 15000 = 15000
# line 4 = 12000
# line 5 (SC-frozen $10K cap) = 10000 - 2000 = 8000
# addback = min(min(12000, 8000), 15000) = 8000
sc_state_tax_addback: 8_000

- name: 2025 SC MFS itemizer — SC-frozen $5K cap (not federal $20K)
period: 2025
input:
filing_status: SEPARATE
tax_unit_itemizes: true
itemized_taxable_income_deductions: 20_000
standard_deduction: 15_000
real_estate_taxes: 3_000
state_and_local_sales_or_income_tax: 6_000
state_code: SC
output:
# line 2 = 0 (MFS not eligible for the line-2 reduction in this worksheet)
# line 3 = 20000 - 0 = 20000
# line 4 = 6000
# line 5 (SC-frozen $5K MFS cap) = max(0, 5000 - 3000) = 2000
# addback = min(min(6000, 2000), 20000) = 2000
sc_state_tax_addback: 2_000
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,11 @@ class sc_state_tax_addback(Variable):
"https://dor.sc.gov/forms-site/Forms/SC1040_2022.pdf#page=2",
"https://dor.sc.gov/forms-site/Forms/SC1040inst_2022.pdf#page=2",
"https://www.scstatehouse.gov/code/t12c006.php", # SECTION 12-6-1130 (2)
"https://dor.sc.gov/income-tax-south-carolina-internal-revenue-code-conformity-update", # IL #26-4 Item 6 — SALT cap non-conformity
)
defined_for = StateCode.SC

def formula(tax_unit, period, parameters):
p_us = parameters(period).gov.irs.deductions

us_itemizing = tax_unit("tax_unit_itemizes", period)
standard_deduction = tax_unit("standard_deduction", period)
filing_status = tax_unit("filing_status", period)
Expand All @@ -33,11 +32,14 @@ def formula(tax_unit, period, parameters):
)
# line 4
salt = tax_unit("state_and_local_sales_or_income_tax", period)
# line 5
# line 5: SC has not conformed to OBBBA's 2025 SALT cap increase from
# $10,000 to $40,000 (SC IL #26-4 Item 6). Use the SC-frozen cap so
# the addback continues to reflect the pre-OBBBA $10K / $5K MFS limit.
p_sc = parameters(period).gov.states.sc.tax.income.additions
real_estate_and_property_taxes = add(tax_unit, period, ["real_estate_taxes"])
less_income_amount = max_(
0,
p_us.itemized.salt_and_real_estate.cap[filing_status]
p_sc.state_tax_addback.salt_cap[filing_status]
- real_estate_and_property_taxes,
)
# compare line 3,4,5. get the minimum
Expand Down
Loading