Skip to content
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
1 change: 1 addition & 0 deletions changelog.d/8313.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Added the Mississippi age or disability Homestead Exemption property tax reduction.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
description: Mississippi limits age-based eligibility to this threshold under the Homestead Exemption program.
values:
2025-01-01: 65
metadata:
unit: year
period: year
label: Mississippi age or disability homestead exemption age threshold
reference:
- title: Mississippi Department of Revenue | Homestead Exemption
href: https://www.dor.ms.gov/county-services/homestead-exemption
- title: Mississippi Code Section 27-33-67
href: https://law.justia.com/codes/mississippi/title-27/chapter-33/article-1/section-27-33-67/
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
description: Mississippi provides this amount as an age or disability homestead exemption under the Homestead Exemption program.
values:
2025-01-01: 7_500
metadata:
unit: currency-USD
period: year
label: Mississippi age or disability homestead exemption amount
reference:
- title: Mississippi Department of Revenue | Homestead Exemption
href: https://www.dor.ms.gov/county-services/homestead-exemption
- title: Mississippi Code Section 27-33-75
href: https://law.justia.com/codes/mississippi/title-27/chapter-33/article-1/section-27-33-75/
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
- name: Case 1, exemption is capped at the statutory amount.
period: 2025
input:
people:
person1:
age: 65
assessed_property_value: 75_000
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: MS
output:
ms_age_disability_homestead_exemption: 7_500

- name: Case 2, exemption is limited to assessed property value.
period: 2025
input:
people:
person1:
age: 65
assessed_property_value: 5_000
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: MS
output:
ms_age_disability_homestead_exemption: 5_000

- name: Case 3, exemption excludes non-joint adult property value.
period: 2025
input:
people:
person1:
age: 65
assessed_property_value: 5_000
person2:
age: 40
assessed_property_value: 75_000
tax_units:
tax_unit:
members: [person1, person2]
filing_status: SINGLE
households:
household:
members: [person1, person2]
state_code: MS
output:
ms_age_disability_homestead_exemption: 5_000
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
- name: Case 1, senior homeowner is eligible.
period: 2025
input:
people:
person1:
age: 65
assessed_property_value: 75_000
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: MS
output:
ms_age_disability_homestead_exemption_eligible: true

- name: Case 2, disabled homeowner under age 65 is eligible.
period: 2025
input:
people:
person1:
age: 40
is_disabled: true
assessed_property_value: 75_000
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: MS
output:
ms_age_disability_homestead_exemption_eligible: true

- name: Case 3, non-senior homeowner without disability is ineligible.
period: 2025
input:
people:
person1:
age: 64
assessed_property_value: 75_000
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: MS
output:
ms_age_disability_homestead_exemption_eligible: false

- name: Case 4, senior without assessed property is ineligible.
period: 2025
input:
people:
person1:
age: 65
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: MS
output:
ms_age_disability_homestead_exemption_eligible: false

- name: Case 5, joint spouse meeting the age test is eligible.
period: 2025
input:
people:
person1:
age: 40
assessed_property_value: 75_000
is_tax_unit_head: true
person2:
age: 65
is_tax_unit_spouse: true
tax_units:
tax_unit:
members: [person1, person2]
filing_status: JOINT
households:
household:
members: [person1, person2]
state_code: MS
output:
ms_age_disability_homestead_exemption_eligible: true

- name: Case 6, non-joint adult meeting the age test is ineligible.
period: 2025
input:
people:
person1:
age: 40
assessed_property_value: 75_000
is_tax_unit_head: true
person2:
age: 65
is_tax_unit_spouse: true
tax_units:
tax_unit:
members: [person1, person2]
filing_status: SINGLE
households:
household:
members: [person1, person2]
state_code: MS
output:
ms_age_disability_homestead_exemption_eligible: false
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
- name: Case 1, reduction equals the property tax on the exempt share of value.
period: 2025
input:
people:
person1:
age: 65
assessed_property_value: 75_000
real_estate_taxes: 1_500
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: MS
output:
ms_age_disability_homestead_property_tax_reduction: 150

- name: Case 2, reduction cannot exceed property taxes.
period: 2025
input:
people:
person1:
age: 65
assessed_property_value: 5_000
real_estate_taxes: 100
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: MS
output:
ms_age_disability_homestead_property_tax_reduction: 100

- name: Case 3, ineligible filer gets no reduction.
period: 2025
input:
people:
person1:
age: 64
assessed_property_value: 75_000
real_estate_taxes: 1_500
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: MS
output:
ms_age_disability_homestead_property_tax_reduction: 0

- name: Case 4, reduction excludes non-joint adult property tax.
period: 2025
input:
people:
person1:
age: 65
assessed_property_value: 5_000
real_estate_taxes: 100
person2:
age: 40
assessed_property_value: 75_000
real_estate_taxes: 1_500
tax_units:
tax_unit:
members: [person1, person2]
filing_status: SINGLE
households:
household:
members: [person1, person2]
state_code: MS
output:
ms_age_disability_homestead_property_tax_reduction: 100
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
from policyengine_us.model_api import *


class ms_age_disability_homestead_exemption(Variable):
value_type = float
entity = TaxUnit
label = "Mississippi age or disability homestead exemption"
unit = USD
definition_period = YEAR
reference = "https://www.dor.ms.gov/county-services/homestead-exemption"
defined_for = "ms_age_disability_homestead_exemption_eligible"

def formula(tax_unit, period, parameters):
person = tax_unit.members
head = person("is_tax_unit_head", period)
joint_spouse = person("is_tax_unit_spouse", period) & person.tax_unit(
"tax_unit_is_joint", period
)
assessed_value = tax_unit.sum(
person("assessed_property_value", period) * (head | joint_spouse)
)

return min_(
assessed_value,
parameters(
period
).gov.states.ms.tax.property.age_disability_homestead_exemption.amount,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
from policyengine_us.model_api import *


class ms_age_disability_homestead_exemption_eligible(Variable):
value_type = bool
entity = TaxUnit
label = "Eligible for the Mississippi age or disability Homestead Exemption"
definition_period = YEAR
reference = "https://www.dor.ms.gov/county-services/homestead-exemption"
defined_for = StateCode.MS

def formula(tax_unit, period, parameters):
p = parameters(
period
).gov.states.ms.tax.property.age_disability_homestead_exemption
person = tax_unit.members
head = person("is_tax_unit_head", period)
joint_spouse = person("is_tax_unit_spouse", period) & person.tax_unit(
"tax_unit_is_joint", period
)
head_or_joint_spouse = head | joint_spouse
age = person("age", period.this_year)
is_disabled = person("is_disabled", period)
assessed_value = person("assessed_property_value", period)

return tax_unit.any(
((age >= p.age_threshold) | is_disabled) & head_or_joint_spouse
) & (tax_unit.sum(assessed_value * head_or_joint_spouse) > 0)
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
from policyengine_us.model_api import *


class ms_age_disability_homestead_property_tax_reduction(Variable):
value_type = float
entity = TaxUnit
label = "Mississippi age or disability homestead property tax reduction"
unit = USD
definition_period = YEAR
reference = "https://www.dor.ms.gov/county-services/homestead-exemption"
defined_for = "ms_age_disability_homestead_exemption_eligible"

def formula(tax_unit, period, parameters):
person = tax_unit.members
head = person("is_tax_unit_head", period)
joint_spouse = person("is_tax_unit_spouse", period) & person.tax_unit(
"tax_unit_is_joint", period
)
head_or_joint_spouse = head | joint_spouse
assessed_value = tax_unit.sum(
person("assessed_property_value", period) * head_or_joint_spouse
)
real_estate_taxes = tax_unit.sum(
person("real_estate_taxes", period) * head_or_joint_spouse
)

return real_estate_taxes * (
tax_unit("ms_age_disability_homestead_exemption", period)
/ max_(assessed_value, 1)
)
Loading