Fix MA TAFDC income-test boundary and IL TANF minimum payment#8918
Merged
MaxGhenis merged 4 commits intoJul 6, 2026
Conversation
Massachusetts (PolicyEngine#8790): 106 CMR 704.260 makes the TAFDC financial eligibility income test inclusive at the applicable Need Standard -- total countable income "does not exceed" (is equal to or less than) the standard. PolicyEngine used a strict `<`, so a filing unit whose income exactly equals the standard was wrongly denied. Switched to `<=` and retargeted the reference to 704.260. PolicyEngine's payment standard is built from the TAFDC income-limit (Need Standard) tables, so it is the applicable Need Standard for this test. Illinois (PolicyEngine#8761): IDHS PM 10-01-02 (WAG 10-01-02) requires that nonexempt income fall below the payment level by at least the $1 minimum payment for cash eligibility to exist, rounds regular monthly TANF benefits down to the nearest whole dollar, and does not issue payments below $1. PolicyEngine used `income <= payment_level` and paid the raw, unrounded difference. Added a dated `minimum_payment` parameter, made income eligibility require `payment_level - income >= minimum_payment`, and floored the monthly benefit to whole dollars with a below-minimum cutoff. New York (PolicyEngine#8835) needs no change: the 62/63/64% earned income disregard (2023/2024/2025) already landed on main in PolicyEngine#8912, and primary-source review (23/24/25-ADM-04) confirms those values and the $150 work-expense disregard order. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The changelog check requires changelog.d/<name>.<type>.md (no subdirectory). Move the fixed fragments from changelog.d/fixed/<issue>.md to the flat form. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Collapse the parameters(period)...minimum_payment lookups onto one line to satisfy ruff format --check. 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 #8918 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 3 3
Lines 55 42 -13
=========================================
- Hits 55 42 -13
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:
|
The analytics-coverage edge cases pin annual il_tanf (and the tanf aggregate) values; flooring each monthly benefit to whole dollars lowers the annual totals by a few dollars. Update the five affected IL cases to the floored amounts. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
hua7450
added a commit
to hua7450/policyengine-us
that referenced
this pull request
Jul 6, 2026
The second upstream merge brought PolicyEngine#8918 (IL TANF floors each monthly grant to whole dollars per IDHS PM 10-01-02 and adds the $1 minimum): 10 il_tanf assertions drop by a few dollars (e.g. the partial-year case becomes exactly 7 x 493 + 3 x 513 = 4,990). Derivation comments updated. The upstream suite-wide before_lsr fixture migration (PolicyEngine#8920) and its re-pins of old fixture layouts were superseded by our rewrites; its migration of the named partner fixtures merged cleanly. The MA TAFDC inclusive-boundary fix (PolicyEngine#8918) moved no pinned values. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 tasks
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
TANF review covering three issues. Two produced verified code fixes (MA, IL); one (NY) was already fixed on
mainand is confirmed correct against the primary source, so it needs no change.Massachusetts TAFDC financial eligibility — fixes #8790
Verified against 106 CMR 704.260. The regulation's income test is inclusive at the applicable Need Standard: total countable income "does not exceed" — i.e. "the assistance unit is eligible" when income "is equal to or is less than the appropriate Need Standard." PolicyEngine used a strict
<, so a filing unit whose income exactly equals the standard was wrongly found ineligible.ma_tafdc_financial_eligible: changedincome < payment_standardtoincome <= payment_standard; retargeted the reference to 704.260.ma_tafdc_payment_standardis built from the TAFDC income-limit (Need Standard) tables, so it is the applicable Need Standard for this test. No separate variable is needed; documented inline.Illinois TANF minimum payment and income eligibility — fixes #8761
Verified against IDHS PM 10-01-02 (WAG 10-01-02), manual item 15820:
gov.states.il.dhs.tanf.minimum_payment($1).il_tanf_income_eligible: changedincome <= payment_leveltopayment_level - income >= minimum_payment(income equal to or above the payment level is ineligible).il_tanf: floor the regular monthly benefit to whole dollars and pay nothing when the floored benefit is below the minimum.New York earned income disregard — #8835 (no change needed)
The 62/63/64% disregard (effective 2023-06-01 / 2024-06-01 / 2025-06-01), keeping 50% dated to 2022-10-01, already landed on
mainin #8912. Primary-source review confirms the values and the disregard order (percentage EID first, then the $150 work-expense disregard, which PolicyEngine already carries):The shelter-allowance sub-note in #8835 (PE's 277/283/400/... vs. an alternate 214/219/309/... schedule) is a county-schedule modeling question, not a value error, and is not resolved here.
Testing
All run with
policyengine_core.scripts.policyengine_command test … -c policyengine_us:il_tanf/ma_tafdc)🤖 Generated with Claude Code