diff --git a/changelog.d/554.changed.md b/changelog.d/554.changed.md new file mode 100644 index 00000000..d0ab7870 --- /dev/null +++ b/changelog.d/554.changed.md @@ -0,0 +1 @@ +Certify policyengine-uk-data 1.58.0 (`enhanced_frs_2024_25`) as the UK default, and pin policyengine-uk 2.125.1 and policyengine-core 3.33.0. The data was built with policyengine-uk 2.122.2 and core 3.32.13; the publisher's compatibility claim in the 1.58.0 release manifest covers the newer versions. UK results change with the new data release and with the policyengine-uk updates since 2.102.3, including Housing Benefit's Guarantee Credit passport now keyed on receipt. diff --git a/docs/households.md b/docs/households.md index 22500e15..9ac9e710 100644 --- a/docs/households.md +++ b/docs/households.md @@ -106,7 +106,7 @@ separate benefit inputs; they do not override SPM measurement composition. These changes require the coordinated canonical country/calculator bundle, which the packaged production manifest now pins and certifies: `policyengine-us` -2.2.1, `policyengine-core` 3.32.10, `spm-calculator` 1.0.0, and the US data +2.2.1, `policyengine-core` 3.33.0, `spm-calculator` 1.0.0, and the US data release `populace-us-2024-spm-20260915`. Local-wheel development manifest fixtures remain explicitly uncertified. The measurement receipt identifies a calculation; it does not certify a population dataset or establish publication diff --git a/pyproject.toml b/pyproject.toml index e1a4b83f..74c5a98d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,17 +40,17 @@ graph = [ "networkx>=3.0", ] models = [ - "policyengine-core==3.32.10", + "policyengine-core==3.33.0", "policyengine-us==2.2.1", - "policyengine-uk==2.102.3", + "policyengine-uk==2.125.1", "spm-calculator==1.0.0", ] uk = [ - "policyengine-core==3.32.10", - "policyengine-uk==2.102.3", + "policyengine-core==3.33.0", + "policyengine-uk==2.125.1", ] us = [ - "policyengine-core==3.32.10", + "policyengine-core==3.33.0", "policyengine-us==2.2.1", "spm-calculator==1.0.0", ] @@ -69,9 +69,9 @@ dev = [ "mypy>=1.11.0", "pytest-cov>=5.0.0", "hypothesis>=6.100.0", - "policyengine-core==3.32.10", + "policyengine-core==3.33.0", "policyengine-us==2.2.1", - "policyengine-uk==2.102.3", + "policyengine-uk==2.125.1", "spm-calculator==1.0.0", ] diff --git a/src/policyengine/data/bundle/manifest.json b/src/policyengine/data/bundle/manifest.json index 6b54980d..2e7e48a9 100644 --- a/src/policyengine/data/bundle/manifest.json +++ b/src/policyengine/data/bundle/manifest.json @@ -16,88 +16,88 @@ }, "data_releases": { "uk": { - "build_id": "policyengine-uk-data-1.56.16", + "build_id": "policyengine-uk-data-1.58.0", "bundle_id": "uk-6.2.5", "certification": { - "built_with_model_git_sha": "12a1e028afeef08d8b2d74ee03fd9de3a78b2dd3", - "built_with_model_version": "2.89.2", + "built_with_model_git_sha": "4cbedbecca352f52dffe47e849553c2759a00711", + "built_with_model_version": "2.122.2", "certified_by": "policyengine.py bundle certification", - "certified_for_model_version": "2.102.3", + "certified_for_model_version": "2.125.1", "compatibility_basis": "legacy_compatible_model_package", - "data_build_fingerprint": "sha256:6bfff835b504094c05342d2b4d770d2d94c8c1adcb15c4468931f53b21a89ea9", - "data_build_id": "policyengine-uk-data-1.56.16" + "data_build_fingerprint": "sha256:c094d7006fdd81df220090284212f16bbffb15624643bc442c4bb3e1b1e5dac8", + "data_build_id": "policyengine-uk-data-1.58.0" }, "certified_data_artifact": { - "build_id": "policyengine-uk-data-1.56.16", + "build_id": "policyengine-uk-data-1.58.0", "data_package": { "name": "policyengine-uk-data", - "version": "1.56.16" + "version": "1.58.0" }, "dataset": "enhanced_frs_2024_25", - "sha256": "e433e532b17bd8ce76030156285816e33d44e93edabd2204adbef71d19a68712", - "uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.56.16" + "sha256": "5ba399ea5ab9a6c7d4e9aaf6c623080beb34d9ad5f330f6244dbad72b8d960b6", + "uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.58.0" }, "country_id": "uk", "data_package": { "name": "policyengine-uk-data", - "release_manifest_path": "releases/1.56.16/release_manifest.json", - "release_manifest_revision": "78788372fec47fc8df835bd32307ef61eaed83c2", + "release_manifest_path": "releases/1.58.0/release_manifest.json", + "release_manifest_revision": "fdeba38517bd86067f34c0a5d8ed8923efb3b10a", "repo_id": "policyengine/policyengine-uk-data-private", "repo_type": "model", - "version": "1.56.16" + "version": "1.58.0" }, "data_producer": "populace", "datasets": { "enhanced_frs_2024_25": { "path": "enhanced_frs_2024_25.h5", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.56.16", - "sha256": "e433e532b17bd8ce76030156285816e33d44e93edabd2204adbef71d19a68712" + "revision": "1.58.0", + "sha256": "5ba399ea5ab9a6c7d4e9aaf6c623080beb34d9ad5f330f6244dbad72b8d960b6" }, "enhanced_frs_2024_25_tiny": { "path": "enhanced_frs_2024_25_tiny.h5", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.56.16", - "sha256": "6cbbda7eef1b0b16d62e24a3099dc7959906287d659868d31aa7fc82af598871" + "revision": "1.58.0", + "sha256": "a2e938b6c68952dc6fa3af998501371d9014b66263baef262d4f649fe6f19dd5" }, "frs_2024_25": { "path": "frs_2024_25.h5", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.56.16", - "sha256": "d4d29901d7ea0c1f636060d4177a411a39c1977fa9fd23a61af3bb0f030769bd" + "revision": "1.58.0", + "sha256": "2ec0ea6c10bc82d030a071474c1b376780ea88053e1659d784b4253662341634" }, "frs_2024_25_tiny": { "path": "frs_2024_25_tiny.h5", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.56.16", - "sha256": "74ca086be959b2942ecbf7755034d94dc6a817f4d9d54f2585a1c6df849d9588" + "revision": "1.58.0", + "sha256": "e91d17c4bae92067222272da33918f15027f65a58e3765c7bdff8aa119df914e" }, "local_authority_weights": { "path": "local_authority_weights.h5", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.56.16", - "sha256": "6d634d69fb472b80cc17ffe696e028c54d7b739166bb7d9a57860f9d73537aa5" + "revision": "1.58.0", + "sha256": "0f8e43877f13cea86ea7bd78ce938769d0c2746ac0b191be661c25608aa786fc" }, "local_geography_weights": { "path": "local_geography_weights.csv.gz", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.56.16", - "sha256": "6f623e277089d06c2c50ec3d8ab766635f695c8579d360410e3dcb4214ea9709" + "revision": "1.58.0", + "sha256": "2c4026139eb69d26af5a0ddad7e7fe9ee981b89a0968e77a5f41820091f641c2" }, "parliamentary_constituency_weights": { "path": "parliamentary_constituency_weights.h5", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.56.16", - "sha256": "6870c36072a0c34d2e6ce3ebf58664b7932ca46a9e3808d387988773e63b66d5" + "revision": "1.58.0", + "sha256": "da3d021bf6cd57f06e878094e48524a6a691207231158d9a109da73ea459e900" } }, "default_dataset": "enhanced_frs_2024_25", - "default_dataset_uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.56.16", + "default_dataset_uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.58.0", "model_package": { "name": "policyengine-uk", - "sha256": "f02a76712a3edf9983c713c1db42e9653a6e974e4ce335dd4b5676bbc2bcd636", - "version": "2.102.3", - "wheel_url": "https://files.pythonhosted.org/packages/37/e6/e8d9069d498f1510a1380f24a78e957902d01f00b10248c146d6710d5b37/policyengine_uk-2.102.3-py3-none-any.whl" + "sha256": "a0983b4cef868467578a4fd0d163a977a0da8f710dd5194ec01c75f66d512c5a", + "version": "2.125.1", + "wheel_url": "https://files.pythonhosted.org/packages/ec/3a/1d90bad4346d1a8c2715be211ed3d3d7f48917da0d90405b8257b7304091/policyengine_uk-2.125.1-py3-none-any.whl" }, "policyengine_version": "6.2.5", "region_datasets": { @@ -105,10 +105,10 @@ "path_template": "enhanced_frs_2024_25.h5" } }, - "release_manifest_uri": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/78788372fec47fc8df835bd32307ef61eaed83c2/releases/1.56.16/release_manifest.json", + "release_manifest_uri": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/fdeba38517bd86067f34c0a5d8ed8923efb3b10a/releases/1.58.0/release_manifest.json", "schema_version": 1, - "source_manifest_uri": "hf://model/policyengine/policyengine-uk-data-private@78788372fec47fc8df835bd32307ef61eaed83c2/releases/1.56.16/release_manifest.json", - "version": "policyengine-uk-data-1.56.16" + "source_manifest_uri": "hf://model/policyengine/policyengine-uk-data-private@fdeba38517bd86067f34c0a5d8ed8923efb3b10a/releases/1.58.0/release_manifest.json", + "version": "policyengine-uk-data-1.58.0" }, "us": { "build_id": "populace-us-2024-spm-20260915", @@ -302,18 +302,18 @@ }, "policyengine-core": { "import_name": "policyengine_core", - "install_requirement": "policyengine-core==3.32.10", + "install_requirement": "policyengine-core==3.33.0", "name": "policyengine-core", "role": "runtime_dependency", - "version": "3.32.10" + "version": "3.33.0" }, "policyengine-uk": { "country": "uk", "import_name": "policyengine_uk", - "install_requirement": "policyengine-uk==2.102.3", + "install_requirement": "policyengine-uk==2.125.1", "name": "policyengine-uk", "role": "country_model", - "version": "2.102.3" + "version": "2.125.1" }, "policyengine-us": { "country": "us", diff --git a/src/policyengine/data/bundle/uk.trace.tro.jsonld b/src/policyengine/data/bundle/uk.trace.tro.jsonld index 6f4857ee..0097ec88 100644 --- a/src/policyengine/data/bundle/uk.trace.tro.jsonld +++ b/src/policyengine/data/bundle/uk.trace.tro.jsonld @@ -17,7 +17,7 @@ "schema:name": "PolicyEngine", "schema:url": "https://policyengine.org" }, - "schema:dateCreated": "2026-08-18T14:20:32.100961Z", + "schema:dateCreated": "2026-10-07T17:31:53.189867Z", "schema:description": "TRACE TRO for certified runtime bundle uk-6.2.5 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 uk certified bundle TRO", "trov:createdWith": { @@ -45,7 +45,7 @@ "trov:hasArtifact": { "@id": "composition/1/artifact/data_release_manifest" }, - "trov:hasLocation": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/78788372fec47fc8df835bd32307ef61eaed83c2/releases/1.56.16/release_manifest.json" + "trov:hasLocation": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/fdeba38517bd86067f34c0a5d8ed8923efb3b10a/releases/1.58.0/release_manifest.json" }, { "@id": "arrangement/1/location/dataset", @@ -53,7 +53,7 @@ "trov:hasArtifact": { "@id": "composition/1/artifact/dataset" }, - "trov:hasLocation": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/1.56.16/enhanced_frs_2024_25.h5" + "trov:hasLocation": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/1.58.0/enhanced_frs_2024_25.h5" }, { "@id": "arrangement/1/location/model_wheel", @@ -61,7 +61,7 @@ "trov:hasArtifact": { "@id": "composition/1/artifact/model_wheel" }, - "trov:hasLocation": "https://files.pythonhosted.org/packages/37/e6/e8d9069d498f1510a1380f24a78e957902d01f00b10248c146d6710d5b37/policyengine_uk-2.102.3-py3-none-any.whl" + "trov:hasLocation": "https://files.pythonhosted.org/packages/ec/3a/1d90bad4346d1a8c2715be211ed3d3d7f48917da0d90405b8257b7304091/policyengine_uk-2.125.1-py3-none-any.whl" } ] } @@ -75,52 +75,52 @@ "@type": "trov:ResearchArtifact", "schema:name": "policyengine.py bundle manifest for uk", "trov:mimeType": "application/json", - "trov:sha256": "41db4dcd0a64e37901493ffb2235e159892b4e2cb45224d5f83b696dee9d56ea" + "trov:sha256": "e7f94bdd88818764e4112e1b6eb74a98d196683ec29ad0a552d38062e701fe8c" }, { "@id": "composition/1/artifact/data_release_manifest", "@type": "trov:ResearchArtifact", - "schema:name": "policyengine-uk-data release manifest 1.56.16", + "schema:name": "policyengine-uk-data release manifest 1.58.0", "trov:mimeType": "application/json", - "trov:sha256": "cb61e3d897fbfa0cc079edc140aebc8947b1a685f581a420de91170ce2686155" + "trov:sha256": "ddd63e1f7755ee358c4ede9050bfdde09f3a80f48a5c0d8ee9d1fb531e4a1a07" }, { "@id": "composition/1/artifact/dataset", "@type": "trov:ResearchArtifact", "schema:name": "enhanced_frs_2024_25", "trov:mimeType": "application/x-hdf5", - "trov:sha256": "e433e532b17bd8ce76030156285816e33d44e93edabd2204adbef71d19a68712" + "trov:sha256": "5ba399ea5ab9a6c7d4e9aaf6c623080beb34d9ad5f330f6244dbad72b8d960b6" }, { "@id": "composition/1/artifact/model_wheel", "@type": "trov:ResearchArtifact", - "schema:name": "policyengine-uk==2.102.3 wheel", + "schema:name": "policyengine-uk==2.125.1 wheel", "trov:mimeType": "application/zip", - "trov:sha256": "f02a76712a3edf9983c713c1db42e9653a6e974e4ce335dd4b5676bbc2bcd636" + "trov:sha256": "a0983b4cef868467578a4fd0d163a977a0da8f710dd5194ec01c75f66d512c5a" } ], "trov:hasFingerprint": { "@id": "composition/1/fingerprint", "@type": "trov:CompositionFingerprint", - "trov:sha256": "2014602b75a33b7be85717d3ee86056dea50d0b7d37f802b89b0372fb7a80546" + "trov:sha256": "40370dbf87d41b9dd5029533ce629901c6c5e9437f3a75912af32def1c2dfdc9" } }, "trov:hasPerformance": { "@id": "trp/1", "@type": "trov:TransparentResearchPerformance", - "pe:builtWithModelGitSha": "12a1e028afeef08d8b2d74ee03fd9de3a78b2dd3", - "pe:builtWithModelVersion": "2.89.2", + "pe:builtWithModelGitSha": "4cbedbecca352f52dffe47e849553c2759a00711", + "pe:builtWithModelVersion": "2.122.2", "pe:certifiedBy": "policyengine.py bundle certification", - "pe:certifiedForModelVersion": "2.102.3", + "pe:certifiedForModelVersion": "2.125.1", "pe:compatibilityBasis": "legacy_compatible_model_package", - "pe:dataBuildFingerprint": "sha256:6bfff835b504094c05342d2b4d770d2d94c8c1adcb15c4468931f53b21a89ea9", - "pe:dataBuildId": "policyengine-uk-data-1.56.16", + "pe:dataBuildFingerprint": "sha256:c094d7006fdd81df220090284212f16bbffb15624643bc442c4bb3e1b1e5dac8", + "pe:dataBuildId": "policyengine-uk-data-1.58.0", "pe:emittedIn": "repository-bundle", - "rdfs:comment": "Certification of build policyengine-uk-data-1.56.16 for policyengine-uk 2.102.3.", + "rdfs:comment": "Certification of build policyengine-uk-data-1.58.0 for policyengine-uk 2.125.1.", "trov:accessedArrangement": { "@id": "arrangement/1" }, - "trov:startedAtTime": "2026-08-18T14:20:32.100961Z", + "trov:startedAtTime": "2026-10-07T17:31:53.189867Z", "trov:wasConductedBy": { "@id": "trs" } diff --git a/src/policyengine/data/bundle/us.trace.tro.jsonld b/src/policyengine/data/bundle/us.trace.tro.jsonld index c9273b3b..5afd84f6 100644 --- a/src/policyengine/data/bundle/us.trace.tro.jsonld +++ b/src/policyengine/data/bundle/us.trace.tro.jsonld @@ -74,7 +74,7 @@ "@type": "trov:ResearchArtifact", "schema:name": "policyengine.py bundle manifest for us", "trov:mimeType": "application/json", - "trov:sha256": "41db4dcd0a64e37901493ffb2235e159892b4e2cb45224d5f83b696dee9d56ea" + "trov:sha256": "e7f94bdd88818764e4112e1b6eb74a98d196683ec29ad0a552d38062e701fe8c" }, { "@id": "composition/1/artifact/data_release_manifest", @@ -101,7 +101,7 @@ "trov:hasFingerprint": { "@id": "composition/1/fingerprint", "@type": "trov:CompositionFingerprint", - "trov:sha256": "a6b92e608e8ae897ad3e3f3e2fbbf14eefb50b9a21a2e0fa458b8693c00710cf" + "trov:sha256": "ec24e1f35f15c35f8b86495d80e24296352fb28a9f69d8758c215cfc1acc6600" } }, "trov:hasPerformance": { diff --git a/tests/fixtures/household_calculator_snapshots/uk_couple_two_kids.json b/tests/fixtures/household_calculator_snapshots/uk_couple_two_kids.json index 94a4950e..28fa19e2 100644 --- a/tests/fixtures/household_calculator_snapshots/uk_couple_two_kids.json +++ b/tests/fixtures/household_calculator_snapshots/uk_couple_two_kids.json @@ -13,13 +13,13 @@ "household.equiv_hbai_household_net_income": 52510.29, "household.fuel_duty": 0.0, "household.hbai_household_net_income": 73514.4, - "household.household_benefits": 5889.59, + "household.household_benefits": 9441.78, "household.household_count_people": 4.0, - "household.household_gross_income": 95889.59, + "household.household_gross_income": 99441.78, "household.household_id": 0.0, "household.household_income_decile": 10.0, "household.household_market_income": 90000.0, - "household.household_net_income": 76886.55, + "household.household_net_income": 80438.73, "household.household_tax": 19003.05, "household.household_wealth_decile": 10.0, "household.household_weight": 1.0, @@ -46,7 +46,7 @@ "person[0].is_child": 0.0, "person[0].is_male": 1.0, "person[0].national_insurance": 3110.6, - "person[0].ni_employer": 7501.2, + "person[0].ni_employer": 7500.0, "person[0].pension_credit": 0.0, "person[0].pension_income": 0.0, "person[0].person_id": 0.0, @@ -75,7 +75,7 @@ "person[1].is_child": 0.0, "person[1].is_male": 1.0, "person[1].national_insurance": 1794.4, - "person[1].ni_employer": 4501.2, + "person[1].ni_employer": 4500.0, "person[1].pension_credit": 0.0, "person[1].pension_income": 0.0, "person[1].person_id": 0.0, diff --git a/tests/fixtures/household_calculator_snapshots/uk_model_surface.json b/tests/fixtures/household_calculator_snapshots/uk_model_surface.json index dd10f62d..e3d367c1 100644 --- a/tests/fixtures/household_calculator_snapshots/uk_model_surface.json +++ b/tests/fixtures/household_calculator_snapshots/uk_model_surface.json @@ -5,7 +5,7 @@ "has_income_tax": true, "has_region_registry": true, "model_package_name": "policyengine-uk", - "num_parameters_bucketed_100s": 26, - "num_variables_bucketed_100s": 9, + "num_parameters_bucketed_100s": 32, + "num_variables_bucketed_100s": 11, "region_registry_country": "uk" } diff --git a/tests/fixtures/household_calculator_snapshots/uk_single_adult_employment_income.json b/tests/fixtures/household_calculator_snapshots/uk_single_adult_employment_income.json index 1d37b7aa..ab0db499 100644 --- a/tests/fixtures/household_calculator_snapshots/uk_single_adult_employment_income.json +++ b/tests/fixtures/household_calculator_snapshots/uk_single_adult_employment_income.json @@ -46,7 +46,7 @@ "person[0].is_child": 0.0, "person[0].is_male": 1.0, "person[0].national_insurance": 1394.4, - "person[0].ni_employer": 3751.2, + "person[0].ni_employer": 3750.0, "person[0].pension_credit": 0.0, "person[0].pension_income": 0.0, "person[0].person_id": 0.0, diff --git a/tests/fixtures/household_calculator_snapshots/uk_single_parent_one_child.json b/tests/fixtures/household_calculator_snapshots/uk_single_parent_one_child.json index acec3cc8..c0d339da 100644 --- a/tests/fixtures/household_calculator_snapshots/uk_single_parent_one_child.json +++ b/tests/fixtures/household_calculator_snapshots/uk_single_parent_one_child.json @@ -46,7 +46,7 @@ "person[0].is_child": 0.0, "person[0].is_male": 1.0, "person[0].national_insurance": 994.4, - "person[0].ni_employer": 3001.2, + "person[0].ni_employer": 3000.0, "person[0].pension_credit": 0.0, "person[0].pension_income": 0.0, "person[0].person_id": 0.0, diff --git a/tests/test_models.py b/tests/test_models.py index ea799390..5d10bdef 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -43,13 +43,13 @@ def test_has_release_manifest_metadata(self): assert uk_latest.release_manifest is not None assert uk_latest.release_manifest.country_id == "uk" assert uk_latest.model_package.name == "policyengine-uk" - assert uk_latest.model_package.version == "2.102.3" + assert uk_latest.model_package.version == "2.125.1" assert uk_latest.data_package.name == "policyengine-uk-data" - assert uk_latest.data_package.version == "1.56.16" + assert uk_latest.data_package.version == "1.58.0" assert ( uk_latest.default_dataset_uri == "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5" - "@1.56.16" + "@1.58.0" ) def test_has_hundreds_of_parameters(self): diff --git a/tests/test_release_manifests.py b/tests/test_release_manifests.py index e1c73d83..55371a4c 100644 --- a/tests/test_release_manifests.py +++ b/tests/test_release_manifests.py @@ -75,12 +75,12 @@ "hf://policyengine/populace-us/populace_us_2024_acs_local.h5" f"@{US_LOCAL_AREA_RELEASE_ID}" ) -UK_MODEL_VERSION = "2.102.3" -UK_BUILT_WITH_MODEL_VERSION = "2.89.2" -UK_DATA_RELEASE_VERSION = "1.56.16" -UK_DATA_RELEASE_ID = "policyengine-uk-data-1.56.16" -UK_DATA_RELEASE_REVISION = "78788372fec47fc8df835bd32307ef61eaed83c2" -UK_DATA_RELEASE_PATH = "releases/1.56.16/release_manifest.json" +UK_MODEL_VERSION = "2.125.1" +UK_BUILT_WITH_MODEL_VERSION = "2.122.2" +UK_DATA_RELEASE_VERSION = "1.58.0" +UK_DATA_RELEASE_ID = "policyengine-uk-data-1.58.0" +UK_DATA_RELEASE_REVISION = "fdeba38517bd86067f34c0a5d8ed8923efb3b10a" +UK_DATA_RELEASE_PATH = "releases/1.58.0/release_manifest.json" # The prior certified default, kept resolvable via dataset_overlays. UK_POPULACE_RELEASE_ID = "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z" UK_POPULACE_DATASET_URI = ( @@ -89,7 +89,7 @@ ) UK_CERTIFICATION_SOURCE = "policyengine.py bundle certification" UK_CERTIFIED_DATASET_URI = ( - "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.56.16" + "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.58.0" ) diff --git a/tests/test_uk_regions.py b/tests/test_uk_regions.py index f0cd3cc9..f4676ab8 100644 --- a/tests/test_uk_regions.py +++ b/tests/test_uk_regions.py @@ -80,7 +80,7 @@ def test__given_uk_registry__then_has_national_region(self): assert ( national.dataset_path == "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5" - "@1.56.16" + "@1.58.0" ) assert not national.requires_filter diff --git a/tests/test_variable_metadata.py b/tests/test_variable_metadata.py index 575d77e5..4bfa3d5a 100644 --- a/tests/test_variable_metadata.py +++ b/tests/test_variable_metadata.py @@ -126,10 +126,10 @@ def test_uk_model_exposes_selected_variable_metadata(): assert employment_income.is_period_size_independent is False assert employment_income.metadata == {} - personal_rent = uk_latest.get_variable("personal_rent") - assert personal_rent.defined_for == "is_household_head" - assert personal_rent.min_value is None - assert personal_rent.max_value is None + child_benefit = uk_latest.get_variable("child_benefit") + assert child_benefit.defined_for == "would_claim_child_benefit" + assert child_benefit.min_value is None + assert child_benefit.max_value is None def test_us_model_exposes_selected_variable_metadata(): diff --git a/uv.lock b/uv.lock index 76c82c35..ea3d4312 100644 --- a/uv.lock +++ b/uv.lock @@ -1880,13 +1880,13 @@ requires-dist = [ { name = "pandas", specifier = ">=2.0.0" }, { name = "plotly", marker = "extra == 'dev'", specifier = ">=5.0.0" }, { name = "plotly", marker = "extra == 'plotting'", specifier = ">=5.0.0" }, - { name = "policyengine-core", marker = "extra == 'dev'", specifier = "==3.32.10" }, - { name = "policyengine-core", marker = "extra == 'models'", specifier = "==3.32.10" }, - { name = "policyengine-core", marker = "extra == 'uk'", specifier = "==3.32.10" }, - { name = "policyengine-core", marker = "extra == 'us'", specifier = "==3.32.10" }, - { name = "policyengine-uk", marker = "extra == 'dev'", specifier = "==2.102.3" }, - { name = "policyengine-uk", marker = "extra == 'models'", specifier = "==2.102.3" }, - { name = "policyengine-uk", marker = "extra == 'uk'", specifier = "==2.102.3" }, + { name = "policyengine-core", marker = "extra == 'dev'", specifier = "==3.33.0" }, + { name = "policyengine-core", marker = "extra == 'models'", specifier = "==3.33.0" }, + { name = "policyengine-core", marker = "extra == 'uk'", specifier = "==3.33.0" }, + { name = "policyengine-core", marker = "extra == 'us'", specifier = "==3.33.0" }, + { name = "policyengine-uk", marker = "extra == 'dev'", specifier = "==2.125.1" }, + { name = "policyengine-uk", marker = "extra == 'models'", specifier = "==2.125.1" }, + { name = "policyengine-uk", marker = "extra == 'uk'", specifier = "==2.125.1" }, { name = "policyengine-us", marker = "extra == 'dev'", specifier = "==2.2.1" }, { name = "policyengine-us", marker = "extra == 'models'", specifier = "==2.2.1" }, { name = "policyengine-us", marker = "extra == 'us'", specifier = "==2.2.1" }, @@ -1907,7 +1907,7 @@ provides-extras = ["plotting", "graph", "models", "uk", "us", "dev"] [[package]] name = "policyengine-core" -version = "3.32.10" +version = "3.33.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "dpath" }, @@ -1928,14 +1928,14 @@ dependencies = [ { name = "standard-imghdr" }, { name = "wheel" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d6/cd/9fc967c5b787baa5f9d83461773ba0982a8e22ae83c40155a7ee55edd11a/policyengine_core-3.32.10.tar.gz", hash = "sha256:0f51e8abfa8f172c69d03ba8f4304632a348fc6dca780e41021b2fd0cec04fde", size = 427479, upload-time = "2026-09-29T17:56:43.582Z" } +sdist = { url = "https://files.pythonhosted.org/packages/90/d7/70936abfab724399ea3d8db04bbd5808339ee1534819bf25ab46d00c8d32/policyengine_core-3.33.0.tar.gz", hash = "sha256:5c923828dc84a7a1ff8f6f407f7a704fe067246dd277ede04c15f409804b9c19", size = 674785, upload-time = "2026-10-10T09:43:12.12Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/58/50/291d73da16f39a3c4f05dffb6d40b1142fc400ec39b5a2ca7481e6fe9d90/policyengine_core-3.32.10-py3-none-any.whl", hash = "sha256:124afc555fe7c848ae8237b820fed0b6ea0ea1280e8850ad8bf356937ee10e5b", size = 247410, upload-time = "2026-09-29T17:56:42.218Z" }, + { url = "https://files.pythonhosted.org/packages/6d/02/190e06717785ff974120a9136c6c5408a00beaa8cddd792f557a6bf974c4/policyengine_core-3.33.0-py3-none-any.whl", hash = "sha256:2e32d02a8910ab683a2b7600987904b351d058fc2bd5910a8ea6641438bcd789", size = 299495, upload-time = "2026-10-10T09:43:10.318Z" }, ] [[package]] name = "policyengine-uk" -version = "2.102.3" +version = "2.125.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "microdf-python" }, @@ -1943,9 +1943,9 @@ dependencies = [ { name = "pydantic" }, { name = "tables" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a7/49/1db19a439463f1304e93521debf40794f7b3483d37356c6d99c346112d0f/policyengine_uk-2.102.3.tar.gz", hash = "sha256:cdb0900e78818b46fdb79b2a8299bce6c7d6c14692e26cf38367781beea607be", size = 1314347, upload-time = "2026-09-28T19:50:44.714Z" } +sdist = { url = "https://files.pythonhosted.org/packages/64/3b/c7b4eaa2b80df7e520d0576399cf1c2cec6e29bdf4ecb0104496cfa0b946/policyengine_uk-2.125.1.tar.gz", hash = "sha256:96e0354c3e8d19cd9d4e7dc5ba6c3611f1305a589b63c5f065441df346c33ed5", size = 2112669, upload-time = "2026-10-10T00:21:19.345Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/37/e6/e8d9069d498f1510a1380f24a78e957902d01f00b10248c146d6710d5b37/policyengine_uk-2.102.3-py3-none-any.whl", hash = "sha256:f02a76712a3edf9983c713c1db42e9653a6e974e4ce335dd4b5676bbc2bcd636", size = 2189605, upload-time = "2026-09-28T19:50:42.472Z" }, + { url = "https://files.pythonhosted.org/packages/ec/3a/1d90bad4346d1a8c2715be211ed3d3d7f48917da0d90405b8257b7304091/policyengine_uk-2.125.1-py3-none-any.whl", hash = "sha256:a0983b4cef868467578a4fd0d163a977a0da8f710dd5194ec01c75f66d512c5a", size = 3305979, upload-time = "2026-10-10T00:21:17.194Z" }, ] [[package]]