PolicyEngine / PolicyEngine/policyengine-us
receives_medicaid consumer corrections: IL BCC should read eligibility, IL FPP computed enrollment, CA freeze needs prior-year continuity
- Dominant language
- Python
- Stars
- 162
- Forks
- 212
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 97
Description
The populace#591 consumer classification (adjudication: https://github.com/PolicyEngine/populace/issues/591#issuecomment-5160668979) read all six live consumers of the reported input `receives_medicaid` against their statutory references. Three are correct as reported-coverage checks. Three should change:
1. **IL BCC — class 2 (blocking misuse)**: `il_bcc_insurance_eligible.py:26` keys on Medicaid *eligibility through another pathway* (IDHS PM 06-20-02; 305 ILCS 5/5-2), not observed receipt. Should read `person("is_medicaid_eligible", period)`. If BCC later enters general Medicaid eligibility, preserve an "otherwise eligible excluding BCC" node to avoid self-reference.
2. **IL FPP — computed substitution**: `il_fpp_eligible.py:32` — disqualifying condition is enrollment in other full medical coverage; `~person("medicaid_enrolled", period)` is the honest model and the live graph is acyclic.
3. **CA §14007.8 freeze — continuity fix**: `is_ca_medicaid_immigration_status_eligible.py:48` — the 2026 freeze grandfathers *prior enrollees*. Proposed:
```python
current_medicaid_coverage = (
person("medicaid_enrolled", period.last_year)
| person("has_medicaid_health_coverage_at_interview", period)
)
```
The prior-year chain terminates in 2025, before the freeze is active, so no recursion.
Context: populace is preparing to populate `receives_medicaid` from CPS `NOW_MCAID` (reported coverage); item 1 gates that wiring — populating the input while IL BCC misreads it as an eligibility proxy would move IL BCC results the wrong way. Full receipts at the adjudication link.
Contributor guide
Research direction
Read il_bcc_insurance_eligible.py:26, il_fpp_eligible.py:32, and is_ca_medicaid_immigration_status_eligible.py:48 alongside the linked adjudication. Update each consumer to use the stated eligibility, enrollment, or prior-year continuity logic, then verify the dependency graph remains acyclic and the three corrections match the statutory interpretations.
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
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 64/100