Skip to content

Implement Wyoming Child Care Subsidy Program (CCAP) - #9109

Draft
hua7450 wants to merge 6 commits into
PolicyEngine:mainfrom
hua7450:wy-ccap
Draft

Implement Wyoming Child Care Subsidy Program (CCAP)#9109
hua7450 wants to merge 6 commits into
PolicyEngine:mainfrom
hua7450:wy-ccap

Conversation

@hua7450

@hua7450 hua7450 commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

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_subsidies under the federal child_care_subsidies aggregator.

Closes #9108

Regulatory authority

  • Wyoming Administrative Rules, DFS (agency 049), Child Care – Purchase of Service (sub-agency 0008), Chapter 1, effective 05/07/2025 (ref. 049.0008.1.05072025). DFS-hosted rule PDF; canonical portal rules.wyo.gov (JS application, no stable deep link). Cited sections include §8(e)(i) (eligible child, activities), §8(e)(iv) (income), §8(e)(iv)(G)(II) (countable-income basis, PDF page 22), §9(c) (benefit computation), and Appendix A/B (sliding fee scale and income classification, PDF pages 37–40).
  • Wyoming Child Care Subsidy Policy Manual, September 2025 edition — full text (HTML). Chapter PDFs used: §500 assistance-unit composition, §900 income (worked examples and Table Basic prototype #1 classification, PDF pages 5–9), §1100 basic benefit computation, §1200 benefit level/period.
  • Table I sliding fee scale charts (single page each) — income limits by household size, per-child daily copays, and DFS maximum daily rates: eff. 04/01/24, eff. 04/01/25, eff. 04/01/26.
  • Wyoming Statutes Title 42, W.S. 42-2-103(f) — the annual April-1 copay-setting authority. Cited for structure and authority only; the published Table I chart governs the operative copay amounts (see D3 below).
  • Wyoming CCDF State Plan FFY 2025–2027 (ACF-118) — plan PDF. Cited for the 7%-of-income copay cap (§3.1.1), copay waivers (§3.3.1), and rate methodology (§4.3).

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:

  • Initial eligibility requires income at or below Step 4 (175% FPG).
  • Continued (transitional) eligibility extends through Step 6 (225% FPG) for units already receiving assistance whose income rose due to employment, with no 30-day break in aid (Rules §8(e)(i)(N); Manual §1201).

wy_ccap_income_eligible reads the boolean input wy_ccap_enrolled to select the applicable limit — applicants use the 175% threshold, enrolled recipients the 225% threshold (decision D1, following the existing is_tanf_enrolled applicant/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_income computes countable income from gross income with the following adjustments:

  • Earned income disregard: $200 deducted from the gross earned income of each working adult in the unit (Rules §8(e)(iv)(D)(III)(5.); Manual §907.A).
  • Child support paid: deducted for child support paid by a parent whose income is countable, averaged and capped at the monthly court-ordered amount (Manual §907.B).
  • Self-employment: net self_employment_income is 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 classification: income/countable_income/sources.yaml classifies 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.yaml precedent, 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:

  1. wy_ccap_max_rate selects 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.
  2. wy_ccap_daily_benefit takes the minimum of the provider's actual charge and the DFS maximum daily rate (authorize-at-the-lowest, Rules §9(c); Manual §1101.M).
  3. wy_ccap multiplies the daily benefit by childcare_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_month variable 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_benefits through 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_subsidies aggregator. 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:

What Source Why excluded
Fraud, fugitive-felon, program-noncooperation, and overpayment bars Rules §8(e)(i)(F), (G), (L), (M) Not observable in the model
12-month certification periods, temporary activity breaks, and 85% SMI mid-certification action Rules §10; Manual §§1202, 1500.B Point-in-time model has no certification history
Monthly-conversion data-entry rounding (×4.3 weekly, ×2.15 biweekly, round up to whole dollar) Rules §8(e)(iv)(D)(III) Data-entry mechanics, not a policy rule
Infrequent/irregular income ≤$50/person/quarter exemption Rules §8(e)(iv)(F)(V) Below model income granularity
Lump-sum divisor / ineligibility-months rule Rules §8(e)(iv)(F)(VII); Manual §1209 Requires event timing the model does not represent
85% state median income "For EAs only" mid-certification cap Rules Appendix A; Manual §1500.B Mid-certification cap, not a benefit step (decision D9)
Special-needs add-on up to $250/month Rules §9(u); Manual §1101.O Discretionary "may approve," case-by-case amount (decision D5)
SNAP E&T-funded care caps ($200/month infants, $175/month age 2+) Rules §9(t) Narrow SNAP E&T funding stream
Funding-shortfall contingency eligibility narrowing and copay surcharge (+10%/+20%) Rules §9(x); W.S. 42-2-103(f)(i)(D) Contingency provisions triggered by appropriations
Statutory hourly copay formula (income ÷ 2,340 hours × multiplier) W.S. 42-2-103(f)(i) Authority only; the Table I chart governs the operative amounts (decision D3)

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

  • The Table I income-limit charts change year to year only through the federal poverty guideline; the step fractions and the dollar rate/copay grids are identical across the 04/01/24, 04/01/25, and 04/01/26 editions, so the grids are encoded once at 2024-04-01. Wyoming CCAP predates 2024; because parameters begin at 2024-04-01 with no pre-program sentinel, values before that date approximate the earliest verified chart era rather than reflecting collected pre-2024 policy — a documented coverage limit, not a bug.
  • The published daily copays do not reconcile with a fresh application of the statutory hourly formula (income ÷ 2,340 hours) for any recent FPL vintage. The implementation encodes the chart values and cites the statute for authority only (decision D3).
  • Validator escalation E2 resolved a gross-vs-countable ambiguity: the copay and income-limit formulas correctly place the unit on the scale by countable income, but four parameter descriptions had said "gross." The descriptions were corrected to "countable income" with a comment explaining the Table I chart-header discrepancy, citing Rules §8(e)(iv)(G)(II), §8(e)(iv)(D)(III)(5.), and §4(vv)(i). No formula, test, or expected value changed. The distinct 7%-of-gross-income family copay cap correctly remains on a gross basis (CCDF State Plan §3.1.1).

Files added

Parameters (14, under parameters/gov/states/wy/dfs/ccap/):

age_group/months.yaml
copay/family_income_cap_rate.yaml
copay/full_day.yaml
copay/part_day.yaml
eligibility/child_age_limit.yaml
eligibility/special_needs_child_age_limit.yaml
income/countable_income/sources.yaml
income/earned_income_disregard.yaml
income/fpl_limit/continued.yaml
income/fpl_limit/initial.yaml
rates/center.yaml
rates/day_length_min_hours.yaml
rates/legally_exempt.yaml
rates/licensed_family.yaml

Variables (15, under variables/gov/states/wy/dfs/ccap/):

wy_ccap.py                          wy_ccap_max_rate.py
wy_ccap_age_band.py                 wy_ccap_provider_type.py
wy_ccap_daily_benefit.py            wy_child_care_subsidies.py
wy_ccap_day_length.py               copay/wy_ccap_copay.py
wy_ccap_enrolled.py                 eligibility/wy_ccap_eligible.py
eligibility/wy_ccap_eligible_child.py
eligibility/wy_ccap_income_eligible.py
eligibility/wy_ccap_activity_eligible.py
income/wy_ccap_countable_income.py
income/wy_ccap_gross_income.py

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, plus copay/, eligibility/ (4 files), and income/ (2 files).

Registrations (2): wy_child_care_subsidies added to gov/hhs/ccdf/child_care_subsidy_programs.yaml; Wyoming CCAP entry added to programs.yaml.

Changelog: changelog.d/wy-ccap.added.md.

🤖 Generated with Claude Code

hua7450 and others added 4 commits July 21, 2026 18:00
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>
hua7450 and others added 2 commits July 23, 2026 13:48
…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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Wyoming Child Care Subsidy Program (CCAP)

1 participant