Repository navigation
Conversation
…t share He-C 6910.18(b) calculates the weekly cost share as monthly gross income times the step's percent, "divided by 4.33 weeks". The variable divided by 52/12, which understates a step 3 family's share by 0.077%. A parameter now holds the rule's divisor, and the cost share references point to the current rule. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…egers Under He-C 6910.18(e), New Hampshire applies each year's poverty guidelines from the following July, so the property test now draws families for July 2025, when the 2025 guideline applies under the rule and in the model. The boundary check compares integer cross-products, so 138% of the guideline counts as step 2. Invariant 4 now names the family it covers: one eligible child and no disability supplement. Case 10 stays in January 2025, since the YAML runner doesn't carry year-long inputs into a mid-year month. Its income exceeds 138% of both the 2024 and 2025 guidelines, and its comment gives both. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #10679 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 1 1
Lines 29 16 -13
=========================================
- Hits 29 16 -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:
|
PR Review: Divide monthly income by 4.33 weeks in New Hampshire's child care cost shareSummaryThe fix is right. I read the rule before the code.
The change touches only the step 3 cost share and, through it, the payment. Every changed or new expectation checks out by hand, CI is green at the head and the branch merges cleanly with current main. I found no critical or should-address issues. I have four suggestions; two of them are pre-existing gaps outside this diff. My basis is reading the rule, the code at the head and the CI logs, plus hand traces. I ran no Python locally. The NH DHHS pages (SR 24-08, FAM 938 and Form 2532) refuse automated requests, so I couldn't confirm the PR body's statement that they give no divisor. The binding rule settles the question regardless. Critical (must fix)None. Should addressNone. Suggestions
Verified correctHand checks. Basis: arithmetic from the rule's formula and the parameters at the head. The FPG for two is $21,150 ($1,762.50 a month) and for three $26,650 ($2,220.83). The preschool full-time licensed-center rate is $280.
Mutation. Basis: hand traces.
Effect on other variables. Basis:
References (CLAUDE.md "Parameter and variable references"):
Test design (CLAUDE.md "Test design and CI cost"):
Vectorization, entity and period. The parameter is a scalar read at the month's instant, on an SPMUnit and MONTH variable. The PR adds no state-gated int or enum key, so the NH #10156 pattern doesn't apply. Changelog. Source conflicts. None needs recording. The rule is the only source that states a divisor, and the old 52/12 had no source. The diff adds no conflict-sounding comment under variables or parameters, so the #10287 ratchet doesn't change on the merged tree. Partner files. No file under Axiom line assessment
CI statusAll 38 checks pass at head 7134a3c (run 42595254201,
Branch status
Verdict: APPROVE |
DTrim99
left a comment
There was a problem hiding this comment.
Approving. He-C 6910.18(b) divides monthly income by "4.33 weeks", the literal divisor the PR uses, and the July 2020 rule has the same 4.33, which supports the 2020-07-01 start. The cost share is weekly, and only step 3 changes. All 12 hand checks pass, every new line is pinned, CI is green at 7134a3cf98, and the branch merges cleanly with main. The four suggestions in the report above are optional; two concern earlier code, not this PR.
New Hampshire's Department of Health and Human Services sets a family's weekly child care cost share by multiplying monthly income by a percentage and dividing by 4.33 weeks.
nh_ccap_cost_shareonmaindivides by 52/12, about 4.3333. We read the 4.33 from a new parameter, so every family at step 3, above 138% of the poverty guidelines, owes 0.077% more. The model splits that share evenly across eligible children and floors each child's payment at zero, so a paid family's payment falls by up to the weekly increase.For example, a family of two with $4,000 a month owes $64.67 a week under the rule and $64.62 on
main.The rule
Under He-C 6910.18(b), "The family cap amount and cost share shall be calculated by taking the assistance group's monthly gross income, adjusted for family size, multiplied by the cost share percent associated with the step assigned to the family from Table 6910.1 and divided by 4.33 weeks." The version effective July 1, 2020 uses the same divisor in paragraph (d), so the parameter starts there.
We found no official source for dividing the cost share by 52/12. SR 24-08, FAM 938, Form 2532 and the CCDF plan state no divisor.
nh_ccapstill turns its weekly payment into a month at 52/12, because the rule sets payments by the week and names 4.33 only for the cost share.Under He-C 6910.18(e), the state applies each year's poverty guidelines from July 1, and the model applies them from January 1. The property test draws families for July 2025, when both use the 2025 guideline.
Invariants
test_nh_ccap_cost_share_properties.pydraws incomes and charges across the steps and compares the model withrule_cost_share, which restates the rule's table on its own:The existing parameters place the upper steps at 1.0001 and 1.3801 of the guideline, so a family inside those slivers takes the lower step. The test skips those incomes, and we leave the parameters as they are.
Tests
integration.yamlfrom $80.77 to $80.83, and in Cases 3 and 7 ofnh_ccap_cost_share.yamlfrom $71.76 to $71.81 and from $39.31 to $39.34.integration.yaml, a family at step 3 owes $64.67 a week and receives $933.12 a month.test_nh_ccap_cost_share_properties.py.remaining-2ran them in 2.7 and 8.5 seconds. The whole chunk ran for 28:54, setup included, and peaked at 7.2 GiB of resident memory. CI measures memory for the whole chunk, so we have no peak for this file alone, and we didn't time it locally. The chunk's runs vary by more than those 11 seconds: onmainat3386304d28, with a different set of files, it ran for 27:23 and peaked at 6.1 GiB.Impact
We ran the default dataset for 2026 on this branch and on its base, 040fe56. We estimate that New Hampshire's child care subsidies fall by $1.66 a year, from $16,945,702.42 to $16,945,700.76. Four of the 8 New Hampshire records that receive a payment in the model change, and their weights sum to 0.26 families, so the estimate rests on little data. National household net income falls by $1.67, and the national SPM poverty rates don't change.
axiom: TheAxiomFoundation/rulespec-us#2056 queued
🤖 Generated with Claude Code