Skip to content

Commit

Permalink
Merge pull request #5386 from PolicyEngine/ut_state_reform
Browse files Browse the repository at this point in the history
Add multiple state dependent exemptions to the repeal state dependent exemptions reform
  • Loading branch information
PavelMakarchuk authored Dec 5, 2024
2 parents ea78a1f + 5672d7f commit 9c4f914
Show file tree
Hide file tree
Showing 9 changed files with 126 additions and 23 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:
- Add multiple state exemptions to the repeal of state dependent exemptions reform.
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,3 @@ metadata:
href: https://www.taxformfinder.org/forms/2021/2021-utah-tc-40-full-packet.pdf#page=9
- title: 2023 TC-40 Utah Individual Income Tax Form (Line 11)
href: https://tax.utah.gov/forms/current/tc-40inst.pdf#page=10

33 changes: 19 additions & 14 deletions policyengine_us/reforms/state_dependent_exemptions/README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,30 @@
The following adjustments have been made in this reform:
Alabama: Neutralize dependent exemptions
California: Remove the dependent exemption structure from `ca_exemptions`
Georgia: Remove the dependent exemption structure from `ga_exemptions`
Hawaii: Change the `exemptions_count` to `head_spouse_count`
Illinois: Neutralize dependent exemptions
Indiana: Change the `tax_unit_size` to `head_spouse_count`
Iowa: Remove the dependent exemption structure from `ia_exemption_credit`
Kansas: Remove the dependents from the exemption count
Louisiana: Neutralize dependent exemptions
Maryland: Change the `tax_unit_size` to `head_spouse_count`
Massachusetts: Remove the dependent exemption structure from `ma_income_tax_exemption_threshold`
Michigan: Change the `tax_unit_size` to `head_spouse_count`
Minnesota: Neutralize dependent exemptions
Mississippi: Neutralize dependent exemptions
Montana: Neutralize the dependent exemptions person
Nebraska: Change the `tax_unit_size` to `head_spouse_count`
New Jersey: Neutralize dependent exemptions
New Mexico: Neutralize the deduction for certain dependents
New York: Neutralize dependent exemptions
North Carolina: Neutralize the child deduction
Ohio: Remove `is_tax_unit_dependent` from the exemption eligibility criteria
Oklahoma: Remove the dependents from the total exemptions
Rhode Island: Change the `exemptions_count` to `head_spouse_count`
South Carolina: Neutralize dependent exemptions
Utah: Neutralize the personal exemption amount
Vermont: Remove the dependents from the personal exemptions
Virginia: Only apply the personal exemptions to the head and spouse
West Virginia: Change the `tax_unit_size` to `head_spouse_count`
California: Remove the dependent exemption structure from `ca_exemptions`
Georgia: Remove the dependent exemption structure from `ga_exemptions`
Indiana: Change the `tax_unit_size` to `head_spouse_count`
Iowa: Remove the dependent exemption structure from `ia_exemption_credit`
Kansas: Remove the dependents from the exemption count
Massachusetts: Remove the dependent exemption structure from `ma_income_tax_exemption_threshold`
Alabama: Neutralize dependent exemptions
Illinois: Neutralize dependent exemptions
Louisiana: Neutralize dependent exemptions
Minnesota: Neutralize dependent exemptions
Mississippi: Neutralize dependent exemptions
New Jersey: Neutralize dependent exemptions
New York: Neutralize dependent exemptions
South Carolina: Neutralize dependent exemptions
Wisconsin: Change the `tax_unit_size` to `head_spouse_count`
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,27 @@ def formula(tax_unit, period, parameters):
exempt_status.base[filing_status] + personal_exemptions_added
)

# Using head and spouse count instead of exemptions count
class wi_base_exemption(Variable):
value_type = float
entity = TaxUnit
label = "Wisconsin base exemption"
unit = USD
definition_period = YEAR
reference = (
"https://www.revenue.wi.gov/TaxForms2021/2021-Form1f.pdf"
"https://www.revenue.wi.gov/TaxForms2021/2021-Form1-Inst.pdf"
"https://www.revenue.wi.gov/TaxForms2022/2022-Form1f.pdf"
"https://www.revenue.wi.gov/TaxForms2022/2022-Form1-Inst.pdf"
"https://docs.legis.wisconsin.gov/misc/lfb/informational_papers/january_2023/0002_individual_income_tax_informational_paper_2.pdf"
)
defined_for = StateCode.WI

def formula(tax_unit, period, parameters):
# compute base exemption amount
p = parameters(period).gov.states.wi.tax.income
return tax_unit("head_spouse_count", period) * p.exemption.base

class reform(Reform):
def apply(self):
self.neutralize_variable("al_dependent_exemption")
Expand All @@ -381,6 +402,10 @@ def apply(self):
self.neutralize_variable("nj_dependents_exemption")
self.neutralize_variable("ny_exemptions")
self.neutralize_variable("sc_dependent_exemption")
self.neutralize_variable("ut_personal_exemption")
self.neutralize_variable("nc_child_deduction")
self.neutralize_variable("nm_deduction_for_certain_dependents")
self.neutralize_variable("mt_dependent_exemptions_person")
self.update_variable(hi_regular_exemptions)
self.update_variable(md_total_personal_exemptions)
self.update_variable(mi_personal_exemptions)
Expand All @@ -397,6 +422,7 @@ def apply(self):
self.update_variable(ia_exemption_credit)
self.update_variable(ks_count_exemptions)
self.update_variable(ma_income_tax_exemption_threshold)
self.update_variable(wi_base_exemption)

return reform

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
- name: Aged head
period: 2022
input:
age_head: 65
state_code: WI
output:
wi_additional_exemption: 250

- name: Aged head and aged spouse
period: 2022
input:
age_head: 65
age_spouse: 65
state_code: WI
output:
wi_additional_exemption: 500

- name: No aged head or aged spouse
period: 2022
input:
age_head: 64
age_spouse: 64
state_code: WI
output:
wi_additional_exemption: 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
- name: WI exemption unit test 1
period: 2021
input:
exemptions_count: 5
state_code: WI
output:
wi_base_exemption: 5 * 700
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from policyengine_us.model_api import *


class wi_exemption(Variable):
class wi_additional_exemption(Variable):
value_type = float
entity = TaxUnit
label = "Wisconsin exemption"
label = "Wisconsin additional exemption"
unit = USD
definition_period = YEAR
reference = (
Expand All @@ -17,16 +17,12 @@ class wi_exemption(Variable):
defined_for = StateCode.WI

def formula(tax_unit, period, parameters):
# compute base exemption amount
p = parameters(period).gov.states.wi.tax.income
base_amount = tax_unit("exemptions_count", period) * p.exemption.base
# compute extra exemption amount
p = parameters(period).gov.states.wi.tax.income
elderly_head = (
tax_unit("age_head", period) >= p.exemption.old_age
).astype(int)
elderly_spouse = (
tax_unit("age_spouse", period) >= p.exemption.old_age
).astype(int)
extra_amount = (elderly_head + elderly_spouse) * p.exemption.extra
# return total exemption amount
return base_amount + extra_amount
return (elderly_head + elderly_spouse) * p.exemption.extra
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from policyengine_us.model_api import *


class wi_base_exemption(Variable):
value_type = float
entity = TaxUnit
label = "Wisconsin base exemption"
unit = USD
definition_period = YEAR
reference = (
"https://www.revenue.wi.gov/TaxForms2021/2021-Form1f.pdf"
"https://www.revenue.wi.gov/TaxForms2021/2021-Form1-Inst.pdf"
"https://www.revenue.wi.gov/TaxForms2022/2022-Form1f.pdf"
"https://www.revenue.wi.gov/TaxForms2022/2022-Form1-Inst.pdf"
"https://docs.legis.wisconsin.gov/misc/lfb/informational_papers/january_2023/0002_individual_income_tax_informational_paper_2.pdf"
)
defined_for = StateCode.WI

def formula(tax_unit, period, parameters):
# compute base exemption amount
p = parameters(period).gov.states.wi.tax.income
return tax_unit("exemptions_count", period) * p.exemption.base
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
from policyengine_us.model_api import *


class wi_exemption(Variable):
value_type = float
entity = TaxUnit
label = "Wisconsin exemption"
unit = USD
definition_period = YEAR
reference = (
"https://www.revenue.wi.gov/TaxForms2021/2021-Form1f.pdf"
"https://www.revenue.wi.gov/TaxForms2021/2021-Form1-Inst.pdf"
"https://www.revenue.wi.gov/TaxForms2022/2022-Form1f.pdf"
"https://www.revenue.wi.gov/TaxForms2022/2022-Form1-Inst.pdf"
"https://docs.legis.wisconsin.gov/misc/lfb/informational_papers/january_2023/0002_individual_income_tax_informational_paper_2.pdf"
)
defined_for = StateCode.WI

adds = ["wi_base_exemption", "wi_additional_exemption"]

0 comments on commit 9c4f914

Please sign in to comment.