diff --git a/changelog.d/in-supplemental-homestead-credit.added.md b/changelog.d/in-supplemental-homestead-credit.added.md new file mode 100644 index 00000000000..5adc66b252d --- /dev/null +++ b/changelog.d/in-supplemental-homestead-credit.added.md @@ -0,0 +1 @@ +Add the Indiana supplemental homestead credit (Senate Enrolled Act 1, 2025), the lesser of 10% of homestead property tax or $300, from 2026. 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 9593c470a06..f315bb2257f 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 @@ -172,6 +172,7 @@ values: - dc_senior_disabled_property_tax_relief - il_property_tax_credit - in_over_65_property_tax_credit + - in_supplemental_homestead_credit - ma_senior_circuit_breaker - me_property_tax_fairness_credit - mi_homestead_property_tax_credit diff --git a/policyengine_us/parameters/gov/states/in/tax/property/supplemental_homestead_credit/cap.yaml b/policyengine_us/parameters/gov/states/in/tax/property/supplemental_homestead_credit/cap.yaml new file mode 100644 index 00000000000..20b4c579a15 --- /dev/null +++ b/policyengine_us/parameters/gov/states/in/tax/property/supplemental_homestead_credit/cap.yaml @@ -0,0 +1,12 @@ +description: Indiana limits its supplemental homestead credit to this amount. +values: + 2026-01-01: 300 +metadata: + unit: currency-USD + period: year + label: Indiana supplemental homestead credit cap + reference: + - title: Senate Enrolled Act 1 (2025), SEC. 74 (page 124), adding IC 6-1.1-20.6-7.7(c) + href: https://iga.in.gov/pdf-documents/124/2025/senate/bills/SB0001/SB0001.05.ENRH.pdf#page=124 + - title: Indiana Department of Local Government Finance | Legislation Affecting Deductions, Exemptions, and Credits + href: https://www.in.gov/dlgf/files/2025-memos/250612-Cockerill-Memo-Legislation-Affecting-Deductions%2C-Exemptions%2C-and-Credits.pdf#page=9 diff --git a/policyengine_us/parameters/gov/states/in/tax/property/supplemental_homestead_credit/rate.yaml b/policyengine_us/parameters/gov/states/in/tax/property/supplemental_homestead_credit/rate.yaml new file mode 100644 index 00000000000..d5845dd272f --- /dev/null +++ b/policyengine_us/parameters/gov/states/in/tax/property/supplemental_homestead_credit/rate.yaml @@ -0,0 +1,12 @@ +description: Indiana provides its supplemental homestead credit as this share of the homestead property tax liability. +values: + 2026-01-01: 0.1 +metadata: + unit: /1 + period: year + label: Indiana supplemental homestead credit rate + reference: + - title: Senate Enrolled Act 1 (2025), SEC. 74 (page 124), adding IC 6-1.1-20.6-7.7(c) + href: https://iga.in.gov/pdf-documents/124/2025/senate/bills/SB0001/SB0001.05.ENRH.pdf#page=124 + - title: Indiana Department of Local Government Finance | Legislation Affecting Deductions, Exemptions, and Credits + href: https://www.in.gov/dlgf/files/2025-memos/250612-Cockerill-Memo-Legislation-Affecting-Deductions%2C-Exemptions%2C-and-Credits.pdf#page=9 diff --git a/policyengine_us/tests/policy/baseline/gov/states/household/state_property_tax_credits/in_supplemental_homestead_credit_in_aggregate.yaml b/policyengine_us/tests/policy/baseline/gov/states/household/state_property_tax_credits/in_supplemental_homestead_credit_in_aggregate.yaml new file mode 100644 index 00000000000..4d4f535544d --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/household/state_property_tax_credits/in_supplemental_homestead_credit_in_aggregate.yaml @@ -0,0 +1,52 @@ +# Guards that in_supplemental_homestead_credit flows through the +# state_property_tax_credits umbrella (taxsim_state_property_tax_credit) from +# 2026, stacking with the over-65 credit, and is excluded in 2025 by the +# year-keyed list (the standalone variable has no in_effect gate, so only the +# list protects earlier years). + +- name: 2026 umbrella stacks the supplemental homestead credit with the over-65 credit + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 66 + real_estate_taxes: 2_000 + tax_units: + tax_unit: + members: [person1] + filing_status: + 2024: SINGLE + 2026: SINGLE + adjusted_gross_income: + 2024: 30_000 + 2026: 30_000 + households: + household: + members: [person1] + state_code: IN + output: + # Supplemental: 10% of 2,000 = 200. Over-65: $150 (senior, 2024 AGI 30,000 + # under the limit, homeowner). Umbrella = 350. + in_supplemental_homestead_credit: 200 + in_over_65_property_tax_credit: 150 + taxsim_state_property_tax_credit: 350 + +- name: 2025 umbrella excludes the supplemental homestead credit + period: 2025 + absolute_error_margin: 0.01 + input: + people: + person1: + real_estate_taxes: 2_000 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: IN + output: + # The credit is only in the 2026 list block, so the umbrella is 0 in 2025 + # even though the standalone variable would extrapolate a nonzero value. + taxsim_state_property_tax_credit: 0 diff --git a/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/supplemental_homestead_credit/in_supplemental_homestead_credit.yaml b/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/supplemental_homestead_credit/in_supplemental_homestead_credit.yaml new file mode 100644 index 00000000000..fb778e8a0d7 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/in/tax/property/supplemental_homestead_credit/in_supplemental_homestead_credit.yaml @@ -0,0 +1,109 @@ +# Indiana supplemental homestead credit (Senate Enrolled Act 1, 2025; +# IC 6-1.1-20.6-7.7): the lesser of 10% of the homestead property tax liability +# or $300, for taxes first due and payable in 2026 and after. No age or income +# limit. + +- name: Case 1, 2026 homeowner below the cap receives 10% of property tax. + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person1: + real_estate_taxes: 2_000 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: IN + output: + in_supplemental_homestead_credit: 200 + +- name: Case 2, 2026 homeowner at the $3,000 liability boundary receives the $300 cap. + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person1: + real_estate_taxes: 3_000 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: IN + output: + in_supplemental_homestead_credit: 300 + +- name: Case 3, 2026 homeowner above the cap is limited to $300. + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person1: + real_estate_taxes: 5_000 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: IN + output: + in_supplemental_homestead_credit: 300 + +- name: Case 4, 2026 renter with no real estate taxes receives no credit. + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person1: + real_estate_taxes: 0 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: IN + output: + in_supplemental_homestead_credit: 0 + +- name: Case 5, 2026 non-Indiana homeowner receives no credit. + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person1: + real_estate_taxes: 2_000 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: MN + output: + in_supplemental_homestead_credit: 0 + +- name: Case 6, 2026 multi-person tax unit is capped once per return. + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person1: + real_estate_taxes: 1_500 + person2: + real_estate_taxes: 1_500 + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: IN + output: + # 10% of the combined $3,000 is $300, exactly the cap, for the tax unit. + in_supplemental_homestead_credit: 300 diff --git a/policyengine_us/variables/gov/states/in/tax/property/supplemental_homestead_credit/in_supplemental_homestead_credit.py b/policyengine_us/variables/gov/states/in/tax/property/supplemental_homestead_credit/in_supplemental_homestead_credit.py new file mode 100644 index 00000000000..50eef9305f2 --- /dev/null +++ b/policyengine_us/variables/gov/states/in/tax/property/supplemental_homestead_credit/in_supplemental_homestead_credit.py @@ -0,0 +1,34 @@ +from policyengine_us.model_api import * + + +class in_supplemental_homestead_credit(Variable): + value_type = float + entity = TaxUnit + label = "Indiana supplemental homestead credit" + unit = USD + definition_period = YEAR + reference = ( + "https://iga.in.gov/pdf-documents/124/2025/senate/bills/SB0001/SB0001.05.ENRH.pdf#page=124", + "https://www.in.gov/dlgf/files/2025-memos/250612-Cockerill-Memo-Legislation-Affecting-Deductions%2C-Exemptions%2C-and-Credits.pdf#page=9", + ) + defined_for = StateCode.IN + + def formula(tax_unit, period, parameters): + # Senate Enrolled Act 1 (2025) adds IC 6-1.1-20.6-7.7, a supplemental + # homestead credit equal to the lesser of 10% of the homestead property + # tax liability or $300, for taxes first due and payable in 2026 and + # after. No age or income limit; homeowners only, so renters (with no + # real estate taxes) receive zero. + # Modeling approximations, all bounded by the $300 cap: eligibility is + # proxied by real_estate_taxes > 0 rather than the IC 6-1.1-12-37 + # homestead standard deduction qualification; the base is total + # real_estate_taxes rather than the homestead-only liability (PE has no + # homestead-specific variable); and subsection (d)'s exclusion of + # referendum-approved taxes from the base is not modeled. + p = ( + parameters(period) + .gov.states["in"] + .tax.property.supplemental_homestead_credit + ) + property_tax = add(tax_unit, period, ["real_estate_taxes"]) + return min_(p.rate * property_tax, p.cap)