PolicyEngine / PolicyEngine/microcosm

Health take-up wiring + certified-stack computability gate (real residuals from #604)

Open
#605 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
0
Forks
4
Avg merge
1d 3h
Merged PRs (30d)
94

Description

Two scoped items surviving the #604 investigation (its $0 premise didn't reproduce — $880B Medicaid / $7.2B CHIP / $236.9B ACA PTC on the certified pair; receipts there):

  1. Wire Medicaid/CHIP take-up from stored facts. takes_up_medicaid_if_eligible defaults True and isn't stored, so medicaid_enrolledis_medicaid_eligible (both exactly 72,457,786 on Build P at 1.764.6). The artifact already stores has_medicaid_health_coverage_at_interview (8.7% of person rows) and siblings — the reported facts exist; they're just not connected to take-up. Design question (mirrors the #591 class-1/class-2 lens): populate take-up flags in the data from the at-interview facts + eligibility, or give the engine a take-up formula seeded from them. Related: #591 remainder (receives_medicaid, gated on policyengine-us#9206), #454 (ESI class).

  2. Certified-stack computability battery. Nothing asserts "every variable pe.py reports is either stored in the artifact or computes nonzero-where-expected on the pinned engine." #604-class scares (and the real holes it pattern-matched to: #361 sparse zeroing, #454) should be a CI table, not an investigation. Sketch: for pe.py's US output set, on each certified candidate compute totals + nonzero counts, assert against per-variable expectations (nonzero / zero-allowed / range), publish the table as a cert artifact.

🤖 Generated with Claude Code

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the referenced #604 investigation and #591 remainder, then inspect the US output set in pe.py and the stored at-interview coverage facts. Done means take-up values are connected to those facts or a seeded formula, and a CI certification table checks totals, nonzero counts, zero-allowed cases, and ranges for each reported variable.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data-engineering, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.