Skip to content

Montana's taxsim_state_agi is 0 from 2024 and unpooled on 2021–2023 joint returns #9929

Closed

Description

@MaxGhenis

What is wrong

gov.states.household.state_agis lists mt_agi_indiv as Montana's state AGI. taxsim_state_agi (and its deprecated alias state_agi) adds that list over the tax unit. This causes two errors:

  • From 2024 Montana's state AGI is 0. mt_agi_indiv is defined_for = "mt_married_filing_separately_on_same_return_eligible", which is false from 2024 (Montana repealed filing separately on the same form; commit 2a20d65).
  • 2021–2023 joint returns are not pooled. mt_agi_indiv floors each spouse's Montana AGI at zero before the sum. A joint return's Montana AGI (Form 2 page 1, line 14, one column) pools the spouses first. That figure is mt_agi_joint.

Household runs on main (b79705b), state MT:

Year Household mt_agi_joint taxsim_state_agi
2022 single, wages 100,000 100,000 100,000
2022 couple: head wages 100,000; spouse Schedule C −20,000 80,000 90,000
2024 single, wages 100,000 100,000 0
2026 single, wages 100,000 100,000 0

taxsim_state_agi feeds TAXSIM comparisons. The only in-repo consumer is policyengine_us/tests/policy/baseline/gov/tax/income/test_legacy_state_umbrellas.py. Montana's income tax itself is unaffected, because it uses mt_agi_joint and the _indiv path directly.

Fix

Report the return's Montana AGI for the filing path actually used. Use mt_agi_joint on the joint path and the sum of mt_agi_indiv when mt_files_separately; a generated mt_agi like mt_taxable_income's _generate_state_mfs_variables entry would do. Then list that variable in state_agis.yaml. From 2024 Montana has no AGI line: Form 2 starts from federal taxable income. Decide whether TAXSIM's state-AGI column should then carry federal AGI or PE's mt_agi_joint intermediate, and document the choice.

Found while working on #9903.

Activity

  1. added a commit that references this issue on Oct 12, 2026
    217cf15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions