Skip to content

Impute US humanitarian immigration statuses to cited stocks (H.R.1 channels) - #779

Draft
MaxGhenis wants to merge 23 commits into
mainfrom
us-humanitarian-immigration-statuses-767
Draft

Impute US humanitarian immigration statuses to cited stocks (H.R.1 channels)#779
MaxGhenis wants to merge 23 commits into
mainfrom
us-humanitarian-immigration-statuses-767

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Fixes #767.

Implements the design proposed in the issue thread, plus one follow-on redesign of the spill controls (Aug 29, "Align immigration controls with Pew methodology") that this description now reflects. The US immigration_status source stage draws humanitarian/temporary-protection statuses to externally cited stocks, so the enacted H.R.1 eligibility channels stop computing ≈$0 on the next build.

What changes

Humanitarian draws (us_runtime/immigration.py). Between the ASEC-UA legal-status indicators and the EAD spill, thirteen seeded draws run — sequential, mutually exclusive, in decreasing order of target precision:

  • PAROLED_ONE_YEAR per program origin: OAW Afghans (73,566), U4U Ukrainians (158,000), CHNV Nicaraguans (93,070) and Venezuelans (117,330), with program-specific arrival windows (U4U/CHNV cannot draw from the 2020–21 bin);
  • REFUGEE (160k ≈ FY2023+FY2024 OHSS admissions) and ASYLEE (155k ≈ FY2022–24 OHSS grants as revised) from the indicator-documented pool only;
  • TPS per country from the CRS RS20844 table (Venezuela 605,015; El Salvador 170,125 with the 2001 continuous-residence cutoff binding at PEINUSYR granularity; Honduras/Nicaragua/Nepal/other-designated likewise);
  • DEPORTATION_WITHHELD carries an explicit cited zero (EOIR grants ~2.2k/year and publishes no stock).

Cuba/Haiti-born are excluded everywhere (the CUBAN_HAITIAN_ENTRANT class is the statutorily favorable label H.R.1 preserves — Haiti TPS rides it), as is the DACA statutory cohort; Ukraine/Afghanistan TPS registrants are carried by the parole draw. Residual-pool draws (parole/TPS only) flip ssn_card_type NONE → NON_CITIZEN_VALID_EAD, preserving the NONE ⇔ UNDOCUMENTED gate invariant.

Spill controls re-founded on Pew's universe. Pew's 2025 report supersedes the earlier series with a coherent 2023 pair — 14.0M unauthorized immigrants, 9.7M in the labor force — whose modeled universe deliberately retains DACA, parolees, TPS holders and similar temporary protections (and excludes refugees and granted asylees). The worker/student EAD spills now bind that broad universe rather than the bare residual pool: residual undocumented rows, DACA and residual-cohort Cuban/Haitian rows that keep protected engine labels after an EAD, and the Pew-included humanitarian marks. The worker margin uses measured current labor-force status (A_LFSR, age 16+) restored from the pinned Census ASEC archives by exact PERIDNUM join (checkpoint schema v4) instead of prior-year earnings. The composition gate anchors the same broad universe against 14.0M — identifying residual-derived entrants by the (CUBAN_HAITIAN_ENTRANT, NON_CITIZEN_VALID_EAD) pair, which is exactly the set the spill counts, since indicator-documented entrants carry OTHER_NON_CITIZEN.

Manifest, spec, attestations. Every target lives in source_stages.json with one citation per number (URLs verified live, the DHS OAW/U4U reports by exact byte match); the sources schema gains the required humanitarian_status_stocks block; thirteen _stable_site declarations join the seed protocol with owner-ledger bindings; every closed-world census the fail-closed machinery keeps (site counts, owner links, field universe, pointer claims, inventory digests, envelope digests, coverage evidence) is re-pinned on the merged tree.

Gates & probes. The composition gate bands each category's emitted mass against its cited target (explicit-zero categories must emit zero) and records achieved-vs-target for certification notes. Four release-blocking reform-coverage probes pin the channels end-to-end — restoring the pre-H.R.1 Medicaid list (§71109, 2027), the below-FPL PTC exception (§71302, 2026), the ACA lawful-presence list (§71301, 2027), and the pre-§10108 SNAP list (2026) must each move their budget measure on the export, binding only through immigration_status_str.

Evidence (raw 2024 ASEC, seed 0, merged tree)

category weighted ratio to target
PAROLED_ONE_YEAR 372k 0.84 (Ukraine pool saturates; 2020–21 bin excluded for U4U/CHNV)
REFUGEE 129k 0.81
ASYLEE 156k 1.00
TPS 865k 1.01
DACA 371k — (restored; the earlier draft eroded it)
UNDOCUMENTED 12.90M
Pew broad universe 14.71M 1.05× the 14.0M anchor
Pew labor force 9.698M binds the 9.7M control

CHIP-age humanitarian mass is present (TPS under-19: 118k weighted). test_us_hr1_immigration_channels.py proves each probe's channel on synthetic households against the locked engine (all sign-correct from $0 baselines); nine further tests cover the Pew-universe spill, A_LFSR measurement, entrant retention, and gate inclusion/exclusion. CI was green across the full 23-job tiered matrix at 96c88e6; this push re-runs it on current main.

Deliberately out of scope (filed)

No certified release is touched; the imputation activates in the next build lane, where the smoke gate enforces the four channels permanently.

🤖 Generated with Claude Code

MaxGhenis and others added 16 commits August 25, 2026 15:36
REFUGEE / ASYLEE / PAROLED_ONE_YEAR (per program origin) / TPS (per
country) are now selected between the ASEC-UA indicators and the EAD
spill, each to a manifest-cited target, so the H.R.1 $71109/$71301/
$71302 and SNAP $10108 eligibility channels stop computing $0 on the
release. DEPORTATION_WITHHELD carries an explicit cited zero (no
published stock). Residual-pool parole/TPS draws receive EAD SSN cards,
keeping the NONE-undocumented invariant; the composition gate now bands
each category against its target.

Refs #767

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Thirteen stable blake2b sites (per-origin parole, refugee, asylee,
deportation-withheld, per-country TPS) join the seed protocol; the
seed-owner ledger binds them to the immigration_status stage; the
sources schema gains the required humanitarian_status_stocks block; the
bundle regenerates with the new source_stages attestation.

Refs #767

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…h tests

Refs #767

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Restorations of the pre-H.R.1 Medicaid, SNAP, and ACA lawful-presence
lists and the below-FPL PTC exception must each move their budget
measure on the export; a ~$0 score means the humanitarian statuses
regressed and blocks publication.

Refs #767

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…n digests

test_us_hr1_immigration_channels builds each probe's reform against the
locked engine and shows nonzero, sign-correct movement per channel
(medicaid, aca_ptc twice, snap) so the release smoke gate's probes have
a PR-CI early warning. The thirteen humanitarian draw sites join
EXPECTED_LEGACY_V1_SITES and the audited-source manifest; BE/UK envelope
digests re-pin because the shared seed-protocol source is attested.

Refs #767

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Refs #767

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ration-statuses-767

# Conflicts:
#	packages/microcosm-build/tests/test_spec_engine_country_bundles.py
Main's #743 moved the UK bundle while this branch moves the shared seed
protocol; the merged UK digest combines both, BE carries only the
protocol move.

Refs #767

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… draws

The thirteen humanitarian sites move every closed-world census the
fail-closed machinery keeps: protocol site counts (53 -> 66), the
owner-link sum (112 -> 125, one owner each, distinct owners unchanged),
the configuration field universe (42,120 -> 42,419: +13 legacy-behavior
target fields, +286 attestation-only resolved seed fields), four pointer
claims (source_stages, spine/resolved seed-site bindings, resolved seed
protocol), and the source_stages byte attestation in the bundle tests.

Refs #767

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ration-statuses-767

# Conflicts:
#	packages/microcosm-build/tests/test_spec_engine_country_bundles.py
…ration-statuses-767

# Conflicts:
#	packages/microcosm-build/tests/test_spec_engine_country_bundles.py
Add source-aware ASEC and ACS immigration evidence, pooled control scaling, deterministic humanitarian reconciliation, calibration targets, terminal gates, authenticated receipts, and release regressions.

Refs #767
@MaxGhenis
MaxGhenis marked this pull request as ready for review August 28, 2026 21:18
@MaxGhenis
MaxGhenis marked this pull request as draft August 28, 2026 23:36
@MaxGhenis
MaxGhenis marked this pull request as ready for review August 29, 2026 01:39
@MaxGhenis
MaxGhenis marked this pull request as draft August 29, 2026 07:49
MaxGhenis and others added 2 commits September 4, 2026 08:12
…ration-statuses-767

# Conflicts:
#	docs/evidence/spec-engine/us-f0-coverage.json
#	packages/microcosm-build/src/microcosm/build/spec_engine/inventory_coverage.py
#	packages/microcosm-build/tests/test_spec_engine_country_bundles.py
#	packages/microcosm-build/tests/test_spec_engine_loader.py
#	packages/microcosm-build/tests/test_us_multispine_pool_h5_io.py
#	packages/microcosm-build/tests/test_us_multispine_pool_tool.py
Resolves the six pin collisions against current main: BE/UK envelope
digests, the loader golden vector, the US spec digest in the multispine
tool test, the nine inventory digests plus the producer-input count the
A_LFSR column adds, and the regenerated coverage evidence. The h5_io
test is a real three-way merge (branch kept its stacked-pool immigration
receipt tests; main's failed-gate fixture helper replaces the inlined
block). Re-applies the branch's seed-group entries and site counts on
main's inventory module.

Refs #767

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
MaxGhenis and others added 2 commits September 4, 2026 08:28
The branch's scoring loader authenticates the canonical stacked terminal
gates, so main's minimal fixture gate is refused; the helper keeps its
API and adopts the branch's construction (real gates, completeness
flipped). The denied-pool test now derives the fixture's household count
from the positive canonical humanitarian draws instead of main's
three-row literal.

Refs #767

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Main added the am country bundle this week; the envelope digests move
with the shared seed protocol, so all three pins are recomputed by
country rather than by position.

Refs #767

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

US: humanitarian immigration statuses absent from the imputation — H.R.1 §71109/§71302 eligibility channels compute ≈$0

1 participant