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/mn-cwfc-eic-earned-income.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Use federal EIC earned income (both spouses combined, net of a self-employment loss) in the Minnesota child and working family credits.
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
members: [person1, person2, person3]
ctc_qualifying_children: 1
mn_wfc_eligible: true
filer_adjusted_earnings: 10_000
eitc_earned_income: 10_000
adjusted_gross_income: 10_000
filing_status: JOINT
households:
Expand Down Expand Up @@ -51,7 +51,7 @@
members: [person1, person2, person3, person4]
ctc_qualifying_children: 1
mn_wfc_eligible: true
filer_adjusted_earnings: 6_000
eitc_earned_income: 6_000
adjusted_gross_income: 10_000
filing_status: JOINT
households:
Expand Down Expand Up @@ -86,7 +86,7 @@
members: [person1, person2, person3, person4]
ctc_qualifying_children: 1
mn_wfc_eligible: true
filer_adjusted_earnings: 100_000
eitc_earned_income: 100_000
adjusted_gross_income: 10_000
filing_status: JOINT
households:
Expand Down Expand Up @@ -121,7 +121,7 @@
members: [person1, person2, person3, person4]
ctc_qualifying_children: 1
mn_wfc_eligible: true
filer_adjusted_earnings: 10_000
eitc_earned_income: 10_000
adjusted_gross_income: 45_000
filing_status: JOINT
households:
Expand Down Expand Up @@ -156,7 +156,7 @@
members: [person1, person2, person3, person4]
ctc_qualifying_children: 1
mn_wfc_eligible: true
filer_adjusted_earnings: 10_000
eitc_earned_income: 10_000
adjusted_gross_income: 45_000
filing_status: SEPARATE
households:
Expand All @@ -183,7 +183,7 @@
members: [person1, person2]
ctc_qualifying_children: 0
mn_wfc_eligible: true
filer_adjusted_earnings: 10_000
eitc_earned_income: 10_000
adjusted_gross_income: 12_000
filing_status: JOINT
households:
Expand All @@ -210,7 +210,7 @@
members: [person1, person2]
ctc_qualifying_children: 0
mn_wfc_eligible: false
filer_adjusted_earnings: 10_000
eitc_earned_income: 10_000
adjusted_gross_income: 12_000
filing_status: JOINT
households:
Expand Down Expand Up @@ -310,7 +310,7 @@
members: [person1, person2, person3]
ctc_qualifying_children: 1
mn_wfc_eligible: true
filer_adjusted_earnings: 10_000
eitc_earned_income: 10_000
adjusted_gross_income: 10_000
filing_status: JOINT
households:
Expand Down Expand Up @@ -352,7 +352,7 @@
members: [person1, person2, person3, person4]
ctc_qualifying_children: 1
mn_wfc_eligible: true
filer_adjusted_earnings: 10_000
eitc_earned_income: 10_000
adjusted_gross_income: 10_000
filing_status: JOINT
households:
Expand Down Expand Up @@ -414,7 +414,7 @@
members: [person1, person2]
ctc_qualifying_children: 1
mn_wfc_eligible: true
filer_adjusted_earnings: 40_000
eitc_earned_income: 40_000
adjusted_gross_income: 40_000
filing_status: SINGLE
households:
Expand Down Expand Up @@ -445,7 +445,7 @@
members: [person1, disabled_adult]
ctc_qualifying_children: 0
mn_wfc_eligible: true
filer_adjusted_earnings: 10_000
eitc_earned_income: 10_000
adjusted_gross_income: 10_000
filing_status: JOINT
households:
Expand Down Expand Up @@ -479,7 +479,7 @@
members: [person1, adult]
ctc_qualifying_children: 0
mn_wfc_eligible: true
filer_adjusted_earnings: 10_000
eitc_earned_income: 10_000
adjusted_gross_income: 10_000
filing_status: JOINT
households:
Expand Down Expand Up @@ -517,7 +517,7 @@
members: [person1, person2, person3]
ctc_qualifying_children: 1
mn_wfc_eligible: true
filer_adjusted_earnings: 10_000
eitc_earned_income: 10_000
adjusted_gross_income: 10_000
filing_status: JOINT
households:
Expand Down Expand Up @@ -557,7 +557,7 @@
members: [person1, person2, person3]
ctc_qualifying_children: 1
mn_wfc_eligible: true
filer_adjusted_earnings: 10_000
eitc_earned_income: 10_000
adjusted_gross_income: 10_000
filing_status: JOINT
households:
Expand All @@ -566,3 +566,61 @@
state_code: MN
output:
mn_child_and_working_families_credits: 2_129.2

# Schedule M1CWFC, line 2 takes earned income from federal EIC Worksheet B:
# both spouses combined, a net self-employment loss subtracted, not less than
# zero. Line 10 is the greater of AGI (line 1) and line 2.
- name: 2024 joint, one spouse's self-employment loss exceeds the other's wages
period: 2024
absolute_error_margin: 0.01
input:
people:
head:
age: 37
self_employment_income: -200_000
spouse:
age: 37
employment_income: 117_548
child1:
age: 8
child2:
age: 4
tax_units:
tax_unit:
members: [head, spouse, child1, child2]
households:
household:
members: [head, spouse, child1, child2]
state_code: MN
output:
# Line 2 is 0 and line 1 is negative, so there is no phaseout:
# 2 x $1,750 CTC + 4% x 0 WFC. NBER TAXSIM-35 also gives $3,500.
eitc_earned_income: 0
mn_child_and_working_families_credits: 3_500

- name: 2024 joint, a self-employment loss reduces the earned income used for the phaseout
period: 2024
absolute_error_margin: 0.01
input:
people:
head:
age: 37
self_employment_income: -20_000
spouse:
age: 37
employment_income: 60_000
child1:
age: 8
child2:
age: 4
tax_units:
tax_unit:
members: [head, spouse, child1, child2]
households:
household:
members: [head, spouse, child1, child2]
state_code: MN
output:
eitc_earned_income: 40_000
# 4% x $9,220 + 2 x $1,750 = $3,868.80; less 12% x ($40,000 - $36,880) = $374.40
mn_child_and_working_families_credits: 3_494.40
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
mn_wfc_eligible: true
filing_status: JOINT
eitc_child_count: 2
filer_adjusted_earnings: 20_050
eitc_earned_income: 20_050
adjusted_gross_income: 20_050
state_code: MN
output: # expected output from lookup table in Form M1 instructions
Expand All @@ -18,7 +18,7 @@
mn_wfc_eligible: true
filing_status: HEAD_OF_HOUSEHOLD
eitc_child_count: 1
filer_adjusted_earnings: 30_050
eitc_earned_income: 30_050
adjusted_gross_income: 30_050
state_code: MN
output: # expected output from lookup table in Form M1 instructions
Expand All @@ -31,7 +31,7 @@
mn_wfc_eligible: true
filing_status: JOINT
eitc_child_count: 2
filer_adjusted_earnings: 20_050
eitc_earned_income: 20_050
adjusted_gross_income: 20_050
state_code: MN
output: # expected output from lookup table in Form M1 instructions
Expand All @@ -44,7 +44,7 @@
mn_wfc_eligible: true
filing_status: HEAD_OF_HOUSEHOLD
eitc_child_count: 1
filer_adjusted_earnings: 30_050
eitc_earned_income: 30_050
adjusted_gross_income: 30_050
state_code: MN
output: # expected output from lookup table in Form M1 instructions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
filing_status: SEPARATE
mn_wfc_eligible: true
eitc_child_count: 2
filer_adjusted_earnings: 20_050
eitc_earned_income: 20_050
adjusted_gross_income: 20_050
households:
household:
Expand Down Expand Up @@ -87,7 +87,7 @@
filing_status: SEPARATE
mn_wfc_eligible: true
eitc_child_count: 2
filer_adjusted_earnings: 20_050
eitc_earned_income: 20_050
adjusted_gross_income: 20_050
households:
household:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,11 @@ def formula(tax_unit, period, parameters):
base_ctc_amount = qualifying_children * p.ctc.amount
# Working Family Credit computation:
wfc_eligible = tax_unit("mn_wfc_eligible", period)
# The credit is phased in based on earnings
earnings = tax_unit("filer_adjusted_earnings", period)
# The credit is phased in based on earned income. Schedule M1CWFC,
# line 2 takes it from federal EIC Worksheet B: both spouses'
# earnings combined, with a net self-employment loss subtracted,
# and not less than zero.
earnings = tax_unit("eitc_earned_income", period)
base_wfc_credit = p.wfc.phase_in.calc(earnings)
person = tax_unit.members
# Minn. Stat. 290.0671, subd. 1a defines a qualifying older child as
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,9 @@ def formula(tax_unit, period, parameters):
p = parameters(period).gov.states.mn.tax.income.credits.cwfc
# determine count of eligible dependents using EITC rules
count = tax_unit("eitc_child_count", period)
# determine pre-phaseout credit amount using EITC earnings
earnings = tax_unit("filer_adjusted_earnings", period)
# determine pre-phaseout credit amount using EITC earned income
# (both spouses combined, net of a self-employment loss)
earnings = tax_unit("eitc_earned_income", period)
capped_earn = min_(
earnings,
p.wfc.pre_cwfc_legislation.phase_in.earnings_maximum.calc(count),
Expand Down
Loading