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/8307.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Added Tennessee property tax relief for elderly homeowners.
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:
- 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
- tn_elderly_property_tax_relief
- 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,13 @@
description: Tennessee sets the qualifying age to this threshold under the Property Tax Relief for Elderly Homeowners program.
values:
2025-01-01: 65

metadata:
unit: year
period: year
label: Tennessee elderly property tax relief age threshold
reference:
- title: Tennessee Comptroller Tax Relief Brochure
href: https://comptroller.tn.gov/content/dam/cot/pa/documents/tax-relief/TaxReliefBrochure.pdf
- title: Tennessee Code Annotated Sections 67-5-701 through 67-5-704
href: https://comptroller.tn.gov/content/dam/cot/pa/documents/tax-relief/TCA%2067-5-701%20through%2067-5-704.pdf
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
description: Tennessee uses this assessment rate for residential property under the Property Tax Relief for Elderly Homeowners program.
values:
2025-01-01: 0.25

metadata:
unit: /1
period: year
label: Tennessee elderly property tax relief residential assessment rate
reference:
- title: Tennessee Code Annotated Sections 67-5-701 through 67-5-704
href: https://comptroller.tn.gov/content/dam/cot/pa/documents/tax-relief/TCA%2067-5-701%20through%2067-5-704.pdf
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
description: Tennessee limits income to this amount under the Property Tax Relief for Elderly Homeowners program.
values:
2025-01-01: 37_530
2026-01-01: 38_470

metadata:
unit: currency-USD
period: year
label: Tennessee elderly property tax relief income limit
reference:
- title: Tennessee Comptroller Tax Relief Brochure
href: https://comptroller.tn.gov/content/dam/cot/pa/documents/tax-relief/TaxReliefBrochure.pdf
- title: Tennessee Comptroller 2026 Tax Freeze Income Limits
href: https://comptroller.tn.gov/content/dam/cot/pa/documents/tax-freeze/TaxFreezeIncomeLimitsList2026.pdf
- title: Tennessee Code Annotated Sections 67-5-701 through 67-5-704
href: https://comptroller.tn.gov/content/dam/cot/pa/documents/tax-relief/TCA%2067-5-701%20through%2067-5-704.pdf
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
description: Tennessee limits property value to this amount under the Property Tax Relief for Elderly Homeowners program.
values:
2025-01-01: 32_700
2026-01-01: 32_700

metadata:
unit: currency-USD
period: year
label: Tennessee elderly property tax relief property value cap
reference:
- title: Tennessee Comptroller Tax Relief Brochure
href: https://comptroller.tn.gov/content/dam/cot/pa/documents/tax-relief/TaxReliefBrochure.pdf
- title: University of Tennessee Municipal Technical Advisory Service Property Tax Relief for Elderly and Disabled
href: https://www.mtas.tennessee.edu/reference/property-tax-relief-elderly-and-disabled
- title: Tennessee Code Annotated Sections 67-5-701 through 67-5-704
href: https://comptroller.tn.gov/content/dam/cot/pa/documents/tax-relief/TCA%2067-5-701%20through%2067-5-704.pdf
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
- name: Case 1, senior homeowner receives relief on the capped assessed value.
period: 2026
input:
people:
person1:
age: 65
real_estate_taxes: 1_000
assessed_property_value: 25_000
tax_units:
tax_unit:
members: [person1]
adjusted_gross_income: 38_470
households:
household:
members: [person1]
state_code: TN
output:
# Capped assessed value = 32,700 * 25% = 8,175.
# Relief = 1,000 * 8,175 / 25,000.
tn_elderly_property_tax_relief: 327

- name: Case 2, home below the value cap receives relief for all real estate taxes.
period: 2026
input:
people:
person1:
age: 70
real_estate_taxes: 400
assessed_property_value: 6_000
tax_units:
tax_unit:
members: [person1]
adjusted_gross_income: 30_000
households:
household:
members: [person1]
state_code: TN
output:
tn_elderly_property_tax_relief: 400

- name: Case 3, senior homeowner above the 2025 income limit receives no relief.
period: 2025
input:
people:
person1:
age: 70
real_estate_taxes: 1_000
assessed_property_value: 25_000
tax_units:
tax_unit:
members: [person1]
adjusted_gross_income: 37_531
households:
household:
members: [person1]
state_code: TN
output:
tn_elderly_property_tax_relief: 0

- name: Case 4, missing assessed property value yields no relief.
period: 2026
input:
people:
person1:
age: 70
real_estate_taxes: 1_000
tax_units:
tax_unit:
members: [person1]
adjusted_gross_income: 30_000
households:
household:
members: [person1]
state_code: TN
output:
tn_elderly_property_tax_relief: 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
- name: Case 1, senior homeowner at the 2026 income limit is eligible.
period: 2026
input:
people:
person1:
age: 65
real_estate_taxes: 1_000
assessed_property_value: 25_000
tax_units:
tax_unit:
members: [person1]
adjusted_gross_income: 38_470
households:
household:
members: [person1]
state_code: TN
output:
tn_elderly_property_tax_relief_eligible: true

- name: Case 2, senior homeowner above the 2026 income limit is ineligible.
period: 2026
input:
people:
person1:
age: 65
real_estate_taxes: 1_000
assessed_property_value: 25_000
tax_units:
tax_unit:
members: [person1]
adjusted_gross_income: 38_471
households:
household:
members: [person1]
state_code: TN
output:
tn_elderly_property_tax_relief_eligible: false

- name: Case 3, homeowner below the age threshold is ineligible.
period: 2026
input:
people:
person1:
age: 64
real_estate_taxes: 1_000
assessed_property_value: 25_000
tax_units:
tax_unit:
members: [person1]
adjusted_gross_income: 30_000
households:
household:
members: [person1]
state_code: TN
output:
tn_elderly_property_tax_relief_eligible: false

- name: Case 4, senior renter is ineligible.
period: 2026
input:
people:
person1:
age: 70
rent: 12_000
tax_units:
tax_unit:
members: [person1]
adjusted_gross_income: 30_000
households:
household:
members: [person1]
state_code: TN
output:
tn_elderly_property_tax_relief_eligible: false

- name: Case 5, senior homeowner outside Tennessee is ineligible.
period: 2026
input:
people:
person1:
age: 70
real_estate_taxes: 1_000
assessed_property_value: 25_000
tax_units:
tax_unit:
members: [person1]
adjusted_gross_income: 30_000
households:
household:
members: [person1]
state_code: KY
output:
tn_elderly_property_tax_relief_eligible: false
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
from policyengine_us.model_api import *


class tn_elderly_property_tax_relief(Variable):
value_type = float
entity = TaxUnit
label = "Tennessee elderly property tax relief"
unit = USD
definition_period = YEAR
reference = (
"https://comptroller.tn.gov/office-functions/pa/property-taxes/property-tax-programs/tax-relief.html",
"https://comptroller.tn.gov/content/dam/cot/pa/documents/tax-relief/TaxReliefBrochure.pdf",
"https://comptroller.tn.gov/content/dam/cot/pa/documents/tax-relief/TCA%2067-5-701%20through%2067-5-704.pdf",
)
defined_for = "tn_elderly_property_tax_relief_eligible"

def formula(tax_unit, period, parameters):
p = parameters(period).gov.states.tn.tax.property.elderly_property_tax_relief
assessed_property_value = add(tax_unit, period, ["assessed_property_value"])
capped_assessed_property_value = min_(
assessed_property_value,
p.property_value_cap * p.assessment_rate,
)
return (
add(tax_unit, period, ["real_estate_taxes"])
* capped_assessed_property_value
/ assessed_property_value
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
from policyengine_us.model_api import *


class tn_elderly_property_tax_relief_eligible(Variable):
value_type = bool
entity = TaxUnit
label = "Eligible for the Tennessee elderly property tax relief"
definition_period = YEAR
reference = (
"https://comptroller.tn.gov/office-functions/pa/property-taxes/property-tax-programs/tax-relief.html",
"https://comptroller.tn.gov/content/dam/cot/pa/documents/tax-relief/TaxReliefBrochure.pdf",
"https://comptroller.tn.gov/content/dam/cot/pa/documents/tax-relief/TCA%2067-5-701%20through%2067-5-704.pdf",
)
defined_for = StateCode.TN

def formula(tax_unit, period, parameters):
p = parameters(period).gov.states.tn.tax.property.elderly_property_tax_relief
return (
(tax_unit("greater_age_head_spouse", period) >= p.age_threshold)
& (
tax_unit("tn_elderly_property_tax_relief_income", period)
<= p.income_limit
)
& (add(tax_unit, period, ["real_estate_taxes"]) > 0)
& (add(tax_unit, period, ["assessed_property_value"]) > 0)
& ~tax_unit("rents", period)
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from policyengine_us.model_api import *


class tn_elderly_property_tax_relief_income(Variable):
value_type = float
entity = TaxUnit
label = "Tennessee elderly property tax relief income"
unit = USD
definition_period = YEAR
defined_for = StateCode.TN

adds = ["adjusted_gross_income"]
Loading