Summary
Mississippi joint filers use a Column A / Column B split (Form 80-105), where each spouse's income is taxed separately using the same rate schedule. Currently, ms_total_exemptions_joint and ms_standard_deduction_joint assign 100% of exemptions and standard deduction to the tax unit head, leaving the spouse with $0 deductions. This causes the spouse's full AGI to be taxed, producing significantly higher total state tax than TaxAct.
Example (from policyengine-taxsim#769)
MS joint 2025, $10K primary wages + $30K interest income:
- PE: Head gets all $15,000 exemptions + $4,600 std ded → $6,071 taxable ($0 tax). Spouse gets $0 deductions → $15,148 taxable → $227 tax
- TaxAct: Optimally splits exemptions (~$10,462/$4,538) → both spouses near $10,610 taxable → $54 total tax
Root cause
ms_total_exemptions_joint.py line 16: return is_head * total_exemptions
ms_standard_deduction_joint.py line 20: return p.amount[filing_status] * is_head
Prior work
PR #6391 introduced an ms_prorate_fraction variable to split these proportionally by AGI, but was closed in favor of #6483 which only simplified ms_taxable_income_joint.py without fixing the allocation.
Suggested fix
Revive the ms_prorate_fraction approach from #6391 — allocate exemptions and standard deduction proportionally by each spouse's share of AGI (or optimally to minimize total tax).
References
Summary
Mississippi joint filers use a Column A / Column B split (Form 80-105), where each spouse's income is taxed separately using the same rate schedule. Currently,
ms_total_exemptions_jointandms_standard_deduction_jointassign 100% of exemptions and standard deduction to the tax unit head, leaving the spouse with $0 deductions. This causes the spouse's full AGI to be taxed, producing significantly higher total state tax than TaxAct.Example (from policyengine-taxsim#769)
MS joint 2025, $10K primary wages + $30K interest income:
Root cause
ms_total_exemptions_joint.pyline 16:return is_head * total_exemptionsms_standard_deduction_joint.pyline 20:return p.amount[filing_status] * is_headPrior work
PR #6391 introduced an
ms_prorate_fractionvariable to split these proportionally by AGI, but was closed in favor of #6483 which only simplifiedms_taxable_income_joint.pywithout fixing the allocation.Suggested fix
Revive the
ms_prorate_fractionapproach from #6391 — allocate exemptions and standard deduction proportionally by each spouse's share of AGI (or optimally to minimize total tax).References