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

Iowa Income Tax Rates 2023-2026 #5221

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions changelog_entry.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- bump: patch
changes:
fixed:
- Iowa Income Tax Rates 2023-2026.
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rename folder to by_filing_status

Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
description: Iowa levies income taxes at these rates for all joint filers post 2023.
brackets:
- threshold:
2023-01-01: 0
rate:
2023-01-01: 0.044
2024-01-01: 0.04
2026-01-01: 0.039
- threshold:
2023-01-01: 12_000
2024-01-01: 12_420
2026-01-01: .inf
rate:
2023-01-01: 0.0482
- threshold:
2023-01-01: 60_000
2024-01-01: 62_100
2025-01-01: .inf
rate:
2023-01-01: 0.057
- threshold:
2023-01-01: 150_000
2024-01-01: .inf
rate:
2023-01-01: 0.06
- threshold:
2023-01-01: .inf


metadata:
type: marginal_rate
threshold_unit: currency-USD
rate_unit: /1
threshold_period: year
label: Iowa joint filers income tax rates and brackets post 2023
reference:
# the legal code does not represent the newest legislative changes
- title: Iowa Senate File 2442
href: https://www.legis.iowa.gov/legislation/BillBook?ga=90&ba=SF%202442
- title: IDR Announces 2023 Interest Rates, Deductions, Income Tax Brackets
href: https://revenue.iowa.gov/taxes/tax-guidance/individual-income-tax/2023-changes-iowa-individual-income-tax
- title: 2023 IA 1041 Instructions
href: https://tax.iowa.gov/sites/default/files/2023-11/IA1041Inst%2863002%29.pdf#page=4
- title: IDR Announces 2024 Interest Rates, Deductions, Income Tax Brackets
href: https://revenue.iowa.gov/press-release/2023-10-25/idr-announces-2024-individual-income-tax-brackets-and-interest-rates
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
description: Iowa levies income taxes at these rates for all filers other than joint filers post 2023.
brackets:
- threshold:
2023-01-01: 0
rate:
2023-01-01: 0.044
2024-01-01: 0.04
2026-01-01: 0.039
- threshold:
2023-01-01: 6_000
2024-01-01: 6_210
2026-01-01: .inf
rate:
2023-01-01: 0.0482
- threshold:
2023-01-01: 30_000
2024-01-01: 31_050
2025-01-01: .inf
rate:
2023-01-01: 0.057
- threshold:
2023-01-01: 75_000
2024-01-01: .inf
rate:
2023-01-01: 0.06
- threshold:
2023-01-01: .inf


metadata:
type: marginal_rate
threshold_unit: currency-USD
rate_unit: /1
threshold_period: year
label: Iowa other filers income tax rates and brackets post 2023
reference:
# The Iowa legal code does not represent the newest legislative changes
- title: Iowa Senate File 2442
href: https://www.legis.iowa.gov/legislation/BillBook?ga=90&ba=SF%202442
- title: IDR Announces 2023 Interest Rates, Deductions, Income Tax Brackets
href: https://revenue.iowa.gov/taxes/tax-guidance/individual-income-tax/2023-changes-iowa-individual-income-tax
- title: 2023 IA 1041 Instructions
href: https://tax.iowa.gov/sites/default/files/2023-11/IA1041Inst%2863002%29.pdf#page=4
- title: IDR Announces 2024 Interest Rates, Deductions, Income Tax Brackets
href: https://revenue.iowa.gov/press-release/2023-10-25/idr-announces-2024-individual-income-tax-brackets-and-interest-rates
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
description: Iowa applies a new income tax rate structure if this is true.
values:
2020-01-01: false
2023-01-01: true
metadata:
unit: bool
period: year
label: Iowa post 2023 income tax structure applies
reference:
- title: Iowa Senate File 2442
href: https://www.legis.iowa.gov/legislation/BillBook?ga=90&ba=SF%202442
- title: IDR Announces 2023 Interest Rates, Deductions, Income Tax Brackets
href: https://revenue.iowa.gov/taxes/tax-guidance/individual-income-tax/2023-changes-iowa-individual-income-tax
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove folder move all.yaml up and rename to combined.yaml

Original file line number Diff line number Diff line change
@@ -1,63 +1,47 @@
description: Iowa levies income taxes at these rates for all filers.
description: Iowa levies income taxes at these rates for all filers pre 2023.
brackets:
- threshold:
2021-01-01: 0
rate:
2021-01-01: 0.0033
2023-01-01: 0.044
2026-01-01: 0.039
- threshold:
2021-01-01: 1_676
2022-01-01: 1_743
2023-01-01: 6_000
2026-01-01: .inf
rate:
2021-01-01: 0.0067
2023-01-01: 0.0482
- threshold:
2021-01-01: 3_352
2022-01-01: 3_486
2023-01-01: 30_000
2025-01-01: .inf
rate:
2021-01-01: 0.0225
2023-01-01: 0.057
- threshold:
2021-01-01: 6_704
2022-01-01: 6_972
2023-01-01: 75_000
2024-01-01: .inf
rate:
2021-01-01: 0.0414
2023-01-01: 0.06
- threshold:
2021-01-01: 15_084
2022-01-01: 15_687
2023-01-01: .inf
rate:
2021-01-01: 0.0563
- threshold:
2021-01-01: 25_140
2022-01-01: 26_145
2023-01-01: .inf
rate:
2021-01-01: 0.0596
- threshold:
2021-01-01: 33_520
2022-01-01: 34_860
2023-01-01: .inf
rate:
2021-01-01: 0.0625
- threshold:
2021-01-01: 50_280
2022-01-01: 52_290
2023-01-01: .inf
rate:
2021-01-01: 0.0744
- threshold:
2021-01-01: 75_420
2022-01-01: 78_435
2023-01-01: .inf
rate:
2021-01-01: 0.0853

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
input:
ia_taxable_income_indiv: 6_000
state_code: IA
filing_status: SEPARATE
output:
ia_regular_tax_indiv: 264

Expand All @@ -49,6 +50,7 @@
input:
ia_taxable_income_indiv: 7_000
state_code: IA
filing_status: SEPARATE
output:
ia_regular_tax_indiv: 312.2

Expand All @@ -58,6 +60,7 @@
input:
ia_taxable_income_indiv: 30_000
state_code: IA
filing_status: SEPARATE
output:
ia_regular_tax_indiv: 1_420.8 #6_000*0.044+24_000*0.0482=1420.8

Expand All @@ -67,6 +70,7 @@
input:
ia_taxable_income_indiv: 80_000
state_code: IA
filing_status: SINGLE
output:
ia_regular_tax_indiv: 4_285.8

Expand All @@ -76,42 +80,47 @@
input:
ia_taxable_income_indiv: 30_000
state_code: IA
filing_status: SINGLE
output:
ia_regular_tax_indiv: 1_420.8
ia_regular_tax_indiv: 1_395.08

- name: IA regular tax indiv unit test 10, using all rates 2024
absolute_error_margin: 0.5
period: 2024
input:
ia_taxable_income_indiv: 80_000
state_code: IA
filing_status: SINGLE
output:
ia_regular_tax_indiv: 4_270.8
ia_regular_tax_indiv: 4_235.83

- name: IA regular tax indiv unit test 11, using two rates 2025
absolute_error_margin: 0.5
period: 2025
input:
ia_taxable_income_indiv: 30_000
state_code: IA
filing_status: SEPARATE
output:
ia_regular_tax_indiv: 1_420.8
ia_regular_tax_indiv: 1_395.08

- name: IA regular tax indiv unit test 12, using all rates 2025
absolute_error_margin: 0.5
period: 2025
input:
ia_taxable_income_indiv: 80_000
state_code: IA
filing_status: SEPARATE
output:
ia_regular_tax_indiv: 3_830.8
ia_regular_tax_indiv: 3_805.08

- name: IA regular tax indiv unit test 13, using two rates 2026
absolute_error_margin: 0.5
period: 2026
input:
ia_taxable_income_indiv: 30_000
state_code: IA
filing_status: SEPARATE
output:
ia_regular_tax_indiv: 1_170

Expand All @@ -121,5 +130,6 @@
input:
ia_taxable_income_indiv: 80_000
state_code: IA
filing_status: SEPARATE
output:
ia_regular_tax_indiv: 3_120
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
input:
ia_taxable_income_joint: 6_000
state_code: IA
filing_status: JOINT
output:
ia_regular_tax_joint: 264

Expand All @@ -49,69 +50,77 @@
input:
ia_taxable_income_joint: 7_000
state_code: IA
filing_status: JOINT
output:
ia_regular_tax_joint: 312.2
ia_regular_tax_joint: 308

- name: IA regular tax joint unit test 7, using two rates 2023
absolute_error_margin: 0.5
period: 2023
input:
ia_taxable_income_joint: 30_000
state_code: IA
filing_status: JOINT
output:
ia_regular_tax_joint: 1_420.8 #6_000*0.044+24_000*0.0482=1420.8
ia_regular_tax_joint: 1_395.6

- name: IA regular tax joint unit test 8, using all rates 2023
absolute_error_margin: 0.5
period: 2023
input:
ia_taxable_income_joint: 80_000
state_code: IA
filing_status: JOINT
output:
ia_regular_tax_joint: 4_285.8
ia_regular_tax_joint: 3_981.6

- name: IA regular tax joint unit test 9, using two rates 2024
absolute_error_margin: 0.5
period: 2024
input:
ia_taxable_income_joint: 30_000
state_code: IA
filing_status: JOINT
output:
ia_regular_tax_joint: 1_420.8
ia_regular_tax_joint: 1_344.2

- name: IA regular tax joint unit test 10, using all rates 2024
absolute_error_margin: 0.5
period: 2024
input:
ia_taxable_income_joint: 80_000
state_code: IA
filing_status: JOINT
output:
ia_regular_tax_joint: 4_270.8
ia_regular_tax_joint: 3_911.7

- name: IA regular tax joint unit test 11, using two rates 2025
absolute_error_margin: 0.5
period: 2025
input:
ia_taxable_income_joint: 30_000
state_code: IA
filing_status: JOINT
output:
ia_regular_tax_joint: 1_420.8
ia_regular_tax_joint: 1_344.2

- name: IA regular tax joint unit test 12, using all rates 2025
absolute_error_margin: 0.5
period: 2025
input:
ia_taxable_income_joint: 80_000
state_code: IA
filing_status: JOINT
output:
ia_regular_tax_joint: 3_830.8
ia_regular_tax_joint: 3_754.2

- name: IA regular tax joint unit test 13, using two rates 2026
absolute_error_margin: 0.5
period: 2026
input:
ia_taxable_income_joint: 30_000
state_code: IA
filing_status: JOINT
output:
ia_regular_tax_joint: 1_170

Expand All @@ -121,5 +130,6 @@
input:
ia_taxable_income_joint: 80_000
state_code: IA
filing_status: JOINT
output:
ia_regular_tax_joint: 3_120
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,16 @@ class ia_regular_tax_indiv(Variable):

def formula(person, period, parameters):
taxable_income = person("ia_taxable_income_indiv", period)
p = parameters(period).gov.states.ia.tax.income
return p.rates.all.calc(max_(0, taxable_income))
p = parameters(period).gov.states.ia.tax.income.rates
if p.post_2023.tax_structure_applies:
filing_status = person.tax_unit(
"filing_status",
period,
)
joint = filing_status == filing_status.possible_values.JOINT
return where(
joint,
p.post_2023.joint.calc(taxable_income),
p.post_2023.other.calc(taxable_income),
)
return p.pre_2023.all.calc(taxable_income)
Loading
Loading