Skip to content

Use the current-year federal EITC for Indiana EITC eligibility in 2024 and 2025 - #10249

Merged
PavelMakarchuk merged 4 commits into
mainfrom
fix-9644-in-eitc-eligibility-indexed
Oct 26, 2026
Merged

PavelMakarchuk merged 4 commits into
mainfrom
fix-9644-in-eitc-eligibility-indexed

Conversation

@PavelMakarchuk

@PavelMakarchuk PavelMakarchuk commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

From TY2023, in_eitc_eligible recomputed the federal EITC with the gov.irs.credits.eitc("2023-01-01") snapshot, which holds the TY2023 dollar amounts. In TY2024 and TY2025 a filer who gets the federal EITC lost the Indiana EITC if:

  • investment income was above the TY2023 limit ($11,000) but within the year's limit ($11,600 in 2024, $11,950 in 2025), or
  • income was past the TY2023 completed phaseout but within the year's (for example, a childless filer with $18,000 of wages).

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 text of section 32 indexes the earned income, phaseout and investment income amounts to the 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. The 2025 IT-40 booklet (Schedule 5, line 6, PDF pp. 30-31) says the filer "must be eligible for and have claimed an EIC on your federal tax return" and that Indiana "follows all requirements and allowances for the federal EIC".

The static-conformity branch now returns current-year federal EITC eligibility, as in_eitc already does for the amount (#8875, #8902). The unused state_eitc_helpers imports are removed from this file; the helpers stay in use for CO, DC, IL and WA. TY2023 and TY2026 results do not change, because the snapshot amounts equal those years' amounts.

SEA 243 is the 2026 act (enrolled act, SECTION 6): it moves the general IC 6-3-1-11 date to January 1, 2026 but does not amend IC 6-3.1-21, whose section 6(a) keeps its own January 1, 2023 date. The code comment, the static_conformity_in_effect description and reference, and two TY2026 test comments now say so (they read "SEA 243 (2025)").

The us-in:eitc-current-versus-frozen-federal-base source-conflict candidate is removed: with the amounts indexed (TheAxiomFoundation/rulespec-us#1421, ruling 1), the statute and Schedule IN-EIC give the same current-year amount, so there is no conflict.

in_eitc_eligible unit test 8 (TY2025) set eitc: 0 and expected true. With no federal EITC there is no Indiana EITC (IC 6-3.1-21-6(a)(2), "claimed for the taxable year"), so it now expects false. Its in_eitc was already 0.

Tests

Added to in_eitc.yaml (amounts from Rev. Procs. 2023-34 and 2024-40; arithmetic in each case):

Case Federal EITC Indiana EITC main branch
TY2025, 2 children, wages $20,000, interest $11,500 5,435.61 543.56 fail pass
TY2025, childless, wages $18,000 84.43 8.44 fail pass
TY2024, 2 children, wages $20,000, interest $11,300 5,153.05 515.31 fail pass
TY2024, childless, wages $18,000 45.24 4.52 fail pass
TY2023 control, interest $11,500 (> $11,000) 0 0 pass pass
TY2025 control, interest $11,951 (> $11,950) 0 0 pass pass
TY2025, 2 children, wages $20,000, interest $11,950 (= limit; 32(i)(1) denies only if it "exceeds") 5,340.84 534.08 fail pass
  • in_eitc.yaml + in_eitc_eligible.yaml on main: 5 failed (the 4 new cases and test 8), 16 passed; the $11,950 case also fails on main (in_eitc_eligible false). On this branch: 22 passed.
  • tests/policy/baseline/gov/states/in/: 554 passed. tests/code_health/test_source_conflicts.py: 103 passed.

Note: #9820 changes an input line of in_eitc_eligible unit test 8; this PR changes its expected output a few lines below.

Fixes #9644

axiom: TheAxiomFoundation/rulespec-us#1421 queued (open, pe-parity; the signed encoder dispatch needs approval, recorded in the issue)

🤖 Generated with Claude Code

in_eitc_eligible recomputed the federal EITC with the January 1, 2023
parameter snapshot, so in TY2024 and TY2025 filers above the TY2023
investment income limit or completed phaseout lost the Indiana EITC.
IC 6-3.1-21-6(a) and (e) and 26 U.S.C. 32(j)(1) index those amounts to
the taxable year, so the static-conformity branch now returns federal
EITC eligibility, matching the amount formula in in_eitc.

Add TY2024 and TY2025 cases and controls, and set in_eitc_eligible unit
test 8 (federal EITC of zero) to false.

Fixes #9644.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@PavelMakarchuk
PavelMakarchuk marked this pull request as ready for review October 23, 2026 17:03
@codecov

codecov Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (909176a) to head (fd5e9e2).
⚠️ Report is 665 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main    #10249   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            4         1    -3     
  Lines           76        33   -43     
  Branches         2         2           
=========================================
- Hits            76        33   -43     
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@DTrim99

DTrim99 commented Oct 23, 2026

Copy link
Copy Markdown
Collaborator

PR Review: Use the current-year federal EITC for Indiana EITC eligibility in 2024 and 2025

Summary

From TY2023, in_eitc_eligible recomputed the federal EITC from a frozen parameter snapshot (gov.irs.credits.eitc("2023-01-01"), or 2026-01-01 from TY2026). In TY2024 and TY2025 that snapshot held the TY2023 dollar amounts. So a filer who got the federal EITC lost the Indiana EITC in two cases:

  • investment income between $11,000 and the year's limit;
  • income between the TY2023 completed-phaseout amount and the year's.

The static-conformity branch now returns eitc > 0, so eligibility matches the amount branch, which since #8875/#8902 has been 10% of the current-year federal EITC. The unused helper imports are removed.

  • Law. The PR's reading is correct.
    • IC 6-3.1-21-6(a) incorporates "Section 32 of the Internal Revenue Code as in effect on January 1, 2023". That text indexes the § 32 dollar amounts to "the calendar year in which the taxable year begins" (32(j)(1)), and (e) applies the same cost-of-living adjustments.
    • IC 6-3-1-11 keeps the January 1, 2023 date for TY2024–2025: SEA 212-2026, retroactive to 2025, adds July 4, 2025 only for §§ 23, 168(e)(3)(B)(vi) and 223(c)(2)(E).
    • The 2024 and 2025 IT-40 booklets both say Indiana "follows all requirements and allowances for the federal EIC".
  • Tests. All 6 new cases and the changed test 8 check out by hand. TY2023 and TY2026 are unchanged.
  • Problems. The axiom: line is missing, and rulespec-us#1421 already fits it exactly. The new code comment dates SEA 243 to 2025; it is the 2026 act.

Critical (must fix)

None.

Should address

1. Add axiom: rulespec-us#1421 queued to the PR body.

The body has no axiom line in any form, and Pavel is staff. rulespec-us#1421, "Re-encode IC 6-3.1-21-6 (Indiana EITC)", fits:

  • It is OPEN, labelled pe-parity, and mirrors Indiana EITC eligibility still uses frozen 2023 federal EITC amounts in TY2024 and TY2025 #9644, the issue this PR fixes.
  • It has what a dispatch-ready issue needs: the module path (us-in/statutes/6-3/1-21-6.yaml), corpus citations (us-in/statute/6-3.1-21-6 and us-in/statute/6-3-1-11, both in the pinned release), and the verbatim text of 6-3.1-21-6, 6-3-1-11(a) and 32(j)(1).
  • It lists the required outputs: eligibility requires a claimed amount above 0, and the credit is 10% × min(eligible, claimed).
  • Its companion cases A–G come from Pub. 596 EIC tables and Rev. Proc. limits. These are the same households as this PR's cases (TY2025 and TY2024, two children, interest $11,500 or $11,300; childless with $18,000 of wages; the TY2023 control).
  • Its blocker is recorded: the signed encoder needs approval.

Its ruling 1, "The conformity date fixes the statutory text, not the dollar amounts", is the head's behavior.

2. Fix the SEA 243 citation in the new comment.

File: policyengine_us/variables/gov/states/in/tax/income/credits/earned_income_credit/in_eitc_eligible.py, in the new static-conformity comment: "(IC 6-3-1-11; January 1, 2026 from TY2026 per SEA 243 (2025))".

What's wrong. SEA 243 is a 2026 act. The enrolled text is headed "Second Regular Session of the 124th General Assembly (2026) … SENATE ENROLLED ACT No. 243", and its SECTION 6 amends IC 6-3-1-11 "[EFFECTIVE JANUARY 1, 2026 (RETROACTIVE)]" from "January 1, 2023" to "2026" (enrolled act).

A related precision point. SEA 243 doesn't amend IC 6-3.1-21 at all (its text never mentions 6-3.1-21 or the earned income tax credit). IC 6-3.1-21-6(a) carries its own "as in effect on January 1, 2023". So the parenthetical shouldn't suggest that the EITC's own date moves to 2026 through IC 6-3-1-11. The result is the same either way, because § 32 is substantively unchanged since then (the text comparison in rulespec-us#1421).

Fix. Write "SEA 243-2026". Either drop the TY2026 clause, or say that IC 6-3-1-11 moves to January 1, 2026 while 6-3.1-21-6(a) keeps its 2023 literal. While here, the static_conformity_in_effect.yaml description ("per Indiana SEA 243 of 2025") and its reference (title "Indiana SEA 243 (2025)", href …/legislative/2025/bills/senate/243) carry the same error and could be fixed in this PR.

Suggestions

  1. Update the source-conflict candidate. source_conflicts/candidates.yaml has us-in:eitc-current-versus-frozen-federal-base ("Is Indiana's EITC based on the current federal credit … or the credit under its January 1, 2023 conformity date?"). Its statute reading is "Use the frozen 2023 federal base", and its note says "eligibility already uses the frozen snapshot." After this PR, the note is wrong and the statute reading contradicts the PR's own legal conclusion. Resolve or update the entry, citing California Nonrefundable Child and Dependent Care Expenses Credit #1421's ruling 1. The guard doesn't check this, so it won't fail CI.
  2. Boundary case at the limit. The $11,951 control pins the "exceeds" side. A $11,950 TY2025 case (eligible, because 32(i)(1) disqualifies only income that "exceeds" the limit) would pin the other side.
  3. Branch structure. From 2023 both static-conformity branches (in_eitc and in_eitc_eligible) now behave exactly like the non-decoupled branch. A follow-up could set decoupled to false from 2023, or drop static_conformity_in_effect, and keep the explanation in one place.

Verified correct

  • Statute. IC 6-3.1-21-6(a): "an individual who is eligible for an earned income tax credit under Section 32 of the Internal Revenue Code as in effect on January 1, 2023, is eligible for a credit under this chapter equal to ten percent (10%) of the amount of the federal earned income tax credit that the individual: (1) is eligible to receive in the taxable year; and (2) claimed for the taxable year". (e): "The minimum earned income amounts and phaseout threshold amounts for the credit under this section are subject to the same cost of living adjustments provided in the Internal Revenue Code." The text is quoted from the corpus row in rulespec-us#1421, which matches the 2023–2025 Indiana Code editions.
    • 26 U.S.C. 32(j)(1) indexes the (b)(2) and (i)(1) amounts "for the calendar year in which the taxable year begins". The investment limit therefore indexes through the incorporated (j)(1), even though (e) names only earned-income and phaseout amounts.
  • Conformity date for TY2024–2025. SEA 243-2026 shows IC 6-3-1-11 as amended by SEA 212-2026: subsection (a) read "January 1, 2023" before SEA 243's 2026 change, and (e)–(f) apply July 4, 2025 only to §§ 23, 168(e)(3)(B)(vi) and 223(c)(2)(E). So TY2024–2025 use the January 1, 2023 text of § 32, with indexed amounts.
  • Forms.
    • 2025 IT-40 booklet, PDF p. 30: "You must be eligible for and have claimed an EIC on your federal tax return. If not, STOP." PDF p. 31: "Your 2025 EIC will be your federal EIC multiplied by 10%. For the 2025 tax year, Indiana follows all requirements and allowances for the federal EIC."
    • 2024 IT-40 booklet, PDF p. 30: the same two passages for 2024.
    • This supports both the current-year base and the test 8 change.
  • Hand-checked expectations (19 outputs in 7 cases).
    • TY2025, 2 children, wages 20,000, interest 11,500 (within 11,950): AGI 31,500; credit 7,152 − 0.2106 × (31,500 − 23,350) = 7,152 − 1,716.39 = 5,435.61; eligible true; IN 10% = 543.56.
    • TY2025, childless, wages 18,000: 649 − 0.0765 × (18,000 − 10,620) = 649 − 564.57 = 84.43; true; 8.44. This filer is past the TY2023 completed phaseout of 17,640, where the frozen recomputation gave 600 − 0.0765 × 8,200 < 0.
    • TY2024, 2 children, interest 11,300 (within 11,600): 6,960 − 0.2106 × (31,300 − 22,720) = 6,960 − 1,806.95 = 5,153.05; true; 515.31.
    • TY2024, childless, wages 18,000: 632 − 0.0765 × 7,670 = 632 − 586.755 = 45.245, against the expected 45.24 (within the 0.01 margin); true; IN 4.5245 against the expected 4.52 (within the margin).
    • TY2023 control, interest 11,500 above 11,000: 0 / false / 0.
    • TY2025 control, interest 11,951 above 11,950: 0 / false / 0.
    • in_eitc_eligible test 8 (TY2025, eitc: 0): false. (a)(2) requires a claimed federal credit, and in_eitc was already 0.
    • The amounts match Rev. Procs. 2022-38 § 3.06, 2023-34 § 3.06 and 2024-40 § 2.06.
  • TY2023 and TY2026 unchanged. The snapshot parameters on those dates equal those years' amounts, so eitc > 0 gives the same answer.
  • Code.
    • It returns a vectorized boolean, and the decoupled 2011–2022 branch is untouched.
    • After the PR, calculate_eitc_like_amount is still used by IL, CO and DC, and the WA files import other helpers.
    • The NH Add New Hampshire state supplementation for 2026 #10156 pattern doesn't apply (no state-gated key).
  • Changelog. changelog.d/fix-9644-in-eitc-eligibility-indexed.fixed.md is a top-level fragment with the fixed type.
  • Source-conflict ratchet (Tie source-conflict markers to the register shared with Axiom #10287). Neither the removed nor the added comments in in_eitc_eligible.py match CONFLICT_COMMENT_RE or ATTEMPT_RE. ("booklet (Schedule 5, line 6) also requires" doesn't fit the form-verb pattern.) The file isn't in KNOWN_UNMARKED, so the guard passes statically, and CI's guard job passes at this head.
  • Partner tests. No files under tests/policy/baseline/partners/** are touched.

Axiom line assessment

There is no axiom: line (checked in every format). rulespec-us#1421 is OPEN, labelled pe-parity, dispatch-ready, records the encoder-approval blocker, and matches the head's behavior and test households. The line should be axiom: rulespec-us#1421 queued (Should 1).

CI status

At e6b7fcd241 (the 2026-10-23 merge of main), 28 checks pass and 1 is pending: Python tests / Full Suite - Rest (Python + variables). Everything that runs the IN YAML has passed: the Baseline states shards, Quick Feedback and PR validation (guard tests). Nothing has failed.

Branch status

The branch is 2 commits ahead of main and 7 behind. git merge-tree --write-tree PolicyEngine/main e6b7fcd241 merges cleanly.

Sibling note: merged on top of #9820, this PR conflicts in in_eitc.yaml, because both append cases at the end of the file; keep both blocks. #9820's input rename in in_eitc_eligible.yaml test 8 and this PR's output change there don't conflict.

Verdict: REQUEST_CHANGES

@DTrim99 DTrim99 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The fix is correct: IC 6-3.1-21-6(a) incorporates the Jan 1, 2023 text of section 32, which indexes amounts, and the 2024/2025 IT-40 booklets follow the federal EIC; all 19 outputs hand-check. Two should-address items: (1) there's no axiom line, and rulespec-us#1421 already mirrors this, so use 'rulespec-us#1421 queued'; (2) 'SEA 243 (2025)' should be SEA 243-2026, which doesn't amend 6-3.1-21 (also in static_conformity_in_effect.yaml). Three suggestions. Full report in the comment above.

…nt limit

- SEA 243 is the 2026 act. Its SECTION 6 moves the IC 6-3-1-11 date to
  January 1, 2026; it does not amend IC 6-3.1-21, whose section 6(a) keeps
  its own "as in effect on January 1, 2023". Fix the comment in
  in_eitc_eligible.py, the static_conformity_in_effect description and
  reference (enrolled act, PDF p. 36) and two TY2026 test comments.
- Remove the us-in:eitc-current-versus-frozen-federal-base candidate. The
  2023 text of section 32 indexes its amounts to the taxable year
  (32(j)(1); rulespec-us#1421 ruling 1), so the statute and Schedule IN-EIC
  give the same current-year amount and there is no conflict to register.
- Add a TY2025 case with interest of exactly $11,950: 32(i)(1) denies the
  credit only if disqualified income "exceeds" the limit (Rev. Proc.
  2024-40 sec. 2.06(2)), so the filer gets $5,340.84 federal and $534.08
  Indiana EITC.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@PavelMakarchuk

PavelMakarchuk commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator Author

Thanks, @DTrim99. Commit d6911d8 addresses the review.

Should 1 (axiom line). The PR body now has axiom: TheAxiomFoundation/rulespec-us#1421 queued. #1421 is open, labelled pe-parity, mirrors #9644 and records the encoder-approval blocker.

Should 2 (SEA 243). The citation is now SEA 243-2026, and the comment no longer suggests that the EITC's own date moves. Enrolled act, headed "Second Regular Session of the 124th General Assembly (2026)", PDF p. 36 (the act strikes "2023." and inserts "2026."):

SECTION 6. IC 6-3-1-11, AS AMENDED BY SEA 212-2026, SECTION 1, IS AMENDED TO READ AS FOLLOWS [EFFECTIVE JANUARY 1, 2026 (RETROACTIVE)]: Sec. 11. (a) Except as provided in subsection (e), the term "Internal Revenue Code" means the Internal Revenue Code of 1986 of the United States as amended and in effect on January 1, 2023. 2026.

None of the act's SECTIONs amends IC 6-3.1-21; "IC 6-3.1" appears only in general credit-ordering references. IC 6-3.1-21-6(a) (2025 Indiana Code) keeps its own date: "under Section 32 of the Internal Revenue Code as in effect on January 1, 2023".

Fixed: the comment in in_eitc_eligible.py; the static_conformity_in_effect.yaml description and reference (now SECTION 6 of the enrolled act); and two TY2026 comments in in_eitc.yaml with the same "SEA 243 (2025)" text. The yaml lines predate this PR (23a4f57), but they carry the same error in the same feature, so I fixed them here. The description's snapshot sentence was also stale (no code reads a snapshot date after this PR); it now says the branch refers to the 2023 text of section 32, whose amounts are indexed.

Suggestion 1 (source-conflict candidate). Removed us-in:eitc-current-versus-frozen-federal-base from source_conflicts/candidates.yaml. Under #1421 ruling 1 ("The conformity date fixes the statutory text, not the dollar amounts"), the statute and Schedule IN-EIC give the same current-year amount, so there is no conflict to register.

Suggestion 2 (boundary). Added a TY2025 case with interest of exactly $11,950. 26 U.S.C. 32(i)(1) denies the credit if disqualified income "exceeds" the limit, $11,950 for 2025 (Rev. Proc. 2024-40 sec. 2.06(2)). Federal EITC = 7,152 − 21.06% × (31,950 − 23,350) = 5,340.84; Indiana = 534.08; eligible. It fails on main (in_eitc_eligible false) and passes here.

Suggestion 3 (branch structure). Not done here; it is a refactor beyond this fix.

Tests at d6911d8: in_eitc.yaml + in_eitc_eligible.yaml 22 passed; tests/policy/baseline/gov/states/in/ 554 passed; tests/code_health/test_source_conflicts.py 103 passed.

@DTrim99

DTrim99 commented Oct 26, 2026

Copy link
Copy Markdown
Collaborator

PR Review (round 2): Use the current-year federal EITC for Indiana EITC eligibility in 2024 and 2025

Summary

There is one author commit since round 1: d6911d8, "Cite SEA 243-2026 correctly and test the Indiana EITC at the investment limit". It fixes both should-address items and two of the three suggestions; the third is declined with a reason. I found no new critical or should issues, and every new expectation checks out by hand.

Two things must happen before merge. Neither is a code finding:

  • Merge conflict with main. The branch conflicts with main in source_conflicts/candidates.yaml. Point the IN-MT source-conflict candidates at their code on main #10351 edited the same candidate entry that this PR deletes, and it added a new Indiana LIHEAP candidate right after it. To resolve, delete only the EITC candidate and keep us-in:liheap-income-floor-vs-smi-limit (see Branch status).
  • CI has not run. Because of that conflict, CI has never run on d6911d8. The last run was on the round-1 head e6b7fcd, where all 27 jobs passed. Merging main and pushing will start CI, and it must pass before merging.

Prior findings

Finding Status Evidence
S1. No axiom: line Fixed The body now reads axiom: TheAxiomFoundation/rulespec-us#1421 queued. #1421 is OPEN, labelled pe-parity, dispatch-ready, records its blocker and matches the head (see Axiom line assessment).
S2. "SEA 243 (2025)" should be SEA 243-2026, which doesn't amend IC 6-3.1-21 Fixed The comment in in_eitc_eligible.py now says that 6-3.1-21-6(a)'s January 1, 2023 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". The same correction is in the static_conformity_in_effect.yaml description and reference, which now cite the enrolled act at #page=36, and in the two TY2026 test comments in in_eitc.yaml. All of it is verified against the enrolled act and the 2026 Indiana Code (below).
Suggestion 1. The stale candidate us-in:eitc-current-versus-frozen-federal-base Fixed (removed) The removal is justified. Under #1421 ruling 1, the statute and Schedule IN-EIC give the same current-year amount, so there is no conflict left to list. The guard's candidate checks are structural, and nothing else references the id. However, main has since edited this entry, which causes the merge conflict (see Branch status).
Suggestion 2. Boundary case at $11,950 Fixed A new TY2025 case has interest of exactly $11,950. I hand-checked it below.
Suggestion 3. Simplify the redundant static-conformity branches Declined with reason The author calls it "a refactor beyond this fix". That is a reasonable deferral.

New findings

Critical (must fix)

None.

Should address

None.

Suggestions

  1. Optional: align the in_eitc.py comment with the corrected citation. The comment in the static-conformity branch of policyengine_us/variables/gov/states/in/tax/income/credits/earned_income_credit/in_eitc.py still describes "the IRC section 32 January 1, 2023 conformity freeze (IC 6-3-1-11)". This PR doesn't touch that comment.
    • From TY2026, IC 6-3-1-11 reads January 1, 2026 (SEA 243-2026, SECTION 6).
    • The EITC's own January 1, 2023 date is in IC 6-3.1-21-6(a), as the new in_eitc_eligible.py comment now says.
    • Results don't change. Pointing this comment to 6-3.1-21-6(a) and 32(j)(1) would match the eligibility comment. It could go in this PR, in Net spouses' self-employment losses in state EITC helper earned income (IL, CO, DC, IN) #9820 (which edits in_eitc.py), or in the Suggestion 3 follow-up.

Verified

  • Hand check: the new $11,950 case (TY2025, head aged 30, wages 20,000, taxable interest 11,950, two children aged 5 and 6). This is the only new or changed expectation.
    • Investment income. 11,950 equals the TY2025 limit of 11,950 (Rev. Proc. 2024-40 § 2.06(2); max_investment_income 2025 = 11,950). eitc_investment_income_eligible tests invinc <= limit, which matches 32(i)(1): it denies the credit only where disqualified income "exceeds" the limit. The filer is eligible.
    • Phase-in. Earnings of 20,000 exceed the 17,880 earned income amount, so 40% × 20,000 = 8,000, capped at the maximum of 7,152.
    • Phaseout. AGI = 20,000 + 11,950 = 31,950, which is more than earnings. The reduction is 0.2106 × (31,950 − 23,350) = 0.2106 × 8,600 = 1,811.16, so eitc = 7,152 − 1,811.16 = 5,340.84 ✓.
    • Indiana. in_eitc_eligible = eitc > 0 = true ✓. in_eitc = 10% × 5,340.84 = 534.084, against the expected 534.08, within the 0.01 margin ✓.
    • Behavior on main. Main's frozen 2023 limit of $11,000 makes in_eitc_eligible false, so this case fails on main, as the body says.
    • CI evidence. Apart from the interest amount and the expected values, the household is identical to the $11,500 case, which passed CI at e6b7fcd.
  • No other expectation changed. The two TY2026 cases keep 442.70 and 61.20; only their names and comments changed. in_eitc_eligible.yaml and the changelog fragment are unchanged since round 1.
  • SEA 243-2026 enrolled act (SB0243.05.ENRH).
    • PDF p. 1 is headed "Second Regular Session of the 124th General Assembly (2026)".
    • PDF p. 36 has "SECTION 6. IC 6-3-1-11, AS AMENDED BY SEA 212-2026, SECTION 1, IS AMENDED TO READ AS FOLLOWS [EFFECTIVE JANUARY 1, 2026 (RETROACTIVE)]: … as amended and in effect on January 1, 2023. 2026." So the new #page=36 anchor shows the cited text.
    • The act's text never mentions IC 6-3.1-21 or the earned income tax credit.
  • 2026 Indiana Code (Title 6, 2026 edition). IC 6-3.1-21-6(a) still reads "eligible for an earned income tax credit under Section 32 of the Internal Revenue Code as in effect on January 1, 2023". There is a single version of the section, last amended by "P.L.201-2023, SEC.1". So the new comments' statement that the chapter keeps its own 2023 date also holds for TY2026.
  • Parameter description. "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." This is accurate. The only code that read a snapshot date was the frozen recomputation this PR removes; in_eitc.py multiplies the current-year eitc by the match rate. The old sentence about a 2026 snapshot is correctly dropped.
  • Candidate removal and the guard. test_source_conflicts.py checks candidates only structurally: unique, well-formed ids, required fields, and that no candidate is already registered. The id appears nowhere else on the head or on main, and the vendored register has no Indiana entry. Deleting the entry therefore passes, both at the head and in main's version of the file with the entry removed.
  • Source-conflict ratchet (Tie source-conflict markers to the register shared with Axiom #10287). None of the rewritten comment lines in in_eitc_eligible.py match CONFLICT_COMMENT_RE, and the file isn't in KNOWN_UNMARKED. The parameter file changes only its description and reference, not comments. Test files aren't scanned. So the guard passes statically at the head and on the merged tree.
  • Other checks. No partner test files are touched. The NH Add New Hampshire state supplementation for 2026 #10156 pattern doesn't apply, because there is no state-gated key.

Axiom line assessment

axiom: TheAxiomFoundation/rulespec-us#1421 queued is valid.

  • State. rulespec-us#1421 is OPEN and labelled pe-parity. It was last updated 2026-09-27, so it is unchanged since round 1.
  • Dispatch-ready. It has:
    • the module path us-in/statutes/6-3/1-21-6.yaml;
    • corpus citations us-in/statute/6-3.1-21-6 and us-in/statute/6-3-1-11, in the pinned release;
    • the verbatim text of IC 6-3.1-21-6, IC 6-3-1-11(a), 32(j)(1) and Schedule IN-EIC;
    • four required outputs;
    • companion cases A–G, taken from the Pub. 596 EIC tables and the Rev. Proc. investment income limits rather than from engine output.
  • Blocker. The issue records it: content must come from the signed encoder, and dispatching it needs approval.
  • Matches the head.
    • Output 1 holds only if the filer is eligible under § 32 and the claimed amount is above 0. That is the head's eitc > 0.
    • Ruling 1 (the conformity date fixes the text, not the indexed amounts) is the head's current-year base.
    • The companion households match this PR's TY2023–2025 cases.
  • Stale TY2026 wording. California Nonrefundable Child and Dependent Care Expenses Credit #1421's IC 6-3-1-11(a) quote and its step 3 predate SEA 243-2026. That doesn't affect the TY2023–2025 encoding it asks for, and IC 6-3.1-21-6(a) is unchanged in 2026.

CI status

CI has not run on the current head d6911d8.

  • No checks. gh pr checks 10249 reports no checks on the branch.
  • Runs on the branch. gh run list --branch fix-9644-in-eitc-eligibility-indexed shows that the latest pull_request run (2026-10-23 18:41 UTC) has headSha e6b7fcd, the round-1 head. That run passed all 27 jobs, including PR validation (guard tests), Quick Feedback, all Baseline states shards and Full Suite - Rest. The earlier runs, on b4d810e, were cancelled or skipped. There is no run at d6911d8.
  • Cause. GitHub reports the PR as CONFLICTING (merge state DIRTY). Point the IN-MT source-conflict candidates at their code on main #10351 merged at 2026-10-25 11:43 UTC, before this commit was pushed on 2026-10-26. With the merge conflict, the pull_request workflow didn't run.
  • Request. Please merge main, resolving the conflict as described under Branch status, and push. CI must pass on that head before this merges.
  • Risk. The change since review is small but untested in CI: one test case that mirrors a CI-green case, comment edits, a parameter description and reference, and a deletion in candidates.yaml. The author's local runs (22 IN EITC tests, 554 IN baseline tests and 103 guard tests passed) don't replace CI.

Branch status

The branch is 3 commits ahead of main and 43 behind. git merge-tree --write-tree PolicyEngine/main d6911d8c4a conflicts in source_conflicts/candidates.yaml:

  • What changed on main. Point the IN-MT source-conflict candidates at their code on main #10351 rewrote this candidate's code list and note, and inserted the new candidate us-in:liheap-income-floor-vs-smi-limit directly after it. Main's side of the conflict hunk holds both entries; this PR's side is empty.
  • How to resolve. Delete only the us-in:eitc-current-versus-frozen-federal-base entry, and keep main's us-in:liheap-income-floor-vs-smi-limit entry intact. Taking this PR's side of the hunk would drop the LIHEAP candidate without any warning, and no test would catch it.
  • Everything else merges cleanly. Main's other Indiana changes since the merge base (state other additions and subtractions) don't feed eitc, in_eitc_eligible or in_eitc.

Sibling note: #9820. #9820 is open and mergeable. Merged on top of it, this PR still conflicts in in_eitc.yaml, because both PRs append cases at the end of the file; keep both blocks. in_eitc_eligible.yaml merges automatically.

Verdict: APPROVE

@DTrim99 DTrim99 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Round 2: both should items are fixed. The axiom line now cites rulespec-us#1421 queued (open, pe-parity, blocker recorded), and SEA 243-2026 is cited correctly everywhere. The new $11,950 boundary case hand-checks. Approving on the substance, but CI never ran on this head because the PR conflicts with main in source_conflicts/candidates.yaml. Resolve it by deleting only the EITC candidate and keeping main's new us-in:liheap-income-floor-vs-smi-limit, then let CI pass before merging. One optional suggestion. Full report in the comment above.

Resolve source_conflicts/candidates.yaml by deleting only the Indiana EITC
candidate (resolved by this PR) and keeping main's
us-in:liheap-income-floor-vs-smi-limit entry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@PavelMakarchuk
PavelMakarchuk merged commit 35b756a into main Oct 26, 2026
35 checks passed
@PavelMakarchuk
PavelMakarchuk deleted the fix-9644-in-eitc-eligibility-indexed branch October 26, 2026 15:47
PavelMakarchuk added a commit that referenced this pull request Oct 26, 2026
Resolve in_eitc.yaml by keeping main's cases from #10249 and appending this
branch's two cases for a spouse's self-employment loss.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Indiana EITC eligibility still uses frozen 2023 federal EITC amounts in TY2024 and TY2025

2 participants