PolicyEngine / PolicyEngine/microcosm

Preserve the WIC holdout and diagnose the infant/child eligibility offset

Open
#648 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

From scorecard diagnosis batch 1, item #10 (classification: pe_gap, confidence medium; full memo: PolicyEngine/policyengine-scorecard diagnosis/DIAGNOSES.md).

Divergence

National eligibility is 9,367,299 PE versus 9,444,000 Urban (-76,701, -0.812%); participation is 51.412% versus 53.5% (-2.088 points); the gap is 4,551,354 versus 4,389,000 (+162,354). Eligibility agreement hides an infant shortfall of 434,957 (-23.78%) offset by 357,256 (+4.69%) more children ages 1-4. Participation rates differ by +1.620 points for infants and -1.052 points for ages 1-4; age-specific gap differences of -109,375 and +271,729 net to the national +162,354.

Proposed fix

Build P has zero WIC calibration targets, so Urban's national 2023 totals are held-out and independently recomputed. National eligibility agrees within 0.8%, but that total hides a 435k (23.8%) infant shortfall offset by 357k (4.7%) more children ages 1-4. Add held-out age and state diagnostics, beginning with the populace#520 infant-geography concern; preserve a validation holdout or target rotation before adding WIC controls. Continue to label participation as source-seeded from FNS CY2022 category rates, not an unanchored forecast or a consumed calibration target.

Evidence

  • c80b6c4:data/comparison.json, WIC national total and age rows: every eligible and participation quantity is held_out; calibration_basis says zero WIC calibration targets and identifies the match as out-of-sample.
  • POP@8828dee:packages/populace-build/src/populace/build/us/target_parity_manifest.json:680-689 excludes WIC targets; docs/mechanics-audit.md:200-205 and docs/replication-assessment.md:64-68 confirm the zero-target surface.
  • docs/RECONCILIATION.md:20-25,39-44 records bit-exact agreement between independent implementations; lines 31-32 record the corrected monthly WIC gate.
  • POP@8828dee:packages/populace-build/src/populace/build/us/source_stages.json:2250-2301 and us_runtime/wic_claim.py:89-130,283-338 seed would_claim_wic from distinct FNS CY2022 category rates, including 78.4% for infants and 46.0% for children.
  • c80b6c4:data/comparison.json WIC age rows: infant eligibility is 1.394M PE vs 1.829M Urban; age 1-4 is 7.973M vs 7.616M. Rates are 81.520% vs 79.9% and 46.148% vs 47.2%, respectively.

🤖 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 with data/comparison.json and the WIC entries in packages/populace-build/src/populace/build/us/target_parity_manifest.json, then read us_runtime/wic_claim.py and the related source stages. Use the existing held-out national and age rows as the validation baseline, including the infant-geography concern from populace#520. Done means age and state diagnostics are added while WIC targets remain held out and participation remains labeled as source-seeded.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data, testing-qa
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.