Cap the Montana 2021 income tax rebate at liability (MCA 15-30-2191(2)(b)) and scope it to 2021#8970
Cap the Montana 2021 income tax rebate at liability (MCA 15-30-2191(2)(b)) and scope it to 2021#8970PavelMakarchuk wants to merge 1 commit into
Conversation
The variable returned the flat filing-status amount (1,250/2,500) for every MT filer in every year >= 2021, ignoring the statutory cap (lesser of the amount or the taxpayer's income tax liability) and the rebate's 2021-only scope. Montana income tax results are unchanged - the credit application already floored the applied amount - but the variable's reported value was wrong for low-liability filers and for 2022+ (it produced phantom amounts in the TAXSIM-comparison srebate work). Cap at the smaller of the joint and separate-column pre-credit bases (the filing election itself is post-credit and would create a computation cycle), zero-scope the amounts from 2022, and replace the period-2023 no-income unit tests that encoded the uncapped values. Fixes #8958. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8970 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 5 1 -4
Lines 86 16 -70
=========================================
- Hits 86 16 -70
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Review: cap the Montana 2021 income tax rebate at liabilityVerified the parameter values and cap logic against the enacted statute and reproduced the behavior on the PR branch. Verdict: approve. The change is correct, well-tested, and provably tax-neutral, with two minor accuracy notes and one nit. Verified
Minor: the cap base is line 18, but the statute specifies line 20The statute caps at line 20 of the 2021 Form 2, which is "Tax after nonrefundable credits" (line 18 − line 19). This PR caps at This has no effect on Minor: citation precisionThe "lesser of ... tax liability" cap is subsection (2)(a); (2)(b) is the flat filing-status amount. The PR title, changelog, and code comment attribute the cap to "(2)(b)"; more precisely, the "lesser of" is in the chapeau of (2), with (a) = liability and (b) = amount. The Nit
Out of scope (pre-existing, not introduced here)For low-liability couples that elect separate filing, MT income tax can go slightly negative (for example −33.81 for the $20k couple) because the tax-unit-level rebate is projected onto persons in the separate-column allocation ( |
|
Heads-up from taxsim triage (PolicyEngine/policyengine-taxsim#1078): this cap is one of three legs on that record, but it does not fix the per-person projection filed as #9012 — |
Summary
mt_income_tax_rebatereturned the flat filing-status amount ($1,250/$2,500) for every MT filer in every year ≥ 2021, ignoring both the statutory liability cap — MCA 15-30-2191(2)(b): the rebate is the lesser of the amount or the taxpayer's income tax liability — and the rebate's 2021-only scope.Montana
state_income_taxresults are unchanged (verified): the non-refundable credit application already floored the applied amount, and the credits list already restricts application to 2021. The defect was the variable's reported value — wrong for low-liability filers (e.g. a $20k joint couple: reported $2,500, statutory rebate $252.40) and nonzero in 2022+ — which mis-feeds any consumer of the variable (it produced phantom amounts in the TAXSIM-comparisonsrebatework, PolicyEngine/policyengine-taxsim#1070/#1068).Changes
mt_files_separatelyelection is post-credit and would create a computation cycle; the smaller base never exceeds the elected one).rebate/amount.yamlzero-scoped from 2022-01-01.Testing
Full Montana baseline suite: 536 passed, 0 failed. The TAXSIM-parity integration tests are unaffected (they input-override the rebate).
Fixes #8958.
🤖 Generated with Claude Code