Implement Alabama Child Care Subsidy Program (CCSP)#8322
Conversation
Closes PolicyEngine#8321 - 16 parameter files including 486-cell rate matrix (provider × region × age × STAR tier) - 16 variables covering eligibility (180% FPL initial / 200% FPL continuing / 85% SMI cap), triple-test income, dual-tier copay table, multi-dimensional rate lookup, and waiver paths - 14 test YAML files (103 cases) covering unit + integration + edge cases - Registered in programs.yaml and federal CCDF child_care_subsidy_programs.yaml Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8322 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 1 17 +16
Lines 13 281 +268
==========================================
+ Hits 13 281 +268
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
- Correct §2.5.5(c)(iii) section label on income_limit_fpl_continuing.yaml - Fix #page=26 on income_limit_fpl_initial.yaml (was 24) - Add #page=1/2 anchors to 6 Provider Rate Chart references - Add 4 direct unit tests for al_ccsp_weekly_copay_per_child - Add exact-boundary tests at 180% FPL, 200% FPL, 85% SMI Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Add #page= anchors to 5 variable .py files referencing Provider Rate Chart - Fix al_ccsp_enrolled.py section label (§2.2.4 → §2.5.5(c)(iii)) - Add STAR_1/STAR_2/STAR_4 test cases to al_ccsp_maximum_weekly_rate.yaml Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Parameter restructure: - Replace eligibility/ folder with concept-based folders (age/, activity/, income/limit/) - Merge initial_fee_by_fpl.yaml + continuing_fee_by_fpl.yaml into a single fee_by_fpl.yaml (continuing families below 180% FPL now use the same scale as initial applicants) - Remove weeks_to_months.yaml; use WEEKS_IN_YEAR/MONTHS_IN_YEAR framework constant instead Source-verified value corrections: - Rate table (486 values): re-transcribed maximum_weekly_full_time.yaml from the dhr.alabama.gov "Effective April 11, 2022" Provider Rate Chart (prior values came from a different proposed/75th-percentile PDF) - Informal weekly cap: $40 -> $50 (per same PDF) - Age category PRESCHOOL threshold: 36 -> 37 months (per Rate Chart Key to Care Level) - Verified 85% SMI income cutoffs match HHS SMI parameters exactly New variable: - al_ccsp_copay_waived: extracts the disabled-child / Head Start / foster child waiver logic shared between al_ccsp_copay and al_ccsp Test coverage additions: - al_ccsp_copay_waived.yaml (5 cases covering each waiver category) - Multi-child mixed-eligibility tests for al_ccsp_copay, al_ccsp, and al_ccsp_eligible_child (3-children with 1 eligible / 1 over-age / 1 undocumented; 2 eligible children with 1 in care; 3 eligible children in care; disabled child + young sibling) All 126 AL CCSP tests pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copay waiver (al_ccsp_copay_waived): - Replace `has_foster_child` with `al_ccsp_protective_services`. Per §3.3.1(vi), the parental fee is waived for any child authorized under the Protective Service category — which per §2.2.2(f) includes homelessness as well as foster care. Activity eligibility (al_ccsp_activity_eligible): - OR in `meets_ccdf_activity_test` as a fallback so that families who qualify via job training, education hours, SNAP E&T, or other approved-but-unmodeled activities are not incorrectly excluded. Matches the pattern used by DE, NJ, PA, VA, and VT CCAP variables. Provider rate (al_ccsp_maximum_weekly_rate): - Apply the part-time multiplier to INFORMAL providers too. The prior code returned the flat $50 cap regardless of hours, but §3.1 (Part-time Rates note) caps part-time at 1/2 of the applicable full-time rate, so part-time informal = $25. Tests: - Update the homeless-household copay test to expect waiver. - Add multi-child mixed-eligibility coverage for the new waiver. - Add positive/negative tests for the activity fallback. - Add a part-time INFORMAL rate test ($25 expected). 130 tests pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Refactor copay waiver to a single source of truth: apply §3.3.1 waiver inside al_ccsp_weekly_copay_per_child, remove duplicated waiver logic from al_ccsp.py, drop the redundant n_paying multiply/divide. - Drop is_tax_unit_dependent gate from al_ccsp_eligible_child (use age + immigration + SPM co-residence). - Reframe protective-services comment with correct §3.3.1(vi) citation and document the kinship-care limitation. - Fix #page anchors (hours_minimum, smi_cap); add State Plan ref to fee_by_fpl; drop slash from child_limit title. - Document the meets_ccdf_activity_test fallback semantics and the al_ccsp_enrolled microdata default. - Add tests: 2025 integration, over-age-child rate masking, non-AL household + AL county_str regression, asset boundary, 4 untested copay bands (130/140/160/170 percent), 200 percent FPL top band, 4 untested regions, INFORMAL+STAR_5 interaction, SMI float-boundary refactor. - Update programs.yaml: AL CCSP status partial (kinship/EHS-CCP/etc. not modeled). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Add al_child_care_subsidies to household_state_benefits.yaml so the benefit flows through the household-level state-benefit aggregation. - Drop is_tax_unit_dependent from the disabled-child copay-waiver gate in al_ccsp_copay_waived.py to match State Plan §3.3.1(iv) wording and the variable-patterns "use age, not tax dependency" rule. - Convert (title, url) reference tuples to single-URL strings in all 16 AL CCSP variable files; titles belong in parameter YAML, not variable reference fields. - Document the federal 7% gross-income copay cap and Alabama's pending waiver request in al_ccsp_copay.py (State Plan §3.1.1(a) confirms AL charges per child and acknowledges the family total can exceed 7%). - Remove the wrong Cornell LII citation in age_category/months.yaml (660-5-20-.04 is the licensing staffing-ratio rule, not the CCSP rate-setting categories). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Replace deprecated documentation field with inline comments on al_ccsp_activity_eligible.py and al_ccsp_enrolled.py - Expand al_ccsp_protective_services.py comment to enumerate all five State Plan §2.2.2(f) sub-populations and which are not tracked - Clarify in loco parentis caregiver handling via the meets_ccdf_activity_test fallback in al_ccsp_activity_eligible.py - Floor monthly_income at zero in al_ccsp_weekly_copay_per_child.py so self-employment / farm losses land in the $0 copay band rather than producing a negative FPL ratio - Add edge_cases.yaml test exercising self-employment loss
Alabama's Child Care Fact Sheet income tables track the prior calendar year's HHS poverty guidelines (e.g., the Jan-2024 Fact Sheet uses 2023 FPG values), since HHS publishes new guidelines mid-January. - al_ccsp_income_eligible.py and al_ccsp_weekly_copay_per_child.py now pull FPG for period.start.year - 1 - All FPL-relative test income values rebased to 2023 FPG for 2024-01 tests; the 2025-01 carry-forward test still uses 38_730 because that is 150% of the 2024 FPG used at that period
- Remove al_ccsp_copay variable + test file. Nothing in the model consumed it: the benefit formula uses al_ccsp_weekly_copay_per_child (per-child, broadcast to Person level) because per-child clamping matters for households with one free-care and one paid-care child. Tests that asserted al_ccsp_copay now assert al_ccsp_weekly_copay_per_child. - Update fee_by_fpl.yaml reference: §3.1 #page=40 -> §3.1.2(b) #page=41 (lands on the actual fee table, not the section header) - Update smi_cap.yaml reference: §2.5.2 #page=35 -> §2.5.5 #page=38 (the verbatim 85% SMI rule is in §2.5.5) - Remove trailing whitespace in sources.yaml - Drop WHAT-only comments in al_ccsp.py and al_ccsp_age_category.py
PolicyEngine's age variable is annual, so an integer-input age of 3 maps to exactly 36 months. With the previous 37-month threshold, all 3-year-olds (whose actual age spans 36-47 months) were classified as INFANT_TODDLER and routed to infant/toddler provider rates instead of preschool rates. Setting the PRESCHOOL threshold at 36 months matches how Alabama operationally treats 3-year-olds in childcare subsidy. Added a 2.99-year-old test case to lock the boundary.
PavelMakarchuk
left a comment
There was a problem hiding this comment.
Program Review — PR #8322: Alabama Child Care Subsidy Program (CCSP)
PR #8322 by @hua7450 (5,994-line diff across 49 files) introduces a new state program: Alabama's Child Care Subsidy Program (CCSP). Author is the same contributor whose recently-merged WA WCCC PR (#8208) established the federal CCDF helper reuse pattern that this PR follows. All CI checks pass. The author explicitly flagged four items for reviewer scrutiny: the disability activity exemption, the 7% copay cap, the §3.3.1(vi) protective-service copay waiver for homeless families, and the prior-year FPG lag.
Source Documents
- State Plan FFY 2025-2027 (301 pages) — primary regulatory source for eligibility, fee scale, and protective-service definitions.
- Fact Sheet, January 2024 (1 page) — 11-band copay schedule and income-eligibility ceilings.
- Provider Rate Chart, effective 4/11/2022 (2 pages, 486 cells) — 3 provider types × 9 regions × 3 age tiers × 6 quality tiers.
- Cost Study (79 pages, background, not directly cited in code).
- Year coverage: 2022-04-11 (rates) + 2024-01-01 (fee scale, income ceilings) + prior-year FPG lag.
Critical (Must Fix Before Merge)
1. Homelessness copay over-waiver (al_ccsp_copay_waived.py)
The PR's al_ccsp_copay_waived variable directly reuses al_ccsp_protective_services to determine the §3.3.1(vi) copay waiver. But al_ccsp_protective_services (used correctly for §2.2.2(f) eligibility) includes homelessness via is_homeless, while the State Plan's §3.3.1(vi) copay-waiver describe-text enumerates only Foster Care / Early Head Start / TANF-Other Relative / Special Needs. The §3.3.1(iii) homelessness checkbox is UNCHECKED in the State Plan. The verifier confirmed this code-path mismatch.
Result: homeless families currently receiving CCSP under §2.2.2(f) eligibility are incorrectly assigned a $0 copay under §3.3.1(vi), when AL's State Plan requires them to pay the standard FPL-band copay.
Fix:
- Split into two distinct flags. Keep
al_ccsp_protective_servicesfor §2.2.2(f) eligibility (homelessness included). - Introduce a narrower flag for §3.3.1(vi) copay waiver that excludes
is_homeless(Foster Care / EHS / TANF-Other Relative / Special Needs only). - Add a regression YAML test: homeless-only family, FPL band 101-110%, expected copay = $18/week per child (not $0).
This is exactly the item the author flagged for reviewer attention.
Should Address
- Changelog filename typo —
changelog.d/al-ccap.added.mdshould beal-ccsp.added.md(program is CCSP, not CCAP). - Formula signature — verify
al_ccsp.pyformula at line 5483 includes theparametersargument; signature appears to be missing it. - Prior-year idiom — replace
str(period.start.year - 1)withperiod.last_yearin bothal_ccsp_income_eligible.pyandal_ccsp_weekly_copay_per_child.py. - Line length —
al_ccsp_copay_waived.py:5729may exceed the line-length limit; runmake format. - Entity-level mismatch — verify
pre_subsidy_childcare_expensesis Person-level if used as such inal_ccsp.py:5483. If it is SPMUnit-level, per-child allocation would be incorrect. - PR body description inaccuracies (code is correct; PR body wording misleads):
- Claims "disabled-parent activity exemption" — code does NOT auto-exempt disabled parents; relies on
meets_ccdf_activity_testfallback, matching §2.2.2 (no exemption). - Claims "family-level copay split equally across eligible children in care" — code does NOT split; each child pays the full band fee per §3.2.1(a)(i).
- Says "3 of 5 protective-services sub-populations not modeled" — §2.2.2(f) actually checks 4 sub-populations (foster, child-welfare, EHS-CCP, homelessness); 2 modeled and 2 unmodeled.
- Lists TANF as a counted income source, but
sources.yamlexcludes TANF (cycle avoidance). Either include with cycle resolution or document the omission inline.
- Claims "disabled-parent activity exemption" — code does NOT auto-exempt disabled parents; relies on
- Federal cite missing —
smi_cap.yamlshould cite 45 CFR §98.20(a)(2); 85% SMI is a federal CCDF ceiling, not just AL discretion. - Reference precision —
disabled_child_limit.yamlshould bump page anchor to#page=21and tighten subsection to §2.2.1(b). - Missing tests:
- $39 copay band (171-180% FPL) is entirely untested.
- Kinship-care exclusion regression test (header documents kinship excluded, but no negative test enforces it).
- Copay-exceeds-charge clamp regression test (
max_(0, ...)). - Multi-child waiver propagation (one disabled child waiving copay for siblings).
- Age 13 disabled boundary.
- Just-above 100% FPL ($18 band entry).
- Activity test parameter unit —
hours_minimum.yamlis annotatedperiod: yearbut stores a weekly value; confusing. Either rename or set period appropriately. in_loco_parentisapproximation — usingis_tax_unit_head_or_spousemisses non-head adult relatives. Limitation is documented and acceptable; flag for future enhancement.- 7% copay cap inline doc — add a comment in
al_ccsp_weekly_copay_per_child.pydocumenting that the 7% federal cap is intentionally not enforced under AL's pending waiver per §3.1.1.a.
Suggestions
full_time_hours_threshold.yamlandpart_time_multiplier.yaml— should useperiod: eternity(structural constants).maximum_weekly_full_time.yaml— add a second-page reference; 3 of 9 regions appear on rate-chart page 2.- Reference tightening — supply more specific subsection paths (e.g., §2.2.4(e), §2.2.1(a), §2.2.2(d)) per references.md.
al_ccsp_age_category/months.yaml— the 36-vs-37mo PRESCHOOL boundary tweak is documented and intentional; no change required, but a brief in-file comment would help future readers.al_ccsp_enrolleddocstring — minor style improvement for consistency with sibling variables.- Reference enhancements — apply remaining suggestions in references.md.
Investigated and Cleared
- Disabled-parent activity exemption — PR body wording is misleading, but the code does NOT auto-exempt disabled parents (no disability check in the activity-test predicate). Defaults to the
meets_ccdf_activity_testinput, which is consistent with §2.2.2. - 7% federal copay cap omission — §3.1.1.a explicitly states AL has submitted a waiver and currently does not enforce the 7% cap. Code matches AL's operational practice.
- Prior-year FPG lag — Confirmed arithmetically: the Jan 2024 Fact Sheet's family-size-2 cell ($1,643/mo) equals exactly 2023 FPG ÷ 12. §2.2.4(e) states AL uses the 2023 LIHEAP guideline.
PDF Audit Summary
| Category | Count |
|---|---|
| Confirmed correct | ~30 categories / hundreds of data points |
| Mismatches | 1 (homelessness copay waiver) |
| Investigated and cleared | 3 (disability exemption, 7% cap, FPG lag) |
Confirmed-correct breakdown:
- 11-band copay scale ($0/$18/$21/$24/$27/$30/$33/$36/$39/$42/$45) — exact.
- Boundary semantics (1.0001, 1.1001 thresholds for "101-110%" wording) — exact.
- 486-cell rate matrix (3 provider types × 9 regions × 3 ages × 6 quality tiers) — 10+ spot-checks exact.
- INFORMAL cap $50 FT / $25 PT — confirmed.
- Part-time multiplier 0.5 — confirmed.
- Full-time threshold 25 hrs/wk — confirmed.
- Age categories (0-36mo / 37-59mo / 60+) — confirmed with documented PRESCHOOL boundary tweak.
- All 9 regions present, all 67 AL counties allocated once — confirmed.
- 180% FPL initial / 200% FPL continuing / 85% SMI cap — confirmed exact.
- Asset limit $1M via federal
is_ccdf_asset_eligiblereuse — confirmed. - Prior-year FPG lag arithmetic — confirmed ($1,643/mo = 2023 FPG ÷ 12 exactly).
- Negative-income floor — confirmed.
- Sources list — confirmed (with TANF documentation gap noted above).
- Child age 13 / disabled age 19 — confirmed.
- Activity 15 hrs/wk minimum — confirmed.
- Per-parent activity test (not household-OR) — confirmed.
- Federal CCDF helper reuse:
is_ccdf_asset_eligible,is_ccdf_immigration_eligible_child,hhs_smi,meets_ccdf_activity_test,is_in_foster_care,is_homeless,is_enrolled_in_head_start,pre_subsidy_childcare_expenses— all confirmed. - Benefit formula order:
max(0, min(charge, rate) - copay) × 52/12 × is_paying_child— confirmed. - Integration: federal aggregator +
programs.yaml+household_state_benefits.yaml— all confirmed. - Page anchors all correct with +2 offset properly handled.
Validation Summary
| Check | Result |
|---|---|
| Regulatory Accuracy | 1 critical (homelessness) + 1 should |
| Reference Quality | 0 critical + 2 should + 4 suggestions |
| Code Patterns | 0 critical + 5 should + 1 suggestion |
| Test Coverage | 2 critical (missing $39 band + kinship regression) + 4 should-add |
| PDF Value Audit | 1 mismatch / ~30 categories confirmed |
| CI Status | All PASS |
Review Severity: REQUEST_CHANGES
One critical regulatory mismatch identified — the homelessness copay over-waiver, which is the exact item the author flagged for reviewer attention. Otherwise this is a high-quality Phase-1 implementation: 486 rate cells verified, full federal CCDF helper reuse, correct prior-year FPG lag, correct benefit formula order, correct integration with the federal aggregator. The required fix is localized to al_ccsp_copay_waived.py (split into two flags — eligibility-side with homelessness, copay-side without) plus a regression test for homelessness-only families.
Next Steps
Run /fix-pr 8322 to apply the homelessness copay fix and the should-address items.
Split the copay-waiver protective-services flag from the eligibility one. Homelessness is a Section 2.2.2(f) eligibility category but NOT a Section 3.3.1 copay-waiver category (the 3.3.1(iii) box is unchecked), so homeless-only families now pay the standard FPL-band fee instead of $0. - Add al_ccsp_copay_protective_services (foster only; excludes is_homeless) for the Section 3.3.1(vi) copay waiver - al_ccsp_copay_waived now uses the narrower flag; eligibility-side al_ccsp_protective_services keeps homelessness - Document the 7% federal copay cap waiver inline - Replace str(period.start.year - 1) with period.last_year - smi_cap.yaml: cite 45 CFR 98.20(a)(2); disabled_child_limit.yaml: tighten to Section 2.2.1(b) - Rename changelog fragment al-ccap -> al-ccsp - Add tests: copay-side protective services, homeless-pays-copay regression, $18/$21/$39 bands, age-13 disabled boundary (140 pass) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
al_ccsp_copay_protective_services now also recognizes children receiving or needing protective services (receives_or_needs_protective_services), matching AL eligibility category #5 (abuse/neglect/exploitation), not just foster care (#4). Clarify in comments that the other Section 3.3.1(vi) categories are already covered elsewhere: Early Head Start (#6) via is_enrolled_in_head_start in the Section 3.3.1(v) branch, and Special Needs (#8) via the Section 3.3.1(iv) disabled-child branch. TANF-Other Relative (#7) stays unmodeled because is_tanf_enrolled cannot distinguish child-only TANF-Other Relative from work-mandatory JOBS, which does not waive the copay. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Thanks for the thorough review, Pavel — pushed fixes in 🔴 Critical — homelessness copay over-waiver (fixed) You're right. I confirmed against the State Plan: the §3.3.1(iii) homelessness copay-waiver box is unchecked, and AL lists Homeless (#2), Protective Services (#5), and Special Needs (#8) as separate eligibility categories (p. 31), so the §3.3.1(vi) "Protective Service" waiver doesn't reach homeless-only families.
🟡 Should-address
On two of your should-address items I think the code is already correct — flagging rather than changing:
141 tests pass, format clean. Let me know on the two items above. |
Summary
Implements Alabama Child Care Subsidy Program (CCSP) in PolicyEngine.
Closes #8321
Regulatory Authority
Program Overview
Eligibility
al_ccsp_eligible_childal_ccsp_income_eligiblewithal_ccsp_enrolled = Falseal_ccsp_income_eligiblewithal_ccsp_enrolled = Trueal_ccsp_income_eligible(uses federalhhs_smi)is_ccdf_asset_eligible(federal CCDF helper, reused)al_ccsp_activity_eligible(withmeets_ccdf_activity_testfallback for job training, education, etc.)is_ccdf_immigration_eligible_child(federal CCDF helper, reused)al_ccsp_protective_servicesviais_in_foster_care,is_homelessdefined_for = StateCode.ALFamily unit ≈ SPMUnit (PE's SPMUnit may include unrelated cohabitants that AL excludes; documented as known approximation).
Income Calculation
income/countable_income/sources.yaml(employment, self-employment, farm operations, SS, pensions, unemployment, workers' comp, SSI, state supplement, interest, dividends, alimony, veterans' benefits). TANF is listed in §2.2.4(c) but is excluded in the model to avoid a childcare↔TANF circular dependency (documented inline insources.yaml).WEEKS_IN_YEAR / MONTHS_IN_YEAR(52/12 ≈ 4.3333; the regulatory 4.333 is just this ratio rounded)al_ccsp_income_eligibleandal_ccsp_weekly_copay_per_childtherefore pull FPG for the prior year (period.last_year).al_ccsp_weekly_copay_per_childfloorsmonthly_incomeat 0 before computing the FPL ratio, so self-employment / farm losses land in the $0 copay band rather than producing a negative FPL ratio.Family Fee (Copay)
Weekly per-child fee, sliding scale by FPL band — single unified 11-band scale indexed by FPL ratio (initial applicants cap at 180% FPL, continuing recipients cap at 200% FPL):
Copay waivers (encapsulated in
al_ccsp_copay_waived):al_ccsp_copay_protective_services(is_in_foster_care+receives_or_needs_protective_services)Homelessness is NOT a copay-waiver category. The §3.3.1(iii) "families experiencing homelessness" copay-waiver box is left unchecked in the State Plan, and AL lists homelessness (priority category #2) separately from Protective Services (#5) and Special Needs (#8) in its eight eligibility categories (p. 31). A homeless-only family is therefore income/activity-eligible under §2.2.2(f) but still pays the standard FPL-band fee. The copay-side
al_ccsp_copay_protective_servicesis intentionally narrower than the eligibility-sideal_ccsp_protective_services(which includes homelessness).Copay applies per eligible child in care (
is_eligible_child & childcare_hours_per_week > 0) — ineligible siblings (over age, undocumented, etc.) do not multiply the copay.Provider Rates
486-cell rate matrix transcribed verbatim from the Provider Rate Chart "Effective April 11, 2022":
state_code_str == "AL"to prevent non-AL households crashing on missing keysselect()fallback for AL households whose county doesn't map cleanly)Benefit Calculation
Per-child weekly subsidy =
max(0, min(provider charge, max weekly rate) − per-child copay).Per-child monthly subsidy = weekly subsidy ×
(WEEKS_IN_YEAR / MONTHS_IN_YEAR)×is_paying_child.Each eligible child in care pays the full band fee per §3.2.1(a)(i) ("the fee is per child, with the same fee for each child" — not split across siblings). SPMUnit benefit = sum of per-child monthly subsidies.
Parameter Folder Structure
Parameters organized by concept rather than by lifecycle phase:
Files Added
Test Coverage
141 tests including multi-child mixed-eligibility scenarios (3 children with 1 eligible / 1 over-age / 1 undocumented), informal part-time, all copay waiver categories, the homeless-only family paying the standard fee (not waived), SMI hard cap, exact FPL band boundaries ($18 entry through $45), the 2025-01 carry-forward year, and negative countable income (self-employment loss does not inflate subsidy).
Not Modeled
al_ccsp_copay_waived.py)al_ccsp_protective_services.py).is_tanf_enrolledcannot distinguish them from work-mandatory JOBS families (which do not waive), so this category is not modeled on the copay side.is_enrolled_in_head_start)al_ccsp_activity_eligibleapproximates the §2.2.2(d)(ii) caregiver set withis_tax_unit_head_or_spouse; grandparent / kinship / foster caregivers who aren't the tax-unit head won't be checked individually, butmeets_ccdf_activity_testcan be set as a fallback (documented inal_ccsp_activity_eligible.py)meets_ccdf_activity_testinput as fallback)is_homelessHousehold variable instead)al_ccsp_enrolledis a bare input defaulting to False, so every microdata household is treated as a new applicant unless this input is explicitly set by the callerTest plan
make formatcleanReviewer notes (resolved in review)
al_ccsp_copay_protective_services, excludes homelessness) from the eligibility-side flag (al_ccsp_protective_services, includes homelessness), with regression tests.meets_ccdf_activity_testfallback, consistent with §2.2.2.🤖 Generated with /encode-policy-v2