From 659145a4e4e62fd35d6e418067e2442a780a67aa Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Tue, 5 May 2026 15:02:34 -0400 Subject: [PATCH] Bump policyengine-us to 1.687.0 --- .../update-policyengine-us-1687.changed.md | 1 + pyproject.toml | 4 ++-- src/policyengine/data/release_manifests/us.json | 8 ++++---- .../us_married_two_kids_high_income.json | 6 +++--- .../us_model_surface.json | 4 ++-- .../us_single_adult_employment_income.json | 2 +- .../us_single_parent_one_child.json | 6 +++--- tests/test_extra_variables.py | 2 +- tests/test_models.py | 2 +- tests/test_release_manifests.py | 6 +++--- uv.lock | 16 ++++++++-------- 11 files changed, 29 insertions(+), 28 deletions(-) create mode 100644 changelog.d/update-policyengine-us-1687.changed.md diff --git a/changelog.d/update-policyengine-us-1687.changed.md b/changelog.d/update-policyengine-us-1687.changed.md new file mode 100644 index 00000000..8ec8127d --- /dev/null +++ b/changelog.d/update-policyengine-us-1687.changed.md @@ -0,0 +1 @@ +Bump the bundled US model pin to policyengine-us 1.687.0. diff --git a/pyproject.toml b/pyproject.toml index 2cfefa1c..57ce102e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -46,7 +46,7 @@ uk = [ ] us = [ "policyengine_core>=3.25.0", - "policyengine-us==1.667.1", + "policyengine-us==1.687.0", ] dev = [ "pytest", @@ -61,7 +61,7 @@ dev = [ "ruff>=0.9.0", "policyengine_core>=3.25.0", "policyengine-uk==2.88.0", - "policyengine-us==1.667.1", + "policyengine-us==1.687.0", "towncrier>=24.8.0", "mypy>=1.11.0", "pytest-cov>=5.0.0", diff --git a/src/policyengine/data/release_manifests/us.json b/src/policyengine/data/release_manifests/us.json index ef45ee11..65457594 100644 --- a/src/policyengine/data/release_manifests/us.json +++ b/src/policyengine/data/release_manifests/us.json @@ -5,9 +5,9 @@ "policyengine_version": "4.3.1", "model_package": { "name": "policyengine-us", - "version": "1.667.1", - "sha256": "e05f846473314ea37179b1cdebe0497fa550a4197414317d9858c822c1f9672c", - "wheel_url": "https://files.pythonhosted.org/packages/26/bc/ed46f19002c14e541e7b0b107cb47a47a5b24b45dad64bfc60405effb814/policyengine_us-1.667.1-py3-none-any.whl" + "version": "1.687.0", + "sha256": "cac7da3aa9ba4bf57009eee75d798217bbef7e1c5ca17646d472fad715ab634f", + "wheel_url": "https://files.pythonhosted.org/packages/c3/36/5633f5a3996c915494154ec3852011b1a239ea06d9f08cb6287ab709618c/policyengine_us-1.687.0-py3-none-any.whl" }, "data_package": { "name": "policyengine-us-data", @@ -28,7 +28,7 @@ "compatibility_basis": "matching_data_build_fingerprint", "data_build_id": "policyengine-us-data-1.78.2", "built_with_model_version": "1.647.0", - "certified_for_model_version": "1.667.1", + "certified_for_model_version": "1.687.0", "certified_by": "policyengine.py bundled manifest" }, "default_dataset": "enhanced_cps_2024", diff --git a/tests/fixtures/household_calculator_snapshots/us_married_two_kids_high_income.json b/tests/fixtures/household_calculator_snapshots/us_married_two_kids_high_income.json index 1d5e98ca..c3a1e40e 100644 --- a/tests/fixtures/household_calculator_snapshots/us_married_two_kids_high_income.json +++ b/tests/fixtures/household_calculator_snapshots/us_married_two_kids_high_income.json @@ -2,12 +2,12 @@ "family.family_id": 0.0, "family.family_weight": 0.0, "household.congressional_district_geoid": 0.0, - "household.household_benefits": 0.0, + "household.household_benefits": 1130.96, "household.household_count_people": 4.0, "household.household_id": 0.0, "household.household_income_decile": 10.0, "household.household_market_income": 240000.0, - "household.household_net_income": 175089.92, + "household.household_net_income": 176220.89, "household.household_tax": 64910.07, "household.household_weight": 1.0, "marital_unit.marital_unit_id": 0.0, @@ -84,7 +84,7 @@ "spm_unit.spm_unit_id": 0.0, "spm_unit.spm_unit_is_in_deep_spm_poverty": 0.0, "spm_unit.spm_unit_is_in_spm_poverty": 0.0, - "spm_unit.spm_unit_net_income": 175089.92, + "spm_unit.spm_unit_net_income": 148019.31, "spm_unit.spm_unit_weight": 1.0, "spm_unit.tanf": 0.0, "tax_unit.ctc": 4400.0, diff --git a/tests/fixtures/household_calculator_snapshots/us_model_surface.json b/tests/fixtures/household_calculator_snapshots/us_model_surface.json index c2fbc7b2..26226b4e 100644 --- a/tests/fixtures/household_calculator_snapshots/us_model_surface.json +++ b/tests/fixtures/household_calculator_snapshots/us_model_surface.json @@ -5,7 +5,7 @@ "has_income_tax": true, "has_region_registry": true, "model_package_name": "policyengine-us", - "num_parameters_bucketed_100s": 783, - "num_variables_bucketed_100s": 47, + "num_parameters_bucketed_100s": 850, + "num_variables_bucketed_100s": 48, "region_registry_country": "us" } diff --git a/tests/fixtures/household_calculator_snapshots/us_single_adult_employment_income.json b/tests/fixtures/household_calculator_snapshots/us_single_adult_employment_income.json index d94660a9..f0b71b0d 100644 --- a/tests/fixtures/household_calculator_snapshots/us_single_adult_employment_income.json +++ b/tests/fixtures/household_calculator_snapshots/us_single_adult_employment_income.json @@ -33,7 +33,7 @@ "spm_unit.spm_unit_id": 0.0, "spm_unit.spm_unit_is_in_deep_spm_poverty": 0.0, "spm_unit.spm_unit_is_in_spm_poverty": 0.0, - "spm_unit.spm_unit_net_income": 48007.14, + "spm_unit.spm_unit_net_income": 42031.14, "spm_unit.spm_unit_weight": 1.0, "spm_unit.tanf": 0.0, "tax_unit.ctc": 0.0, diff --git a/tests/fixtures/household_calculator_snapshots/us_single_parent_one_child.json b/tests/fixtures/household_calculator_snapshots/us_single_parent_one_child.json index 78ba7237..fe149a38 100644 --- a/tests/fixtures/household_calculator_snapshots/us_single_parent_one_child.json +++ b/tests/fixtures/household_calculator_snapshots/us_single_parent_one_child.json @@ -2,12 +2,12 @@ "family.family_id": 0.0, "family.family_weight": 0.0, "household.congressional_district_geoid": 0.0, - "household.household_benefits": 1003.27, + "household.household_benefits": 1130.96, "household.household_count_people": 2.0, "household.household_id": 0.0, "household.household_income_decile": 10.0, "household.household_market_income": 40000.0, - "household.household_net_income": 39890.89, + "household.household_net_income": 40018.58, "household.household_tax": 1112.38, "household.household_weight": 1.0, "marital_unit.marital_unit_id": 0.0, @@ -50,7 +50,7 @@ "spm_unit.spm_unit_id": 0.0, "spm_unit.spm_unit_is_in_deep_spm_poverty": 0.0, "spm_unit.spm_unit_is_in_spm_poverty": 0.0, - "spm_unit.spm_unit_net_income": 39890.89, + "spm_unit.spm_unit_net_income": 37590.66, "spm_unit.spm_unit_weight": 1.0, "spm_unit.tanf": 0.0, "tax_unit.ctc": 2200.0, diff --git a/tests/test_extra_variables.py b/tests/test_extra_variables.py index 6dd042d8..b57ce6fd 100644 --- a/tests/test_extra_variables.py +++ b/tests/test_extra_variables.py @@ -94,7 +94,7 @@ def test__us_extra_variables_appear_on_output_dataset(tmp_path) -> None: tax_benefit_model_version=pe.us.model, # Issue #303 used ``net_worth`` (imputed from SCF in later # policyengine-us releases). Substituted with two variables - # present in the pinned 1.653.3 wheel so the test is + # present in the pinned US wheel so the test is # hermetic: ``household_market_income`` is already a default # (so we also cover the dedup path) and # ``adjusted_gross_income`` is a tax_unit variable not in diff --git a/tests/test_models.py b/tests/test_models.py index 2bf5755c..3dd644c3 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -113,7 +113,7 @@ def test_has_release_manifest_metadata(self): assert us_latest.release_manifest is not None assert us_latest.release_manifest.country_id == "us" assert us_latest.model_package.name == "policyengine-us" - assert us_latest.model_package.version == "1.667.1" + assert us_latest.model_package.version == "1.687.0" assert us_latest.data_package.name == "policyengine-us-data" assert us_latest.data_package.version == "1.78.2" assert ( diff --git a/tests/test_release_manifests.py b/tests/test_release_manifests.py index 0f0722d3..769efabe 100644 --- a/tests/test_release_manifests.py +++ b/tests/test_release_manifests.py @@ -58,7 +58,7 @@ def test__given_us_manifest__then_has_pinned_model_and_data_packages(self): assert manifest.country_id == "us" assert manifest.policyengine_version == POLICYENGINE_VERSION assert manifest.model_package.name == "policyengine-us" - assert manifest.model_package.version == "1.667.1" + assert manifest.model_package.version == "1.687.0" assert manifest.data_package.name == "policyengine-us-data" assert manifest.data_package.version == "1.78.2" assert manifest.data_package.repo_id == "policyengine/policyengine-us-data" @@ -70,7 +70,7 @@ def test__given_us_manifest__then_has_pinned_model_and_data_packages(self): assert manifest.certification is not None assert manifest.certification.data_build_id == "policyengine-us-data-1.78.2" assert manifest.certification.built_with_model_version == "1.647.0" - assert manifest.certification.certified_for_model_version == "1.667.1" + assert manifest.certification.certified_for_model_version == "1.687.0" def test__given_uk_manifest__then_has_pinned_model_and_data_packages(self): manifest = get_release_manifest("uk") @@ -311,7 +311,7 @@ def test__given_private_manifest_unavailable__then_bundled_certification_is_used ): certification = certify_data_release_compatibility( "us", - runtime_model_version="1.667.1", + runtime_model_version="1.687.0", ) assert certification == get_release_manifest("us").certification diff --git a/uv.lock b/uv.lock index 3c7c1be6..43a2498b 100644 --- a/uv.lock +++ b/uv.lock @@ -2486,8 +2486,8 @@ requires-dist = [ { name = "policyengine-core", marker = "extra == 'us'", specifier = ">=3.25.0" }, { name = "policyengine-uk", marker = "extra == 'dev'", specifier = "==2.88.0" }, { name = "policyengine-uk", marker = "extra == 'uk'", specifier = "==2.88.0" }, - { name = "policyengine-us", marker = "extra == 'dev'", specifier = "==1.667.1" }, - { name = "policyengine-us", marker = "extra == 'us'", specifier = "==1.667.1" }, + { name = "policyengine-us", marker = "extra == 'dev'", specifier = "==1.687.0" }, + { name = "policyengine-us", marker = "extra == 'us'", specifier = "==1.687.0" }, { name = "psutil", specifier = ">=5.9.0" }, { name = "pydantic", specifier = ">=2.0.0" }, { name = "pytest", marker = "extra == 'dev'" }, @@ -2502,7 +2502,7 @@ provides-extras = ["plotting", "graph", "uk", "us", "dev"] [[package]] name = "policyengine-core" -version = "3.25.2" +version = "3.26.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "dpath" }, @@ -2526,9 +2526,9 @@ dependencies = [ { name = "standard-imghdr" }, { name = "wheel" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d1/ed/117c487e09bc2d5dae1d39baef2d317158433f66004f38f19f6ed82110eb/policyengine_core-3.25.2.tar.gz", hash = "sha256:de80b64b969e3c6b5a3046e29e5b9f2ce56c82f874064f65556fa60c8c423f17", size = 466431, upload-time = "2026-04-21T17:37:40.654Z" } +sdist = { url = "https://files.pythonhosted.org/packages/4e/69/adb6407c97de5260a938344f9eafa9979bf8f97aec8c628538d906ecdec2/policyengine_core-3.26.0.tar.gz", hash = "sha256:a571026ef418653ec18f087463cf37e9be730e90ad4376cb10997f0ddf9f8eda", size = 468190, upload-time = "2026-05-04T19:26:27.707Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/22/b2297927a2091a22267c112e8d5d5d2b374d0f1ce67f257816fee1388170/policyengine_core-3.25.2-py3-none-any.whl", hash = "sha256:c884961937940e16730fb473d486728ed8c66250dc65df15257ad611e6655b09", size = 231186, upload-time = "2026-04-21T17:37:39.148Z" }, + { url = "https://files.pythonhosted.org/packages/bc/f3/0e98b30d4eb7b309c3f1f1d8c2354595f78319ce2442eda069f02a47f4d1/policyengine_core-3.26.0-py3-none-any.whl", hash = "sha256:d63a4622233b61c4c5fc64d4f65030d65b2564ac63ac87b17d545d63cdf17194", size = 232135, upload-time = "2026-05-04T19:26:25.693Z" }, ] [[package]] @@ -2550,7 +2550,7 @@ wheels = [ [[package]] name = "policyengine-us" -version = "1.667.1" +version = "1.687.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "microdf-python" }, @@ -2562,9 +2562,9 @@ dependencies = [ { name = "tables", version = "3.11.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "tqdm" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c1/ab/be097c4b67fb56f29bdbc24baebb2fcb5babf497ac1b019e19baef5252a1/policyengine_us-1.667.1.tar.gz", hash = "sha256:5350f45a27a1bfcf01c9758cc2e7f6b7a40151e14751e2915608ae9e6493f1c7", size = 9313590, upload-time = "2026-04-25T23:59:57.078Z" } +sdist = { url = "https://files.pythonhosted.org/packages/26/49/d34803002b058e7ad91861975d26aa7d2bac3b4988756290e1588e00a776/policyengine_us-1.687.0.tar.gz", hash = "sha256:eb73607fcc54d72429af3830456f83b9ec9dd84161b6cfa86402637dfeb19fa7", size = 9464817, upload-time = "2026-05-05T17:14:34.513Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/26/bc/ed46f19002c14e541e7b0b107cb47a47a5b24b45dad64bfc60405effb814/policyengine_us-1.667.1-py3-none-any.whl", hash = "sha256:e05f846473314ea37179b1cdebe0497fa550a4197414317d9858c822c1f9672c", size = 9595732, upload-time = "2026-04-25T23:59:53.662Z" }, + { url = "https://files.pythonhosted.org/packages/c3/36/5633f5a3996c915494154ec3852011b1a239ea06d9f08cb6287ab709618c/policyengine_us-1.687.0-py3-none-any.whl", hash = "sha256:cac7da3aa9ba4bf57009eee75d798217bbef7e1c5ca17646d472fad715ab634f", size = 9954513, upload-time = "2026-05-05T17:14:30.958Z" }, ] [[package]]