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-older-child-age.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Count 18-year-old qualifying children, students or not, as qualifying older children for the Minnesota working family credit.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
description: Minnesota provides an additional working family credit amount for each qualifying child over this age threshold.
description: Minnesota provides an additional working family credit amount for each qualifying child who has attained at least this age.
values:
2023-01-01: 18
metadata:
Expand All @@ -7,10 +7,14 @@ metadata:
href: https://www.revenue.state.mn.us/sites/default/files/2025-01/m1cwfc-24.pdf#page=2
- title: 2023 Schedule M1CWFC, Minnesota Child and Working Family Credits
href: https://www.revenue.state.mn.us/sites/default/files/2025-01/m1cwfc-23.pdf#page=2
- title: 2023 Schedule M1DQC, Dependents and Qualifying Children
href: https://www.revenue.state.mn.us/sites/default/files/2024-01/m1dqc-23.pdf#page=3
- title: 2024 Schedule M1DQC, Dependents and Qualifying Children
href: https://www.revenue.state.mn.us/sites/default/files/2024-12/m1dqc-24.pdf#page=3
- title: 2025 Schedule M1DQC, Dependents and Qualifying Children
href: https://www.revenue.state.mn.us/sites/default/files/2026-01/m1dqc-25.pdf#page=3
- title: 290.0671 MINNESOTA WORKING FAMILY CREDIT. Subd. 1 (3)
href: https://www.revisor.mn.gov/statutes/cite/290.0671
- title: 290.0671 MINNESOTA WORKING FAMILY CREDIT. Subd. 1a
href: https://www.revisor.mn.gov/statutes/cite/290.0671#stat.290.0671.1a
unit: year
period: year
label: Minnesota working family credit additional amount age threshold
label: Minnesota working family credit qualifying older child minimum age
Original file line number Diff line number Diff line change
Expand Up @@ -490,6 +490,157 @@
# WFC base only: min($10,000, $9,480) * 0.04 = $379.20, no older-child bonus.
mn_child_and_working_families_credits: 379.2

# Minn. Stat. 290.0671, subd. 1a: a qualifying older child is an IRC 32(c)
# qualifying child that "attained at least the age of 18". Schedule M1DQC
# (2023-2025, page 3) step 4 sends a child who is not under 18 at the end of
# the year to steps 5-8; step 7 checks row 11 for a full-time student and
# step 8 checks row 11 for a child under 19, so every 18-year-old qualifying
# child is a qualifying older child. The next four cases share one 2025
# household: a head of household with $10,000 of wages and one dependent.
- name: 2025 an 18-year-old full-time student is a qualifying older child
period: 2025
absolute_error_margin: 0.01
input:
people:
parent:
age: 40
employment_income: 10_000
child:
age: 18
is_tax_unit_dependent: true
is_full_time_student: true
tax_units:
tax_unit:
members: [parent, child]
households:
household:
members: [parent, child]
state_code: MN
output:
# WFC base: 4% of the first $9,480 of earned income = $379.20.
# One qualifying older child (M1DQC step 7): + $1,000.
# No CTC (not under 18); AGI $10,000 is below the $31,950 threshold.
mn_child_and_working_families_credits: 379.2 + 1_000

- name: 2025 an 18-year-old who is not a student is a qualifying older child
period: 2025
absolute_error_margin: 0.01
input:
people:
parent:
age: 40
employment_income: 10_000
child:
age: 18
is_tax_unit_dependent: true
is_full_time_student: false
tax_units:
tax_unit:
members: [parent, child]
households:
household:
members: [parent, child]
state_code: MN
output:
# Under 19 at the end of the year (M1DQC step 8, IRC 152(c)(3)(A)), so
# the same $379.20 + $1,000 as the full-time student above.
mn_child_and_working_families_credits: 379.2 + 1_000

- name: 2025 a 17-year-old gets the child tax credit and no older-child amount
period: 2025
absolute_error_margin: 0.01
input:
people:
parent:
age: 40
employment_income: 10_000
child:
age: 17
is_tax_unit_dependent: true
is_full_time_student: false
tax_units:
tax_unit:
members: [parent, child]
households:
household:
members: [parent, child]
state_code: MN
output:
# Under 18 at the end of the year (M1DQC step 4, row 10): CTC $1,750
# plus the $379.20 WFC base, no qualifying older child amount.
mn_child_and_working_families_credits: 379.2 + 1_750

- name: 2025 a 19-year-old who is not a student is not a qualifying older child
period: 2025
absolute_error_margin: 0.01
input:
people:
parent:
age: 40
employment_income: 10_000
child:
age: 19
is_tax_unit_dependent: true
is_full_time_student: false
tax_units:
tax_unit:
members: [parent, child]
households:
household:
members: [parent, child]
state_code: MN
output:
# Not a student and not under 19 (M1DQC step 8): WFC base $379.20 only.
mn_child_and_working_families_credits: 379.2

- name: 2025 a disabled 18-year-old is a qualifying older child
period: 2025
absolute_error_margin: 0.01
input:
people:
parent:
age: 40
employment_income: 10_000
child:
age: 18
is_tax_unit_dependent: true
is_full_time_student: false
is_permanently_and_totally_disabled: true
tax_units:
tax_unit:
members: [parent, child]
households:
household:
members: [parent, child]
state_code: MN
output:
# Disabled and not under 18 (M1DQC step 4 sends the child to row 11).
mn_child_and_working_families_credits: 379.2 + 1_000

- name: 2025 an 18-year-old older child above the phase-out start
period: 2025
absolute_error_margin: 0.01
input:
people:
parent:
age: 40
employment_income: 40_000
child:
age: 18
is_tax_unit_dependent: true
is_full_time_student: false
tax_units:
tax_unit:
members: [parent, child]
households:
household:
members: [parent, child]
state_code: MN
output:
# $379.20 + $1,000, less 9% of the income above the $31,950 phase-out
# start (2025 Schedule M1CWFC): 1,379.20 - 0.09 x 8,050 = 654.70.
mn_child_and_working_families_credits: 654.7

# Minnesota decouples from IRC 32(m) (Minn. Stat. 290.0661/290.0671), so an
# ITIN child (ssn_card_type OTHER_NON_CITIZEN, no SSN valid for employment)
# receives the same MN CTC as a citizen child. This mirrors the "2025 Joint
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,23 +37,17 @@ def formula(tax_unit, period, parameters):
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
# an IRC 32(c) qualifying child that attained at least age 18; the
# IRC 32(c)(3) definition incorporates IRC 152(c)(3)(B), which waives
# the age (and student) test for permanently and totally disabled
# individuals, and the IRC 152(c)(2) relationship test. Schedule M1DQC
# step 4 routes a disabled dependent aged 18 or older directly to the
# qualifying-older-child row (row 11) without the full-time-student
# test.
is_disabled_dependent = person("is_tax_unit_dependent", period) & person(
"is_permanently_and_totally_disabled", period
)
# an IRC 32(c) qualifying child that attained at least age 18. IRC
# 32(c)(3) uses the IRC 152(c)(3) age test (under 19, under 24 if a
# full-time student, or any age if permanently and totally disabled)
# and the IRC 152(c)(2) relationship test. Schedule M1DQC steps 4-8
# follow it: an 18-year-old qualifies whether or not a student, a 19-
# to 23-year-old only as a full-time student, and a disabled child
# aged 18 or older always.
qualifying_child = person("is_eitc_qualifying_child", period)
age = person("age", period)
full_time_student = person("is_full_time_student", period)
qualifying_older_child = (
qualifying_child
& (age > p.wfc.additional.age_threshold)
& (full_time_student | is_disabled_dependent)
qualifying_older_child = qualifying_child & (
age >= p.wfc.additional.age_threshold
)
qualifying_older_children = tax_unit.sum(qualifying_older_child)
additional_wfc_credit = p.wfc.additional.amount.calc(qualifying_older_children)
Expand Down
Loading