Repository navigation
Fix Missouri TANF grants, territory SNAP limits, Hawaii CCAP income and SSI food timing - #10332
Conversation
13 CSR 40-2.310(14): "In the payment of TA benefits, the amount shall always be lowered to the nearest dollar interval", and no payment is made below $10. Floor the capped grant before the minimum-payment test and update tests that expected cents. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…in Islands 7 CFR 273.9(a)(1)(i) and (a)(2)(i) set the Guam and Virgin Islands income eligibility standards at the 48 contiguous States' poverty guidelines. snap_monthly_fpg_amounts now maps GU and VI to CONTIGUOUS_US instead of their zero HHS placeholders. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n to incapacitated adults HAR 17-798.3-10(b)(11) (eff. 2021-08-06) counts Hawaii public assistance payments before overpayment recovery. Add hi_ccap_tanf_income (hi_tanf under the TANF take-up gate, which equals tanf for Hawaii households without the cross-state cycle tanf would create) to the CCAP sources from 2021-08-06. HAR 17-676-54.1(c)(4),(d)(4) deduct the actual cost of care of each incapacitated adult receiving assistance, capped at $175 (full time) or $165. Replace the child-care and generic care_expenses path with a new per-person input, hi_tanf_qualifying_incapacitated_adult_care_expenses, capped per adult. This also removes the CCAP-TANF dependency through childcare_expenses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
89 FR 21199 removed food from in-kind support and maintenance effective September 30, 2024. The PMV trigger, PMV amount, actual shelter value, ISM and SSI countable income were YEAR-defined, so the January 1 lookup kept food counting through December 2024. Make them MONTH-defined (annual queries sum the months), date the parameter 2024-09-30, add a monthly exclusion helper alongside the annual one, and add an input for September 2024 food received only on or after September 30. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sed CCAP test input Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…January test months Hawaii TANF reads employment_income_before_lsr, so tests that set employment_income saw zero TANF earnings and the maximum TANF grant, which CCAP now counts. Expected values are unchanged. Year-defined inputs are not read in a non-January test month, so the new cases use January. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@MaxGhenis — heads-up on an overlap. #10254 (merged today as 52abee5, fixes #10208) limits the Hawaii TANF dependent care deduction to incapacitated adults (HAR 17-676-54.1(c)(4), (d)(4)), the same rule as this PR's "HI TANF care deduction covers incapacitated adults only" item, in the same files ( So the HI TANF part of this PR is now on main and will conflict. Could you drop it from this PR (keeping the MO TANF rounding, SNAP GU/VI, HI CCAP and SSI items), or rebase it onto main? 🤖 Posted by Claude Code |
|
Picking this up for the US hub. I'll post a hand-off comment here when it's ready. Generated by Claude Code |
Main's #10254 already limits the Hawaii TANF dependent care deduction to incapacitated adults' care, reading care_expenses for disabled adults. Keep main's implementation and tests and drop this branch's separate input variable, which nothing else reads. In the source-conflict ratchet, keep main's FL LIHEAP entry and this branch's removal of the HI CCAP entry. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nvariants ssi_countable_income and ssi_in_kind_support_and_maintenance are now MONTH-defined. Year-keyed inputs are still split evenly across the months, but the YAML runner sets a bare input at the test's own period, so tests that entered an annual amount in a monthly case now supplied that amount for one month. That is why the IN, FL, MT and LA supplement tests failed, and why CA CAPI cases from main fail after the merge. Key those inputs to their year so they keep their annual meaning; no expected value changes. Add property tests: with nothing changing within a year, every month gives the same countable income, ISM, SSI and state supplement, annual countable income is twelve months, and ISM stays within the monthly PMV; in 2024 only food-only support changes, from October. Drop the Hawaii TANF clause from the changelog: main's #10254 made that change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Give each randomized person their own tax, SPM, family and marital unit so no income is shared, and run the annual countable income input in its own simulation: an input sets the variable for every person, which had zeroed 2025 countable income for the rest. Add the invariant that an eligible individual's monthly countable income is that month's ISM less the $20 general exclusion, which catches annual ISM reaching the monthly computation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main now lists military_retirement_income, which adds Survivor Benefit Plan annuities to retirement pay, in the 2017 list, and its code-health guard rejects the raw military_retirement_pay input in benefit source lists. The 2021-08-06 list added here was copied from the older 2017 list; it is now main's 2017 list plus hi_ccap_tanf_income. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Unify the source list under both Hawaii rule chapters and cover the first modeled month and TANF abolition. Update the changelog for the grant table, SSI dating and monthly input contract. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tests that main added since this branch began set ssi_shelter_support_value and ssi_countable_income in month-period cases as annual amounts, and this branch reads both inputs by month. Two Colorado ISM cases and two uncapped SSI cases now give the monthly shelter value: 200 for 2_400, 300 for 300 * 12 and 10 for 10 * 12. Four California CAPI cases key every ssi_countable_income input to 2026, as this branch's own CAPI cases do, so each amount splits into twelve months. No expected value changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Under 20 CFR 416.1163(e)(2), SSI under spousal deeming cannot exceed the individual Federal benefit rate less the claimant's own countable income. SSA computes that amount from the claimant's own income in the budget month (POMS SI 01320.400 C.2) and values any ISM at the individual PMV (SI 01320.150 B.1.b). uncapped_ssi_without_spousal_deeming read ssi_pmv_applies and ssi_shelter_support_value for the whole year. Both now hold month values, so the year read took December's PMV status and the sum of the monthly shelter values. December 2024 pays on October income, which excludes food (89 FR 21199), so the formula skipped the individual PMV in every 2024 month for food-only support. A claimant under deeming with food-only support got $717.17 a month through November, where SSA pays $943 - $314.33 = $628.67. For shelter support that starts in July, the formula applied the individual PMV to the months before it began. The formula now reads each month's PMV status, which ssi_pmv_applies dates under 416.420(a), with that month's shelter value and income, and applies the monthly exclusions. It returns the same amounts whenever inputs hold steady across the year, so every earlier case keeps its value. Five new YAML cases pin 2024 under deeming: the November and December payments, food received only from September 30, the full year and shelter support from July. The monthly ISM property test now runs the deeming limit before uncapped_ssi, which reads it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… in month tests Colorado charges an SSI recipient the ISM that SSA charges for the same month (9 CCR 2503-5 3.520.79(B)(6) and 3.520.71(E)). Both _ssa_ism and formula_2002 in co_ssa_in_kind_support_and_maintenance, which #10183 added to main, read ssi_in_kind_support_and_maintenance for the year and divided by 12. This branch computes that ISM by month, so the year read summed twelve months and gave Colorado the year's average. Both formulas now read the month. For a food-only SSI recipient in 2024, Colorado now counts $334.33 in January and nothing in December, where it counted $306.47 in each. New Cases 20 and 21 pin those two months. Every existing Colorado case holds its inputs steady across the year, so none of their expected values change. The four new month cases outside January in uncapped_ssi_without_spousal_deeming.yaml set age, earnings and state as plain values. Core stores a plain yearly input in a month case for the year that starts in that month, so those inputs missed calendar 2024. The claimant then took the default age of 40, failed SSI's age test and got 0, which failed the ssa-usda baseline job. The cases now key those inputs to 2024, as this branch's other 2024 month cases do, and keep their expected values. Two comments in that file now attribute the $207.50 deemed amount and the $981.67 deeming computation to the model. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…at the month Case 22 checks that formula_2002 counts SSI's August 2004 ISM ($208), not a twelfth of the year's. The property test now reads ssi_in_kind_support_and_maintenance for the month it compares. The _ssa_ism comment now says the model dates food by the income month and shelter by the payment month. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ssi_pmv_applies called parameters(income_period) and parameters(income_period.stop). Core builds and caches the whole parameter tree for each date a formula asks for. No other formula asks for a month's last day, and January and February reach back to the prior November and December, so one simulated year added 14 dates. On dc_ptc.yaml the process built trees for 32 dates where main builds 18, and the file took 16.3 s against main's 10.4 s. Reading the food_counts parameter itself at the two dates gives the same values, builds main's 18 trees, and runs the file in 9.4 s. The two property tests that pass fake parameters now give them the tree attribute the formula reads. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
|
David, here's where each item of your November 5 review stands at
An independent AI review of the commits through 🤖 Generated with Claude Code |
Commits through f04ff49 and the description answer the critical item, both should-address items and Suggestions 3 and 5, and the description records Suggestions 1, 2, 4 and 6 as follow-ups. My reply above maps each item.
|
US + core hub merge audit, us#10332 at
🤖 Generated with Claude Code |
Hawaii CCAP counts Hawaii TANF since #10332, so its R1 and R2 rows set wages above the aid limits, as the other eight rows with cash aid do. R5 starts from one more kind of federal source: a variable whose own code names a Social Security amount and no railroad amount, the check R3 runs on state code. That finds is_medicare_eligible, which tests Social Security disability for 24 months and leaves out the disabled railroad annuitants 42 U.S.C. 426(b)(2)(B) covers. FEDERAL_GAPS lists it and the seven premiums and tests state code reads within two steps of it. R5 reads a parameter path through names assigned in the same module or function, and a list named in a string. R4 maps each railroad amount to the dollars it holds and fails when two entries of a list share any, so the tier 1 amount beside the taxable total fails too. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Correct Missouri TANF grants, Guam and Virgin Islands SNAP income standards, Hawaii child care income, and SSI food support timing.
The affected populations include Missouri TANF units, Guam and Virgin Islands SNAP households, Hawaii child care applicants and recipients who receive TANF, and SSI recipients, including those who receive state supplements.
Missouri TANF
Missouri prints whole-dollar maximum grants in 13 CSR 40-2.310(13) and DSS Appendix B.
Use that row for the maximum grant and percentage-of-need income test: sizes 1–12 receive $136, $234, $292, $342, $388, $431, $474, $514, $554, $595, $635 and $675 before subtracting countable income.
Add $40 for each person above 12. For example, a size-16 unit receives $675 + 4 × $40 = $835; multiplying its $2,420 standard by 0.34526 gives $835.52920.
Keep the parameter's 1991-01-01 start date, matching the existing standard of need. Remove the
maximum_benefit/percentage.yamlparameter, which the new formula no longer reads.We confirmed the regulation's 2016 amendment and the manual's identical rows from July 1990 and July 1993; we did not fetch earlier regulatory editions.
Lower each payment to the whole dollar under section (14), and keep the $10 minimum. DSS also directs staff to round downward in Manual 0210.010.15.
Round the capped deficit to four decimal places before flooring. This precision choice can change deficits within $0.00005 of a whole dollar; deficits in whole cents keep their floor.
For example, with a direct countable-income input of $127.00001 and a $234 maximum, float32 stores a $106.99999237060547 deficit; the guarded floor pays $107.
A bounded arithmetic search over 5,985,732 combinations of earnings in whole cents for two new applicants found no witness, so the regression supplies countable income directly.
The search covered two earners with at least $120 each per month and combined exact countable income from $1 to $282.
SNAP in Guam and the Virgin Islands
Map GU and VI to contiguous-state poverty guidelines for SNAP income standards under 7 CFR 273.9(a).
Keep their state groups, allotments and deductions, along with main's existing large-household increment rounding.
HHS sets a $21,640 guideline for two people and a $5,680 increment in its 2026 guidelines.
For FY2027, the two-person net limit equals ceil(21,640 / 12) = $1,804; the gross limit equals ceil(1.3 × 21,640 / 12) = $2,345.
All ten territory regressions key
state_codeto 2026 so October calculations exercise GU or VI.Hawaii child care
Count Hawaii TANF throughout the modeled source list, starting 2017-08-01.
Hawaii counts public assistance under HAR 17-798.2-10(b)(11), with a March 8, 2008 effective date and a December 31, 2017 compilation date.
Hawaii continues counting it under HAR 17-798.3-10(b)(11) from August 6, 2021.
Cite both chapters in the source list. Hawaii counts $1,100 for families with $1,000 earnings and $100 Hawaii TANF before and after the chapter change.
hi_ccap_tanf_incomereadshi_tanfunder the take-up and abolition gates. Reading nationaltanfwould traverse other states' child care deductions back into Hawaii CCAP.A generic
tanfinput does not override this source; supplyhi_tanforhi_ccap_tanf_income.The abolition test supplies a $100 Hawaii grant and expects zero TANF income and $1,000 total CCAP income.
We keep the adult-care TANF deduction from #10254 and update its parameter metadata.
SSI monthly inputs and food timing
SSA excludes food received on or after September 30, 2024 under 89 FR 21199.
Use the second prior income month for the food parameter and transition-date flag under 20 CFR 416.420(a).
Read food receipt in that income month when it falls in the payment year. For January and February, use payment-month food receipt because one-year household inputs contain no prior-year history.
We choose this dating to match food receipt with its governing rule while retaining one-year input coverage.
For pre-exclusion years, we also shift food-only PMV timing by two months when food receipt changes within the year.
Keep shelter inputs in the payment month. Value the PMV at the payment month's federal benefit rate, consistent with section 416.420's Example 2.
Define
ssi_pmv_applies,ssi_pmv_amount,ssi_shelter_support_value,ssi_in_kind_support_and_maintenanceandssi_countable_incomemonthly.Callers supplying a single month's amount must supply a monthly value. Year-keyed monetary inputs split evenly across months, and annual monetary amounts sum monthly values.
We re-key supplement and CAPI inputs without changing their amounts or expected outputs, and keep the annual exclusions wrapper's annual interface.
We give
ssi_shelter_support_valueas a monthly amount in main's month-period tests that gave an annual one: 300 and 10 inuncapped_ssi_without_spousal_deeming.yaml, and 200 inco_ssa_in_kind_support_and_maintenance.yaml. Their expected outputs stay the same.Under spousal deeming, SSA pays no more than the individual rate less the claimant's own countable income (20 CFR 416.1163(e)(2)). #10141 added that limit to main as
uncapped_ssi_without_spousal_deeming.Compute the limit each month from that month's
ssi_pmv_applies,ssi_shelter_support_valueand income.SSA compares the deeming result with the amount the claimant's own budget-month income leaves (POMS SI 01320.400 C.2), and in that computation values ISM at the individual PMV (SI 01320.150 B.1.b).
For example, take a Florida claimant age 70 with food-only support throughout 2024 and a spouse who earns $500 a month. SSI equals $628.67 a month through November and $943 in December, $7,858.33 for the year. Main counts the food in December too.
For continuing food-only support in 2024, PMV = $943 / 3 + $20 = $334.3333. Monthly countable income equals $314.3333 in January–November and zero in December.
October and November SSI equal $628.6667; December SSI equals $943. Annual ISM equals 11 × $334.3333 = $3,677.6667, and annual SSI equals $7,858.3333.
If food support starts in October, SSA pays $943 SSI in October and November because August and September contain no food support.
Witness at
f04ff49222b0c281dece50bcce569dda19a3d06f, with displayed amounts rounded to cents:Read monthly countable income when allocating parental resources. SSA reallocates those resources in the first month a child's eligibility changes under POMS SI 01330.200 B.
The two-child regression allocates $4,000 to each child in January and November 2024, then $2,000 each in December when the food-supported child becomes income-eligible.
When SSA charges an SSI recipient ISM, Colorado charges a matching ISM under 9 CCR 2503-5 3.520.79(B)(6).
In
co_ssa_in_kind_support_and_maintenance, which #10183 added to main, read SSA's ISM for the same month instead of a twelfth of the year's.For example, Colorado counts $334.33 in January 2024 and nothing in December for an SSI recipient with food-only support all year, where main counts $334.33 in both months.
Validation and invariants
e2aa913f4dpassed all 36 jobs on GitHub's merge with main06c0dcbc54. Before the merge of main, Pull request run 42159523214 passed every case in the 33 test files the PR changed atf04ff49222: 457 YAML cases and 236 Python cases, 693 in all.ssi_pmv_appliesreads, no other month enters.The committed SSI properties check annual input conversion, sums of monthly amounts, monthly PMV bounds, income-month food reads, couples, shared-resource children, and each state supplement against independent January 2026 reference inputs.
The couple property also checks the section 416.1163(e)(2) limit for a claimant under deeming in January, February, October, November and December 2024.
Five 2024 cases in
uncapped_ssi_without_spousal_deeming.yamlpin that limit at $628.67 in November, $943 in December and $7,858.33 for the year. It stays at $943 in November when all September food arrived on September 30, and in March when shelter support starts in July.Cases 20 and 21 in
co_ssa_in_kind_support_and_maintenance.yamlpin Colorado's matching ISM for a food-only SSI recipient at $334.33 in January 2024 and $0 in December. Case 22 pins the 2002–2006 formula at $208 in August 2004 for shelter support that starts in July. The file's other cases keep their expected values.We compare with independent January 2026 inputs; we do not use historical main outputs.
We compared four separate Texas households across all twelve 2024 months against main
040fe5686c956dfce960f7c55fa263687a5bf669.SSI, countable income and ISM each differ in 23 of 48 person-months, using a one-cent tolerance. The household without support matches in every month.
For continuing support, only December changes: annual SSI rises from $7,544 to $7,858.33, and annual ISM falls from $4,012 to $3,677.67.
Main counts August-start and October-start food throughout 2024. This PR counts August-start food in October and November, and excludes October-start food from every 2024 payment.
We haven't compared 2024 populations or state supplements with main.
Missouri properties retain caretaker and dependent-parent checks against the printed row. SNAP regressions cover territory thresholds, one-dollar excesses and large households.
Not in this PR
Follow-ups
Read monthly ISM for California split SSI/CAPI couples
ca_state_supplement_personstill reads ISM atperiod.this_yearfor split couples and averages the 2024 change across months.Add a split-couple witness and read ISM for the same month.
Read monthly ISM for Maryland PAA
md_paa_countable_incomecounts the year's ISM, andmd_paaandmd_paa_imputed_federal_ssitake a twelfth of that yearly income each month, so Maryland PAA also averages the 2024 change across months.Add a 2024 witness and count each month's ISM in that month.
Verify Guam and Virgin Islands BBCE gross poverty standards
tanf_non_cash_fpgstill indexes the territories' zero placeholders for BBCE gross standards.Confirm the governing territorial rule before extending the SNAP mapping to that reader, and update its comment about keeping the two guideline readers in sync.
Move the SNAP territory guideline list to a parameter
SNAP_CONTIGUOUS_US_GUIDELINE_AREASlists Guam and the Virgin Islands in Python.A list parameter under
gov.usda.snap.income.limit, citing 7 CFR 273.9(a)(1)(i), would let reforms change it.Document SSI's remaining retrospective accounting rules
ssi_countable_income's documentation doesn't yet say that other income sources use current-month accounting.Add that sentence, and open a tracking issue for the section 416.420 exceptions listed under "Not in this PR".
Reconcile SSI period changes when overlapping PRs land
Open #10146 overlaps the exclusions helper, ISM, PMV, countable income and parental resource reader; #10639 overlaps the resource reader and its YAML.
Whichever PR lands second must reconcile the monthly definitions. We changed no sibling branch.
This branch's merge of main brought in #10141 and #10183.
4f3b5101d0converts the annual inputs in their month cases,2a132f7df1computes #10141's section 416.1163(e)(2) limit by month,75a5e4e618makes #10183's Colorado matching ISM read the month, anda6e025d84badds Case 22 for its 2002–2006 formula.e2aa913f4dreadsfood_countsas one parameter at the income month's two dates, sossi_pmv_appliesbuilds no parameter tree for a month's last day. Ondc_ptc.yamlthe earlier read built trees for 32 dates where main builds 18.Microsimulation impact
We estimate that this PR lowers Missouri TANF by $19,685 (0.02%) and raises Hawaii child care countable income by $29.5m (0.04%) in 2026 on the default dataset. We compared
mainat1cbce6a238with this branch ate2aa913f4d.Missouri TANF rises for 4 sampled SPM units (11,946 weighted) and falls for 4 (21,482 weighted), by at most $9.63 a year each. Hawaii child care countable income rises for 5 sampled SPM units (2,673 weighted), by at most $13,435 a year each; we didn't measure the
hi_ccapsubsidy itself. Household benefits rise by $1,246 and household net income by $1,183, for 2 and 4 sampled households (19,311 and 23,001 weighted), by at most $3.64 each. SSI changes by less than a cent for every sampled person, SSI countable income changes by at most $0.25, and SSI in-kind support and maintenance and Colorado's state supplement each total $0 on both sides. SNAP and federal and state income tax don't change.mo_tanfhi_ccap_countable_incomesnapssissi_countable_incomessi_in_kind_support_and_maintenanceco_state_supplementstate_income_taxincome_taxhousehold_benefitshousehold_net_incomeThis PR adds
hi_ccap_tanf_income, so main has no total to compare.impact: Missouri TANF −$19,685 (−0.02%) and Hawaii child care countable income +$29.5m (+0.04%) in 2026 (8 and 5 sampled SPM units; 33,428 and 2,673 weighted); household net income +$1,183; SNAP and income taxes don't change
axiom: TheAxiomFoundation/rulespec-us#1444 queued, extended with two comments (MO TANF rounding and printed maximum grants; re-pin and encoder approval); TheAxiomFoundation/rulespec-us#1394 queued, extended with a comment (SNAP GU/VI FY2027 companions; signed encoding and HHS source admission); TheAxiomFoundation/rulespec-us#1757 queued, extended with two comments (HI CCAP TANF income from August 2017; re-pin and encoder approval); TheAxiomFoundation/rulespec-us#1865 carried by #10254 (no HI TANF deduction change here); TheAxiomFoundation/rulespec-us#1866 queued, extended with a comment (SSI food ISM by income month; historical corpus ingestion, re-pin and encoder approval).
🤖 Generated with Claude Code