Repository navigation
Conversation
Maryland's federal_eitc_without_age_minimum (Md. Code Tax-Gen. 10-704(c)(3)) and Maine's me_pro_forma_childless_eitc (36 M.R.S. 5219-S(5)-(6)) recompute the federal EITC for childless filers without the federal minimum age, but neither waives 26 U.S.C. 32(c)(1)(C), which denies the credit to anyone who claims the benefits of section 911. Both now use eitc_section_911_eligible. New Jersey's age path (P.L. 2021, c.130, section 1a(4)) now reaches only a childless filer who is ineligible for the federal credit "due to age requirements" and meets "all qualifications, except for the minimum or maximum age": no filer or spouse meets the federal age test (dependents' ages no longer count, and the 2021 student minimum applies), the filer and any spouse have SSNs valid for the EITC, and the federal credit recomputed without the age test is positive. A federally eligible filer gets 40% of the federal EITC allowed, whatever its size, in place of the phase-in versus reduction test that denied the credit when unearned income put the reduction above the phase-in amount. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 28, 2026
The invariant tests bounded each credit but accepted underpayment. They now also check that a childless filer with SSNs and no section 911 claim who fails only the federal age test gets New Jersey's 40% of the childless maximum, and Maryland's and Maine's full recomputed federal credit (Maine at its childless rate). The grid adds a full-time student aged 20, who takes New Jersey's 2021 age path. Maine's 2021 full-time students aged 19-23, whom the model still leaves out of the cohort, are excluded by name as a known gap. Comments and the changelog no longer say the New Jersey age path requires only age ineligibility: it does not yet apply the dependent-elsewhere bar. Maine's pro forma documents that it does not model 5219-S(7)'s ITIN rule. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 29, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Status: draft. The code, tests, mutation checks and Axiom parity are done. The full-dataset microsim waits on host reservations (queued as
imp-10525). Review round 2 is running.Follows #9750, which applied 26 U.S.C. 32(c)(1)(C) to the federal
eitc_eligible,eitc_section_911_eligible(DC, Washington andcalculate_eitc_like_amount), and New Jersey's age path:Changes
Maryland:
federal_eitc_without_age_minimumMd. Code Tax-Gen. 10-704(c)(3)(i): for "an individual without a qualifying child, the credit allowable for a taxable year under § 32 … is calculated without regard to: 1. the minimum age requirement under § 32(c)(1)(A)(ii)(II) …; or 2. the limitation under § 32(m)". The 2025 Resident Booklet, Instruction 18, reads: "If you do not meet the minimum age requirement under the federal credit and are otherwise eligible for the federal credit for those without a qualifying child, you may claim the state earned income credit".
The recomputation now applies the section 911 bar through
eitc_section_911_eligible. The § 32(m) ITIN waiver remains unmodelled; the formula still requires an SSN, as on main, and the code comment says so. A follow-up covers it.Maine:
me_pro_forma_childless_eitc36 M.R.S. 5219-S(5) computes the credit for a childless filer under 25 "in the same manner as it would be calculated if that individual were eligible for a federal earned income credit". Under 5219-S(6), "eligible individual" has "the same meaning as under Section 32(c)(1) of the Code except that" it "also includes" a childless individual aged 18 to 24 who meets 32(c)(1)(A)(ii)(I) and (III).
Maine Revenue Services' 2024 EITC worksheet has the filer "complete Steps 1 through 6 of the federal instructions", changing only the TIN and age answers. Step 1 of the federal instructions asks: "Are you filing Form 2555 …? Yes. STOP You can't take the credit."
The pro forma now applies the section 911 bar. The hub's log records the reading: the expansion replaces only the age element of 32(c)(1)(A), so (B)-(E) still apply. Subsection 7's override of (E) presupposes the same.
New Jersey:
nj_childless_eitc_age_eligibleandnj_eitcP.L. 2021, c.130, §1a(4) makes a childless resident aged 18 or over eligible "if that resident individual is ineligible to claim the federal earned income tax credit due to age requirements. The resident individual shall meet all qualifications, except for the minimum or maximum age, for the federal earned income tax credit". §1a(1) pays a percentage "of the federal earned income tax credit that would be allowed".
The 2025 NJ-1040 instructions, line 58, say: "If you claimed and were allowed a federal earned income credit (EIC), enter 40% of your federal EIC amount." On the age path they say: "You met all federal EIC requirements except the age requirement … enter $260."
Main reached the age path for any federally ineligible childless filer aged 18 or over, and so paid $260 to filers the federal credit turns away for other reasons. The age path now requires:
min(phased_in, max(0, maximum − reduction)) > 0. Main comparedphased_in > reduction. That test denied the credit to a low earner whose unemployment compensation put the reduction above the phase-in amount but below the maximum. Example: age 20, $1,000 of wages and $12,000 of unemployment compensation; main gives $0, the law gives $259.60.The federal path pays 40% of
eitcto every filer witheitc_eligible. Main also requiredphased_in > reduction, added by #6884, and sent the rest to the $260 path. Example: age 40, $1,000 of wages and $12,000 of unemployment compensation; federal EITC $76.50, so main gives $259.60, and this PR gives $30.60.The age-path amount stays 40% of the federal childless maximum: $259.60 in 2025, which line 58 rounds to $260.
Tests
YAML. There are new cases in the four changed test files:
Two existing NJ cases changed expectations:
falseon the age path.Invariants (
tests/test_state_eitc_federal_qualifications.py) hold over a 1,260-household grid in 2025 and 2021. A Hypothesis version (…_property.py) covers 2021, 2022, 2025 and 2026.eitc_eligible, a paid federal credit, federal age eligibility, a qualifying child or a missing SSN.eitc, and so does any NJ filer who meets the federal age test or has a qualifying child. Any other NJ amount is 0 or 40% of the childless maximum, and it is positive only when the recomputed federal credit is.eitcfor a federally eligible filer, and equals it whenevereitcis paid. This is a differential check against the federal computation.me_eitcpays the statutory childless rate on it (20% in 2021, 50% from 2022).maine_known_gapexcludes, by name, the pre-existing Maine bug that Extend Maine's childless EITC expansion to 2021 students aged 19 to 23 #10526 fixes: 2021 full-time students aged 19–23.Main's code fails these invariants: NJ fails non-overlap in both years, and MD and ME fail the section 911 invariant.
Mutations. Each guard, removed or reverted on its own, fails exactly its own cases:
phased_in > reductionon the age pathThree more mutations target the entitlement invariants:
maine_known_gapfails the 2021 grid test, so the invariant catches Extend Maine's childless EITC expansion to 2021 students aged 19 to 23 #10526's bug.Runs at
0295745827. All 298 YAML cases in the 46 files that reference the changed variables or the NJ, MD and ME income taxes pass, as do the 9 cases of the contrib test that readsme_eitc. The two new Python files pass.Why Python, and what it costs. YAML can't state a property over every household. These files check the law's for-all statements over a 1,260-household grid per year, plus Hypothesis draws, against reference calculations written independently in the test:
The pattern follows
test_ctc_foreign_earned_income_exclusion.pyand its property file from #9750. The files build householdSimulations on the default system, with no reforms, copied parameter trees or datasets. They fall in the Rest Pythonremaininggroup, notREST_REMAINING_HEAVY_TESTS, which holds modules that retain extra systems.Local measurements (macOS, Python 3.14, host load about 110; not Linux CI):
So the addition is about 75 s and 1.1 GB above import. CI timings come from the first non-draft run.
Impact
Pending: a full default-dataset run for 2026, base main against this head, with a state breakdown. It covers
eitc,nj_eitc,nj_childless_eitc_age_eligible,md_eitc,federal_eitc_without_age_minimum,me_eitcandme_pro_forma_childless_eitc, plus state income tax and household net income. The section 911 parts should measure zero. The pinned default dataset (populace-us-2024-spm-20260909, read 2026-10-28) carries none of the inputs thatelects_section_911_exclusionreads: none of its 382 columns hasforeignor911in its name, so every Form 2555 leaf andforeign_housing_exclusiontakes its zero default, andforeign_earned_income_exclusion, which reads only those leaves, is zero. The NJ change can move NJ totals both ways: filers aged 25 to 64 who don't take up the federal credit lose $259.60, and low earners with a reduction above the phase-in amount gain.Limitations and interactions
takes_up_eitcthrougheitc. The NJ age path, and Maryland's pro forma for every childless filer, apply no take-up, as on main. That asymmetry is a methodology question, unchanged here.nj_childless_eitc_age_eligible.pyand the NJ EITC tests for the dependent-elsewhere bar. Apply Iowa, Kansas, Louisiana and Maryland rules for a filer who can be claimed as a dependent #10045 (draft) editsfederal_eitc_without_age_minimum.pyfor Maryland's. Expect small conflicts in those files; whichever lands second keeps both guards.eitc_eligible, so it inherits the change. The NJ age path keeps its own separate-filer bar, and the 2025 NJ-1040 also limits married separate filers to those with a qualifying child. The MD and ME pro formas apply no separate-filer rule yet, as on main; that follows Fix EITC eligibility for married separate filers #10307.eitc_eligibleeither. New Jersey's "all qualifications" inherits that federal gap.Review
Round 1 (GPT-6.1 Sol,
subfleet run --task review --tier hard, head785a43411b) returned REQUEST_CHANGES. It found no regression the PR introduced, and couldn't run the full-model suites in its sandbox. Its four findings and the fixes:maine_known_gap; Extend Maine's childless EITC expansion to 2021 students aged 19 to 23 #10526 fixes the bug.Round 2 is running at
0295745827.Axiom parity
axiom: us-md/statute/gtg/10-704 rulespec-us#1422 queued(extended with a section 911 companion case in this comment)axiom: us-me/statute/36/5219-S rulespec-us#1964 queuedaxiom: us-nj/statute/54a:4-7 rulespec-us#1965 queued(the module's rules are right; it lacks companion cases separating the two (a)(4) conditions)🤖 Generated with Claude Code