From ef5bae7ce9d8f78cf8f151c3ae77cb1d8a04f519 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Fri, 17 Jul 2026 06:34:22 -0400 Subject: [PATCH] Certify Build M US Populace as the certified default Fixes #474. BUILD_M_RELEASE_ID populace-us-2024-buildm-sparse-rmloss100-98bf731- 20260717T075101Z replaces populace-us-2024-buildj-sparse-rmloss100- 75d5add-20260710T094201Z; 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 M sparse vs Build J: final loss 0.02666 vs 0.03084, within-10% 90.21% vs 89.00%, 5,667 vs 5,510 compiled targets, all 14 release gates passed. The UK TRO sidecar's two sha fields update because it binds the same (changed) bundle manifest; not a degraded regeneration. Verified: bundle.py check green; local-area overlay preserved; manifest+certify suites 70 passed; models+US regions 57 passed against the published tag; overlay selection 7 passed; format+lint clean. Merging this PR is the default-flip decision and stays with the maintainer. Co-Authored-By: Claude Fable 5 --- ...oss100-98bf731-20260717T075101Z.changed.md | 1 + src/policyengine/data/bundle/manifest.json | 54 ++++++++++--------- .../data/bundle/uk.trace.tro.jsonld | 4 +- .../data/bundle/us.trace.tro.jsonld | 20 +++---- tests/test_models.py | 2 +- tests/test_release_manifests.py | 2 +- tests/test_us_regions.py | 2 +- 7 files changed, 46 insertions(+), 39 deletions(-) create mode 100644 changelog.d/certify-us-populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z.changed.md diff --git a/changelog.d/certify-us-populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z.changed.md b/changelog.d/certify-us-populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z.changed.md new file mode 100644 index 00000000..17f579a4 --- /dev/null +++ b/changelog.d/certify-us-populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z.changed.md @@ -0,0 +1 @@ +Certify the US populace data release `populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z` (populace_us_2024, policyengine-us 1.764.6) into the PolicyEngine bundle manifest. diff --git a/src/policyengine/data/bundle/manifest.json b/src/policyengine/data/bundle/manifest.json index 9210e497..b23a01e5 100644 --- a/src/policyengine/data/bundle/manifest.json +++ b/src/policyengine/data/bundle/manifest.json @@ -97,30 +97,30 @@ "version": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z" }, "us": { - "build_id": "populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z", + "build_id": "populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z", "bundle_id": "us-4.21.0", "certification": { "built_with_model_version": "1.764.6", "certified_by": "policyengine.py bundle certification", "certified_for_model_version": "1.764.6", "compatibility_basis": "built_with_model_package", - "data_build_id": "populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z" + "data_build_id": "populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z" }, "certified_data_artifact": { - "build_id": "populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z", + "build_id": "populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z", "data_package": { "name": "populace-data", "version": "0.1.0" }, "dataset": "populace_us_2024", - "sha256": "9d1e460ddbc49c9b467b936f07edd4576ae2667ef39fdea2490bc5577c038d51", - "uri": "hf://policyengine/populace-us/populace_us_2024.h5@populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z" + "sha256": "7ec36a513a5a6acb673e978d157952178c35476295d7529b2db5bb24ce44a141", + "uri": "hf://policyengine/populace-us/populace_us_2024.h5@populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z" }, "country_id": "us", "data_package": { "name": "populace-data", - "release_manifest_path": "releases/populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z/release_manifest.json", - "release_manifest_revision": "populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z", + "release_manifest_path": "releases/populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z/release_manifest.json", + "release_manifest_revision": "populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z", "repo_id": "policyengine/populace-us", "repo_type": "dataset", "version": "0.1.0" @@ -128,38 +128,44 @@ "data_producer": "populace", "datasets": { "calibration_diagnostics": { - "path": "releases/populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z/calibration_diagnostics.json", + "path": "releases/populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z/calibration_diagnostics.json", "repo_id": "policyengine/populace-us", - "revision": "populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z", - "sha256": "3ef00d43c02cc05bea07b4b4bce5cfc75f27bbc9c51f785aba563db8fb65bf11" + "revision": "populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z", + "sha256": "dfbd83716001f3e813ee144ac84c735161fc5121285cb0bc335f9ed8d43293d5" }, "demographics": { - "path": "releases/populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z/demographics.json", + "path": "releases/populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z/demographics.json", "repo_id": "policyengine/populace-us", - "revision": "populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z", - "sha256": "12961643692759112262b5253e66c911893cc5ab04178b644901c4a580aacd70" + "revision": "populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z", + "sha256": "1f28bd47135104dc0610bfc83b1cea54d5581d59d6fdf36f539f83a8fbc53463" }, "populace_us_2024": { "path": "populace_us_2024.h5", "repo_id": "policyengine/populace-us", - "revision": "populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z", - "sha256": "9d1e460ddbc49c9b467b936f07edd4576ae2667ef39fdea2490bc5577c038d51" + "revision": "populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z", + "sha256": "7ec36a513a5a6acb673e978d157952178c35476295d7529b2db5bb24ce44a141" }, "populace_us_2024_calibration": { "path": "populace_us_2024_calibration.npz", "repo_id": "policyengine/populace-us", - "revision": "populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z", - "sha256": "e913bc33baa187079f3aa53a6b1b771791c6b76c842ebd83a66b9835796e6490" + "revision": "populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z", + "sha256": "f16a9077ab622e4e4435c9f57f38837546267d56f91dbd5813bc739bf3c603a7" }, "us_source_coverage": { - "path": "releases/populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z/us_source_coverage.json", + "path": "releases/populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z/us_source_coverage.json", "repo_id": "policyengine/populace-us", - "revision": "populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z", - "sha256": "869938c9d99f979981f9a0db101b0a7110fa5edc9462f441a9f09dcbe2bea9b9" + "revision": "populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z", + "sha256": "79961cb56b99a4c29c5b6227ba9bed2388234931a22ec89239cf59d4d3b04f0b" + }, + "us_ssi_take_up": { + "path": "releases/populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z/us_ssi_take_up.json", + "repo_id": "policyengine/populace-us", + "revision": "populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z", + "sha256": "ec615f4ea908cea5f01dd152260777417b8edbc69d01637f66a42903b588d015" } }, "default_dataset": "populace_us_2024", - "default_dataset_uri": "hf://policyengine/populace-us/populace_us_2024.h5@populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z", + "default_dataset_uri": "hf://policyengine/populace-us/populace_us_2024.h5@populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z", "model_package": { "name": "policyengine-us", "sha256": "2b2c5c02c26ab212270948db1f30129728b625fc6109fc9ca0c604b714546909", @@ -172,10 +178,10 @@ "path_template": "populace_us_2024.h5" } }, - "release_manifest_uri": "https://huggingface.co/datasets/policyengine/populace-us/resolve/populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z/releases/populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z/release_manifest.json", + "release_manifest_uri": "https://huggingface.co/datasets/policyengine/populace-us/resolve/populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z/releases/populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z/release_manifest.json", "schema_version": 1, - "source_manifest_uri": "hf://dataset/policyengine/populace-us@populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z/releases/populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z/release_manifest.json", - "version": "populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z" + "source_manifest_uri": "hf://dataset/policyengine/populace-us@populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z/releases/populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z/release_manifest.json", + "version": "populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z" } }, "dataset_overlays": { diff --git a/src/policyengine/data/bundle/uk.trace.tro.jsonld b/src/policyengine/data/bundle/uk.trace.tro.jsonld index 5066ff66..f5e6e80d 100644 --- a/src/policyengine/data/bundle/uk.trace.tro.jsonld +++ b/src/policyengine/data/bundle/uk.trace.tro.jsonld @@ -75,7 +75,7 @@ "@type": "trov:ResearchArtifact", "schema:name": "policyengine.py bundle manifest for uk", "trov:mimeType": "application/json", - "trov:sha256": "0d6134022f54c9f3314bbab08ea5e68db9a1732799a56378c23a768bce983eed" + "trov:sha256": "bc9a6584a300ccd3f779090135a93daf9637778a7285d9cac042f6ce15e95232" }, { "@id": "composition/1/artifact/data_release_manifest", @@ -102,7 +102,7 @@ "trov:hasFingerprint": { "@id": "composition/1/fingerprint", "@type": "trov:CompositionFingerprint", - "trov:sha256": "d727d61f06235163122d9f0e3f9f575500d4182f16debb57b3a193f3394eea1d" + "trov:sha256": "79dfe617fa49a3c545dc6e80219e9b5cd21fa2d838a5ca2857fe493b3317fc99" } }, "trov:hasPerformance": { diff --git a/src/policyengine/data/bundle/us.trace.tro.jsonld b/src/policyengine/data/bundle/us.trace.tro.jsonld index 869b3060..289c2561 100644 --- a/src/policyengine/data/bundle/us.trace.tro.jsonld +++ b/src/policyengine/data/bundle/us.trace.tro.jsonld @@ -17,7 +17,7 @@ "schema:name": "PolicyEngine", "schema:url": "https://policyengine.org" }, - "schema:dateCreated": "2026-07-10T09:51:25.549860+00:00", + "schema:dateCreated": "2026-07-17T10:18:14.574294+00:00", "schema:description": "TRACE TRO for certified runtime bundle us-4.21.0 covering the bundle manifest, the certified dataset artifact, the country model wheel, and the country data release manifest when it is available.", "schema:name": "policyengine us certified bundle TRO", "trov:createdWith": { @@ -45,7 +45,7 @@ "trov:hasArtifact": { "@id": "composition/1/artifact/data_release_manifest" }, - "trov:hasLocation": "https://huggingface.co/datasets/policyengine/populace-us/resolve/populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z/releases/populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z/release_manifest.json" + "trov:hasLocation": "https://huggingface.co/datasets/policyengine/populace-us/resolve/populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z/releases/populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z/release_manifest.json" }, { "@id": "arrangement/1/location/dataset", @@ -53,7 +53,7 @@ "trov:hasArtifact": { "@id": "composition/1/artifact/dataset" }, - "trov:hasLocation": "https://huggingface.co/datasets/policyengine/populace-us/resolve/populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z/populace_us_2024.h5" + "trov:hasLocation": "https://huggingface.co/datasets/policyengine/populace-us/resolve/populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z/populace_us_2024.h5" }, { "@id": "arrangement/1/location/model_wheel", @@ -75,21 +75,21 @@ "@type": "trov:ResearchArtifact", "schema:name": "policyengine.py bundle manifest for us", "trov:mimeType": "application/json", - "trov:sha256": "0d6134022f54c9f3314bbab08ea5e68db9a1732799a56378c23a768bce983eed" + "trov:sha256": "bc9a6584a300ccd3f779090135a93daf9637778a7285d9cac042f6ce15e95232" }, { "@id": "composition/1/artifact/data_release_manifest", "@type": "trov:ResearchArtifact", "schema:name": "populace-data release manifest 0.1.0", "trov:mimeType": "application/json", - "trov:sha256": "3d292c2231d918cf58b68d14bfabd0a1ea252a43ae1890cec5228bd10db21ba9" + "trov:sha256": "25ee62fb5f0864e4c232f662d3a8998c99565ee421d89d5a20df7059cc150200" }, { "@id": "composition/1/artifact/dataset", "@type": "trov:ResearchArtifact", "schema:name": "populace_us_2024", "trov:mimeType": "application/x-hdf5", - "trov:sha256": "9d1e460ddbc49c9b467b936f07edd4576ae2667ef39fdea2490bc5577c038d51" + "trov:sha256": "7ec36a513a5a6acb673e978d157952178c35476295d7529b2db5bb24ce44a141" }, { "@id": "composition/1/artifact/model_wheel", @@ -102,7 +102,7 @@ "trov:hasFingerprint": { "@id": "composition/1/fingerprint", "@type": "trov:CompositionFingerprint", - "trov:sha256": "e46bd599ac30f6ca747d6395683a7d46d1af05d9dc4f5ecf961279412bf713c3" + "trov:sha256": "fcd4ac0d81f95f2938a588e9754f1832433a4b1a659fc5e3c2620142ca865020" } }, "trov:hasPerformance": { @@ -112,13 +112,13 @@ "pe:certifiedBy": "policyengine.py bundle certification", "pe:certifiedForModelVersion": "1.764.6", "pe:compatibilityBasis": "built_with_model_package", - "pe:dataBuildId": "populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z", + "pe:dataBuildId": "populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z", "pe:emittedIn": "repository-bundle", - "rdfs:comment": "Certification of build populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z for policyengine-us 1.764.6.", + "rdfs:comment": "Certification of build populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z for policyengine-us 1.764.6.", "trov:accessedArrangement": { "@id": "arrangement/1" }, - "trov:startedAtTime": "2026-07-10T09:51:25.549860+00:00", + "trov:startedAtTime": "2026-07-17T10:18:14.574294+00:00", "trov:wasConductedBy": { "@id": "trs" } diff --git a/tests/test_models.py b/tests/test_models.py index 07b7d9a1..5369c8e5 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -120,7 +120,7 @@ def test_has_release_manifest_metadata(self): assert ( us_latest.default_dataset_uri == "hf://policyengine/populace-us/populace_us_2024.h5" - "@populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z" + "@populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z" ) def test_has_hundreds_of_parameters(self): diff --git a/tests/test_release_manifests.py b/tests/test_release_manifests.py index bef795c6..49229735 100644 --- a/tests/test_release_manifests.py +++ b/tests/test_release_manifests.py @@ -43,7 +43,7 @@ US_MODEL_VERSION = "1.764.6" US_BUILT_WITH_MODEL_VERSION = "1.764.6" US_DATA_RELEASE_VERSION = "0.1.0" -US_DATA_RELEASE_ID = "populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z" +US_DATA_RELEASE_ID = "populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z" US_DATA_RELEASE_REVISION = US_DATA_RELEASE_ID US_DATA_RELEASE_PATH = f"releases/{US_DATA_RELEASE_ID}/release_manifest.json" US_DATA_ARTIFACT_REVISION = US_DATA_RELEASE_ID diff --git a/tests/test_us_regions.py b/tests/test_us_regions.py index f27e0649..fba225fb 100644 --- a/tests/test_us_regions.py +++ b/tests/test_us_regions.py @@ -107,7 +107,7 @@ def test__given_us_registry__then_has_national_region(self): assert national.region_type == "national" assert national.dataset_path == ( "hf://policyengine/populace-us/populace_us_2024.h5" - "@populace-us-2024-buildj-sparse-rmloss100-75d5add-20260710T094201Z" + "@populace-us-2024-buildm-sparse-rmloss100-98bf731-20260717T075101Z" ) def test__given_us_registry__then_has_51_states(self):