PolicyEngine / PolicyEngine/microcosm

c-26 stacked pool: emergent undocumented population 18.9M vs the 11.0M anchor (1.72x; gate band [0.5, 1.6])

Open
#856 1 comment 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

Found by the candidate-26 dense-evidence arm (release id populace-us-2024-onesurface-pkg3-legacy-dense-scoring-b8819b3f-20260902T184743Z, base pool populace-us-2024-stacked-f025-s578-asec42213-acs382903-20260831T162338Z-e14b24e8, builder at 5ef9237e). The pre-export immigration composition gate (us_immigration_composition_gate, invoked from tools/build_us_fiscal_refresh_release.py after the pool's immigration inputs load) failed:

Immigration composition failed: emergent undocumented population 18,919,043 is 1.72x the published anchor 11,000,000 (band [0.5, 1.6], https://www.pewresearch.org/short-reads/2024/07/22/what-we-know-about...)

Context, stated carefully:

  • This is, as far as the run records show, the first time this gate has been exercised against a stacked pool through --base-h5 (pool_frame is not None, so immigration inputs come from the pool itself rather than being derived in-build). Whether 1.72x is a c-26 regression, a general property of the stacked assembly at design weights, or a gate whose anchor comparison needs an origin-aware basis on stacked pools is exactly the open question.
  • The c-26 pool is already gate_failed on the by-origin battery (63/135; #781, #783 hold the adjudication context). This failure is additional evidence for the candidate-26 ruling, not a substitute for it.
  • Related but distinct: #767 (humanitarian statuses absent from the imputation) concerns statuses computing $0, not the undocumented total.

This issue is the adjudicated owner for the failure pattern Immigration composition failed: in the dense-evidence arm's --evidence-failure-owners file (microcosm#506 evidence-tier contract), so the evidence build can mint its scoring artifact with the failure recorded in known_failures rather than dying before calibration. Owning it here means: whoever closes the c-26 ruling either explains this number on the stacked basis or fixes the assembly.

🤖 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 tools/build_us_fiscal_refresh_release.py and the us_immigration_composition_gate invocation after immigration inputs load. Compare the --base-h5 stacked path, where pool_frame is not None, with the published anchor and the gate band, using the c-26 release and pool records named in the issue. Review #781 and #783 for adjudication context; done means explaining the stacked-basis result or fixing the assembly and recording the failure appropriately.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.