Implement Wyoming Child Care Subsidy Program (CCAP) - #9109
Draft
hua7450 wants to merge 6 commits into
Draft
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…anf_enrolled formula change Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…les (ref PolicyEngine#9108) Purchase of Service rules Ch. 1 now cites the Secretary of State copy on rules.wyo.gov (verified identical 40-page document, same pagination); policy manual sections cite the DFS Child Care Subsidy Policy Manual page; the CCDF State Plan and Table I sliding fee scales cite the DFS child care services page that hosts them. POWER references unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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
This PR implements Wyoming's Child Care Assistance Program (CCAP), the state's CCDF-funded child care subsidy administered by the Department of Family Services (DFS) under the regulation "Child Care, Purchase of Service." The implementation determines child, activity, income, and asset eligibility, places the assistance unit on Wyoming's six-step sliding fee scale, and computes the monthly subsidy paid to the provider as attendance-based daily reimbursement (capped at the DFS maximum daily rate) net of a per-child daily copayment and a 7%-of-gross-income family copay cap. It adds 15 variables, 14 parameter files, and 13 YAML test files (82 cases), and registers
wy_child_care_subsidiesunder the federalchild_care_subsidiesaggregator.Closes #9108
Regulatory authority
Google Drive viewer URLs do not honor
#page=anchors, so page numbers for Drive-hosted documents appear in the link text rather than as URL fragments; the wyoleg.gov statute PDF uses a#page=anchor because it honors them.Income eligibility tests
Wyoming places the assistance unit on a six-step sliding fee scale expressed as fractions of the federal poverty guideline (FPG): Step 1 = 100%, Step 2 = 125%, Step 3 = 150%, Step 4 = 175%, Step 5 = 200%, Step 6 = 225% (Rules Appendix A; Table I). The implementation applies two thresholds depending on enrollment status:
wy_ccap_income_eligiblereads the boolean inputwy_ccap_enrolledto select the applicable limit — applicants use the 175% threshold, enrolled recipients the 225% threshold (decision D1, following the existingis_tanf_enrolledapplicant/recipient pattern).The scale placement uses countable income (post-$200 disregard, post-child-support), per Rules §8(e)(iv)(G)(II) ("All countable income including gross earnings and cash benefit programs … shall be included") and §8(e)(iv)(D)(III)(5.), which deducts the $200 disregard before the amount is carried to the scale. The Table I chart column header reads "Household Size and Monthly Gross Income"; this is worker-facing shorthand that conflicts with the binding Rules definition of "gross income" as pre-disregard income (Rules §4(vv)(v)). The parameter descriptions document this discrepancy and cite the governing Rules text.
Income deductions and exemptions
wy_ccap_countable_incomecomputes countable income from gross income with the following adjustments:self_employment_incomeis counted. Manual §§902–903 allow a business-expense deduction of the greater of 25% of gross receipts or actual expenses. The actual-expense branch is what net self-employment income already reflects; the fixed 25%-of-gross-receipts alternative is not modelable because PolicyEngine has no gross-receipts input (see "Not modeled").income/countable_income/sources.yamlclassifies income types as counted or exempt following Rules Appendix B and Manual Table Basic prototype #1 — for example, SSI and foster-care payments are exempt while RSDI, unemployment, and child support received are counted.POWER (Wyoming TANF) cash is excluded from countable income (decision D2). Wyoming's manual and rules count POWER as nonexempt unearned income, but including it would create a CCAP↔POWER circular dependency in the model. This exclusion deliberately breaks that cycle, follows the Montana CCAP
sources.yamlprecedent, and is supported by the CCDF State Plan income definition (§2.2.4.c), which omits public assistance. This is a documented deviation from the manual's text.Income standards
The step boundaries are stored as FPG fractions (1.75 for initial eligibility, 2.25 for continued eligibility), so the dollar income limits self-uprate automatically each year as the federal poverty guideline updates — no annual parameter edit is required for the income thresholds. The Table I income-limit dollar amounts differ across the 2024, 2025, and 2026 charts only because the underlying FPG changes; the step fractions are identical across all three editions.
The DFS maximum daily rate grid and the per-child daily copay schedule are encoded once at an effective date of 2024-04-01 because the dollar values are identical on all three chart editions (04/01/24, 04/01/26, and the intervening 04/01/25 chart), which are all cited in the parameter references (decision D8).
Benefit calculation
The monthly subsidy is attendance-based daily reimbursement:
wy_ccap_max_rateselects the DFS maximum daily rate by facility type (child care center, licensed-family setting, or legally exempt) × age band (0–11 months, 12–23 months, 2–3 years, 4–5 years, 6–13 years) × day length (part day < 5 hours, full day ≥ 5 hours). Legally exempt providers use flat rates of $12.09 part day / $24.19 full day with no age variation.wy_ccap_daily_benefittakes the minimum of the provider's actual charge and the DFS maximum daily rate (authorize-at-the-lowest, Rules §9(c); Manual §1101.M).wy_ccapmultiplies the daily benefit bychildcare_attending_days_per_month, subtracts the copayment, and floors the result at zero.The copayment (
wy_ccap_copay) is the flat per-child daily copay from Table I by FPL step, scaled by attendance days, then subject to the 7%-of-gross-family-income cap from CCDF State Plan §3.1.1 (decision D9). Per-child daily copays range from $0.00 (Step 1) to $6.84 part day / $13.68 full day (Step 6), with the full-day copay equal to twice the part-day copay at every step. The copay is $0 at Step 1 (≤100% FPG) and is waived for foster and protective-services children, whose income is not considered (CCDF State Plan §3.3.1).Per decision D7, the implementation reads attendance from the existing
childcare_attending_days_per_monthvariable rather than introducing a Wyoming default-days parameter; test cases that depend on attendance supply it as an input (10 days).Requirements coverage
The requirements tracker verified 26 of 26 in-scope requirements as covered against the actual files on the branch (spot-checking manifests rather than trusting them blindly). One gap-fix round closed the two requirements initially flagged: REQ-007 (self-employment authorized hours) gained a documentation note with citations plus activity test Case 9, and REQ-020 (VA benefits) gained gross-income Case 5, which feeds
veterans_benefitsthrough to countable income.The 82 YAML test cases span unit tests for each variable, boundary cases (age-band edges, the 5-hour day-length cutoff, the $1,000,000 asset ceiling, the six copay steps), and seven integration cases exercising the full chain through the federal
child_care_subsidiesaggregator. A microsimulation smoke run confirmed no circular-dependency errors between CCAP and POWER.Not modeled
The following requirements are out of scope by design and tracked here:
The 25%-of-gross-receipts self-employment alternative is also not modeled (no gross-receipts input); the actual-expense branch is modeled through net self-employment income.
Historical notes
Files added
Parameters (14, under
parameters/gov/states/wy/dfs/ccap/):Variables (15, under
variables/gov/states/wy/dfs/ccap/):Tests (13, under
tests/policy/baseline/gov/states/wy/dfs/ccap/):wy_ccap.yaml,wy_ccap_age_band.yaml,wy_ccap_daily_benefit.yaml,wy_ccap_day_length.yaml,wy_ccap_max_rate.yaml,integration.yaml, pluscopay/,eligibility/(4 files), andincome/(2 files).Registrations (2):
wy_child_care_subsidiesadded togov/hhs/ccdf/child_care_subsidy_programs.yaml; Wyoming CCAP entry added toprograms.yaml.Changelog:
changelog.d/wy-ccap.added.md.🤖 Generated with Claude Code