diff --git a/changelog.d/in-eitc-childless-current.fixed.md b/changelog.d/in-eitc-childless-current.fixed.md new file mode 100644 index 00000000000..529589150b3 --- /dev/null +++ b/changelog.d/in-eitc-childless-current.fixed.md @@ -0,0 +1 @@ +- Fixed the Indiana EITC to use the current-year federal EITC for childless filers as well as filers with children, matching Schedule IN-EIC Section A, which applies the 10% match to all filers. 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 cddafab1e90..0ff01cd9ce9 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 @@ -34,9 +34,9 @@ in_eitc: 0.09 * 5_980 - name: taxsim_1039_in_eitc_with_child_uses_current_federal_eitc - # 2025 Schedule IN-EIC Section B: a filer claiming one or more children takes - # 10% of the earned income credit "from your federal income tax return", i.e. - # the current-year federal EITC ($4,328 here), not a frozen-IRC recomputation. + # 2025 Schedule IN-EIC Section A (applies to all filers): 10% of the earned + # income credit "from your federal income tax return", i.e. the current-year + # federal EITC ($4,328 here), not a frozen-IRC recomputation. # 10% x $4,328 = $432.80. Originating: PolicyEngine/policyengine-taxsim#1039. absolute_error_margin: 1 period: 2025 @@ -51,10 +51,14 @@ output: in_eitc: 433 -- name: in_eitc childless 2025 stays on frozen 2023 IRC snapshot - # Schedule IN-EIC Section A / IC 6-3-1-11: childless filers remain decoupled - # from the federal (ARPA-expanded) EITC and use the frozen Jan 1, 2023 IRC. - # 10% x frozen $600 childless max = $60, NOT 10% x current federal $612 = $61.20. +- name: in_eitc childless 2025 uses current-year federal EITC + # Schedule IN-EIC Section A applies to all filers: 10% of "the earned income + # credit from your federal income tax return." At $8,000 earnings the 2025 + # federal childless EITC is phase-in-limited to $612 (7.65% x $8,000), below + # the $649 max, so 10% x $612 = $61.20 -- not the frozen 2023 snapshot's + # 10% x $600 = $60 (IB92's Jan 1, 2023 freeze applies uniformly and its only + # post-2023 effect is inflation indexing, since the ARPA childless expansion + # already expired Jan 1, 2022). absolute_error_margin: 0.01 period: 2025 input: @@ -65,7 +69,7 @@ households: household: {members: [parent], state_fips: 18} output: - in_eitc: 60 + in_eitc: 61.20 - name: Indiana EITC TY 2026 uses the SEA 243 advanced January 1, 2026 IRC snapshot period: 2026 @@ -92,14 +96,15 @@ state_code: IN output: # TY 2026 onwards Indiana SEA 243 (2025) advances the IRC reference to - # January 1, 2026. This with-children filer takes 10% of the current-year - # federal EITC per Schedule IN-EIC Section B; under SEA 243 the current and - # frozen (2026-01-01) computations coincide, so the credit is $442.70. + # 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. in_eitc: 442.70 -- name: in_eitc childless 2026 uses the SEA 243 January 1, 2026 IRC snapshot - # Childless filers stay on the frozen IRC snapshot; under SEA 243 the 2026 - # snapshot equals the current federal childless EITC, so 10% x $612 = $61.20. +- 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. absolute_error_margin: 0.01 period: 2026 input: diff --git a/policyengine_us/variables/gov/states/in/tax/income/credits/earned_income_credit/in_eitc.py b/policyengine_us/variables/gov/states/in/tax/income/credits/earned_income_credit/in_eitc.py index 8c211efe521..ee2a809c628 100644 --- a/policyengine_us/variables/gov/states/in/tax/income/credits/earned_income_credit/in_eitc.py +++ b/policyengine_us/variables/gov/states/in/tax/income/credits/earned_income_credit/in_eitc.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(Variable): @@ -20,48 +16,23 @@ def formula(tax_unit, period, parameters): federal_eitc = tax_unit("eitc", period) return federal_eitc * ip.earned_income.match_rate if ip.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, - ) - # 2025 Schedule IN-EIC Section B (filers claiming one or more - # children) directs the taxpayer to take 10% of the earned income - # credit "from your federal income tax return" — i.e. the current- - # year federal EITC as claimed, not a frozen-IRC recomputation. - # Indiana's decoupling (Section A) targets the childless / ARPA - # expansion only, so the frozen federal EITC is retained solely for - # childless filers. - current_federal_eitc = tax_unit("eitc", period) - federal_eitc = where( - child_count > 0, current_federal_eitc, frozen_federal_eitc - ) + # Schedule IN-EIC (State Form 49469) Section A applies to every + # filer: "Enter the earned income credit from your federal + # income tax return," multiplied by 10%. There is no frozen-IRC + # recomputation on the form. Section B is a qualifying-child + # information schedule (names, SSNs, ages), not a computation + # path, so it does not carve out childless filers. + # + # DOR Information Bulletin #92 describes the IRC section 32 + # January 1, 2023 conformity freeze (IC 6-3-1-11) uniformly for + # "the Indiana EITC," with no childless-specific language. The + # ARPA childless EITC expansion expired January 1, 2022, so for + # TY2023 onward the freeze's only operative effect is that + # Indiana does not automatically adopt post-snapshot federal + # EITC changes -- and those changes are inflation indexing only. + # The current-year federal EITC therefore satisfies the freeze + # for all filers, with or without children. + federal_eitc = tax_unit("eitc", period) return federal_eitc * ip.earned_income.match_rate # if Indiana EITC is decoupled from federal EITC fp = parameters(period).gov.irs.credits