Repository navigation
Add North Dakota CCAP Workforce Benefit and co-payment waivers - #10816
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ce second caretakers From October 2011 through September 2026, North Dakota charged the TANF and Diversion co-pay for child care that followed from the activity of a caretaker who received SSI. Release 26.3 repealed that rule on October 1, 2026. From June 2024 through December 2025, North Dakota approved Workforce Benefit households whose second caretaker had no allowable activity (ML 3819, 3862 and 3909). Release 26.1 ended that exemption in January 2026, and a dated parameter sets both dates. The Workforce test now counts only the tax unit head and spouse. From October 2026, only an SSI child in care triggers the TANF co-pay. One in-care variable replaces two copies of that test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis
marked this pull request as ready for review
November 13, 2026 23:20
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #10816 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 1 17 +16
Lines 37 242 +205
==========================================
+ Hits 37 242 +205
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:
|
Contributor
Author
|
US + core hub merge audit, us#10816 at
🤖 Generated with Claude Code |
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.
Add North Dakota CCAP Workforce Benefit income and co-payment waivers from June 1, 2024, following 400-28-20-40 and Manual Letter 3819.
Add Crossroads, Diversion and ARSEN co-payment waivers, and apply the TANF and Diversion exceptions in 400-28-90-20 and 400-28-45-05, including the caretaker-SSI exception North Dakota applied until October 2026.
Exempt the second caretaker of a Workforce Benefit household from the activity test from June 2024 through December 2025.
Closes #10710
Closes #10711
Sources
Invariants
These invariants apply within the existing North Dakota household scope.
test_nd_ccap_waivers_preserve_bounds_and_default_behaviorinpolicyengine_us/tests/core/test_nd_ccap_waivers_invariants.pychecks these properties across generated and explicit cases.The YAML tests exercise effective dates, application and review income tests, the second-caretaker exemption, individual waivers, caretaker exceptions, SSI ages and care, kinship treatment, low-income overrides and family isolation.
Methodology choices
gov.states.nd.dhs.ccap.workforce.second_caretaker_activity_exempt. North Dakota counts the qualifying caretaker's own employment as an allowable activity.ssi, through September 30, 2026. Apply that exception to the whole family, as the disqualified-alien and non-legally responsible inputs do, even when the care follows from another caretaker's activity.ssi, reported child care hours or days, andis_childor disability below North Dakota's disabled-child age limit. Under 400-28-45-05, "Child care for an SSI child remains subject to co-pay requirements," so an SSI child outside care leaves the waiver in place.meets_ccdf_activity_testinput carries new employment and job search, including the second caretaker's untimed activity search. Fourth, the child support deduction does not track private support or garnishment fees.Hand calculations
For the waiver examples, annual SMI of $120,000 gives monthly SMI of $10,000. At monthly countable income of $4,500, North Dakota uses the 44%-46% band:
min(0.02 * 0.44 * 10,000, 0.07 * 4,500) = min(88, 315) = 88.A TANF or Diversion family whose caretaker receives SSI owes that 88 in September 2026 and nothing in October 2026. A TANF family whose SSI child attends care owes 88 from October 2026; if the SSI child attends no care, it owes nothing.
The ordinary application and continuing thresholds equal
0.75 * 10,000 = 7,500and0.85 * 10,000 = 8,500. Annual earnings of $240,000 give monthly income of $20,000; a qualifying Workforce family passes both income tests and owes no co-payment.In ML 3819 Example 1, one caretaker qualifies for the Workforce Benefit and the other has no activity. With $240,000 in annual earnings, the household passes the income and activity tests in January 2025 and fails the activity test in January 2026.
Tests
Pull request run 43565599078 at
6e175fe802passed all 36 jobs on GitHub's merge with main0575612a77.The policy YAML files pass, one file per run:
copay/nd_ccap_copay.yamlcopay/nd_ccap_tanf_copay_exception.yamlcopay/nd_ccap_categorical_copay_waiver.yamleligibility/nd_ccap_income_eligible.yamleligibility/nd_ccap_workforce_benefit_eligible.yamleligibility/nd_ccap_activity_eligible.yamleligibility/nd_ccap_eligible.yamlrates/nd_ccap_base_subsidy.yamlnd_ccap.yamlintegration.yamlmissing_hours/integration.yamlcourt_supervision.yamlThe property test passes, and
policyengine_us/tests/test_programs_registry.pypasses 872 cases with 10 skipped.Without this change's formulas, the new caretaker-SSI, second-caretaker, caretaker-only Workforce and SSI-child-in-care cases fail, and so does the property test. Four mutants each fail a YAML case: an exemption that never ends, an exemption without a Workforce caretaker, a disabled 19-year-old counted as an SSI child, and any member's SSI counted as a caretaker's.
No test checks the activity exemption in its first month (June 2024) or last month (December 2025); the activity cases sit in May 2024, January 2025 and January 2026.
Ruff format, Ruff check and
git diff --checkpass.Microsimulation impact
We estimate that this branch changes none of the outputs below in 2026 on the default dataset. We compared
mainat75aee22d6dwith this branch at6e175fe802.nd_ccapnd_child_care_subsidieschild_care_subsidiesstate_income_taxincome_taxhousehold_benefitshousehold_net_incomeOn that dataset, we estimate $0 of North Dakota child care assistance in 2026 at both commits, so the household tests above show what this change does.
axiom: TheAxiomFoundation/rulespec-us#2233 queued (N.D.A.C. 75-02-01.3-04 and CCAP manual 400-28-20-40, 400-28-35-02, 400-28-45-05 and 400-28-90-20; the pinned release lacks them, and the corpus lacks ML 3819, Releases 26.1 and 26.3 and the archived 90-20, so the signed encoder can't run yet)
🤖 Generated with Claude Code