Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Montana Personal Income Tax Schedule #2267

Merged
merged 12 commits into from May 27, 2023
4 changes: 4 additions & 0 deletions changelog_entry.yaml
@@ -0,0 +1,4 @@
- bump: minor
changes:
added:
- Montana personal income tax schedule.
@@ -0,0 +1,59 @@
description: Montana taxes head of household filers at this rate structure.
metadata:
type: marginal_rate
threshold_unit: currency-USD
rate_unit: /1
label: Montana income tax rates for head of household filers
reference:
- title: Montana Code Annotated 2021 Title 15, Chapter 30, Part 21, 15-30-2103
href: https://leg.mt.gov/bills/mca/title_0150/chapter_0300/part_0210/section_0030/0150-0300-0210-0030.html
# Before 2024 Montana has a flat tax rate for each filing status
PavelMakarchuk marked this conversation as resolved.
Show resolved Hide resolved
# After 2024 the tax rate depends on the filing status
brackets:
- threshold:
2021-01-01: 0
rate:
2021-01-01: 0.01
2024-01-01: 0.047
- threshold:
2021-01-01: 2_900
2022-01-01: 3_300
2024-01-01: 30_750
rate:
2021-01-01: 0.02
2024-01-01: 0.065
- threshold:
2021-01-01: 5_100
2022-01-01: 5_800
2024-01-01: .inf
rate:
2021-01-01: 0.03
2024-01-01: 0.065
- threshold:
2021-01-01: 7_800
2022-01-01: 8_900
2024-01-01: .inf
rate:
2021-01-01: 0.04
2024-01-01: 0.065
- threshold:
2021-01-01: 10_500
2022-01-01: 12_000
2024-01-01: .inf
rate:
2021-01-01: 0.05
2024-01-01: 0.065
- threshold:
2021-01-01: 13_500
2022-01-01: 15_400
2024-01-01: .inf
rate:
2021-01-01: 0.06
2024-01-01: 0.065
- threshold:
2021-01-01: 17_400
2022-01-01: 19_800
2024-01-01: .inf
rate:
2021-01-01: 0.0675
2024-01-01: 0.065
@@ -0,0 +1,59 @@
description: Montana taxes joint filers at this rate structure.
metadata:
type: marginal_rate
threshold_unit: currency-USD
rate_unit: /1
label: Montana income tax rate joint filers
reference:
- title: Montana Code Annotated 2021 Title 15, Chapter 30, Part 21, 15-30-2103
href: https://leg.mt.gov/bills/mca/title_0150/chapter_0300/part_0210/section_0030/0150-0300-0210-0030.html
# Before 2024 Montana has a flat tax rate for each filing status
# After 2024 the tax rate depends on the filing status
brackets:
- threshold:
2021-01-01: 0
rate:
2021-01-01: 0.01
2024-01-01: 0.047
- threshold:
2021-01-01: 2_900
2022-01-01: 3_300
2024-01-01: 41_000
rate:
2021-01-01: 0.02
2024-01-01: 0.065
- threshold:
2021-01-01: 5_100
2022-01-01: 5_800
2024-01-01: .inf
rate:
2021-01-01: 0.03
2024-01-01: 0.065
- threshold:
2021-01-01: 7_800
2022-01-01: 8_900
2024-01-01: .inf
rate:
2021-01-01: 0.04
2024-01-01: 0.065
- threshold:
2021-01-01: 10_500
2022-01-01: 12_000
2024-01-01: .inf
rate:
2021-01-01: 0.05
2024-01-01: 0.065
- threshold:
2021-01-01: 13_500
2022-01-01: 15_400
2024-01-01: .inf
rate:
2021-01-01: 0.06
2024-01-01: 0.065
- threshold:
2021-01-01: 17_400
2022-01-01: 19_800
2024-01-01: .inf
rate:
2021-01-01: 0.0675
2024-01-01: 0.065
@@ -0,0 +1,59 @@
description: Montana taxes separate filers at this rate structure.
metadata:
type: marginal_rate
threshold_unit: currency-USD
rate_unit: /1
label: Montana income tax rate separate filers
reference:
- title: Montana Code Annotated 2021 Title 15, Chapter 30, Part 21, 15-30-2103
href: https://leg.mt.gov/bills/mca/title_0150/chapter_0300/part_0210/section_0030/0150-0300-0210-0030.html
# Before 2024 Montana has a flat tax rate for each filing status
# After 2024 the tax rate depends on the filing status
brackets:
- threshold:
2021-01-01: 0
rate:
2021-01-01: 0.01
2024-01-01: 0.047
- threshold:
2021-01-01: 2_900
2022-01-01: 3_300
2024-01-01: 20_500
rate:
2021-01-01: 0.02
2024-01-01: 0.065
- threshold:
2021-01-01: 5_100
2022-01-01: 5_800
2024-01-01: .inf
rate:
2021-01-01: 0.03
2024-01-01: 0.065
- threshold:
2021-01-01: 7_800
2022-01-01: 8_900
2024-01-01: .inf
rate:
2021-01-01: 0.04
2024-01-01: 0.065
- threshold:
2021-01-01: 10_500
2022-01-01: 12_000
2024-01-01: .inf
rate:
2021-01-01: 0.05
2024-01-01: 0.065
- threshold:
2021-01-01: 13_500
2022-01-01: 15_400
2024-01-01: .inf
rate:
2021-01-01: 0.06
2024-01-01: 0.065
- threshold:
2021-01-01: 17_400
2022-01-01: 19_800
2024-01-01: .inf
rate:
2021-01-01: 0.0675
2024-01-01: 0.065
@@ -0,0 +1,59 @@
description: Montana taxes single filers at this rate structure.
metadata:
type: marginal_rate
threshold_unit: currency-USD
rate_unit: /1
label: Montana income tax rate single filers
reference:
- title: Montana Code Annotated 2021 Title 15, Chapter 30, Part 21, 15-30-2103
href: https://leg.mt.gov/bills/mca/title_0150/chapter_0300/part_0210/section_0030/0150-0300-0210-0030.html
# Before 2024 Montana has a flat tax rate for each filing status
# After 2024 the tax rate depends on the filing status
brackets:
- threshold:
2021-01-01: 0
rate:
2021-01-01: 0.01
2024-01-01: 0.047
- threshold:
2021-01-01: 2_900
2022-01-01: 3_300
2024-01-01: 20_500
rate:
2021-01-01: 0.02
2024-01-01: 0.065
- threshold:
2021-01-01: 5_100
2022-01-01: 5_800
2024-01-01: .inf
rate:
2021-01-01: 0.03
2024-01-01: 0.065
- threshold:
2021-01-01: 7_800
2022-01-01: 8_900
2024-01-01: .inf
rate:
2021-01-01: 0.04
2024-01-01: 0.065
- threshold:
2021-01-01: 10_500
2022-01-01: 12_000
2024-01-01: .inf
rate:
2021-01-01: 0.05
2024-01-01: 0.065
- threshold:
2021-01-01: 13_500
2022-01-01: 15_400
2024-01-01: .inf
rate:
2021-01-01: 0.06
2024-01-01: 0.065
- threshold:
2021-01-01: 17_400
2022-01-01: 19_800
2024-01-01: .inf
rate:
2021-01-01: 0.0675
2024-01-01: 0.065
@@ -0,0 +1,44 @@
- name: No income
period: 2021
input:
filing_status: SINGLE
mt_taxable_income: 0
state_code: MT
output:
mt_income_tax_before_refundable_credits: 0

- name: Temporary rate calculation #((5_000 - 2_900) * 0.02 + 2_900 * 0.01)
period: 2021
input:
filing_status: SINGLE
mt_taxable_income: 5_000
state_code: MT
output:
mt_income_tax_before_refundable_credits: 71

- name: Progressive rate - Joint filing # 5_000 * 0.047
period: 2024
input:
filing_status: JOINT
mt_taxable_income: 5_000
state_code: MT
output:
mt_income_tax_before_refundable_credits: 235

- name: Progressive rate - Single filing # ((25_000 - 20_500) * 0.065 + 20_500 * 0.047)
period: 2025
input:
filing_status: SINGLE
mt_taxable_income: 25_000
state_code: MT
output:
mt_income_tax_before_refundable_credits: 1_256

- name: Progressive rate - head of household # ((35_000 - 30_750) * 0.065 + 30_750 * 0.047)
period: 2025
input:
filing_status: HEAD_OF_HOUSEHOLD
mt_taxable_income: 35_000
state_code: MT
output:
mt_income_tax_before_refundable_credits: 1_721.5
@@ -0,0 +1,12 @@
from policyengine_us.model_api import *


class mt_income_tax(Variable):
value_type = float
entity = TaxUnit
label = "Montana income tax"
unit = USD
definition_period = YEAR
defined_for = StateCode.MT
adds = ["mt_income_tax_before_refundable_credits"]
subtracts = ["mt_refundable_credits"]
@@ -0,0 +1,30 @@
from policyengine_us.model_api import *


class mt_income_tax_before_refundable_credits(Variable):
value_type = float
entity = TaxUnit
label = "Montana income tax before refundable credits"
unit = USD
definition_period = YEAR
defined_for = StateCode.MT

def formula(tax_unit, period, parameters):
income = tax_unit("mt_taxable_income", period)
p = parameters(period).gov.states.mt.tax.income.main
filing_status = tax_unit("filing_status", period)
status = filing_status.possible_values
return select(
[
filing_status == status.SINGLE,
filing_status == status.JOINT,
filing_status == status.HEAD_OF_HOUSEHOLD,
filing_status == status.SEPARATE,
],
[
p.single.calc(income),
p.joint.calc(income),
p.head_of_household.calc(income),
p.separate.calc(income),
],
)
@@ -0,0 +1,10 @@
from policyengine_us.model_api import *


class mt_refundable_credits(Variable):
value_type = float
entity = TaxUnit
label = "Montana refundable credits"
unit = USD
definition_period = YEAR
defined_for = StateCode.MT
@@ -0,0 +1,10 @@
from policyengine_us.model_api import *


class mt_taxable_income(Variable):
value_type = float
entity = TaxUnit
label = "Montana taxable income"
unit = USD
definition_period = YEAR
defined_for = StateCode.MT
@@ -1,7 +1,7 @@
from policyengine_us.model_api import *


class ri_refunable_credits(Variable):
class ri_refundable_credits(Variable):
value_type = float
entity = TaxUnit
label = "Rhode Island refundable credits"
Expand Down