From 97ca4a087d0e1579011bb7ee69519f0212cb9bb5 Mon Sep 17 00:00:00 2001 From: Daphne Hansell <128793799+daphnehanse11@users.noreply.github.com> Date: Thu, 14 May 2026 15:07:02 -0400 Subject: [PATCH 1/8] Add Indiana over-65 property tax credit --- changelog.d/8195.added.md | 1 + .../household/state_property_tax_credits.yaml | 20 ++++ .../over_65_credit/age_threshold.yaml | 10 ++ .../tax/property/over_65_credit/amount.yaml | 10 ++ .../property/over_65_credit/income_limit.yaml | 20 ++++ .../surviving_spouse_age_threshold.yaml | 10 ++ .../in_over_65_property_tax_credit.yaml | 35 +++++++ ..._over_65_property_tax_credit_eligible.yaml | 92 +++++++++++++++++++ .../in_over_65_property_tax_credit.py | 17 ++++ ...in_over_65_property_tax_credit_eligible.py | 33 +++++++ 10 files changed, 248 insertions(+) create mode 100644 changelog.d/8195.added.md create mode 100644 policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/age_threshold.yaml create mode 100644 policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/amount.yaml create mode 100644 policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/income_limit.yaml create mode 100644 policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/surviving_spouse_age_threshold.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.yaml create mode 100644 policyengine_us/variables/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit.py create mode 100644 policyengine_us/variables/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.py diff --git a/changelog.d/8195.added.md b/changelog.d/8195.added.md new file mode 100644 index 00000000000..4ca3f2b6d3b --- /dev/null +++ b/changelog.d/8195.added.md @@ -0,0 +1 @@ +Added the Indiana Over 65 Property Tax Credit. diff --git a/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml b/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml index b5c719c31cf..75b1672f638 100644 --- a/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml +++ b/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml @@ -114,6 +114,26 @@ values: - wi_homestead_credit - wi_property_tax_credit - wv_homestead_excess_property_tax_credit + 2027-01-01: + - az_property_tax_credit + - ct_property_tax_credit + - dc_ptc + - il_property_tax_credit + - in_over_65_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 diff --git a/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/age_threshold.yaml b/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/age_threshold.yaml new file mode 100644 index 00000000000..d21761d32bc --- /dev/null +++ b/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/age_threshold.yaml @@ -0,0 +1,10 @@ +description: Indiana limits eligibility to filers at or above this age under the Over 65 Credit program. +values: + 2027-01-01: 65 +metadata: + unit: year + period: year + label: Indiana Over 65 Credit age threshold + reference: + - title: Monroe County Auditor | Over 65 + href: https://www.in.gov/counties/monroe/Departments/auditor/over-65/ diff --git a/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/amount.yaml b/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/amount.yaml new file mode 100644 index 00000000000..6e68a8efa8d --- /dev/null +++ b/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/amount.yaml @@ -0,0 +1,10 @@ +description: Indiana provides this amount under the Over 65 Credit program. +values: + 2027-01-01: 150 +metadata: + unit: currency-USD + period: year + label: Indiana Over 65 Credit amount + reference: + - title: Monroe County Auditor | Over 65 + href: https://www.in.gov/counties/monroe/Departments/auditor/over-65/ diff --git a/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/income_limit.yaml b/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/income_limit.yaml new file mode 100644 index 00000000000..2432c4d03bf --- /dev/null +++ b/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/income_limit.yaml @@ -0,0 +1,20 @@ +description: Indiana limits adjusted gross income to this amount under the Over 65 Credit program. +metadata: + unit: currency-USD + period: year + label: Indiana Over 65 Credit income limit + breakdown: + - filing_status + reference: + - title: Monroe County Auditor | Over 65 + href: https://www.in.gov/counties/monroe/Departments/auditor/over-65/ +SINGLE: + 2027-01-01: 61_680 +HEAD_OF_HOUSEHOLD: + 2027-01-01: 61_680 +JOINT: + 2027-01-01: 71_960 +SURVIVING_SPOUSE: + 2027-01-01: 71_960 +SEPARATE: + 2027-01-01: 61_680 diff --git a/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/surviving_spouse_age_threshold.yaml b/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/surviving_spouse_age_threshold.yaml new file mode 100644 index 00000000000..bff77ff49b7 --- /dev/null +++ b/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/surviving_spouse_age_threshold.yaml @@ -0,0 +1,10 @@ +description: Indiana limits surviving spouse eligibility to filers at or above this age under the Over 65 Credit program. +values: + 2027-01-01: 60 +metadata: + unit: year + period: year + label: Indiana Over 65 Credit surviving spouse age threshold + reference: + - title: Monroe County Auditor | Over 65 + href: https://www.in.gov/counties/monroe/Departments/auditor/over-65/ diff --git a/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit.yaml b/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit.yaml new file mode 100644 index 00000000000..feec2750d1b --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit.yaml @@ -0,0 +1,35 @@ +- name: Case 1, credit is capped at the statutory amount. + period: 2027 + input: + people: + person1: + age: 65 + real_estate_taxes: 2_000 + tax_units: + tax_unit: + members: [person1] + adjusted_gross_income: 40_000 + households: + household: + members: [person1] + state_code: IN + output: + in_over_65_property_tax_credit: 150 + +- name: Case 2, credit is limited to property taxes paid. + period: 2027 + input: + people: + person1: + age: 65 + real_estate_taxes: 100 + tax_units: + tax_unit: + members: [person1] + adjusted_gross_income: 40_000 + households: + household: + members: [person1] + state_code: IN + output: + in_over_65_property_tax_credit: 100 diff --git a/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.yaml new file mode 100644 index 00000000000..62ed9fba423 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.yaml @@ -0,0 +1,92 @@ +- name: Case 1, senior homeowner under the single income limit. + period: 2027 + input: + people: + person1: + age: 65 + real_estate_taxes: 2_000 + tax_units: + tax_unit: + members: [person1] + adjusted_gross_income: 61_680 + households: + household: + members: [person1] + state_code: IN + output: + in_over_65_property_tax_credit_eligible: true + +- name: Case 2, filer below the age threshold. + period: 2027 + input: + people: + person1: + age: 64 + real_estate_taxes: 2_000 + tax_units: + tax_unit: + members: [person1] + adjusted_gross_income: 40_000 + households: + household: + members: [person1] + state_code: IN + output: + in_over_65_property_tax_credit_eligible: false + +- name: Case 3, joint filers above the income limit. + period: 2027 + input: + people: + person1: + age: 66 + real_estate_taxes: 2_000 + person2: + age: 64 + tax_units: + tax_unit: + members: [person1, person2] + filing_status: JOINT + adjusted_gross_income: 71_961 + households: + household: + members: [person1, person2] + state_code: IN + output: + in_over_65_property_tax_credit_eligible: false + +- name: Case 4, senior without real estate taxes. + period: 2027 + input: + people: + person1: + age: 65 + tax_units: + tax_unit: + members: [person1] + adjusted_gross_income: 40_000 + households: + household: + members: [person1] + state_code: IN + output: + in_over_65_property_tax_credit_eligible: false + +- name: Case 5, surviving spouse at the surviving spouse age threshold. + period: 2027 + input: + people: + person1: + age: 60 + real_estate_taxes: 2_000 + tax_units: + tax_unit: + members: [person1] + filing_status: SURVIVING_SPOUSE + adjusted_gross_income: 60_000 + households: + household: + members: [person1] + state_code: IN + output: + in_over_65_property_tax_credit_eligible: true diff --git a/policyengine_us/variables/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit.py b/policyengine_us/variables/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit.py new file mode 100644 index 00000000000..92333996d5d --- /dev/null +++ b/policyengine_us/variables/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit.py @@ -0,0 +1,17 @@ +from policyengine_us.model_api import * + + +class in_over_65_property_tax_credit(Variable): + value_type = float + entity = TaxUnit + label = "Indiana Over 65 Property Tax Credit" + unit = USD + definition_period = YEAR + reference = "https://www.in.gov/counties/monroe/Departments/auditor/over-65/" + defined_for = "in_over_65_property_tax_credit_eligible" + + def formula(tax_unit, period, parameters): + return min_( + parameters(period).gov.states["in"].tax.property.over_65_credit.amount, + add(tax_unit, period, ["real_estate_taxes"]), + ) diff --git a/policyengine_us/variables/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.py b/policyengine_us/variables/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.py new file mode 100644 index 00000000000..bd9f1e1bfb0 --- /dev/null +++ b/policyengine_us/variables/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.py @@ -0,0 +1,33 @@ +from policyengine_us.model_api import * + + +class in_over_65_property_tax_credit_eligible(Variable): + value_type = bool + entity = TaxUnit + label = "Eligible for the Indiana Over 65 Property Tax Credit" + definition_period = YEAR + reference = "https://www.in.gov/counties/monroe/Departments/auditor/over-65/" + defined_for = StateCode.IN + + def formula(tax_unit, period, parameters): + p = parameters(period).gov.states["in"].tax.property.over_65_credit + filing_status = tax_unit("filing_status", period) + status = filing_status.possible_values + person = tax_unit.members + head_or_spouse = person("is_tax_unit_head_or_spouse", period) + age = person("age", period.this_year) + + senior = tax_unit.any( + (age >= p.age_threshold) & head_or_spouse, + ) + surviving_spouse = (filing_status == status.SURVIVING_SPOUSE) & ( + tax_unit.any( + (age >= p.surviving_spouse_age_threshold) & head_or_spouse, + ) + ) + income_eligible = ( + tax_unit("adjusted_gross_income", period) <= p.income_limit[filing_status] + ) + homeowner = add(tax_unit, period, ["real_estate_taxes"]) > 0 + + return (senior | surviving_spouse) & income_eligible & homeowner From 27686744d91c88694f1f0ed761d5e44cb52dae36 Mon Sep 17 00:00:00 2001 From: Daphne Hansell <128793799+daphnehanse11@users.noreply.github.com> Date: Thu, 14 May 2026 16:53:52 -0400 Subject: [PATCH 2/8] Rename changelog fragment for PR 8308 --- changelog.d/{8195.added.md => 8308.added.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename changelog.d/{8195.added.md => 8308.added.md} (100%) diff --git a/changelog.d/8195.added.md b/changelog.d/8308.added.md similarity index 100% rename from changelog.d/8195.added.md rename to changelog.d/8308.added.md From 6ef0c7e0f27325f472585ca297029e858aa07a49 Mon Sep 17 00:00:00 2001 From: Daphne Hansell <128793799+daphnehanse11@users.noreply.github.com> Date: Fri, 15 May 2026 14:55:54 -0400 Subject: [PATCH 3/8] Fix Indiana over 65 credit limits --- .../household/state_property_tax_credits.yaml | 2 +- .../tax/property/over_65_credit/age_threshold.yaml | 4 +++- .../in/tax/property/over_65_credit/amount.yaml | 4 +++- .../tax/property/over_65_credit/income_limit.yaml | 12 +++++++----- .../surviving_spouse_age_threshold.yaml | 4 +++- .../in_over_65_property_tax_credit.yaml | 4 ++-- .../in_over_65_property_tax_credit_eligible.yaml | 14 +++++++------- 7 files changed, 26 insertions(+), 18 deletions(-) diff --git a/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml b/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml index 75b1672f638..e313ac8c0ac 100644 --- a/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml +++ b/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml @@ -114,7 +114,7 @@ values: - wi_homestead_credit - wi_property_tax_credit - wv_homestead_excess_property_tax_credit - 2027-01-01: + 2026-01-01: - az_property_tax_credit - ct_property_tax_credit - dc_ptc diff --git a/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/age_threshold.yaml b/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/age_threshold.yaml index d21761d32bc..1c4b78c1b33 100644 --- a/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/age_threshold.yaml +++ b/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/age_threshold.yaml @@ -1,6 +1,6 @@ description: Indiana limits eligibility to filers at or above this age under the Over 65 Credit program. values: - 2027-01-01: 65 + 2026-01-01: 65 metadata: unit: year period: year @@ -8,3 +8,5 @@ metadata: reference: - title: Monroe County Auditor | Over 65 href: https://www.in.gov/counties/monroe/Departments/auditor/over-65/ + - title: Indiana Department of Local Government Finance | Legislation Affecting Deductions and Exemptions + href: https://www.in.gov/dlgf/files/2025-memos/250612-Cockerill-Memo-Legislation-Affecting-Deductions%2C-Exemptions%2C-and-Credits.pdf#page=2 diff --git a/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/amount.yaml b/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/amount.yaml index 6e68a8efa8d..6aa4c22a06e 100644 --- a/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/amount.yaml +++ b/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/amount.yaml @@ -1,6 +1,6 @@ description: Indiana provides this amount under the Over 65 Credit program. values: - 2027-01-01: 150 + 2026-01-01: 150 metadata: unit: currency-USD period: year @@ -8,3 +8,5 @@ metadata: reference: - title: Monroe County Auditor | Over 65 href: https://www.in.gov/counties/monroe/Departments/auditor/over-65/ + - title: Indiana Department of Local Government Finance | Legislation Affecting Deductions and Exemptions + href: https://www.in.gov/dlgf/files/2025-memos/250612-Cockerill-Memo-Legislation-Affecting-Deductions%2C-Exemptions%2C-and-Credits.pdf#page=2 diff --git a/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/income_limit.yaml b/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/income_limit.yaml index 2432c4d03bf..fd44c1f7182 100644 --- a/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/income_limit.yaml +++ b/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/income_limit.yaml @@ -8,13 +8,15 @@ metadata: reference: - title: Monroe County Auditor | Over 65 href: https://www.in.gov/counties/monroe/Departments/auditor/over-65/ + - title: Indiana Department of Local Government Finance | Legislation Affecting Deductions and Exemptions + href: https://www.in.gov/dlgf/files/2025-memos/250612-Cockerill-Memo-Legislation-Affecting-Deductions%2C-Exemptions%2C-and-Credits.pdf#page=2 SINGLE: - 2027-01-01: 61_680 + 2026-01-01: 60_000 HEAD_OF_HOUSEHOLD: - 2027-01-01: 61_680 + 2026-01-01: 60_000 JOINT: - 2027-01-01: 71_960 + 2026-01-01: 70_000 SURVIVING_SPOUSE: - 2027-01-01: 71_960 + 2026-01-01: 70_000 SEPARATE: - 2027-01-01: 61_680 + 2026-01-01: 60_000 diff --git a/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/surviving_spouse_age_threshold.yaml b/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/surviving_spouse_age_threshold.yaml index bff77ff49b7..c74c3e0bdb6 100644 --- a/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/surviving_spouse_age_threshold.yaml +++ b/policyengine_us/parameters/gov/states/in/tax/property/over_65_credit/surviving_spouse_age_threshold.yaml @@ -1,6 +1,6 @@ description: Indiana limits surviving spouse eligibility to filers at or above this age under the Over 65 Credit program. values: - 2027-01-01: 60 + 2026-01-01: 60 metadata: unit: year period: year @@ -8,3 +8,5 @@ metadata: reference: - title: Monroe County Auditor | Over 65 href: https://www.in.gov/counties/monroe/Departments/auditor/over-65/ + - title: Indiana Department of Local Government Finance | Legislation Affecting Deductions and Exemptions + href: https://www.in.gov/dlgf/files/2025-memos/250612-Cockerill-Memo-Legislation-Affecting-Deductions%2C-Exemptions%2C-and-Credits.pdf#page=2 diff --git a/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit.yaml b/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit.yaml index feec2750d1b..f2657b10ea0 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit.yaml @@ -1,5 +1,5 @@ - name: Case 1, credit is capped at the statutory amount. - period: 2027 + period: 2026 input: people: person1: @@ -17,7 +17,7 @@ in_over_65_property_tax_credit: 150 - name: Case 2, credit is limited to property taxes paid. - period: 2027 + period: 2026 input: people: person1: diff --git a/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.yaml index 62ed9fba423..04451b17bbb 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.yaml @@ -1,5 +1,5 @@ - name: Case 1, senior homeowner under the single income limit. - period: 2027 + period: 2026 input: people: person1: @@ -8,7 +8,7 @@ tax_units: tax_unit: members: [person1] - adjusted_gross_income: 61_680 + adjusted_gross_income: 60_000 households: household: members: [person1] @@ -17,7 +17,7 @@ in_over_65_property_tax_credit_eligible: true - name: Case 2, filer below the age threshold. - period: 2027 + period: 2026 input: people: person1: @@ -35,7 +35,7 @@ in_over_65_property_tax_credit_eligible: false - name: Case 3, joint filers above the income limit. - period: 2027 + period: 2026 input: people: person1: @@ -47,7 +47,7 @@ tax_unit: members: [person1, person2] filing_status: JOINT - adjusted_gross_income: 71_961 + adjusted_gross_income: 70_001 households: household: members: [person1, person2] @@ -56,7 +56,7 @@ in_over_65_property_tax_credit_eligible: false - name: Case 4, senior without real estate taxes. - period: 2027 + period: 2026 input: people: person1: @@ -73,7 +73,7 @@ in_over_65_property_tax_credit_eligible: false - name: Case 5, surviving spouse at the surviving spouse age threshold. - period: 2027 + period: 2026 input: people: person1: From 9887d288153324d1357a78caeb0517e1ec4ea219 Mon Sep 17 00:00:00 2001 From: Daphne Hansell <128793799+daphnehanse11@users.noreply.github.com> Date: Tue, 19 May 2026 10:48:04 -0400 Subject: [PATCH 4/8] Fix Indiana over 65 credit eligibility timing --- .../in_over_65_property_tax_credit.yaml | 6 +- ..._over_65_property_tax_credit_eligible.yaml | 83 +++++++++++++++++-- ...in_over_65_property_tax_credit_eligible.py | 15 +++- 3 files changed, 92 insertions(+), 12 deletions(-) diff --git a/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit.yaml b/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit.yaml index f2657b10ea0..e273333d7a4 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit.yaml @@ -8,7 +8,8 @@ tax_units: tax_unit: members: [person1] - adjusted_gross_income: 40_000 + adjusted_gross_income: + 2024: 40_000 households: household: members: [person1] @@ -26,7 +27,8 @@ tax_units: tax_unit: members: [person1] - adjusted_gross_income: 40_000 + adjusted_gross_income: + 2024: 40_000 households: household: members: [person1] diff --git a/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.yaml index 04451b17bbb..4e8fc5f8a0c 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.yaml @@ -8,7 +8,8 @@ tax_units: tax_unit: members: [person1] - adjusted_gross_income: 60_000 + adjusted_gross_income: + 2024: 60_000 households: household: members: [person1] @@ -26,7 +27,8 @@ tax_units: tax_unit: members: [person1] - adjusted_gross_income: 40_000 + adjusted_gross_income: + 2024: 40_000 households: household: members: [person1] @@ -46,8 +48,11 @@ tax_units: tax_unit: members: [person1, person2] - filing_status: JOINT - adjusted_gross_income: 70_001 + filing_status: + 2024: JOINT + 2026: JOINT + adjusted_gross_income: + 2024: 70_001 households: household: members: [person1, person2] @@ -64,7 +69,8 @@ tax_units: tax_unit: members: [person1] - adjusted_gross_income: 40_000 + adjusted_gross_income: + 2024: 40_000 households: household: members: [person1] @@ -82,11 +88,74 @@ tax_units: tax_unit: members: [person1] - filing_status: SURVIVING_SPOUSE - adjusted_gross_income: 60_000 + filing_status: + 2024: SURVIVING_SPOUSE + 2026: SURVIVING_SPOUSE + adjusted_gross_income: + 2024: 60_000 households: household: members: [person1] state_code: IN output: in_over_65_property_tax_credit_eligible: true + +- name: Case 6, widowed filer marker qualifies outside federal surviving spouse status. + period: 2026 + input: + people: + person1: + age: 60 + is_surviving_spouse: true + real_estate_taxes: 2_000 + tax_units: + tax_unit: + members: [person1] + adjusted_gross_income: + 2024: 40_000 + households: + household: + members: [person1] + state_code: IN + output: + in_over_65_property_tax_credit_eligible: true + +- name: Case 7, prior-prior-year income determines eligibility. + period: 2026 + input: + people: + person1: + age: 65 + real_estate_taxes: 2_000 + tax_units: + tax_unit: + members: [person1] + adjusted_gross_income: + 2024: 40_000 + 2026: 80_000 + households: + household: + members: [person1] + state_code: IN + output: + in_over_65_property_tax_credit_eligible: true + +- name: Case 8, income above the prior-prior-year limit is ineligible. + period: 2026 + input: + people: + person1: + age: 65 + real_estate_taxes: 2_000 + tax_units: + tax_unit: + members: [person1] + adjusted_gross_income: + 2024: 60_001 + 2026: 40_000 + households: + household: + members: [person1] + state_code: IN + output: + in_over_65_property_tax_credit_eligible: false diff --git a/policyengine_us/variables/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.py b/policyengine_us/variables/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.py index bd9f1e1bfb0..2a8fcdbe864 100644 --- a/policyengine_us/variables/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.py +++ b/policyengine_us/variables/gov/states/in/tax/property/over_65_credit/in_over_65_property_tax_credit_eligible.py @@ -10,23 +10,32 @@ class in_over_65_property_tax_credit_eligible(Variable): defined_for = StateCode.IN def formula(tax_unit, period, parameters): + prior_prior_year = period.offset(-2, "year") p = parameters(period).gov.states["in"].tax.property.over_65_credit - filing_status = tax_unit("filing_status", period) + filing_status = tax_unit("filing_status", prior_prior_year) status = filing_status.possible_values person = tax_unit.members head_or_spouse = person("is_tax_unit_head_or_spouse", period) age = person("age", period.this_year) + is_surviving_spouse = person("is_surviving_spouse", period) senior = tax_unit.any( (age >= p.age_threshold) & head_or_spouse, ) - surviving_spouse = (filing_status == status.SURVIVING_SPOUSE) & ( + marked_surviving_spouse = tax_unit.any( + (age >= p.surviving_spouse_age_threshold) + & is_surviving_spouse + & head_or_spouse, + ) + federal_surviving_spouse = (filing_status == status.SURVIVING_SPOUSE) & ( tax_unit.any( (age >= p.surviving_spouse_age_threshold) & head_or_spouse, ) ) + surviving_spouse = marked_surviving_spouse | federal_surviving_spouse income_eligible = ( - tax_unit("adjusted_gross_income", period) <= p.income_limit[filing_status] + tax_unit("adjusted_gross_income", prior_prior_year) + <= p.income_limit[filing_status] ) homeowner = add(tax_unit, period, ["real_estate_taxes"]) > 0 From 4da944fe3bbbb2edb6b079db1052e43ae16f7b83 Mon Sep 17 00:00:00 2001 From: Daphne Hansell <128793799+daphnehanse11@users.noreply.github.com> Date: Thu, 21 May 2026 16:10:57 -0400 Subject: [PATCH 5/8] Keep property tax relief household-only --- .../household/state_property_tax_credits.yaml | 198 ++---------------- 1 file changed, 19 insertions(+), 179 deletions(-) diff --git a/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml b/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml index d8cb26e900f..6a9b8dfc6a4 100644 --- a/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml +++ b/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml @@ -1,184 +1,24 @@ description: All state property tax credits and circuit breaker programs. values: - # Year-gated: each credit appears from the year its - # parameters are first defined in PE-US. - 1977-01-01: - - ri_property_tax_credit - 1996-01-01: - - nj_property_tax_credit - - ri_property_tax_credit - 1997-01-01: - - mo_property_tax_credit - - nj_property_tax_credit - - ri_property_tax_credit - 2000-01-01: - - mo_property_tax_credit - - nj_property_tax_credit - - ny_real_property_tax_credit - - ri_property_tax_credit - - wi_property_tax_credit - 2001-01-01: - - ma_senior_circuit_breaker - - mo_property_tax_credit - - nj_property_tax_credit - - ny_real_property_tax_credit - - ri_property_tax_credit - - wi_property_tax_credit - 2008-01-01: - - ma_senior_circuit_breaker - - mo_property_tax_credit - - nj_property_tax_credit - - ny_real_property_tax_credit - - ri_property_tax_credit - - wi_property_tax_credit - - wv_homestead_excess_property_tax_credit - 2009-01-01: - - ma_senior_circuit_breaker - - mo_property_tax_credit - - mt_elderly_homeowner_or_renter_credit - - nj_property_tax_credit - - ny_real_property_tax_credit - - ri_property_tax_credit - - wi_property_tax_credit - - wv_homestead_excess_property_tax_credit - 2011-01-01: - - ct_property_tax_credit - - ma_senior_circuit_breaker - - mo_property_tax_credit - - mt_elderly_homeowner_or_renter_credit - - nj_property_tax_credit - - ny_real_property_tax_credit - - ri_property_tax_credit - - wi_homestead_credit - - wi_property_tax_credit - - wv_homestead_excess_property_tax_credit - 2014-01-01: - - ct_property_tax_credit - - ma_senior_circuit_breaker - - me_property_tax_fairness_credit - - mo_property_tax_credit - - mt_elderly_homeowner_or_renter_credit - - nj_property_tax_credit - - ny_real_property_tax_credit - - ri_property_tax_credit - - wi_homestead_credit - - wi_property_tax_credit - - wv_homestead_excess_property_tax_credit - 2016-01-01: - - ct_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 - - nj_property_tax_credit - - ny_real_property_tax_credit - - ri_property_tax_credit - - wi_homestead_credit - - wi_property_tax_credit - - wv_homestead_excess_property_tax_credit - 2021-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 - - 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 - 2022-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 - - wi_homestead_credit - - wi_property_tax_credit - - wv_homestead_excess_property_tax_credit - 2024-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 - - mn_renters_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 - 2025-01-01: - - az_property_tax_credit - - ct_property_tax_credit - - dc_ptc - - dc_senior_disabled_property_tax_relief - - il_property_tax_credit - - ma_senior_circuit_breaker - - me_property_tax_fairness_credit - - mi_homestead_property_tax_credit - - mn_renters_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 - - ut_homeowner_renter_relief - - wi_homestead_credit - - wi_property_tax_credit - - wv_homestead_excess_property_tax_credit - 2026-01-01: - - az_property_tax_credit - - ct_property_tax_credit - - dc_ptc - - dc_senior_disabled_property_tax_relief - - il_property_tax_credit - - in_over_65_property_tax_credit - - ma_senior_circuit_breaker - - me_property_tax_fairness_credit - - mi_homestead_property_tax_credit - - mn_renters_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 - - ut_homeowner_renter_relief - - wi_homestead_credit - - wi_property_tax_credit - - wv_homestead_excess_property_tax_credit + 0000-01-01: + - az_property_tax_credit # Arizona Property Tax Credit + - ct_property_tax_credit # Connecticut Property Tax Credit + # Exclude ca_renter_credit as it is for renters, not homeowners. + - dc_ptc # DC Property Tax Credit + # Exclude hi_tax_credit_for_low_income_household_renters as it is for renters, not homeowners. + - ma_senior_circuit_breaker # Massachusetts Senior Circuit Breaker Credit + - me_property_tax_fairness_credit # Maine Property Tax Fairness Credit + - mi_homestead_property_tax_credit # Michigan homestead property tax credit + - mo_property_tax_credit # Missouri property tax credit + - mt_elderly_homeowner_or_renter_credit # Montana Elderly Homeowner/Renter Credit + - nj_property_tax_credit # New Jersey property tax credit + - nm_property_tax_rebate # New Mexico property tax rebate + - ny_real_property_tax_credit # New York real property tax credit + - ri_property_tax_credit # Rhode Island property tax credit + # Omit vt_renter_credit + - wi_homestead_credit # Wisconsin homestead credit + - wi_property_tax_credit # Wisconsin property tax credit + - wv_homestead_excess_property_tax_credit # West Virginia metadata: unit: list From f6087accb241e3b7d7fc87628ddb937b7586eec8 Mon Sep 17 00:00:00 2001 From: Daphne Hansell <128793799+daphnehanse11@users.noreply.github.com> Date: Thu, 21 May 2026 16:13:33 -0400 Subject: [PATCH 6/8] Restore property tax aggregate base --- .../household/state_property_tax_credits.yaml | 178 ++++++++++++++++-- 1 file changed, 159 insertions(+), 19 deletions(-) diff --git a/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml b/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml index 6a9b8dfc6a4..5fc7a8116bf 100644 --- a/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml +++ b/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml @@ -1,24 +1,164 @@ description: All state property tax credits and circuit breaker programs. values: - 0000-01-01: - - az_property_tax_credit # Arizona Property Tax Credit - - ct_property_tax_credit # Connecticut Property Tax Credit - # Exclude ca_renter_credit as it is for renters, not homeowners. - - dc_ptc # DC Property Tax Credit - # Exclude hi_tax_credit_for_low_income_household_renters as it is for renters, not homeowners. - - ma_senior_circuit_breaker # Massachusetts Senior Circuit Breaker Credit - - me_property_tax_fairness_credit # Maine Property Tax Fairness Credit - - mi_homestead_property_tax_credit # Michigan homestead property tax credit - - mo_property_tax_credit # Missouri property tax credit - - mt_elderly_homeowner_or_renter_credit # Montana Elderly Homeowner/Renter Credit - - nj_property_tax_credit # New Jersey property tax credit - - nm_property_tax_rebate # New Mexico property tax rebate - - ny_real_property_tax_credit # New York real property tax credit - - ri_property_tax_credit # Rhode Island property tax credit - # Omit vt_renter_credit - - wi_homestead_credit # Wisconsin homestead credit - - wi_property_tax_credit # Wisconsin property tax credit - - wv_homestead_excess_property_tax_credit # West Virginia + # Year-gated: each credit appears from the year its + # parameters are first defined in PE-US. + 1977-01-01: + - ri_property_tax_credit + 1996-01-01: + - nj_property_tax_credit + - ri_property_tax_credit + 1997-01-01: + - mo_property_tax_credit + - nj_property_tax_credit + - ri_property_tax_credit + 2000-01-01: + - mo_property_tax_credit + - nj_property_tax_credit + - ny_real_property_tax_credit + - ri_property_tax_credit + - wi_property_tax_credit + 2001-01-01: + - ma_senior_circuit_breaker + - mo_property_tax_credit + - nj_property_tax_credit + - ny_real_property_tax_credit + - ri_property_tax_credit + - wi_property_tax_credit + 2008-01-01: + - ma_senior_circuit_breaker + - mo_property_tax_credit + - nj_property_tax_credit + - ny_real_property_tax_credit + - ri_property_tax_credit + - wi_property_tax_credit + - wv_homestead_excess_property_tax_credit + 2009-01-01: + - ma_senior_circuit_breaker + - mo_property_tax_credit + - mt_elderly_homeowner_or_renter_credit + - nj_property_tax_credit + - ny_real_property_tax_credit + - ri_property_tax_credit + - wi_property_tax_credit + - wv_homestead_excess_property_tax_credit + 2011-01-01: + - ct_property_tax_credit + - ma_senior_circuit_breaker + - mo_property_tax_credit + - mt_elderly_homeowner_or_renter_credit + - nj_property_tax_credit + - ny_real_property_tax_credit + - ri_property_tax_credit + - wi_homestead_credit + - wi_property_tax_credit + - wv_homestead_excess_property_tax_credit + 2014-01-01: + - ct_property_tax_credit + - ma_senior_circuit_breaker + - me_property_tax_fairness_credit + - mo_property_tax_credit + - mt_elderly_homeowner_or_renter_credit + - nj_property_tax_credit + - ny_real_property_tax_credit + - ri_property_tax_credit + - wi_homestead_credit + - wi_property_tax_credit + - wv_homestead_excess_property_tax_credit + 2016-01-01: + - ct_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 + - nj_property_tax_credit + - ny_real_property_tax_credit + - ri_property_tax_credit + - wi_homestead_credit + - wi_property_tax_credit + - wv_homestead_excess_property_tax_credit + 2021-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 + - 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 + 2022-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 + - wi_homestead_credit + - wi_property_tax_credit + - wv_homestead_excess_property_tax_credit + 2024-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 + - mn_renters_credit + - mo_property_tax_credit + - mt_elderly_homeowner_or_renter_credit + - mt_property_tax_rebate + - nd_renters_refund + - 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 + 2025-01-01: + - az_property_tax_credit + - ct_property_tax_credit + - dc_ptc + - dc_senior_disabled_property_tax_relief + - il_property_tax_credit + - ma_senior_circuit_breaker + - me_property_tax_fairness_credit + - mi_homestead_property_tax_credit + - mn_renters_credit + - mo_property_tax_credit + - mt_elderly_homeowner_or_renter_credit + - mt_property_tax_rebate + - nd_renters_refund + - nj_property_tax_credit + - nm_property_tax_rebate + - ny_real_property_tax_credit + - ok_ptc + - pa_property_tax_or_rent_rebate + - ri_property_tax_credit + - ut_homeowner_renter_relief + - wi_homestead_credit + - wi_property_tax_credit + - wv_homestead_excess_property_tax_credit metadata: unit: list From 96d385c60e170d32b42437610ed50d2f436eb3cb Mon Sep 17 00:00:00 2001 From: Daphne Hansell <128793799+daphnehanse11@users.noreply.github.com> Date: Thu, 21 May 2026 16:14:24 -0400 Subject: [PATCH 7/8] Revert "Restore property tax aggregate base" This reverts commit f6087accb241e3b7d7fc87628ddb937b7586eec8. --- .../household/state_property_tax_credits.yaml | 178 ++---------------- 1 file changed, 19 insertions(+), 159 deletions(-) diff --git a/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml b/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml index 5fc7a8116bf..6a9b8dfc6a4 100644 --- a/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml +++ b/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml @@ -1,164 +1,24 @@ description: All state property tax credits and circuit breaker programs. values: - # Year-gated: each credit appears from the year its - # parameters are first defined in PE-US. - 1977-01-01: - - ri_property_tax_credit - 1996-01-01: - - nj_property_tax_credit - - ri_property_tax_credit - 1997-01-01: - - mo_property_tax_credit - - nj_property_tax_credit - - ri_property_tax_credit - 2000-01-01: - - mo_property_tax_credit - - nj_property_tax_credit - - ny_real_property_tax_credit - - ri_property_tax_credit - - wi_property_tax_credit - 2001-01-01: - - ma_senior_circuit_breaker - - mo_property_tax_credit - - nj_property_tax_credit - - ny_real_property_tax_credit - - ri_property_tax_credit - - wi_property_tax_credit - 2008-01-01: - - ma_senior_circuit_breaker - - mo_property_tax_credit - - nj_property_tax_credit - - ny_real_property_tax_credit - - ri_property_tax_credit - - wi_property_tax_credit - - wv_homestead_excess_property_tax_credit - 2009-01-01: - - ma_senior_circuit_breaker - - mo_property_tax_credit - - mt_elderly_homeowner_or_renter_credit - - nj_property_tax_credit - - ny_real_property_tax_credit - - ri_property_tax_credit - - wi_property_tax_credit - - wv_homestead_excess_property_tax_credit - 2011-01-01: - - ct_property_tax_credit - - ma_senior_circuit_breaker - - mo_property_tax_credit - - mt_elderly_homeowner_or_renter_credit - - nj_property_tax_credit - - ny_real_property_tax_credit - - ri_property_tax_credit - - wi_homestead_credit - - wi_property_tax_credit - - wv_homestead_excess_property_tax_credit - 2014-01-01: - - ct_property_tax_credit - - ma_senior_circuit_breaker - - me_property_tax_fairness_credit - - mo_property_tax_credit - - mt_elderly_homeowner_or_renter_credit - - nj_property_tax_credit - - ny_real_property_tax_credit - - ri_property_tax_credit - - wi_homestead_credit - - wi_property_tax_credit - - wv_homestead_excess_property_tax_credit - 2016-01-01: - - ct_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 - - nj_property_tax_credit - - ny_real_property_tax_credit - - ri_property_tax_credit - - wi_homestead_credit - - wi_property_tax_credit - - wv_homestead_excess_property_tax_credit - 2021-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 - - 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 - 2022-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 - - wi_homestead_credit - - wi_property_tax_credit - - wv_homestead_excess_property_tax_credit - 2024-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 - - mn_renters_credit - - mo_property_tax_credit - - mt_elderly_homeowner_or_renter_credit - - mt_property_tax_rebate - - nd_renters_refund - - 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 - 2025-01-01: - - az_property_tax_credit - - ct_property_tax_credit - - dc_ptc - - dc_senior_disabled_property_tax_relief - - il_property_tax_credit - - ma_senior_circuit_breaker - - me_property_tax_fairness_credit - - mi_homestead_property_tax_credit - - mn_renters_credit - - mo_property_tax_credit - - mt_elderly_homeowner_or_renter_credit - - mt_property_tax_rebate - - nd_renters_refund - - nj_property_tax_credit - - nm_property_tax_rebate - - ny_real_property_tax_credit - - ok_ptc - - pa_property_tax_or_rent_rebate - - ri_property_tax_credit - - ut_homeowner_renter_relief - - wi_homestead_credit - - wi_property_tax_credit - - wv_homestead_excess_property_tax_credit + 0000-01-01: + - az_property_tax_credit # Arizona Property Tax Credit + - ct_property_tax_credit # Connecticut Property Tax Credit + # Exclude ca_renter_credit as it is for renters, not homeowners. + - dc_ptc # DC Property Tax Credit + # Exclude hi_tax_credit_for_low_income_household_renters as it is for renters, not homeowners. + - ma_senior_circuit_breaker # Massachusetts Senior Circuit Breaker Credit + - me_property_tax_fairness_credit # Maine Property Tax Fairness Credit + - mi_homestead_property_tax_credit # Michigan homestead property tax credit + - mo_property_tax_credit # Missouri property tax credit + - mt_elderly_homeowner_or_renter_credit # Montana Elderly Homeowner/Renter Credit + - nj_property_tax_credit # New Jersey property tax credit + - nm_property_tax_rebate # New Mexico property tax rebate + - ny_real_property_tax_credit # New York real property tax credit + - ri_property_tax_credit # Rhode Island property tax credit + # Omit vt_renter_credit + - wi_homestead_credit # Wisconsin homestead credit + - wi_property_tax_credit # Wisconsin property tax credit + - wv_homestead_excess_property_tax_credit # West Virginia metadata: unit: list From f43afe66bb74d1467560221e5ac7b81521a5d393 Mon Sep 17 00:00:00 2001 From: Daphne Hansell <128793799+daphnehanse11@users.noreply.github.com> Date: Thu, 21 May 2026 16:14:40 -0400 Subject: [PATCH 8/8] Revert "Keep property tax relief household-only" This reverts commit 4da944fe3bbbb2edb6b079db1052e43ae16f7b83. --- .../household/state_property_tax_credits.yaml | 198 ++++++++++++++++-- 1 file changed, 179 insertions(+), 19 deletions(-) diff --git a/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml b/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml index 6a9b8dfc6a4..d8cb26e900f 100644 --- a/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml +++ b/policyengine_us/parameters/gov/states/household/state_property_tax_credits.yaml @@ -1,24 +1,184 @@ description: All state property tax credits and circuit breaker programs. values: - 0000-01-01: - - az_property_tax_credit # Arizona Property Tax Credit - - ct_property_tax_credit # Connecticut Property Tax Credit - # Exclude ca_renter_credit as it is for renters, not homeowners. - - dc_ptc # DC Property Tax Credit - # Exclude hi_tax_credit_for_low_income_household_renters as it is for renters, not homeowners. - - ma_senior_circuit_breaker # Massachusetts Senior Circuit Breaker Credit - - me_property_tax_fairness_credit # Maine Property Tax Fairness Credit - - mi_homestead_property_tax_credit # Michigan homestead property tax credit - - mo_property_tax_credit # Missouri property tax credit - - mt_elderly_homeowner_or_renter_credit # Montana Elderly Homeowner/Renter Credit - - nj_property_tax_credit # New Jersey property tax credit - - nm_property_tax_rebate # New Mexico property tax rebate - - ny_real_property_tax_credit # New York real property tax credit - - ri_property_tax_credit # Rhode Island property tax credit - # Omit vt_renter_credit - - wi_homestead_credit # Wisconsin homestead credit - - wi_property_tax_credit # Wisconsin property tax credit - - wv_homestead_excess_property_tax_credit # West Virginia + # Year-gated: each credit appears from the year its + # parameters are first defined in PE-US. + 1977-01-01: + - ri_property_tax_credit + 1996-01-01: + - nj_property_tax_credit + - ri_property_tax_credit + 1997-01-01: + - mo_property_tax_credit + - nj_property_tax_credit + - ri_property_tax_credit + 2000-01-01: + - mo_property_tax_credit + - nj_property_tax_credit + - ny_real_property_tax_credit + - ri_property_tax_credit + - wi_property_tax_credit + 2001-01-01: + - ma_senior_circuit_breaker + - mo_property_tax_credit + - nj_property_tax_credit + - ny_real_property_tax_credit + - ri_property_tax_credit + - wi_property_tax_credit + 2008-01-01: + - ma_senior_circuit_breaker + - mo_property_tax_credit + - nj_property_tax_credit + - ny_real_property_tax_credit + - ri_property_tax_credit + - wi_property_tax_credit + - wv_homestead_excess_property_tax_credit + 2009-01-01: + - ma_senior_circuit_breaker + - mo_property_tax_credit + - mt_elderly_homeowner_or_renter_credit + - nj_property_tax_credit + - ny_real_property_tax_credit + - ri_property_tax_credit + - wi_property_tax_credit + - wv_homestead_excess_property_tax_credit + 2011-01-01: + - ct_property_tax_credit + - ma_senior_circuit_breaker + - mo_property_tax_credit + - mt_elderly_homeowner_or_renter_credit + - nj_property_tax_credit + - ny_real_property_tax_credit + - ri_property_tax_credit + - wi_homestead_credit + - wi_property_tax_credit + - wv_homestead_excess_property_tax_credit + 2014-01-01: + - ct_property_tax_credit + - ma_senior_circuit_breaker + - me_property_tax_fairness_credit + - mo_property_tax_credit + - mt_elderly_homeowner_or_renter_credit + - nj_property_tax_credit + - ny_real_property_tax_credit + - ri_property_tax_credit + - wi_homestead_credit + - wi_property_tax_credit + - wv_homestead_excess_property_tax_credit + 2016-01-01: + - ct_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 + - nj_property_tax_credit + - ny_real_property_tax_credit + - ri_property_tax_credit + - wi_homestead_credit + - wi_property_tax_credit + - wv_homestead_excess_property_tax_credit + 2021-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 + - 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 + 2022-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 + - wi_homestead_credit + - wi_property_tax_credit + - wv_homestead_excess_property_tax_credit + 2024-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 + - mn_renters_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 + 2025-01-01: + - az_property_tax_credit + - ct_property_tax_credit + - dc_ptc + - dc_senior_disabled_property_tax_relief + - il_property_tax_credit + - ma_senior_circuit_breaker + - me_property_tax_fairness_credit + - mi_homestead_property_tax_credit + - mn_renters_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 + - ut_homeowner_renter_relief + - wi_homestead_credit + - wi_property_tax_credit + - wv_homestead_excess_property_tax_credit + 2026-01-01: + - az_property_tax_credit + - ct_property_tax_credit + - dc_ptc + - dc_senior_disabled_property_tax_relief + - il_property_tax_credit + - in_over_65_property_tax_credit + - ma_senior_circuit_breaker + - me_property_tax_fairness_credit + - mi_homestead_property_tax_credit + - mn_renters_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 + - ut_homeowner_renter_relief + - wi_homestead_credit + - wi_property_tax_credit + - wv_homestead_excess_property_tax_credit metadata: unit: list