Skip to content

Add Idaho Child Care Program#8602

Open
hua7450 wants to merge 5 commits into
PolicyEngine:mainfrom
hua7450:id-ccap
Open

Add Idaho Child Care Program#8602
hua7450 wants to merge 5 commits into
PolicyEngine:mainfrom
hua7450:id-ccap

Conversation

@hua7450

@hua7450 hua7450 commented Jun 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Adds Idaho Child Care Program (ICCP) eligibility, income, copay, local market rate, and benefit variables.
  • Adds Idaho ICCP parameters from current IDAPA 16.06.12 rules, DHW public materials, the October 2025 copay chart, and the July 2025 Local Market Rates schedule.
  • Registers Idaho in CCDF child care subsidies, household state benefits, and programs metadata.
  • Adds YAML tests (69 cases) for eligibility, activity derivation, county clusters, countable income, rates, copays, and final benefits.

Source notes

Current IDAPA/public DHW sources use 175% FPG for initial eligibility. The draft manual and copay chart imply lower FPG thresholds, so this implementation follows the current IDAPA/public-page 175% FPG eligibility rule and uses the copay chart for published copay amounts. For eligible families above the highest published copay-chart band, copay is capped at the highest row for household size.

Activity eligibility derives employment, self-employment (including farm operations per IDAPA 200.02), and full-time student status, with meets_ccdf_activity_test as the fallback proxy for non-derivable activities (200.04, 200.05).

The program models current rules; parameters carry their true source effective dates with no historical backdating. Statute-derived values were verified against the IDAPA 16.06.12 PDF, copay bands against the October 2025 copay chart (a per-child schedule), and all 48 market-rate cells plus county-cluster lists against the July 2025 LMR schedule.

Review fixes (round 3)

  • Unearned sources keep only the social_security umbrella — listing its disability/survivors components alongside it double-counted SSDI and survivor income.
  • Self-employment losses floor at zero in countable income, so losses neither offset wages nor flip the 50% standard deduction (IDAPA 075.03.b.i disallows net losses).
  • The activity test reads the self_employment_sources parameter instead of a hardcoded list, so farm sole proprietors qualify.
  • Earnings of under-18 parents count via is_parent (IDAPA 072.01 teen-parent carve-out); the "seeking or receiving benefits" qualifier is not tracked.
  • The foster copay exemption applies at the family level ("guardians of foster children", IDAPA 503), matching the family-level TAFI exemption.
  • id_child_care_subsidies is registered in gov/household/household_state_benefits.yaml so the benefit reaches household totals.

Not modeled (documented in code)

Court-ordered disabled-child pathway (105.03.b), incapacitated-parent activity exemption (106), 3-month continuation after a qualifying activity ceases (202), immunization requirement (105.01), graduated phase-out at redetermination (070.03/602.02), TAFI non-employment-activity copay condition (503), post-secondary student copay row (504.01.a), actual-expense self-employment deduction alternative (075.03.b), child-support obligation-vs-paid distinction (073), foster-parent income exclusion (072.13), and the parent-activity-hours basis for full/part-time payment (201, proxied by the child's care schedule).

Note: bracket parameters keep their true 2025 effective dates; a policyengine-core parameter-cache quirk produces incorrect values at exactly the 2024-01 instant, outside this PR's modeled scope.

Tests

  • policyengine-core test policyengine_us/tests/policy/baseline/gov/states/id/dhw/iccp -c policyengine_us — 69 passed
  • make format

Fixes #8601

🤖 Generated with Claude Code

@codecov

codecov Bot commented Jun 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (bd1ae42) to head (1757dc5).
⚠️ Report is 26 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff              @@
##             main     #8602       +/-   ##
============================================
+ Coverage   77.77%   100.00%   +22.22%     
============================================
  Files           1        15       +14     
  Lines           9       239      +230     
============================================
+ Hits            7       239      +232     
+ Misses          2         0        -2     
Flag Coverage Δ
unittests 100.00% <100.00%> (+22.22%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

hua7450 and others added 4 commits June 8, 2026 14:54
…tivity derivation, tests

- Remove invalid metadata.breakdown from age_group/months.yaml (fixes failing structural CI test); align period/amount_unit to VT precedent
- Add 50% self-employment standard deduction to countable income (IDAPA 16.06.12.075.03.a)
- Scope TAFI copay exemption to <100% FPG; model foster-child $0 copay; document student copay as not modeled
- Derive activity eligibility from employment/self-employment income and student status with CCDF fallback (IDAPA 200)
- Add direct tests for id_iccp_eligible, id_child_care_subsidies, activity-eligibility truth-table, out-of-state and full-pipeline integration, and copay/income edge cases
- Fix 072.01 reference anchors; strip redundant #page=1 from single-page-PDF refs; add intentional-limitation comments

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…rs branch tests

- Fix income/unearned_sources.yaml 072 reference anchor #page=7 -> #page=8 (the 072 income exclusions are on PDF page 8; matches sibling earned_sources/child_earnings files)
- Add foster-child $0 copay test (is_in_foster_care) and zero-childcare-hours $0 benefit/copay tests, covering previously-untested branches

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Remove Social Security component double-count: unearned sources keep
  only the social_security umbrella (it already adds disability,
  survivors, retirement, and dependents)
- Floor self-employment losses at zero in countable income so losses
  neither offset wages nor flip the 50% deduction (IDAPA 075.03.b.i)
- Derive the activity test's self-employment check from the
  self_employment_sources parameter, adding farm sole proprietors
  (IDAPA 200.02)
- Count under-18 parents' earnings via is_parent (IDAPA 072.01)
- Apply the foster copay exemption at the family level (IDAPA 503)
- Register id_child_care_subsidies in household_state_benefits.yaml
- Document limitations: full/part-time parent-activity-hours basis
  (IDAPA 201) proxied by the child's care schedule; foster-parent
  income exclusion (072.13) not modeled
- Fix the negative-income test to exercise the full-time path and the
  benefit floor; expand coverage (SSDI component, SE loss with wages,
  teen parent, copay sizes 5-7, multi-child foster, TODDLER/SCHOOL_AGE/
  CLUSTER_1 rate cells, farm-only activity)
- Apply test naming conventions, fix copay description wording, and
  collapse duplicate same-document references
- Drop sources/working_references.md from the PR

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@hua7450 hua7450 marked this pull request as ready for review June 9, 2026 21:41
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 Idaho Child Care Program (ICCP)

1 participant