Skip to content

Commit

Permalink
Added Montana Interest Exemptions (#3098)
Browse files Browse the repository at this point in the history
* Added Montana Interest Exemptions
Fixes #3058

* Adjusted

* Revised

* Revised

* Revised

* Add subtractions

* Revised

* Revised

* Revised

* revised

* Revised

* Update policyengine_us/parameters/gov/states/mt/tax/income/exemptions/interest/cap.yaml

* Update policyengine_us/variables/gov/states/mt/tax/income/exemptions/mt_interest_exemption_eligible.py

---------

Co-authored-by: Pavel Makarchuk <[email protected]>
  • Loading branch information
DianaShi5083 and PavelMakarchuk authored Nov 15, 2023
1 parent 480eb72 commit e4cc201
Show file tree
Hide file tree
Showing 10 changed files with 205 additions and 0 deletions.
4 changes: 4 additions & 0 deletions changelog_entry.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- bump: minor
changes:
added:
- Montana senior interest income exclusion.
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ metadata:
unit: currency-USD
period: year
label: Montana income tax exemption amount

Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
description: Montana partially excludes interest from adjusted gross income of filers and spouses at or above this age threshold.
metadata:
label: Montana senior interest income exclusion age threshold
period: year
unit: year
reference:
- title: 2021 Montana Form 2 | line 3 - Partial Interest Exemption for Taxpayers
href: https://mtrevenue.gov/wp-content/uploads/mdocs/form%202%202021%20instructions.pdf#page=24
- title: 2022 Montana Form 2 | line 3 - Partial Interest Exemption for Taxpayers
href: https://mtrevenue.gov/wp-content/uploads/dlm_uploads/2022/12/Form-2-2022-Instructions.pdf#page=25
- title: Administrative Rules of Montana | Income Taxes | § 42.14.215 (4)
href: https://rules.mt.gov/gateway/RuleNo.asp?RN=42%2E15%2E215
values:
2021-01-01: 65
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
description: Montana caps the interest income exclusion to this amount, based on filing status.
metadata:
label: Montana senior interest income exclusion cap
period: year
unit: currency-USD
breakdown:
- filing_status
reference:
- title: 2021 Montana Form 2 | line 3 - Partial Interest Exemption for Taxpayers
href: https://mtrevenue.gov/wp-content/uploads/mdocs/form%202%202021%20instructions.pdf#page=24
- title: 2022 Montana Form 2 | line 3 - Partial Interest Exemption for Taxpayers
href: https://mtrevenue.gov/wp-content/uploads/dlm_uploads/2022/12/Form-2-2022-Instructions.pdf#page=25
- title: Administrative Rules of Montana | Income Taxes | § 42.14.215 (2) & (3)
href: https://rules.mt.gov/gateway/RuleNo.asp?RN=42%2E15%2E215

SINGLE:
2021-01-01: 800
SEPARATE:
2021-01-01: 800
JOINT:
2021-01-01: 1_600
HEAD_OF_HOUSEHOLD:
2021-01-01: 800
WIDOW:
2021-01-01: 800
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
description: Montana counts these sources as subtractions.
values:
2021-01-01:
- mt_interest_exemption
metadata:
unit: list
label: Montana adjusted gross income subtractions
reference:
- title: 2021 Montana Form 2 | Montana Subtractions Schedule
href: https://mtrevenue.gov/wp-content/uploads/mdocs/form%202%202021%20instructions.pdf#page=24
- title: 2022 Montana Form 2 | Montana Subtractions Schedule
href: https://mtrevenue.gov/wp-content/uploads/dlm_uploads/2022/12/Form-2-2022-Instructions.pdf#page=25
- title: Administrative Rules of Montana | Income Taxes | 42.15.2:Montana Additions and Subtractions
href: https://rules.mt.gov/gateway/Subchapterhome.asp?scn=42%2E15%2E2
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
- name: Joint filing, eligible
period: 2023
input:
people:
person1:
taxable_interest_income: 1_000
person2:
taxable_interest_income: 900
tax_units:
tax_unit:
members: [person1, person2]
filing_status: JOINT
mt_interest_exemption_eligible: true
households:
household:
state_code: MT
output:
mt_interest_exemption: 1_600

- name: Joint filing, not eligible
period: 2023
input:
people:
person1:
taxable_interest_income: 1_000
person2:
taxable_interest_income: 900
tax_units:
tax_unit:
members: [person1, person2]
filing_status: JOINT
mt_interest_exemption_eligible: false
households:
household:
state_code: MT
output:
mt_interest_exemption: 0

- name: Single filing, eligible
period: 2023
input:
people:
person1:
is_tax_unit_head: true
taxable_interest_income: 1_000
tax_units:
tax_unit:
members: [person1]
filing_status: SINGLE
mt_interest_exemption_eligible: true
households:
household:
state_code: MT
output:
mt_interest_exemption: 800
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
- name: both are eligible
period: 2023
input:
people:
person1:
age: 65
is_tax_unit_head_or_spouse: true
person2:
age: 65
is_tax_unit_head_or_spouse: true
households:
household:
state_code: MT
output:
mt_interest_exemption_eligible: true

- name: both are eligible, even spouse is under the age
period: 2023
input:
people:
person1:
age: 62
is_tax_unit_head_or_spouse: true
person2:
age: 65
is_tax_unit_head_or_spouse: true
households:
household:
state_code: MT
output:
mt_interest_exemption_eligible: true

- name: single not eligible
period: 2023
input:
people:
person1:
age: 62
is_tax_unit_head_or_spouse: true
households:
household:
state_code: MT
output:
mt_interest_exemption_eligible: false
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
from policyengine_us.model_api import *


class mt_interest_exemption(Variable):
value_type = float
entity = TaxUnit
label = "Montana interest exemption"
unit = USD
definition_period = YEAR
reference = "https://mtrevenue.gov/wp-content/uploads/dlm_uploads/2022/12/Form-2-2022-Instructions.pdf#page=25"
defined_for = "mt_interest_exemption_eligible"

def formula(tax_unit, period, parameters):
p = parameters(period).gov.states.mt.tax.income.exemptions.interest
person = tax_unit.members
filing_status = tax_unit("filing_status", period)
cap = p.cap[filing_status]
interest_income = person("taxable_interest_income", period)
return min_(cap, tax_unit.sum(interest_income))
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
from policyengine_us.model_api import *


class mt_interest_exemption_eligible(Variable):
value_type = bool
entity = TaxUnit
label = "Eligible for the Montana interest exemption"
definition_period = YEAR
reference = "https://mtrevenue.gov/wp-content/uploads/dlm_uploads/2022/12/Form-2-2022-Instructions.pdf#page=25"
defined_for = StateCode.MT

def formula(tax_unit, period, parameters):
person = tax_unit.members
p = parameters(period).gov.states.mt.tax.income.exemptions.interest
head_or_spouse = person("is_tax_unit_head_or_spouse", period)
age = person("age", period)
return tax_unit.any(head_or_spouse & (age >= p.age_threshold))
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from policyengine_us.model_api import *


class mt_subtractions(Variable):
value_type = float
entity = TaxUnit
label = "Montana subtractions"
unit = USD
definition_period = YEAR
defined_for = StateCode.MT

adds = "gov.states.mt.tax.income.subtractions.subtractions"

0 comments on commit e4cc201

Please sign in to comment.