PolicyEngine / PolicyEngine/policyengine-us

Child-care subsidy returns $0 for eligible households in CA, MA, MD, NE (default enum/attendance inputs)

Open
#9,485 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
162
Forks
212
Avg merge
3d 3h
Merged PRs (30d)
97

Description

**Observed** (API, 2026, policyengine-us 1.764.6 per `/us/metadata`): several states return `child_care_subsidies` = 0 for a household that plainly qualifies — a working parent, a preschooler, `spm_unit_pre_subsidy_childcare_expenses` set, at $0 of earnings where the family is unambiguously eligible.

| state | one child aged 3 | children 1, 4, 9 | cause |
|---|---|---|---|
| CA | $0 | $0 | `ca_calworks_child_care_time_coefficient` reads `ca_calworks_child_care_weeks_per_month` / `_days_per_month`, month-period inputs that default to 0, so the payment standard is multiplied by zero. Supplying them gives $9,600. `main` appears already refactored onto the shared `childcare_days_per_week` / `childcare_attending_days_per_month`. |
| MA | $0 | $12,674 | `ma_ccfa_care_provider_type` defaults to `CENTER_BASED_CARE_SCHOOL_AGE`, a zero rate for a preschooler, although `ma_ccfa_child_age_category` derives the age category correctly from `age`. Setting `CENTER_BASED_CARE_EARLY_EDUCATION` gives $9,600. A household with an infant is paid because the infant's rate is nonzero. |
| MD | $0 | $0 | not chased; issue #9405's own comment reports a provider type defaulting to `NONE`. |
| NE | $0 | $0 | not chased. |

**Expected**: a default that yields a benefit for an eligible household, or a documented required input. The common shape is that an enum or attendance input defaults to a value that zeroes the award, while every other input needed for eligibility is present and correct.

**Why it matters downstream**: in a 51-state comparison these states show no child-care cliff at all, which reads as kinder rules rather than a missing calculation. Combined with the 13 states whose subsidy variable is not in the deployed release, 23 of 51 states are affected for at least one household shape.

**Repro**: one adult age 30 with `employment_income` 0 and `weekly_hours_worked_before_lsr` 40, one child age 3, SPM unit with `spm_unit_pre_subsidy_childcare_expenses: 9600`, `childcare_expenses: null`, `child_care_subsidies: null`; `state_name` each of CA / MA / MD / NE.

Found while validating HotGap, a benefits-cliff calculator on this API. Evidence, request and response pairs: https://github.com/mikewolfd/hotgap/tree/main/docs/upstream/evidence

Contributor guide

Open the contributing guide

Research direction

Start by rerunning the API reproduction for CA, MA, MD, and NE and inspect `/us/metadata` alongside the definitions of the named attendance and provider-type variables. Trace the defaults for `ca_calworks_child_care_weeks_per_month`, `ca_calworks_child_care_days_per_month`, `ma_ccfa_care_provider_type`, and the unresolved MD and NE inputs; done means eligible households receive the expected subsidy or the required inputs are documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.