Skip to content
Open
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/state-eitc-helper-earned-income.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Use federal EITC earned income, which nets spouses' self-employment losses, in the shared state EITC helper (IL, CO, DC, IN) and the Indiana decoupled EITC.
Original file line number Diff line number Diff line change
Expand Up @@ -397,3 +397,33 @@
# credit is the childless 7.65% x 10,000 capped at 649; 50% x 649.
eitc_child_count: 0
co_eitc: 324.5

- name: Colorado under-25 EITC nets a spouse's self-employment loss (50% x 7.65% x 6,000)
period: 2023
absolute_error_margin: 0.01
input:
people:
head:
age: 22
employment_income: 10_000
is_tax_unit_head: true
spouse:
age: 22
self_employment_income: -4_000
is_tax_unit_spouse: true
tax_units:
tax_unit:
members: [head, spouse]
filing_status: JOINT
spm_units:
spm_unit:
members: [head, spouse]
households:
household:
members: [head, spouse]
state_code: CO
output:
# The spouse's $4,000 self-employment loss offsets the head's $10,000 of
# wages, so federal earned income is $6,000 (Form 1040 EIC Worksheet B,
# line 4b, combines both spouses' amounts on a joint return).
co_eitc: 229.5
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
tax_unit:
members: [head, child]
filing_status: HEAD_OF_HOUSEHOLD
filer_adjusted_earnings: 294.11764705882354
eitc_earned_income: 294.11764705882354
adjusted_gross_income: 294.11764705882354
households:
household:
Expand Down Expand Up @@ -92,3 +92,36 @@
# and the childless schedule returns zero.
dc_eitc_with_qualifying_child: 3_400
dc_eitc_without_qualifying_child: 0

- name: DC EITC with a qualifying child nets a spouse's self-employment loss (70% x 2,040)
period: 2023
absolute_error_margin: 0.01
input:
people:
head:
age: 40
employment_income: 10_000
is_tax_unit_head: true
spouse:
age: 40
self_employment_income: -4_000
is_tax_unit_spouse: true
child1:
age: 7
is_tax_unit_dependent: true
tax_units:
tax_unit:
members: [head, spouse, child1]
filing_status: JOINT
spm_units:
spm_unit:
members: [head, spouse, child1]
households:
household:
members: [head, spouse, child1]
state_code: DC
output:
# The spouse's $4,000 self-employment loss offsets the head's $10,000 of
# wages, so federal earned income is $6,000 (Form 1040 EIC Worksheet B,
# line 4b, combines both spouses' amounts on a joint return).
dc_eitc_with_qualifying_child: 1_428
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
tax_units:
tax_unit:
members: [head, child]
filer_adjusted_earnings: 2_941.176470588235
eitc_earned_income: 2_941.176470588235
adjusted_gross_income: 2_941.176470588235
households:
household:
Expand Down Expand Up @@ -44,7 +44,7 @@
tax_units:
tax_unit:
members: [head, child]
filer_adjusted_earnings: 2_941.176470588235
eitc_earned_income: 2_941.176470588235
adjusted_gross_income: 2_941.176470588235
households:
household:
Expand Down Expand Up @@ -175,6 +175,108 @@
# EITC (rather than the childless schedule) times the IL match.
il_eitc: 680

- name: IL EIC nets a spouse's self-employment loss, 2021 (18% x 2,400)
period: 2021
absolute_error_margin: 0.01
input:
people:
head:
age: 40
employment_income: 10_000
is_tax_unit_head: true
spouse:
age: 40
self_employment_income: -4_000
is_tax_unit_spouse: true
child1:
age: 7
is_tax_unit_dependent: true
child2:
age: 10
is_tax_unit_dependent: true
tax_units:
tax_unit:
members: [head, spouse, child1, child2]
filing_status: JOINT
spm_units:
spm_unit:
members: [head, spouse, child1, child2]
households:
household:
members: [head, spouse, child1, child2]
state_code: IL
output:
# The spouse's $4,000 self-employment loss offsets the head's $10,000 of
# wages, so federal earned income is $6,000 (Form 1040 EIC Worksheet B,
# line 4b, combines both spouses' amounts on a joint return).
il_eitc: 432

- name: IL EIC nets a spouse's self-employment loss, 2023 (20% x 2,400)
period: 2023
absolute_error_margin: 0.01
input:
people:
head:
age: 40
employment_income: 10_000
is_tax_unit_head: true
spouse:
age: 40
self_employment_income: -4_000
is_tax_unit_spouse: true
child1:
age: 7
is_tax_unit_dependent: true
child2:
age: 10
is_tax_unit_dependent: true
tax_units:
tax_unit:
members: [head, spouse, child1, child2]
filing_status: JOINT
spm_units:
spm_unit:
members: [head, spouse, child1, child2]
households:
household:
members: [head, spouse, child1, child2]
state_code: IL
output:
# The spouse's $4,000 self-employment loss offsets the head's $10,000 of
# wages, so federal earned income is $6,000 (Form 1040 EIC Worksheet B,
# line 4b, combines both spouses' amounts on a joint return).
il_eitc: 480

- name: IL EIC for a 65+ couple nets a self-employment loss, 2023 (20% x 7.65% x 5,000)
period: 2023
absolute_error_margin: 0.01
input:
people:
head:
age: 65
self_employment_income: -2_000
is_tax_unit_head: true
spouse:
age: 65
employment_income: 7_000
is_tax_unit_spouse: true
tax_units:
tax_unit:
members: [head, spouse]
filing_status: JOINT
spm_units:
spm_unit:
members: [head, spouse]
households:
household:
members: [head, spouse]
state_code: IL
output:
# 35 ILCS 5/212(b-10) waives the federal age limit for filers 65 or older.
# Earned income is $7,000 - $2,000 = $5,000, so the childless credit is
# 7.65% x 5,000 = 382.50 and the IL EIC is 20% of it.
il_eitc: 76.5

- name: Illinois EITC uses the childless schedule for a disabled parent dependent (IRC 152(c)(2))
period: 2025
absolute_error_margin: 0.01
Expand Down Expand Up @@ -209,3 +311,41 @@
# A parent fails the IRC 152(c)(2) relationship test: 20% x the childless
# federal-like credit of 649.
il_eitc: 129.8

- name: IL EIC nets a spouse's self-employment loss in the phase-out range, 2023
period: 2023
absolute_error_margin: 0.01
input:
people:
head:
age: 40
employment_income: 40_000
is_tax_unit_head: true
spouse:
age: 40
self_employment_income: -5_000
is_tax_unit_spouse: true
child1:
age: 7
is_tax_unit_dependent: true
child2:
age: 10
is_tax_unit_dependent: true
tax_units:
tax_unit:
members: [head, spouse, child1, child2]
filing_status: JOINT
spm_units:
spm_unit:
members: [head, spouse, child1, child2]
households:
household:
members: [head, spouse, child1, child2]
state_code: IL
output:
# Earned income and AGI are 40,000 - 5,000 = 35,000. Two children, 2023
# (Rev. Proc. 2022-38, section 3.06): maximum credit 6,604, phase-out
# 21.06% above the joint 28,120. Federal EITC: 6,604 - 0.2106 x 6,880 =
# 5,155.07; IL EIC 20%: 1,031.01. Without netting, earned income would be
# 40,000 and the IL EIC 20% x (6,604 - 0.2106 x 11,880) = 820.41.
il_eitc: 1_031.01
Original file line number Diff line number Diff line change
Expand Up @@ -116,3 +116,75 @@
household: {members: [parent], state_fips: 18}
output:
in_eitc: 61.20

- name: Indiana decoupled EITC nets a spouse's self-employment loss, 2022 (10% x 2,400)
period: 2022
absolute_error_margin: 0.01
input:
people:
head:
age: 40
employment_income: 10_000
is_tax_unit_head: true
spouse:
age: 40
self_employment_income: -4_000
is_tax_unit_spouse: true
child1:
age: 7
is_tax_unit_dependent: true
child2:
age: 10
is_tax_unit_dependent: true
tax_units:
tax_unit:
members: [head, spouse, child1, child2]
filing_status: JOINT
spm_units:
spm_unit:
members: [head, spouse, child1, child2]
households:
household:
members: [head, spouse, child1, child2]
state_code: IN
output:
# The spouse's $4,000 self-employment loss offsets the head's $10,000 of
# wages, so federal earned income is $6,000 (Form 1040 EIC Worksheet B,
# line 4b, combines both spouses' amounts on a joint return).
in_eitc: 240

- name: Indiana decoupled EITC nets a spouse's self-employment loss, 2021 (9% x 2,400)
period: 2021
absolute_error_margin: 0.01
input:
people:
head:
age: 40
employment_income: 10_000
is_tax_unit_head: true
spouse:
age: 40
self_employment_income: -4_000
is_tax_unit_spouse: true
child1:
age: 7
is_tax_unit_dependent: true
child2:
age: 10
is_tax_unit_dependent: true
tax_units:
tax_unit:
members: [head, spouse, child1, child2]
filing_status: JOINT
spm_units:
spm_unit:
members: [head, spouse, child1, child2]
households:
household:
members: [head, spouse, child1, child2]
state_code: IN
output:
# The spouse's $4,000 self-employment loss offsets the head's $10,000 of
# wages, so federal earned income is $6,000 (Form 1040 EIC Worksheet B,
# line 4b, combines both spouses' amounts on a joint return).
in_eitc: 216
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@
eitc: 0
filing_status: HEAD_OF_HOUSEHOLD
eitc_child_count: 1
filer_adjusted_earnings: 10_000
eitc_earned_income: 10_000
adjusted_gross_income: 10_000
filer_meets_eitc_identification_requirements: true
would_file_taxes_voluntarily: true
Expand Down
2 changes: 1 addition & 1 deletion policyengine_us/tools/state_eitc_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ def calculate_eitc_amount_from_parameters(
):
"""Calculate the uncapped EITC amount under a chosen parameter set."""

earnings = tax_unit("filer_adjusted_earnings", period)
earnings = tax_unit("eitc_earned_income", period)
agi = tax_unit("adjusted_gross_income", period)
maximum = eitc_parameters.max.calc(child_count)
phase_in_rate = eitc_parameters.phase_in_rate.calc(child_count)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def formula(tax_unit, period, parameters):
po_start = where(kids == 0, po_start0, po_start)
po_rate = where(kids == 0, po_rate0, po_rate)
# ... calculate eitc phase-in amount
earnings = tax_unit("filer_adjusted_earnings", period)
earnings = tax_unit("eitc_earned_income", period)
phase_in_amount = min_(earnings * pi_rate, maximum)
# ... calculate eitc reduction
federal_agi = tax_unit("adjusted_gross_income", period)
Expand Down
Loading