Fix Maine EITC childless age expansion (#8927) and 2025 STFC base (#8928); close #8710, #8589 with evidence#8932
Merged
Conversation
Maine EITC (issue PolicyEngine#8927): 36 M.R.S. Sec. 5219-S(5)-(6) restores the EITC to childless filers aged 18-24 whom federal Sec. 32 bars only on the minimum-age floor. Add me_childless_eitc_age_eligible and me_pro_forma_childless_eitc, and take the larger of the federal EITC and the pro forma amount in me_eitc. Maine STFC (issue PolicyEngine#8928): the 2025 Schedule PTFC/STFC line 17 table shows a base of $215 for joint, head of household, and surviving spouse filers with no dependents; the model had $220. Set the 2025 base to $215 and re-split the dependent add-ons to $35/$65 so the with-dependent totals ($250/$280) are unchanged. Also add reported-household regression tests for issues PolicyEngine#8710 (DE per-column credit cap, already fixed by PolicyEngine#7940) and PolicyEngine#8589 (PA retiree income, already fixed by PolicyEngine#8922). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8932 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 3 3
Lines 55 48 -7
=========================================
- Hits 55 48 -7
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
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.
Summary
Accuracy-fix lane covering four issues. Two need code changes (Maine EITC #8927, Maine STFC #8928) and are fixed here with page-anchored citations and tests including the reported households. Two are already correct on
mainand are documented with reproductions for closing.mainby #7940 — close with evidencemainby #8922 — close with evidenceDraft — lead reviews before merge/ready/close.
#8927 — Maine EITC omits the §5219-S childless age expansion (FIXED)
Law. 36 M.R.S. § 5219-S:
Bug.
me_eitcreturnedeitc * match_rate, andeitcis the actual federal credit — which is $0 for childless filers under the federal age floor (25 in 2022+). So a childless Maine filer aged 18-24 received $0 instead of 50% of a pro forma federal EIC.Fix. New
me_childless_eitc_age_eligible(childless tax unit with head/spouse aged 18 up to the federal minimum childless age) andme_pro_forma_childless_eitc(federal phase-in/reduction with the age gate dropped, retaining the § 32 investment-income and SSN tests, mirroring Maryland'sfederal_eitc_without_age_minimum).me_eitcnow applies the match rate tomax(eitc, me_pro_forma_childless_eitc). Maine lowers only the age floor; the federal childless maximum age (64) is preserved, so 65+ childless filers still get $0.Reproduction (2025, ME, MFJ, ages 23/24, no dependents, $10,476 wages; from PolicyEngine/policyengine-taxsim#1056):
eitc= 0,me_eitc= 0me_eitc= $324.50 (TaxAct return shows $325 on Form 1040ME)Fixes #8927.
#8928 — Maine STFC 2025 base amount is $220, form shows $215 (FIXED)
Source. 2025 Schedule PTFC/STFC, line 17 table, page 4. Lowest income band:
The model had a 2025 base of $220 for joint/HoH/surviving-spouse (single $155 was correct). It matched the form for filers with dependents ($220 + $30 = $250, $220 + $60 = $280) but overstated the 0-dependent credit by $5. The 2+-dependent integration test from #8266 was insensitive to the base/add-on split, so the error passed.
Fix. Set the 2025 joint/HoH/surviving-spouse base to $215 and re-split the 2025 dependent add-ons to $35/$65 (from $30/$60), keeping the with-dependent totals at $250/$280. Adjacent years verified against their forms and left unchanged: 2023 = $200 (2023 form), 2024 = $210 (2024 form). Also corrected the 2024 reference links (they pointed at the 2023 file). Added 0-dependent pin tests (joint/HoH/surviving-spouse) plus a 2024 control.
Reproduction (2025, ME, MFJ, no dependents, low income):
me_sales_tax_fairness_credit= 220.00 before, 215.00 after (matches form).Fixes #8928.
#8710 — DE separate/combined non-refundable credit cap (ALREADY FIXED — recommend close)
Reported cause: non-refundable credits capped against combined tax instead of per-column. This was fixed on
mainby #7940 ("Fix DE Filing Status 4 per-column credit allocation", merged 2026-07-05, closing the sister issue #7931), which rewired the separate path sode_income_tax_before_refundable_credits_separateapplies per-column credits inde_income_tax_after_non_refundable_credits_indv(PIT-RES Line 32 ≤ Line 26 per column). The draft PR #8726 that targeted this issue is now closed.Reproduction of the issue's household on current
main(DE, MFJ, both age 20, 1 dependent, $21,790 interest split 50/50, separate/combined):de_income_tax= $59.16 (was the reported $8.33). Column B's $220 personal credit is correctly capped at its own $169.16 tax; the surplus does not offset Column A. Form/TAXSIM ground truth is $58; the ~$1.16 residual is PolicyEngine's continuous rate-bracket computation vs the form's rounded tax table, unrelated to the credit-pooling bug. Every DE non-refundable credit (de_personal_credit,de_aged_personal_credit,de_cdcc,de_non_refundable_eitc) was audited: none cross-offsets between columns on the separate path.Added the reported household as a regression test. Recommend closing #8710 with reference to #7940.
#8589 — PA over-charges qualified retirement income for retirees (ALREADY FIXED — recommend close)
Reported cause: PA taxes pension/IRA/401(k) distributions for past-retirement-age retirees. This was fixed on
mainby #8922 (merged 2026-07-06), which addedpa_nontaxable_retirement_distributionscovering IRA/401(k)/403(b)/SEP/Keogh under 61 Pa. Code § 101.6. The issue's household also includestaxable_pension_income(handled by the pre-existingpa_nontaxable_pension_income) and Social Security (handled bytax_exempt_social_security), so all four income components are exempt.Reproduction of the issue's exact household on current
main(2026, PA, MFJ, ages 67/65, $60k pensions + $30k IRA + $50k SS):state_income_tax= $0.00 (expected $0.00). The pre-retirement gating still works: a 401(k) or pension distribution at age 50 is taxed ($614 on $20k), at age 67 is exempt ($0) — no source type is missed.Added the reported household as a regression test. Recommend closing #8589 with reference to #8922.
Tests
All baseline trees pass on this branch (local
policyengine-core test):🤖 Generated with Claude Code