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
1 change: 1 addition & 0 deletions changelog.d/ma-loss-adjustment-per-person.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Subtract each spouse's Massachusetts Schedule C, farm, rental, partnership and S corporation losses, so one spouse's loss offsets the other spouse's income.
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,50 @@
# parent's wages (line 3) plus rental income (line 7).
ma_gross_income_loss_adjustment: 0
ma_gross_income: 42_000

- name: One spouse's Schedule C loss offsets the other spouse's Schedule C income
period: 2022
absolute_error_margin: 0.01
input:
people:
head:
age: 40
employment_income: 40_000
self_employment_income: -20_000
spouse:
age: 40
self_employment_income: 50_000
tax_units:
tax_unit:
members: [head, spouse]
households:
household:
members: [head, spouse]
state_code: MA
output:
ma_gross_income_loss_adjustment: -20_000
# 40,000 + 50,000 - 20,000
ma_gross_income: 70_000
# Matches NBER TAXSIM-35 staxbc for the same return.
ma_income_tax_before_credits: 2_860

- name: An SSTB Schedule C loss offsets the same person's other Schedule C income
period: 2024
absolute_error_margin: 0.01
input:
people:
head:
age: 40
employment_income: 40_000
self_employment_income: 30_000
sstb_self_employment_income: -10_000
tax_units:
tax_unit:
members: [head]
households:
household:
members: [head]
state_code: MA
output:
ma_gross_income_loss_adjustment: -10_000
ma_gross_income: 60_000
Original file line number Diff line number Diff line change
Expand Up @@ -13,27 +13,27 @@ class ma_gross_income_loss_adjustment(Variable):
def formula(tax_unit, period, parameters):
# MA Form 1 allows losses on lines 6a, 6b, and 7 to offset
# other 5.0% income. irs_gross_income floors each source at
# zero, so this variable captures the losses that were dropped.
# zero for each person, so this variable captures the losses that
# were dropped, person by person: one spouse's loss offsets the
# other spouse's income on the joint return.
# Line 10 instruction: "Be sure to subtract any losses
# in lines 6 or 7."
# irs_gross_income leaves out tax unit dependents, whose items are
# on their own returns, so their losses are left out here too.
# Line 6a: Business/profession loss (Schedule C)
se_income = tax_unit_non_dep_add(
tax_unit, period, ["total_self_employment_income"]
)
# Line 6b: Farm loss (Schedule F)
farm = tax_unit_non_dep_add(tax_unit, period, ["farm_operations_income"])
# Line 7: Rental, partnership, S-corp, farm rent losses
rental = tax_unit_non_dep_add(tax_unit, period, ["rental_income"])
partnership = tax_unit_non_dep_add(
tax_unit, period, ["partnership_s_corp_income"]
)
farm_rent = tax_unit_non_dep_add(tax_unit, period, ["farm_rent_income"])
return (
min_(se_income, 0)
+ min_(farm, 0)
+ min_(rental, 0)
+ min_(partnership, 0)
+ min_(farm_rent, 0)
)
person = tax_unit.members
not_dependent = ~person("is_tax_unit_dependent", period)
sources = [
# Line 6a: Business/profession loss (Schedule C)
"self_employment_income",
"sstb_self_employment_income",
# Line 6b: Farm loss (Schedule F)
"farm_operations_income",
# Line 7: Rental, partnership, S-corp, farm rent losses
"rental_income",
"partnership_s_corp_income",
"farm_rent_income",
]
losses = 0
for source in sources:
losses += tax_unit.sum(not_dependent * min_(person(source, period), 0))
return losses
Loading