Skip to content
Draft
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/8304.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Added Alabama senior homestead property tax relief.
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
description: Alabama sets the qualifying age to this threshold under the senior homestead exemption program.
values:
2025-01-01: 65

metadata:
unit: year
period: year
label: Alabama senior homestead exemption age threshold
reference:
- title: Alabama Code Section 40-9-19(a)(2)
href: https://law.justia.com/codes/alabama/title-40/chapter-9/article-1/section-40-9-19/
- title: Alabama Department of Revenue Homestead Exemptions
href: https://www.revenue.alabama.gov/property-tax/homestead-exemptions/
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
description: Alabama sets the state property tax rate to this share under the senior homestead exemption program.
values:
2025-01-01: 0.0065

metadata:
unit: /1
period: year
label: Alabama senior homestead exemption state property tax rate
reference:
- title: Alabama Department of Revenue Property (Ad Valorem) Tax
href: https://www.revenue.alabama.gov/tax-types/property-ad-valorem-tax/
- title: Alabama Department of Revenue Property Tax Incentives
href: https://www.revenue.alabama.gov/tax-incentives/property-tax-incentives/
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,26 @@ values:
- wi_homestead_credit
- wi_property_tax_credit
- wv_homestead_excess_property_tax_credit
2025-01-01:
- al_senior_homestead_exemption
- az_property_tax_credit
- ct_property_tax_credit
- dc_ptc
- il_property_tax_credit
- ma_senior_circuit_breaker
- me_property_tax_fairness_credit
- mi_homestead_property_tax_credit
- mo_property_tax_credit
- mt_elderly_homeowner_or_renter_credit
- mt_property_tax_rebate
- nj_property_tax_credit
- nm_property_tax_rebate
- ny_real_property_tax_credit
- ok_ptc
- ri_property_tax_credit
- wi_homestead_credit
- wi_property_tax_credit
- wv_homestead_excess_property_tax_credit

metadata:
unit: list
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
- name: Case 1, senior homeowner receives the state levy exemption.
period: 2025
input:
people:
person1:
age: 65
real_estate_taxes: 1_000
assessed_property_value: 100_000
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: AL
output:
# 100,000 assessed value * 0.0065 state levy.
al_senior_homestead_exemption: 650

- name: Case 2, relief is capped at real estate taxes paid.
period: 2025
input:
people:
person1:
age: 70
real_estate_taxes: 500
assessed_property_value: 100_000
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: AL
output:
al_senior_homestead_exemption: 500

- name: Case 3, homeowner below the age threshold receives no relief.
period: 2025
input:
people:
person1:
age: 64
real_estate_taxes: 1_000
assessed_property_value: 100_000
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: AL
output:
al_senior_homestead_exemption: 0

- name: Case 4, missing assessed property value yields no modeled relief.
period: 2025
input:
people:
person1:
age: 70
real_estate_taxes: 1_000
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: AL
output:
al_senior_homestead_exemption: 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
- name: Case 1, senior homeowner is eligible.
period: 2025
input:
people:
person1:
age: 65
real_estate_taxes: 1_000
assessed_property_value: 100_000
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: AL
output:
al_senior_homestead_exemption_eligible: true

- name: Case 2, homeowner below the age threshold is ineligible.
period: 2025
input:
people:
person1:
age: 64
real_estate_taxes: 1_000
assessed_property_value: 100_000
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: AL
output:
al_senior_homestead_exemption_eligible: false

- name: Case 3, senior renter is ineligible.
period: 2025
input:
people:
person1:
age: 70
rent: 12_000
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: AL
output:
al_senior_homestead_exemption_eligible: false

- name: Case 4, senior homeowner outside Alabama is ineligible.
period: 2025
input:
people:
person1:
age: 70
real_estate_taxes: 1_000
assessed_property_value: 100_000
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: GA
output:
al_senior_homestead_exemption_eligible: false
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from policyengine_us.model_api import *


class al_senior_homestead_exemption(Variable):
value_type = float
entity = TaxUnit
label = "Alabama senior homestead exemption"
unit = USD
definition_period = YEAR
reference = (
"https://law.justia.com/codes/alabama/title-40/chapter-9/article-1/section-40-9-19/",
"https://www.revenue.alabama.gov/tax-types/property-ad-valorem-tax/",
"https://www.revenue.alabama.gov/property-tax/homestead-exemptions/",
)
defined_for = "al_senior_homestead_exemption_eligible"

def formula(tax_unit, period, parameters):
p = parameters(period).gov.states.al.tax.property.senior_homestead_exemption
return min_(
add(tax_unit, period, ["assessed_property_value"])
* p.state_property_tax_rate,
add(tax_unit, period, ["real_estate_taxes"]),
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from policyengine_us.model_api import *


class al_senior_homestead_exemption_eligible(Variable):
value_type = bool
entity = TaxUnit
label = "Eligible for the Alabama senior homestead exemption"
definition_period = YEAR
reference = (
"https://law.justia.com/codes/alabama/title-40/chapter-9/article-1/section-40-9-19/",
"https://www.law.cornell.edu/regulations/alabama/Ala-Admin-Code-r-810-4-1-.23",
"https://www.revenue.alabama.gov/property-tax/homestead-exemptions/",
)
defined_for = StateCode.AL

def formula(tax_unit, period, parameters):
p = parameters(period).gov.states.al.tax.property.senior_homestead_exemption
return (
(tax_unit("greater_age_head_spouse", period) >= p.age_threshold)
& (add(tax_unit, period, ["real_estate_taxes"]) > 0)
& ~tax_unit("rents", period)
)
Loading