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/fix-10204-mn-amt-phase-out-rate.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Phase out the Minnesota AMT exemption at 25% under Minn. Stat. 290.091, subd. 3(b), instead of the federal rate, which rises to 50% from 2026, and correct the 2025 Minnesota AMT exemption amounts to $95,300, $71,470 and $47,660.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ metadata:
href: https://www.revenue.state.mn.us/sites/default/files/2025-07/m1mt-24.pdf#page=1
- title: 2025 Minnesota Schedule M1MT form, Line 21
href: https://www.revenue.state.mn.us/sites/default/files/2026-07/m1mt-25.pdf#page=1
- title: Minnesota Department of Revenue, Tax Year 2025 Inflation-Adjusted Amounts, 290.091 Subd. 3 AMT Exemption
href: https://www.revenue.state.mn.us/sites/default/files/2024-12/inflation-adjusted-amounts-2025.pdf#page=3
- title: Minnesota Department of Revenue, Tax Year 2026 Inflation-Adjusted Amounts, 290.091 Subd. 3 AMT Exemption
href: https://www.revenue.state.mn.us/sites/default/files/2025-12/inflation-adjusted-amounts-2026.pdf#page=3

Expand All @@ -34,33 +36,33 @@ JOINT:
2022-01-01: 82_150
2023-01-01: 87_960
2024-01-01: 92_710
2025-01-01: 95_390
2025-01-01: 95_300
2026-01-01: 97_470
HEAD_OF_HOUSEHOLD:
2021-01-01: 59_750
2022-01-01: 61_610
2023-01-01: 65_970
2024-01-01: 69_530
2025-01-01: 71_540
2025-01-01: 71_470
2026-01-01: 73_100
SURVIVING_SPOUSE:
2021-01-01: 79_660
2022-01-01: 82_150
2023-01-01: 87_960
2024-01-01: 92_710
2025-01-01: 95_390
2025-01-01: 95_300
2026-01-01: 97_470
SINGLE:
2021-01-01: 59_750
2022-01-01: 61_610
2023-01-01: 65_970
2024-01-01: 69_530
2025-01-01: 71_540
2025-01-01: 71_470
2026-01-01: 73_100
SEPARATE:
2021-01-01: 39_840
2022-01-01: 41_080
2023-01-01: 43_990
2024-01-01: 46_360
2025-01-01: 47_700
2025-01-01: 47_660
2026-01-01: 48_740
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
description: Minnesota reduces the alternative minimum tax exemption by this share of alternative minimum taxable income above the phase-out threshold.
values:
2021-01-01: 0.25

metadata:
period: year
unit: /1
label: Minnesota AMT exemption phase-out rate
reference:
- title: Minnesota Statutes Section 290.091, Subd. 3(b) (phase out under IRC 55(d)(2); IRC 55(d)(4) does not apply)
href: https://www.revisor.mn.gov/statutes/cite/290.091#stat.290.091.3
- title: 26 U.S. Code § 55(d)(2) - 25 percent of alternative minimum taxable income above the threshold
href: https://www.law.cornell.edu/uscode/text/26/55#d_2
- title: 2025 Minnesota Schedule M1MT form, Line 24
href: https://www.revenue.state.mn.us/sites/default/files/2026-07/m1mt-25.pdf#page=1
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,8 @@
output:
mn_amt: 675

# 2025 test case
# Single filer with AMT taxable income at threshold (112_500)
# fractional_income_threshold = 10% of income_threshold = 0.1 * 112_500 = 11_250
# AMT income above fractional threshold = 112_500 - 11_250 = 101_250
# AMT = 6.75% * 101_250 - 0 basic tax = 6,834.375
# But fractional income (10% threshold) = max(0.1 * 112_500 - AMT_taxable_income, 0) = 0
# So AMT = max(0.0675 * 112_500, 675) - 0 = 7,593.75
# Actual computed value is 2764.8
# 2025 Schedule M1MT, single filer with AMT taxable income at the line 22
# phase-out threshold of $112,500.
- name: MN AMT 2025 single at threshold
absolute_error_margin: 0.01
period: 2025
Expand All @@ -55,4 +49,64 @@
mn_basic_tax: 0
state_code: MN
output:
mn_amt: 2764.8
# Line 21 exemption 71,470; line 23 excess over 112,500 = 0, so line 25
# exemption stays 71,470. Line 26 = 112,500 - 71,470 = 41,030.
# Line 27 AMT = 6.75% x 41,030 = 2,769.525.
mn_amt: 2_769.525

# Minn. Stat. 290.091, subd. 3(b): the exemption phases out at 25% under
# IRC 55(d)(2); IRC 55(d)(4), which sets the federal 50% rate from 2026,
# does not apply. 2026 joint exemption $97,470, threshold $150,000.
- name: MN AMT 2026 joint exemption phases out at 25%, not the federal 50%
absolute_error_margin: 0.01
period: 2026
input:
filing_status: JOINT
mn_amt_taxable_income: 300_000
mn_basic_tax: 0
state_code: MN
output:
# Reduction = 25% x (300,000 - 150,000) = 37,500.
# Exemption = 97,470 - 37,500 = 59,970.
# AMT = 6.75% x (300,000 - 59,970) = 6.75% x 240,030 = 16,202.03.
# (At 50% the exemption would be 22,470 and the AMT 18,733.28.)
mn_amt: 16_202.03

- name: MN AMT 2026 joint, no AMT when regular tax exceeds the 25% phase-out AMT
absolute_error_margin: 0.01
period: 2026
input:
filing_status: JOINT
mn_amt_taxable_income: 300_000
mn_basic_tax: 17_000
state_code: MN
output:
# max(0, 16,202.03 - 17,000) = 0. (At 50%: 18,733.28 - 17,000 = 1,733.28.)
mn_amt: 0

- name: MN AMT 2026 single, exemption fully phased out
absolute_error_margin: 0.01
period: 2026
input:
filing_status: SINGLE
mn_amt_taxable_income: 500_000
mn_basic_tax: 0
state_code: MN
output:
# 25% x (500,000 - 112,500) = 96,875 > 73,100 exemption, so exemption = 0.
# AMT = 6.75% x 500,000 = 33,750.
mn_amt: 33_750

- name: MN AMT 2025 joint control at the 25% phase-out rate
absolute_error_margin: 0.01
period: 2025
input:
filing_status: JOINT
mn_amt_taxable_income: 300_000
mn_basic_tax: 0
state_code: MN
output:
# 2025 Schedule M1MT: line 21 joint exemption 95,300; line 24 reduction
# 25% x (300,000 - 150,000) = 37,500; line 25 exemption 57,800.
# Line 27 AMT = 6.75% x (300,000 - 57,800) = 6.75% x 242,200 = 16,348.50.
mn_amt: 16_348.50
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@ class mn_amt(Variable):
unit = USD
definition_period = YEAR
reference = (
"https://www.revisor.mn.gov/statutes/cite/290.091#stat.290.091.3",
"https://www.revenue.state.mn.us/sites/default/files/2023-02/m1mt_21.pdf",
"https://www.revenue.state.mn.us/sites/default/files/2023-01/m1mt_22.pdf",
"https://www.revenue.state.mn.us/sites/default/files/2026-07/m1mt-25.pdf",
)
defined_for = StateCode.MN

Expand All @@ -18,9 +20,11 @@ def formula(tax_unit, period, parameters):
# calculate gross AMT amount
filing_status = tax_unit("filing_status", period)
p = parameters(period).gov.states.mn.tax.income
p_gov = parameters(period).gov.irs.income.amt.exemption.phase_out
excess_taxinc = max_(0, taxinc - p.amt.income_threshold[filing_status])
fractional_taxinc = excess_taxinc * p_gov.rate
# Minn. Stat. 290.091, subd. 3(b): the exemption phases out under
# IRC 55(d)(2) at 25%, and IRC 55(d)(4), which sets the federal 50%
# rate from 2026, does not apply.
fractional_taxinc = excess_taxinc * p.amt.phase_out_rate
fractional_threshold = p.amt.fractional_income_threshold[filing_status]
taxinc_amount = max_(0, fractional_threshold - fractional_taxinc)
net_taxinc = max_(0, taxinc - taxinc_amount)
Expand Down
Loading