Certify Build N US Populace as the certified default#481
Merged
Conversation
Fixes #480. BUILD_N_RELEASE_ID populace-us-2024-buildn-sparse-rmloss100-c3e378a- 20260722T010408Z replaces populace-us-2024-buildm-sparse-rmloss100- 98bf731-20260717T075101Z; policyengine-us stays 1.764.6 (built_with_model_package), so pyproject and household snapshots are untouched - the #470 common case, per the Build M runbook. Build N sparse vs Build M: final loss 0.028242 vs 0.02666, within-10% 89.49% vs 90.21%, 5,672 vs 5,667 compiled targets. The pair is not surface-comparable: populace#486/#488 repaired 518 target values (state capital gains +$298.5B, taxable interest +$21.6B), so N holds 89.49% against a strictly harder, truthful surface. All 8 build gates passed; export-mass parity 0 failures both legs; reform-coverage smoke 39/39 including the keogh probe; the SSI one-shot Bernoulli law gate reports 0 violations (populace#477 deleted the reconcile loop). Publish contract green with medical_expense_deduction_total at the adjudicated 0.25 bound (populace#490; published row -20.57%). The UK TRO sidecar's two sha fields update because it binds the same (changed) bundle manifest; not a degraded regeneration. Merging this PR is the default-flip decision and stays with the maintainer. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
MaxGhenis
marked this pull request as ready for review
July 22, 2026 11:26
Contributor
Author
|
CI complete: 12/12 checks pass (including both full-battery jobs against the published tag), mergeable clean. Local receipts in the description (738/738 battery, bundle check, TROs regenerated with token). Ready for the maintainer. Merging this PR is the default-flip decision and stays with Max, as does the subsequent |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #480.
Merging this PR is the default flip — it certifies
populace-us-2024-buildn-sparse-rmloss100-c3e378a-20260722T010408Z(published 2026-07-22, immutable tag;latest.jsondeliberately untouched) as the certified US default, replacing Build M. The merge decision stays with the maintainer.What changes
Same shape as the Build M certification (#475), the #470 common case —
policyengine-us==1.764.6is unchanged (compatibility_basis: built_with_model_package), so pyproject and household snapshots are untouched:src/policyengine/data/bundle/manifest.json— US data package rebound to the Build N release (manifest sha25699d8b7a5…, artifact sha25638de53a3…)us.trace.tro.jsonld— regenerated against the published taguk.trace.tro.jsonld— two sha fields update because the sidecar binds the same (changed) bundle manifest; regenerated with the HF token, not a degraded regenerationUS_DATA_RELEASE_IDintest_release_manifests.py, plus the URI pins intest_models.py/test_us_regions.py)Scorecard: Build N sparse vs Build M
The headline pair is not surface-comparable: Build N repaired the target surface itself. populace#486 (capital-gain-distributions level repair) and populace#488 (cross-vintage aging chain completion) corrected 518 target values — state capital gains +$298.5B, taxable interest +$21.6B — so N is scored against a strictly harder, truthful surface than M was.
Gates and receipts (published release manifest)
bernoulli_law_violation_count = 0.keogh_distribution_neutralization.medical_expense_deduction_totalat the adjudicated 0.25 broad-fit bound (populace#490; published row −20.57%). Durable fix staged on populace branchloss-contract-alignment; 0.15 restores once a boosted run holds it.CD_SURFACE_REGIME = "off"constant.Verification
scripts/certify_data_release.pyran against the published HF tag (revision-pinned manifest URI)scripts/generate_trace_tros.pyregenerated both TRO sidecars with the HF tokenscripts/bundle.py check: green (rc 0)uv.lockdeliberately untouched (main's lock is stale at 4.20.1 vs pyproject 4.22.0 — pre-existing, separate concern)🤖 Generated with Claude Code