diff --git a/changelog.d/fix-9644-in-eitc-eligibility-indexed.fixed.md b/changelog.d/fix-9644-in-eitc-eligibility-indexed.fixed.md new file mode 100644 index 00000000000..a9c1a8442fd --- /dev/null +++ b/changelog.d/fix-9644-in-eitc-eligibility-indexed.fixed.md @@ -0,0 +1 @@ +Base Indiana EITC eligibility in tax years 2024 and 2025 on the current-year federal EITC instead of a recomputed credit with the frozen 2023 investment income limit and phaseout amounts, as IC 6-3.1-21-6(a) and (e) index those amounts to the taxable year. diff --git a/policyengine_us/parameters/gov/states/in/tax/income/credits/earned_income/static_conformity_in_effect.yaml b/policyengine_us/parameters/gov/states/in/tax/income/credits/earned_income/static_conformity_in_effect.yaml index 7c88006d9fc..12e65dc3346 100644 --- a/policyengine_us/parameters/gov/states/in/tax/income/credits/earned_income/static_conformity_in_effect.yaml +++ b/policyengine_us/parameters/gov/states/in/tax/income/credits/earned_income/static_conformity_in_effect.yaml @@ -1,4 +1,4 @@ -description: Indiana applies its static-conformity-to-Internal-Revenue-Code branch for the Earned Income Tax Credit if this indicator is true. The applicable snapshot is January 1, 2023 for tax years 2023-2025, and January 1, 2026 for tax years 2026 onward per Indiana SEA 243 of 2025. +description: Indiana applies its static-conformity-to-Internal-Revenue-Code branch for the Earned Income Tax Credit if this indicator is true. The branch refers to Section 32 as in effect on January 1, 2023 (IC 6-3.1-21-6(a)), whose amounts are indexed to the taxable year. values: 2010-01-01: false @@ -13,7 +13,7 @@ metadata: href: https://iga.in.gov/laws/2024/ic/titles/6#6-3-1-11 - title: IC 6-3.1-21 - Indiana Earned Income Tax Credit chapter href: https://iga.in.gov/laws/2024/ic/titles/6#6-3.1-21 - - title: Indiana SEA 243 (2025) - Advances IRC conformity to January 1, 2026 - href: https://iga.in.gov/legislative/2025/bills/senate/243 + - title: Indiana SEA 243-2026, SECTION 6 - Moves the IC 6-3-1-11 conformity date to January 1, 2026 (does not amend IC 6-3.1-21) + href: https://iga.in.gov/pdf-documents/124/2026/senate/bills/SB0243/SB0243.05.ENRH.pdf#page=36 - title: 2023 IT-40 Individual Income Tax Booklet (Indiana EITC discussion) href: https://forms.in.gov/Download.aspx?id=15792#page=9 diff --git a/policyengine_us/tests/policy/baseline/gov/states/in/tax/income/in_eitc.yaml b/policyengine_us/tests/policy/baseline/gov/states/in/tax/income/in_eitc.yaml index 0ff01cd9ce9..3f4116fad8c 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/in/tax/income/in_eitc.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/in/tax/income/in_eitc.yaml @@ -71,7 +71,7 @@ output: in_eitc: 61.20 -- name: Indiana EITC TY 2026 uses the SEA 243 advanced January 1, 2026 IRC snapshot +- name: Indiana EITC TY 2026 uses the current-year federal EITC period: 2026 absolute_error_margin: 0.01 input: @@ -95,16 +95,16 @@ members: [head, child] state_code: IN output: - # TY 2026 onwards Indiana SEA 243 (2025) advances the IRC reference to - # January 1, 2026. All filers take 10% of the current-year federal EITC - # per Schedule IN-EIC Section A; under SEA 243 the current and frozen - # (2026-01-01) computations coincide, so the credit is $442.70. + # SEA 243-2026 moves the IC 6-3-1-11 reference to January 1, 2026; + # IC 6-3.1-21-6(a) keeps its own January 1, 2023 date, whose section 32 + # text indexes the amounts to the taxable year. All filers take 10% of + # the current-year federal EITC per Schedule IN-EIC Section A, so the + # credit is $442.70. in_eitc: 442.70 - name: in_eitc childless 2026 uses the current-year federal EITC - # All filers use the current-year federal EITC (Schedule IN-EIC Section A); - # under SEA 243 the 2026 frozen-IRC snapshot equals the current federal - # childless EITC, so 10% x $612 = $61.20 either way. + # All filers use the current-year federal EITC (Schedule IN-EIC Section A), + # so 10% x $612 = $61.20. absolute_error_margin: 0.01 period: 2026 input: @@ -116,3 +116,231 @@ household: {members: [parent], state_fips: 18} output: in_eitc: 61.20 + +- name: Indiana EITC TY2025 uses the 2025 investment income limit for eligibility + # IC 6-3.1-21-6(a) and (e): section 32 as in effect on January 1, 2023 + # indexes its amounts to the taxable year (26 U.S.C. 32(j)(1)). + # Rev. Proc. 2024-40 sec. 2.06: TY2025 investment income limit $11,950; + # two children: maximum credit $7,152, phaseout threshold $23,350, rate 21.06%. + # Interest $11,500 is above the TY2023 limit ($11,000) but within $11,950. + # AGI = 20,000 + 11,500 = 31,500. + # Federal EITC = 7,152 - 21.06% x (31,500 - 23,350) = 7,152 - 1,716.39 = 5,435.61. + # Indiana EITC = 10% x 5,435.61 = 543.56. + period: 2025 + absolute_error_margin: 0.01 + input: + people: + head: + age: 30 + employment_income: 20_000 + taxable_interest_income: 11_500 + child1: + age: 5 + is_tax_unit_dependent: true + child2: + age: 6 + is_tax_unit_dependent: true + tax_units: + tax_unit: + members: [head, child1, child2] + spm_units: + spm_unit: + members: [head, child1, child2] + households: + household: + members: [head, child1, child2] + state_code: IN + output: + eitc: 5_435.61 + in_eitc_eligible: true + in_eitc: 543.56 + +- name: Indiana EITC TY2025 childless filer past the TY2023 completed phaseout + # Rev. Proc. 2024-40 sec. 2.06: TY2025 no children: maximum credit $649, + # phaseout threshold $10,620, rate 7.65% (completed phaseout $19,104). + # Wages $18,000 are past the TY2023 completed phaseout ($17,640). + # Federal EITC = 649 - 7.65% x (18,000 - 10,620) = 649 - 564.57 = 84.43. + # Indiana EITC = 10% x 84.43 = 8.44. + period: 2025 + absolute_error_margin: 0.01 + input: + people: + head: + age: 30 + employment_income: 18_000 + tax_units: + tax_unit: + members: [head] + spm_units: + spm_unit: + members: [head] + households: + household: + members: [head] + state_code: IN + output: + eitc: 84.43 + in_eitc_eligible: true + in_eitc: 8.44 + +- name: Indiana EITC TY2024 uses the 2024 investment income limit for eligibility + # Rev. Proc. 2023-34 sec. 3.06: TY2024 investment income limit $11,600; + # two children: maximum credit $6,960, phaseout threshold $22,720, rate 21.06%. + # Interest $11,300 is above the TY2023 limit ($11,000) but within $11,600. + # AGI = 20,000 + 11,300 = 31,300. + # Federal EITC = 6,960 - 21.06% x (31,300 - 22,720) = 6,960 - 1,806.95 = 5,153.05. + # Indiana EITC = 10% x 5,153.05 = 515.31. + period: 2024 + absolute_error_margin: 0.01 + input: + people: + head: + age: 30 + employment_income: 20_000 + taxable_interest_income: 11_300 + child1: + age: 5 + is_tax_unit_dependent: true + child2: + age: 6 + is_tax_unit_dependent: true + tax_units: + tax_unit: + members: [head, child1, child2] + spm_units: + spm_unit: + members: [head, child1, child2] + households: + household: + members: [head, child1, child2] + state_code: IN + output: + eitc: 5_153.05 + in_eitc_eligible: true + in_eitc: 515.31 + +- name: Indiana EITC TY2024 childless filer past the TY2023 completed phaseout + # Rev. Proc. 2023-34 sec. 3.06: TY2024 no children: maximum credit $632, + # phaseout threshold $10,330, rate 7.65% (completed phaseout $18,591). + # Federal EITC = 632 - 7.65% x (18,000 - 10,330) = 632 - 586.76 = 45.24. + # Indiana EITC = 10% x 45.24 = 4.52. + period: 2024 + absolute_error_margin: 0.01 + input: + people: + head: + age: 30 + employment_income: 18_000 + tax_units: + tax_unit: + members: [head] + spm_units: + spm_unit: + members: [head] + households: + household: + members: [head] + state_code: IN + output: + eitc: 45.24 + in_eitc_eligible: true + in_eitc: 4.52 + +- name: Indiana EITC TY2023 control, interest above the TY2023 limit + # Rev. Proc. 2022-38 sec. 3.06: TY2023 investment income limit $11,000. + # Interest $11,500 exceeds it, so no federal EITC and no Indiana EITC. + period: 2023 + input: + people: + head: + age: 30 + employment_income: 20_000 + taxable_interest_income: 11_500 + child1: + age: 5 + is_tax_unit_dependent: true + child2: + age: 6 + is_tax_unit_dependent: true + tax_units: + tax_unit: + members: [head, child1, child2] + spm_units: + spm_unit: + members: [head, child1, child2] + households: + household: + members: [head, child1, child2] + state_code: IN + output: + eitc: 0 + in_eitc_eligible: false + in_eitc: 0 + +- name: Indiana EITC TY2025 control, interest above the TY2025 limit + # Interest $11,951 exceeds the TY2025 limit of $11,950 (Rev. Proc. 2024-40 + # sec. 2.06(2)), so no federal EITC and no Indiana EITC. + period: 2025 + input: + people: + head: + age: 30 + employment_income: 20_000 + taxable_interest_income: 11_951 + child1: + age: 5 + is_tax_unit_dependent: true + child2: + age: 6 + is_tax_unit_dependent: true + tax_units: + tax_unit: + members: [head, child1, child2] + spm_units: + spm_unit: + members: [head, child1, child2] + households: + household: + members: [head, child1, child2] + state_code: IN + output: + eitc: 0 + in_eitc_eligible: false + in_eitc: 0 + +- name: Indiana EITC TY2025 interest exactly at the TY2025 limit + # 26 U.S.C. 32(i)(1) denies the credit only if disqualified income "exceeds" + # the limit, $11,950 for TY2025 (Rev. Proc. 2024-40 sec. 2.06(2)). + # Two children: maximum credit $7,152, phaseout threshold $23,350 + # (Rev. Proc. 2024-40 sec. 2.06(1)), phaseout rate 21.06% (32(b)(1)). + # AGI = 20,000 + 11,950 = 31,950. + # Federal EITC = 7,152 - 21.06% x (31,950 - 23,350) = 7,152 - 1,811.16 = 5,340.84. + # Indiana EITC = 10% x 5,340.84 = 534.08. + period: 2025 + absolute_error_margin: 0.01 + input: + people: + head: + age: 30 + employment_income: 20_000 + taxable_interest_income: 11_950 + child1: + age: 5 + is_tax_unit_dependent: true + child2: + age: 6 + is_tax_unit_dependent: true + tax_units: + tax_unit: + members: [head, child1, child2] + spm_units: + spm_unit: + members: [head, child1, child2] + households: + household: + members: [head, child1, child2] + state_code: IN + output: + eitc: 5_340.84 + in_eitc_eligible: true + in_eitc: 534.08 diff --git a/policyengine_us/tests/policy/baseline/gov/states/in/tax/income/in_eitc_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/in/tax/income/in_eitc_eligible.yaml index 24442fa4938..5acea17f3ce 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/in/tax/income/in_eitc_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/in/tax/income/in_eitc_eligible.yaml @@ -103,4 +103,8 @@ would_file_taxes_voluntarily: true takes_up_eitc: true output: - in_eitc_eligible: true + # No federal EITC means no Indiana EITC: IC 6-3.1-21-6(a)(2) bases the + # credit on the federal credit "claimed for the taxable year", and the + # 2025 IT-40 booklet (Schedule 5, line 6) requires that the filer "be + # eligible for and have claimed an EIC on your federal tax return". + in_eitc_eligible: false diff --git a/policyengine_us/variables/gov/states/in/tax/income/credits/earned_income_credit/in_eitc_eligible.py b/policyengine_us/variables/gov/states/in/tax/income/credits/earned_income_credit/in_eitc_eligible.py index 5df47ec3ac6..8fed2e50226 100644 --- a/policyengine_us/variables/gov/states/in/tax/income/credits/earned_income_credit/in_eitc_eligible.py +++ b/policyengine_us/variables/gov/states/in/tax/income/credits/earned_income_credit/in_eitc_eligible.py @@ -1,8 +1,4 @@ from policyengine_us.model_api import * -from policyengine_us.tools.state_eitc_helpers import ( - calculate_eitc_demographic_eligibility, - calculate_eitc_like_amount, -) class in_eitc_eligible(Variable): @@ -21,38 +17,23 @@ def formula(tax_unit, period, parameters): if not p.credits.earned_income.decoupled: return gets_federal_eitc if p.credits.earned_income.static_conformity_in_effect: - # IC 6-3-1-11 (Indiana's IRC definition for IC 6-3.1-21): - # - TY 2023 through 2025: IRC as in effect on January 1, 2023. - # - TY 2026 onward: IRC as in effect on January 1, 2026, per - # Indiana SEA 243 (2025). - # The snapshot dates are statutory literals; policyengine-core - # parameters do not support date-valued types, so they appear - # here rather than in the parameter tree. - snapshot_date = "2026-01-01" if period.start.year >= 2026 else "2023-01-01" - frozen_eitc = parameters.gov.irs.credits.eitc(snapshot_date) - child_count = tax_unit("eitc_child_count", period) - demographic_eligible = calculate_eitc_demographic_eligibility( - tax_unit, period, frozen_eitc, child_count - ) - filer_identification_eligible = tax_unit( - "filer_meets_eitc_identification_requirements", period - ) - investment_income_eligible = ( - tax_unit("eitc_relevant_investment_income", period) - <= frozen_eitc.phase_out.max_investment_income - ) - frozen_federal_eitc = calculate_eitc_like_amount( - tax_unit, - period, - parameters, - child_count, - demographic_eligible, - filer_identification_eligible, - separate_filer_eligible=frozen_eitc.eligibility.separate_filer, - eitc_parameters=frozen_eitc, - investment_income_eligible=investment_income_eligible, - ) - return frozen_federal_eitc > 0 + # IC 6-3.1-21-6(a) allows the credit to an individual "eligible + # for an earned income tax credit under Section 32 of the + # Internal Revenue Code as in effect on January 1, 2023". That + # date is the chapter's own: SEA 243-2026 moves the general + # IC 6-3-1-11 date to January 1, 2026 but does not amend + # IC 6-3.1-21. + # Section 32 as in effect on that date indexes its earned income, + # phaseout and investment income amounts to the calendar year in + # which the taxable year begins (26 U.S.C. 32(j)(1)), and + # IC 6-3.1-21-6(e) applies the same cost of living adjustments. + # Section 32 has not been amended since, so eligibility under + # the conformity-date text is eligibility for the current-year + # federal credit, not for the credit with the snapshot date's + # dollar amounts. The IT-40 booklet (Schedule 5, line 6) also + # requires that the filer "be eligible for and have claimed an + # EIC on your federal tax return". + return gets_federal_eitc # if Indiana EITC is decoupled from federal EITC # ... check separate filing status filing_status = tax_unit("filing_status", period) diff --git a/source_conflicts/candidates.yaml b/source_conflicts/candidates.yaml index f6c204e5ddb..ab0faa5b4ec 100644 --- a/source_conflicts/candidates.yaml +++ b/source_conflicts/candidates.yaml @@ -2275,37 +2275,6 @@ candidates: state: unreviewed note: 'The statute-first rule requires changing the instructions-based scope if the federal-eligibility reading is verified; the 2026 statutory text remains unverified. Code not yet on main: gov/states/in/tax/income/deductions/in_claim_of_right_deduction.yaml.' -- id: us-in:eitc-current-versus-frozen-federal-base - program: income-tax - years: - from: 2023 - type: tax - question: Is Indiana's EITC based on the current federal credit transferred by Schedule IN-EIC or the credit under - its January 1, 2023 conformity date? - sources: - - kind: statute - citation: IC 6-3-1-11; IC 6-3.1-21 - url: null - - kind: form - citation: 2025 Schedule IN-EIC (State Form 49469), Section A, Line A-1 - url: null - readings: - statute: Use the frozen 2023 federal base. - other: Use the current-year federal EITC. - example: A 2025 childless filer aged 30 with $8,000 wages receives $60.00 under the frozen base versus $61.20 - under the current base. - pe_us: - follows: conflicting-source - code: - - policyengine_us/variables/gov/states/in/tax/income/credits/earned_income_credit/in_eitc.py - - policyengine_us/variables/gov/states/in/tax/income/credits/earned_income_credit/in_eitc_eligible.py - prs: - - https://github.com/PolicyEngine/policyengine-us/pull/8902 - state: unreviewed - note: 'PE-US follows Schedule IN-EIC: under static conformity in_eitc multiplies the current-year federal credit - by the match rate, and its comment argues the post-2023 federal changes are inflation indexing only (in_eitc.py). - in_eitc_eligible tests the frozen snapshot, January 1, 2023 through 2025 and January 1, 2026 from 2026. The - statute-first rule requires changing the amount base if frozen conformity is verified.' - id: us-in:liheap-income-floor-vs-smi-limit program: liheap years: