Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
a479c77
Updated minimum_taxable_income.yaml
rickecon Nov 22, 2025
0d296db
Update Missouri rates.yaml
rickecon Nov 22, 2025
e8641fd
Added MO capital gains deduction
rickecon Nov 24, 2025
2ac093c
Update capital gains rate
rickecon Dec 3, 2025
f481a9b
Merge remote-tracking branch 'origin/master' into mo
rickecon Dec 3, 2025
26e5f61
Update changelog_entry.yaml
rickecon Dec 3, 2025
b21c8a7
Added mo_capital_gains_subtraction.yaml test
rickecon Dec 3, 2025
0b78702
Changed filer_type from MARRIED to JOINT in mo_federal_income_tax_ded…
rickecon Dec 3, 2025
cc51b69
Changed typo WIDWO (2 instances) to SURVIVING_SPOUSE in nc_itemized_d…
rickecon Dec 3, 2025
4c4400a
Updated mo_capital_gains_subtraction.yaml
rickecon Dec 4, 2025
751402c
Added reference for net capital gains exemption
rickecon Dec 8, 2025
a734223
Merge remote-tracking branch 'origin/master' into mo
rickecon Dec 9, 2025
a10e1fd
Fixed MO capital gains logic, tests, and added subtractions logic
rickecon Dec 9, 2025
619d656
Updated mo_agi_subtractions.yaml test
rickecon Dec 9, 2025
5243a32
Update tests mo_agi_subtractions.yaml and mo_capital_gains_subtractio…
rickecon Dec 9, 2025
4abd708
Updated parameter value to 1 and moved net capital gain parameter fol…
rickecon Dec 9, 2025
ef682ad
Updated changelog_entry.yaml
rickecon Dec 9, 2025
bbadf20
Merge remote-tracking branch 'origin/master' into mo
rickecon Dec 10, 2025
7be1bf6
Updated uv.lock
rickecon Dec 10, 2025
1587876
Fix entity-level mismatch in MO capital gains subtraction
DTrim99 Dec 11, 2025
d7766cb
Merge branch 'master' into mo
DTrim99 Dec 11, 2025
b3d904b
Update uv.lock
DTrim99 Dec 11, 2025
0270c25
Update uv.lock revision
DTrim99 Dec 11, 2025
f52418d
Merge branch 'master' into mo
DTrim99 Dec 15, 2025
6fec6dc
Update uv.lock
DTrim99 Dec 15, 2025
505306e
update uv lock
DTrim99 Dec 15, 2025
66efe9e
Merge branch 'master' into mo
rickecon Dec 15, 2025
d4f5f86
Merge branch 'master' into mo
rickecon Dec 15, 2025
6768723
Fix MO capital gains subtraction allocation to use net capital gains
DTrim99 Dec 16, 2025
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
9 changes: 9 additions & 0 deletions changelog_entry.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
- bump: patch
changes:
fixed:
- Updates the thresholds and marginal tax rates rates for the Missouri individual income tax in `parameters/gov/states/mo/tax/income/rates.yaml`
- Adds the variable `mo_capital_gains_subtraction.py` and the parameter `parameters/gov/states/mo/tax/income/subtractions/net_capital_gain/rate.yaml` for the 2025 inclusion a full deductibility of capital gains in calculating Missouri adjusted gross income.
- Adds `agi_subtractions.yaml` list parameter with the two MO AGI subtractions for 2025, and creates a `mo_agi_subtractions.py` variable (Person-level), which is referenced in the `mo_adjusted_gross_income.py` calculation.
- Adds `mo_capital_gains_subtraction_person.py` to allocate the capital gains subtraction proportionally to each person based on their share of long-term capital gains, preventing overcounting in multi-person tax units.
- Updates the `parameters/gov/states/mo/tax/income/minimum_taxable_income.yaml` parameter with the new 2025 value.
- Adds new legislative references
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,11 @@ values:
2022-01-01: 111
2023-01-01: 1_207
2024-01-01: 1_273
2025-01-01: 1_313
metadata:
reference:
- title: Missouri Department of Revenue 2025 Individual Income Tax Year Changes (This reference should be updated once the 2025 tax form comes out)
href: https://dor.mo.gov/taxation/individual/tax-types/income/year-changes/
- title: Missouri Legal Code | 143.021. Tax determined by rates in section 143.011 — no tax on taxable income, when.
href: https://rezvisor.mo.gov/main/OneSection.aspx?section=143.021
- title: 2024 MO-1040 Book - Individual Income Tax Long Form
Expand Down
17 changes: 13 additions & 4 deletions policyengine_us/parameters/gov/states/mo/tax/income/rates.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ brackets:
2022-01-01: 1_121
2023-01-01: 1_207
2024-01-01: 1_273
2025-01-01: 1_313
metadata:
uprating: gov.irs.uprating
rate:
Expand All @@ -29,6 +30,7 @@ brackets:
2022-01-01: 2_242
2023-01-01: 2_414
2024-01-01: 2_546
2025-01-01: 2_626
metadata:
uprating: gov.irs.uprating
rate:
Expand All @@ -41,6 +43,7 @@ brackets:
2022-01-01: 3_363
2023-01-01: 3_621
2024-01-01: 3_819
2025-01-01: 3_939
metadata:
uprating: gov.irs.uprating
rate:
Expand All @@ -53,6 +56,7 @@ brackets:
2022-01-01: 4_484
2023-01-01: 4_828
2024-01-01: 5_092
2025-01-01: 5_252
metadata:
uprating: gov.irs.uprating
rate:
Expand All @@ -65,6 +69,7 @@ brackets:
2022-01-01: 5_605
2023-01-01: 6_035
2024-01-01: 6_365
2025-01-01: 6_565
metadata:
uprating: gov.irs.uprating
rate:
Expand All @@ -77,6 +82,7 @@ brackets:
2022-01-01: 6_726
2023-01-01: 7_242
2024-01-01: 7_638
2025-01-01: 7_878
metadata:
uprating: gov.irs.uprating
rate:
Expand All @@ -89,6 +95,7 @@ brackets:
2022-01-01: 7_847
2023-01-01: 8_449
2024-01-01: 8_911
2025-01-01: 9_191
metadata:
uprating: gov.irs.uprating
rate:
Expand All @@ -114,10 +121,10 @@ brackets:
# withholding formula. Statutes allow further reductions to 0.046 in 2026
# and 0.045 in 2027, but we assume revenue conditions are not met until confirmed.
2025-01-01: 0.047
# We model rates through 2025 based on 143.011: initial 4.95% rate in 2023
# (subsection 2(1)), 0.15% reduction to 4.8% in 2024 (subsection 3(1)), and first
# 0.1% reduction to 4.7% in 2025 (subsection 4(1)). We do not model potential
# further 0.1% reductions allowed in subsection 4 until revenue conditions are
# We model rates through 2025 based on 143.011: initial 4.95% rate in 2023
# (subsection 2(1)), 0.15% reduction to 4.8% in 2024 (subsection 3(1)), and first
# 0.1% reduction to 4.7% in 2025 (subsection 4(1)). We do not model potential
# further 0.1% reductions allowed in subsection 4 until revenue conditions are
# confirmed met.

metadata:
Expand All @@ -136,6 +143,8 @@ metadata:
href: https://revisor.mo.gov/main/OneSection.aspx?section=143.011&bid=51511&hl=
- title: 2025 Missouri Withholding Tax Formula
href: https://dor.mo.gov/forms/Withholding%20Table%20-%20Weekly_2025.pdf#page=2
- title: Missouri Department of Revenue 2025 Individual Income Tax Year Changes (This reference should be updated once the 2025 tax form comes out)
href: https://dor.mo.gov/taxation/individual/tax-types/income/year-changes/

label: Missouri resident individual tax rates
type: marginal_rate
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
description: Missouri subtracts these sources from federal adjusted gross income to determine state adjusted gross income.
values:
2008-01-01:
- mo_qualified_health_insurance_premiums
2025-01-01:
- mo_qualified_health_insurance_premiums
- mo_capital_gains_subtraction_person


metadata:
unit: list
period: year
label: Missouri adjusted gross income subtractions
reference:
- title: Revisor of Missouri, Title X Taxation and Revenue, Chapter 143, 143.121, Missouri adjusted gross income (8/28/2007)
href: https://www.revisor.mo.gov/main/OneSection.aspx?bid=50493&section=143.121
- title: Revisor of Missouri, Title X Taxation and Revenue, Chapter 143, 143.121, Missouri adjusted gross income (8/28/2025)
href: https://www.revisor.mo.gov/main/OneSection.aspx?section=143.121&bid=57543
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
description: Missouri deducts this fraction of net capital gains from taxable income.
values:
0000-01-01: 0.00
2025-01-01: 1

metadata:
unit: /1
period: year
label: Missouri net capital gain deduction rate
reference:
- title: Missouri House of Representatives HB 594 (2025)
href: https://www.senate.mo.gov/25info/bts_web/bill.aspx?SessionType=R&BillID=4957943
- title: MO Dept of Revenue, Capital Gains Subtraction FAQs
href: https://dor.mo.gov/faq/taxation/individual/capital-gains-subtraction.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
- name: Pre capital gains subtraction law and qualified premiums, cap gains
period: 2024
absolute_error_margin: 0
input:
people:
person1:
long_term_capital_gains: 1_000
short_term_capital_gains: 500
health_insurance_premiums: 12_000
medical_out_of_pocket_expenses: 12_000
tax_units:
tax_unit1:
members: [person1]
medical_expense_deduction: 0
tax_unit_itemizes: false
taxable_income: 100_000
households:
household1:
members: [person1]
state_code: MO
output:
mo_capital_gains_subtraction: 0


- name: Pre capital gains subtraction law and qualified premiums, health insurance
period: 2024
absolute_error_margin: 0
input:
people:
person1:
long_term_capital_gains: 1_000
short_term_capital_gains: 500
health_insurance_premiums: 12_000
medical_out_of_pocket_expenses: 12_000
tax_units:
tax_unit1:
members: [person1]
medical_expense_deduction: 0
tax_unit_itemizes: false
taxable_income: 100_000
households:
household1:
members: [person1]
state_code: MO
output:
mo_qualified_health_insurance_premiums: 12_000


- name: Pre capital gains subtraction law and qualified premiums, subtractions
period: 2024
absolute_error_margin: 0
input:
people:
person1:
long_term_capital_gains: 1_000
short_term_capital_gains: 500
health_insurance_premiums: 12_000
medical_out_of_pocket_expenses: 12_000
tax_units:
tax_unit1:
members: [person1]
medical_expense_deduction: 0
tax_unit_itemizes: false
taxable_income: 100_000
households:
household1:
members: [person1]
state_code: MO
output:
mo_agi_subtractions: 12_000


- name: Post capital gains subtraction law and qualified premiums, capital gains
period: 2025
absolute_error_margin: 0
input:
people:
person1:
long_term_capital_gains: 1_000
short_term_capital_gains: 500
health_insurance_premiums: 12_000
medical_out_of_pocket_expenses: 12_000
tax_units:
tax_unit1:
members: [person1]
medical_expense_deduction: 0
tax_unit_itemizes: false
taxable_income: 100_000
households:
household1:
members: [person1]
state_code: MO
output:
mo_capital_gains_subtraction: 1_000


- name: Post capital gains subtraction law and qualified premiums, health insurance
period: 2025
absolute_error_margin: 0
input:
people:
person1:
long_term_capital_gains: 1_000
short_term_capital_gains: 500
health_insurance_premiums: 12_000
medical_out_of_pocket_expenses: 12_000
tax_units:
tax_unit1:
members: [person1]
medical_expense_deduction: 0
tax_unit_itemizes: false
taxable_income: 100_000
households:
household1:
members: [person1]
state_code: MO
output:
mo_qualified_health_insurance_premiums: 12_000


- name: Post capital gains subtraction law and qualified premiums, subtractions
period: 2025
absolute_error_margin: 0
input:
people:
person1:
long_term_capital_gains: 1_000
short_term_capital_gains: 500
health_insurance_premiums: 12_000
medical_out_of_pocket_expenses: 12_000
tax_units:
tax_unit1:
members: [person1]
medical_expense_deduction: 0
tax_unit_itemizes: false
taxable_income: 100_000
households:
household1:
members: [person1]
state_code: MO
output:
mo_agi_subtractions: 13_000


- name: Married couple - capital gains allocated by person
period: 2025
absolute_error_margin: 0
input:
people:
person1:
long_term_capital_gains: 6_000
short_term_capital_gains: 0
health_insurance_premiums: 6_000
medical_out_of_pocket_expenses: 6_000
person2:
long_term_capital_gains: 4_000
short_term_capital_gains: 0
health_insurance_premiums: 6_000
medical_out_of_pocket_expenses: 6_000
tax_units:
tax_unit1:
members: [person1, person2]
medical_expense_deduction: 0
tax_unit_itemizes: false
taxable_income: 100_000
households:
household1:
members: [person1, person2]
state_code: MO
output:
# Person-level capital gains subtraction allocation: 60%/40% of 10_000
mo_capital_gains_subtraction_person: [6_000, 4_000]
# Person-level health insurance: 50%/50% of 12_000
mo_qualified_health_insurance_premiums: [6_000, 6_000]
# Total subtractions per person: 6_000+6_000=12_000 and 4_000+6_000=10_000
mo_agi_subtractions: [12_000, 10_000]
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
- name: Pre capital gains subtraction law
period: 2024
absolute_error_margin: 0
input:
people:
person1:
long_term_capital_gains: 1_000
short_term_capital_gains: 500
tax_units:
tax_unit1:
members: [person1]
tax_unit_itemizes: false
taxable_income: 100_000
households:
household1:
members: [person1]
state_code: MO
output:
mo_capital_gains_subtraction: 0

- name: Post capital gains subtraction law
period: 2025
absolute_error_margin: 0
input:
people:
person1:
long_term_capital_gains: 1_000
short_term_capital_gains: 500
tax_units:
tax_unit1:
members: [person1]
tax_unit_itemizes: false
taxable_income: 100_000
households:
household1:
members: [person1]
state_code: MO
output:
mo_capital_gains_subtraction: 1_000

- name: Post capital gains subtraction law - married couple
period: 2025
absolute_error_margin: 0
input:
people:
person1:
long_term_capital_gains: 6_000
short_term_capital_gains: 0
person2:
long_term_capital_gains: 4_000
short_term_capital_gains: 0
tax_units:
tax_unit1:
members: [person1, person2]
tax_unit_itemizes: false
taxable_income: 100_000
households:
household1:
members: [person1, person2]
state_code: MO
output:
# Tax unit level subtraction should be full 10_000
mo_capital_gains_subtraction: 10_000
# Person level subtraction should be allocated by LTCG share
mo_capital_gains_subtraction_person: [6_000, 4_000]
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
- name: Real estate taxes capped
- name: Real estate taxes capped
period: 2022
input:
filing_status: JOINT
Expand All @@ -10,7 +10,7 @@
output:
nc_itemized_deductions: 19_000

- name: Real estate taxes and mortgage capped
- name: Real estate taxes and mortgage capped
period: 2022
input:
filing_status: SURVIVING_SPOUSE
Expand Down
Loading