policyengine 5.0.2__tar.gz → 5.0.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. {policyengine-5.0.2 → policyengine-5.0.3}/CHANGELOG.md +12 -0
  2. {policyengine-5.0.2 → policyengine-5.0.3}/PKG-INFO +8 -8
  3. {policyengine-5.0.2 → policyengine-5.0.3}/docs/countries.md +1 -1
  4. {policyengine-5.0.2 → policyengine-5.0.3}/docs/engineering/skills/data-certification.md +1 -1
  5. {policyengine-5.0.2 → policyengine-5.0.3}/docs/release-bundles.md +1 -1
  6. {policyengine-5.0.2 → policyengine-5.0.3}/pyproject.toml +8 -8
  7. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/data/bundle/manifest.json +96 -62
  8. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/data/bundle/uk.trace.tro.jsonld +22 -20
  9. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/data/bundle/us.trace.tro.jsonld +5 -5
  10. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/provenance/certification.py +4 -1
  11. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine.egg-info/PKG-INFO +8 -8
  12. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine.egg-info/requires.txt +7 -7
  13. {policyengine-5.0.2 → policyengine-5.0.3}/tests/fixtures/household_calculator_snapshots/uk_model_surface.json +2 -2
  14. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_bundle.py +12 -6
  15. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_bundle_metadata.py +6 -6
  16. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_certify_data_release.py +1 -1
  17. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_models.py +5 -5
  18. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_release_manifests.py +35 -19
  19. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_uk_regions.py +2 -2
  20. {policyengine-5.0.2 → policyengine-5.0.3}/uv.lock +14 -14
  21. {policyengine-5.0.2 → policyengine-5.0.3}/.claude/policyengine-guide.md +0 -0
  22. {policyengine-5.0.2 → policyengine-5.0.3}/.claude/quick-reference.md +0 -0
  23. {policyengine-5.0.2 → policyengine-5.0.3}/.github/CONTRIBUTING.md +0 -0
  24. {policyengine-5.0.2 → policyengine-5.0.3}/.github/bump_version.py +0 -0
  25. {policyengine-5.0.2 → policyengine-5.0.3}/.github/capture-version.sh +0 -0
  26. {policyengine-5.0.2 → policyengine-5.0.3}/.github/changelog_template.md +0 -0
  27. {policyengine-5.0.2 → policyengine-5.0.3}/.github/check-changelog.sh +0 -0
  28. {policyengine-5.0.2 → policyengine-5.0.3}/.github/copilot-instructions.md +0 -0
  29. {policyengine-5.0.2 → policyengine-5.0.3}/.github/dispatch-policyengine-release.sh +0 -0
  30. {policyengine-5.0.2 → policyengine-5.0.3}/.github/fetch_version.py +0 -0
  31. {policyengine-5.0.2 → policyengine-5.0.3}/.github/get-changelog-diff.sh +0 -0
  32. {policyengine-5.0.2 → policyengine-5.0.3}/.github/has-functional-changes.sh +0 -0
  33. {policyengine-5.0.2 → policyengine-5.0.3}/.github/is-version-number-acceptable.sh +0 -0
  34. {policyengine-5.0.2 → policyengine-5.0.3}/.github/publish-git-tag.sh +0 -0
  35. {policyengine-5.0.2 → policyengine-5.0.3}/.github/wait-for-pypi.sh +0 -0
  36. {policyengine-5.0.2 → policyengine-5.0.3}/.github/workflows/draft-pdf.yml +0 -0
  37. {policyengine-5.0.2 → policyengine-5.0.3}/.github/workflows/pr_code_changes.yaml +0 -0
  38. {policyengine-5.0.2 → policyengine-5.0.3}/.github/workflows/pr_docs_changes.yaml +0 -0
  39. {policyengine-5.0.2 → policyengine-5.0.3}/.github/workflows/push.yaml +0 -0
  40. {policyengine-5.0.2 → policyengine-5.0.3}/.gitignore +0 -0
  41. {policyengine-5.0.2 → policyengine-5.0.3}/.python-version +0 -0
  42. {policyengine-5.0.2 → policyengine-5.0.3}/AGENTS.md +0 -0
  43. {policyengine-5.0.2 → policyengine-5.0.3}/CITATION.cff +0 -0
  44. {policyengine-5.0.2 → policyengine-5.0.3}/CLAUDE.md +0 -0
  45. {policyengine-5.0.2 → policyengine-5.0.3}/CODE_OF_CONDUCT.md +0 -0
  46. {policyengine-5.0.2 → policyengine-5.0.3}/CONTRIBUTING.md +0 -0
  47. {policyengine-5.0.2 → policyengine-5.0.3}/LICENSE +0 -0
  48. {policyengine-5.0.2 → policyengine-5.0.3}/Makefile +0 -0
  49. {policyengine-5.0.2 → policyengine-5.0.3}/README.md +0 -0
  50. {policyengine-5.0.2 → policyengine-5.0.3}/architecture.png +0 -0
  51. {policyengine-5.0.2 → policyengine-5.0.3}/architecture.svg +0 -0
  52. {policyengine-5.0.2 → policyengine-5.0.3}/changelog.d/.gitkeep +0 -0
  53. {policyengine-5.0.2 → policyengine-5.0.3}/docs/.gitignore +0 -0
  54. {policyengine-5.0.2 → policyengine-5.0.3}/docs/_generator/README.md +0 -0
  55. {policyengine-5.0.2 → policyengine-5.0.3}/docs/_generator/build_reference.py +0 -0
  56. {policyengine-5.0.2 → policyengine-5.0.3}/docs/_quarto.yml +0 -0
  57. {policyengine-5.0.2 → policyengine-5.0.3}/docs/bundles.md +0 -0
  58. {policyengine-5.0.2 → policyengine-5.0.3}/docs/data-publishing-design.md +0 -0
  59. {policyengine-5.0.2 → policyengine-5.0.3}/docs/decile-impact-spec.md +0 -0
  60. {policyengine-5.0.2 → policyengine-5.0.3}/docs/dev.md +0 -0
  61. {policyengine-5.0.2 → policyengine-5.0.3}/docs/engineering/runbooks/build-m-us-populace-certification.md +0 -0
  62. {policyengine-5.0.2 → policyengine-5.0.3}/docs/engineering/skills/README.md +0 -0
  63. {policyengine-5.0.2 → policyengine-5.0.3}/docs/engineering/skills/github-prs.md +0 -0
  64. {policyengine-5.0.2 → policyengine-5.0.3}/docs/engineering/skills/repository-guidance.md +0 -0
  65. {policyengine-5.0.2 → policyengine-5.0.3}/docs/examples.md +0 -0
  66. {policyengine-5.0.2 → policyengine-5.0.3}/docs/getting-started.md +0 -0
  67. {policyengine-5.0.2 → policyengine-5.0.3}/docs/households.md +0 -0
  68. {policyengine-5.0.2 → policyengine-5.0.3}/docs/impact-analysis.md +0 -0
  69. {policyengine-5.0.2 → policyengine-5.0.3}/docs/index.md +0 -0
  70. {policyengine-5.0.2 → policyengine-5.0.3}/docs/methodology/index.md +0 -0
  71. {policyengine-5.0.2 → policyengine-5.0.3}/docs/methodology/model-architecture.md +0 -0
  72. {policyengine-5.0.2 → policyengine-5.0.3}/docs/methodology/us-health-costs.md +0 -0
  73. {policyengine-5.0.2 → policyengine-5.0.3}/docs/microsim.md +0 -0
  74. {policyengine-5.0.2 → policyengine-5.0.3}/docs/outputs.md +0 -0
  75. {policyengine-5.0.2 → policyengine-5.0.3}/docs/programs/index.md +0 -0
  76. {policyengine-5.0.2 → policyengine-5.0.3}/docs/programs/us-chip.md +0 -0
  77. {policyengine-5.0.2 → policyengine-5.0.3}/docs/reference/index.md +0 -0
  78. {policyengine-5.0.2 → policyengine-5.0.3}/docs/reforms.md +0 -0
  79. {policyengine-5.0.2 → policyengine-5.0.3}/docs/regions.md +0 -0
  80. {policyengine-5.0.2 → policyengine-5.0.3}/docs/run-records.md +0 -0
  81. {policyengine-5.0.2 → policyengine-5.0.3}/docs/trace-case-study.md +0 -0
  82. {policyengine-5.0.2 → policyengine-5.0.3}/docs/visualisation.md +0 -0
  83. {policyengine-5.0.2 → policyengine-5.0.3}/examples/employment_income_variation_uk.py +0 -0
  84. {policyengine-5.0.2 → policyengine-5.0.3}/examples/employment_income_variation_us.py +0 -0
  85. {policyengine-5.0.2 → policyengine-5.0.3}/examples/household_impact_example.py +0 -0
  86. {policyengine-5.0.2 → policyengine-5.0.3}/examples/income_bands_uk.py +0 -0
  87. {policyengine-5.0.2 → policyengine-5.0.3}/examples/income_distribution_us.py +0 -0
  88. {policyengine-5.0.2 → policyengine-5.0.3}/examples/paper_repro_uk.py +0 -0
  89. {policyengine-5.0.2 → policyengine-5.0.3}/examples/policy_change_uk.py +0 -0
  90. {policyengine-5.0.2 → policyengine-5.0.3}/examples/speedtest_us_simulation.py +0 -0
  91. {policyengine-5.0.2 → policyengine-5.0.3}/examples/us_budgetary_impact.py +0 -0
  92. {policyengine-5.0.2 → policyengine-5.0.3}/paper-preview.html +0 -0
  93. {policyengine-5.0.2 → policyengine-5.0.3}/paper.bib +0 -0
  94. {policyengine-5.0.2 → policyengine-5.0.3}/paper.md +0 -0
  95. {policyengine-5.0.2 → policyengine-5.0.3}/scripts/bundle.py +0 -0
  96. {policyengine-5.0.2 → policyengine-5.0.3}/scripts/certify_data_release.py +0 -0
  97. {policyengine-5.0.2 → policyengine-5.0.3}/scripts/check_data_staleness.py +0 -0
  98. {policyengine-5.0.2 → policyengine-5.0.3}/scripts/export_bundle_release_assets.py +0 -0
  99. {policyengine-5.0.2 → policyengine-5.0.3}/scripts/generate_bundle_artifacts.py +0 -0
  100. {policyengine-5.0.2 → policyengine-5.0.3}/scripts/generate_trace_tros.py +0 -0
  101. {policyengine-5.0.2 → policyengine-5.0.3}/scripts/prepare_package_bundle_update.py +0 -0
  102. {policyengine-5.0.2 → policyengine-5.0.3}/setup.cfg +0 -0
  103. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/__init__.py +0 -0
  104. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/bundle.py +0 -0
  105. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/cli.py +0 -0
  106. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/core/__init__.py +0 -0
  107. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/core/cache.py +0 -0
  108. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/core/dataset.py +0 -0
  109. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/core/dynamic.py +0 -0
  110. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/core/output.py +0 -0
  111. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/core/parameter.py +0 -0
  112. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/core/parameter_node.py +0 -0
  113. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/core/parameter_value.py +0 -0
  114. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/core/policy.py +0 -0
  115. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/core/region.py +0 -0
  116. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/core/run_record.py +0 -0
  117. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/core/scoping_strategy.py +0 -0
  118. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/core/simulation.py +0 -0
  119. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/core/tax_benefit_model.py +0 -0
  120. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/core/tax_benefit_model_version.py +0 -0
  121. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/core/variable.py +0 -0
  122. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/countries/__init__.py +0 -0
  123. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/countries/uk/__init__.py +0 -0
  124. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/countries/uk/regions.py +0 -0
  125. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/countries/us/__init__.py +0 -0
  126. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/countries/us/data/__init__.py +0 -0
  127. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/countries/us/data/districts.py +0 -0
  128. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/countries/us/data/places.py +0 -0
  129. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/countries/us/data/states.py +0 -0
  130. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/countries/us/regions.py +0 -0
  131. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/data/__init__.py +0 -0
  132. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/data/schemas/trace_tro.schema.json +0 -0
  133. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/data/uk_geography_assets.py +0 -0
  134. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/derivations/__init__.py +0 -0
  135. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/derivations/narrate.py +0 -0
  136. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/derivations/trace.py +0 -0
  137. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/graph/__init__.py +0 -0
  138. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/graph/extractor.py +0 -0
  139. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/graph/graph.py +0 -0
  140. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/outputs/__init__.py +0 -0
  141. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/outputs/aggregate.py +0 -0
  142. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/outputs/change_aggregate.py +0 -0
  143. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/outputs/cliff_impact.py +0 -0
  144. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/outputs/congressional_district_impact.py +0 -0
  145. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/outputs/constituency_impact.py +0 -0
  146. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/outputs/decile_analysis.py +0 -0
  147. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/outputs/decile_grouping.py +0 -0
  148. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/outputs/decile_impact.py +0 -0
  149. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/outputs/extra_variables.py +0 -0
  150. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/outputs/inequality.py +0 -0
  151. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/outputs/intra_decile_impact.py +0 -0
  152. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/outputs/labor_supply_response.py +0 -0
  153. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/outputs/local_authority_impact.py +0 -0
  154. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/outputs/poverty.py +0 -0
  155. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/outputs/program_statistics.py +0 -0
  156. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/outputs/uk_geography_assets.py +0 -0
  157. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/outputs/uk_geography_impact.py +0 -0
  158. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/provenance/__init__.py +0 -0
  159. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/provenance/dataset_sources.py +0 -0
  160. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/provenance/manifest.py +0 -0
  161. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/provenance/pyproject_pins.py +0 -0
  162. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/provenance/trace.py +0 -0
  163. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/provenance/verify.py +0 -0
  164. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/provenance/zenodo.py +0 -0
  165. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/results/__init__.py +0 -0
  166. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/results/schema.py +0 -0
  167. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/results/trace_tro.py +0 -0
  168. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/results/tracking.py +0 -0
  169. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/tax_benefit_models/common/__init__.py +0 -0
  170. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/tax_benefit_models/common/axes.py +0 -0
  171. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/tax_benefit_models/common/extra_variables.py +0 -0
  172. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/tax_benefit_models/common/household.py +0 -0
  173. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/tax_benefit_models/common/model_version.py +0 -0
  174. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/tax_benefit_models/common/reform.py +0 -0
  175. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/tax_benefit_models/common/result.py +0 -0
  176. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/tax_benefit_models/uk/__init__.py +0 -0
  177. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/tax_benefit_models/uk/analysis.py +0 -0
  178. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/tax_benefit_models/uk/datasets.py +0 -0
  179. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/tax_benefit_models/uk/household.py +0 -0
  180. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/tax_benefit_models/uk/model.py +0 -0
  181. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/tax_benefit_models/us/__init__.py +0 -0
  182. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/tax_benefit_models/us/analysis.py +0 -0
  183. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/tax_benefit_models/us/datasets.py +0 -0
  184. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/tax_benefit_models/us/household.py +0 -0
  185. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/tax_benefit_models/us/model.py +0 -0
  186. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/utils/__init__.py +0 -0
  187. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/utils/data/__init__.py +0 -0
  188. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/utils/data/caching_google_storage_client.py +0 -0
  189. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/utils/data/version_aware_storage_client.py +0 -0
  190. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/utils/dates.py +0 -0
  191. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/utils/design.py +0 -0
  192. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/utils/entity_utils.py +0 -0
  193. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/utils/errors.py +0 -0
  194. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/utils/google_cloud_bucket.py +0 -0
  195. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/utils/household_validation.py +0 -0
  196. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/utils/parameter_labels.py +0 -0
  197. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/utils/parametric_reforms.py +0 -0
  198. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine/utils/plotting.py +0 -0
  199. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine.egg-info/SOURCES.txt +0 -0
  200. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine.egg-info/dependency_links.txt +0 -0
  201. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine.egg-info/entry_points.txt +0 -0
  202. {policyengine-5.0.2 → policyengine-5.0.3}/src/policyengine.egg-info/top_level.txt +0 -0
  203. {policyengine-5.0.2 → policyengine-5.0.3}/tests/__init__.py +0 -0
  204. {policyengine-5.0.2 → policyengine-5.0.3}/tests/conftest.py +0 -0
  205. {policyengine-5.0.2 → policyengine-5.0.3}/tests/fixtures/__init__.py +0 -0
  206. {policyengine-5.0.2 → policyengine-5.0.3}/tests/fixtures/filtering_fixtures.py +0 -0
  207. {policyengine-5.0.2 → policyengine-5.0.3}/tests/fixtures/household_calculator_snapshots/uk_couple_two_kids.json +0 -0
  208. {policyengine-5.0.2 → policyengine-5.0.3}/tests/fixtures/household_calculator_snapshots/uk_single_adult_employment_income.json +0 -0
  209. {policyengine-5.0.2 → policyengine-5.0.3}/tests/fixtures/household_calculator_snapshots/uk_single_adult_no_income.json +0 -0
  210. {policyengine-5.0.2 → policyengine-5.0.3}/tests/fixtures/household_calculator_snapshots/uk_single_parent_one_child.json +0 -0
  211. {policyengine-5.0.2 → policyengine-5.0.3}/tests/fixtures/household_calculator_snapshots/us_married_two_kids_high_income.json +0 -0
  212. {policyengine-5.0.2 → policyengine-5.0.3}/tests/fixtures/household_calculator_snapshots/us_model_surface.json +0 -0
  213. {policyengine-5.0.2 → policyengine-5.0.3}/tests/fixtures/household_calculator_snapshots/us_single_adult_employment_income.json +0 -0
  214. {policyengine-5.0.2 → policyengine-5.0.3}/tests/fixtures/household_calculator_snapshots/us_single_adult_no_income.json +0 -0
  215. {policyengine-5.0.2 → policyengine-5.0.3}/tests/fixtures/household_calculator_snapshots/us_single_parent_one_child.json +0 -0
  216. {policyengine-5.0.2 → policyengine-5.0.3}/tests/fixtures/parameter_labels_fixtures.py +0 -0
  217. {policyengine-5.0.2 → policyengine-5.0.3}/tests/fixtures/parametric_reforms_fixtures.py +0 -0
  218. {policyengine-5.0.2 → policyengine-5.0.3}/tests/fixtures/poverty_by_demographics_fixtures.py +0 -0
  219. {policyengine-5.0.2 → policyengine-5.0.3}/tests/fixtures/region_fixtures.py +0 -0
  220. {policyengine-5.0.2 → policyengine-5.0.3}/tests/fixtures/us_reform_fixtures.py +0 -0
  221. {policyengine-5.0.2 → policyengine-5.0.3}/tests/fixtures/variable_label_fixtures.py +0 -0
  222. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_aggregate.py +0 -0
  223. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_budgetary_impact.py +0 -0
  224. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_bump_version.py +0 -0
  225. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_cache.py +0 -0
  226. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_change_aggregate.py +0 -0
  227. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_cliff_impact.py +0 -0
  228. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_cliff_impact_analysis.py +0 -0
  229. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_congressional_district_impact.py +0 -0
  230. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_constituency_impact.py +0 -0
  231. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_dataset_persistence.py +0 -0
  232. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_dataset_sources.py +0 -0
  233. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_decile_grouping.py +0 -0
  234. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_derivations.py +0 -0
  235. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_dict_reforms_on_simulation.py +0 -0
  236. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_entity_mapping.py +0 -0
  237. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_entity_utils.py +0 -0
  238. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_entity_utils_characterization.py +0 -0
  239. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_errors.py +0 -0
  240. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_extra_variables.py +0 -0
  241. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_filtering.py +0 -0
  242. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_graph/__init__.py +0 -0
  243. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_graph/conftest.py +0 -0
  244. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_graph/test_extractor.py +0 -0
  245. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_household_calculator_snapshot.py +0 -0
  246. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_household_impact.py +0 -0
  247. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_inequality.py +0 -0
  248. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_intra_decile_impact.py +0 -0
  249. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_labor_supply_response.py +0 -0
  250. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_local_authority_impact.py +0 -0
  251. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_manifest_version_mismatch.py +0 -0
  252. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_pandas3_compatibility.py +0 -0
  253. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_parameter_labels.py +0 -0
  254. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_parametric_reforms.py +0 -0
  255. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_poverty.py +0 -0
  256. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_poverty_by_demographics.py +0 -0
  257. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_poverty_run.py +0 -0
  258. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_preservation_mirror.py +0 -0
  259. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_program_statistics.py +0 -0
  260. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_pyproject_pins.py +0 -0
  261. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_region.py +0 -0
  262. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_region_group_strategy.py +0 -0
  263. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_results.py +0 -0
  264. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_run_record.py +0 -0
  265. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_scoping_strategy.py +0 -0
  266. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_small_follow_ups.py +0 -0
  267. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_trace_tro.py +0 -0
  268. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_trace_tro_verify.py +0 -0
  269. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_uk_analysis.py +0 -0
  270. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_uk_geography_assets.py +0 -0
  271. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_uk_program_statistics.py +0 -0
  272. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_us_long_term_datasets.py +0 -0
  273. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_us_microsim_structural_reforms.py +0 -0
  274. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_us_program_statistics.py +0 -0
  275. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_us_reform_application.py +0 -0
  276. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_us_regions.py +0 -0
  277. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_variable_labels.py +0 -0
  278. {policyengine-5.0.2 → policyengine-5.0.3}/tests/test_zenodo_mirror.py +0 -0
@@ -1,3 +1,15 @@
1
+ ## [5.0.3] - 2026-08-21
2
+
3
+ ### Changed
4
+
5
+ - Certify the UK populace data release `policyengine-uk-data-1.56.16` (enhanced_frs_2024_25, policyengine-uk 2.90.2) into the PolicyEngine bundle manifest.
6
+
7
+ ### Fixed
8
+
9
+ - Update the certified bundle to policyengine-uk 2.90.2 (Universal Credit deductions: Fair Repayment Rate cap, protected floor and abolition reform levers) and policyengine-core 3.30.1.
10
+ - Update the certified PolicyEngine bundle pins.
11
+
12
+
1
13
  ## [5.0.2] - 2026-08-14
2
14
 
3
15
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: policyengine
3
- Version: 5.0.2
3
+ Version: 5.0.3
4
4
  Summary: A package to conduct policy analysis using PolicyEngine tax-benefit models.
5
5
  Author-email: PolicyEngine <hello@policyengine.org>
6
6
  License: GNU AFFERO GENERAL PUBLIC LICENSE
@@ -689,14 +689,14 @@ Requires-Dist: plotly>=5.0.0; extra == "plotting"
689
689
  Provides-Extra: graph
690
690
  Requires-Dist: networkx>=3.0; extra == "graph"
691
691
  Provides-Extra: models
692
- Requires-Dist: policyengine-core==3.30.0; extra == "models"
692
+ Requires-Dist: policyengine-core==3.30.1; extra == "models"
693
693
  Requires-Dist: policyengine-us==1.764.6; extra == "models"
694
- Requires-Dist: policyengine-uk==2.89.2; extra == "models"
694
+ Requires-Dist: policyengine-uk==2.90.2; extra == "models"
695
695
  Provides-Extra: uk
696
- Requires-Dist: policyengine-core==3.30.0; extra == "uk"
697
- Requires-Dist: policyengine-uk==2.89.2; extra == "uk"
696
+ Requires-Dist: policyengine-core==3.30.1; extra == "uk"
697
+ Requires-Dist: policyengine-uk==2.90.2; extra == "uk"
698
698
  Provides-Extra: us
699
- Requires-Dist: policyengine-core==3.30.0; extra == "us"
699
+ Requires-Dist: policyengine-core==3.30.1; extra == "us"
700
700
  Requires-Dist: policyengine-us==1.764.6; extra == "us"
701
701
  Provides-Extra: dev
702
702
  Requires-Dist: pytest; extra == "dev"
@@ -712,9 +712,9 @@ Requires-Dist: ruff>=0.9.0; extra == "dev"
712
712
  Requires-Dist: towncrier>=24.8.0; extra == "dev"
713
713
  Requires-Dist: mypy>=1.11.0; extra == "dev"
714
714
  Requires-Dist: pytest-cov>=5.0.0; extra == "dev"
715
- Requires-Dist: policyengine-core==3.30.0; extra == "dev"
715
+ Requires-Dist: policyengine-core==3.30.1; extra == "dev"
716
716
  Requires-Dist: policyengine-us==1.764.6; extra == "dev"
717
- Requires-Dist: policyengine-uk==2.89.2; extra == "dev"
717
+ Requires-Dist: policyengine-uk==2.90.2; extra == "dev"
718
718
  Dynamic: license-file
719
719
 
720
720
  # PolicyEngine.py
@@ -33,7 +33,7 @@ Override in any output with `income_variable=`.
33
33
  | | Dataset |
34
34
  |---|---|
35
35
  | US | Populace US 2024 (`populace_us_2024.h5`) |
36
- | UK | Populace UK 2023 (`populace_uk_2023.h5`) |
36
+ | UK | Enhanced FRS 2024-25 (`enhanced_frs_2024_25.h5`, policyengine-uk-data) |
37
37
 
38
38
  ## State / regional breakdown
39
39
 
@@ -80,7 +80,7 @@ state overlay artifacts when `--regional-manifest-uri` is used, unknown country.
80
80
  Certification gate: the model version must either exactly match the
81
81
  build-time model (`compatibility_basis: built_with_model_package`) or be
82
82
  covered by the publisher's `compatible_model_packages` claim
83
- (`compatibility_basis: compatible_model_packages`, recorded with a
83
+ (`compatibility_basis: legacy_compatible_model_package`, recorded with a
84
84
  warning — the publisher's claim is made good only by this repo's test
85
85
  suite passing on the pinned pair). Neither basis means certification is
86
86
  refused: a new data build or a published compatibility claim is required.
@@ -544,7 +544,7 @@ Things that should usually not affect the fingerprint:
544
544
  1. the model version exactly matches the `built_with_model_package.version`
545
545
  (`compatibility_basis: built_with_model_package`)
546
546
  2. the data publisher's `compatible_model_packages` covers the model version
547
- (`compatibility_basis: compatible_model_packages` — the publisher's claim,
547
+ (`compatibility_basis: legacy_compatible_model_package` — the publisher's claim,
548
548
  recorded with a warning and made good by the test suite passing on the
549
549
  pinned pair)
550
550
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "policyengine"
7
- version = "5.0.2"
7
+ version = "5.0.3"
8
8
  description = "A package to conduct policy analysis using PolicyEngine tax-benefit models."
9
9
  readme = "README.md"
10
10
  authors = [
@@ -44,16 +44,16 @@ graph = [
44
44
  "networkx>=3.0",
45
45
  ]
46
46
  models = [
47
- "policyengine-core==3.30.0",
47
+ "policyengine-core==3.30.1",
48
48
  "policyengine-us==1.764.6",
49
- "policyengine-uk==2.89.2",
49
+ "policyengine-uk==2.90.2",
50
50
  ]
51
51
  uk = [
52
- "policyengine-core==3.30.0",
53
- "policyengine-uk==2.89.2",
52
+ "policyengine-core==3.30.1",
53
+ "policyengine-uk==2.90.2",
54
54
  ]
55
55
  us = [
56
- "policyengine-core==3.30.0",
56
+ "policyengine-core==3.30.1",
57
57
  "policyengine-us==1.764.6",
58
58
  ]
59
59
  dev = [
@@ -70,9 +70,9 @@ dev = [
70
70
  "towncrier>=24.8.0",
71
71
  "mypy>=1.11.0",
72
72
  "pytest-cov>=5.0.0",
73
- "policyengine-core==3.30.0",
73
+ "policyengine-core==3.30.1",
74
74
  "policyengine-us==1.764.6",
75
- "policyengine-uk==2.89.2",
75
+ "policyengine-uk==2.90.2",
76
76
  ]
77
77
 
78
78
  [tool.setuptools]
@@ -1,10 +1,10 @@
1
1
  {
2
- "bundle_version": "5.0.2",
2
+ "bundle_version": "5.0.3",
3
3
  "citation": {
4
4
  "publisher": "PolicyEngine",
5
- "title": "PolicyEngine bundle 5.0.2",
5
+ "title": "PolicyEngine bundle 5.0.3",
6
6
  "type": "software-bundle",
7
- "version": "5.0.2"
7
+ "version": "5.0.3"
8
8
  },
9
9
  "countries": {
10
10
  "uk": {
@@ -16,89 +16,103 @@
16
16
  },
17
17
  "data_releases": {
18
18
  "uk": {
19
- "build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z",
20
- "bundle_id": "uk-5.0.2",
19
+ "build_id": "policyengine-uk-data-1.56.16",
20
+ "bundle_id": "uk-5.0.3",
21
21
  "certification": {
22
+ "built_with_model_git_sha": "12a1e028afeef08d8b2d74ee03fd9de3a78b2dd3",
22
23
  "built_with_model_version": "2.89.2",
23
24
  "certified_by": "policyengine.py bundle certification",
24
- "certified_for_model_version": "2.89.2",
25
- "compatibility_basis": "built_with_model_package",
26
- "data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z"
25
+ "certified_for_model_version": "2.90.2",
26
+ "compatibility_basis": "legacy_compatible_model_package",
27
+ "data_build_fingerprint": "sha256:6bfff835b504094c05342d2b4d770d2d94c8c1adcb15c4468931f53b21a89ea9",
28
+ "data_build_id": "policyengine-uk-data-1.56.16"
27
29
  },
28
30
  "certified_data_artifact": {
29
- "build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z",
31
+ "build_id": "policyengine-uk-data-1.56.16",
30
32
  "data_package": {
31
- "name": "populace-data",
32
- "version": "0.1.0"
33
+ "name": "policyengine-uk-data",
34
+ "version": "1.56.16"
33
35
  },
34
- "dataset": "populace_uk_2023",
35
- "sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833",
36
- "uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z"
36
+ "dataset": "enhanced_frs_2024_25",
37
+ "sha256": "e433e532b17bd8ce76030156285816e33d44e93edabd2204adbef71d19a68712",
38
+ "uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.56.16"
37
39
  },
38
40
  "country_id": "uk",
39
41
  "data_package": {
40
- "name": "populace-data",
41
- "release_manifest_path": "releases/populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z/release_manifest.json",
42
- "release_manifest_revision": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z",
43
- "repo_id": "policyengine/populace-uk-private",
44
- "repo_type": "dataset",
45
- "version": "0.1.0"
42
+ "name": "policyengine-uk-data",
43
+ "release_manifest_path": "releases/1.56.16/release_manifest.json",
44
+ "release_manifest_revision": "2966541fca275ab5ccb6cfb659b010b1db37ad49",
45
+ "repo_id": "policyengine/policyengine-uk-data-private",
46
+ "repo_type": "model",
47
+ "version": "1.56.16"
46
48
  },
47
49
  "data_producer": "populace",
48
50
  "datasets": {
49
- "calibration_diagnostics": {
50
- "path": "releases/populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z/calibration_diagnostics.json",
51
- "repo_id": "policyengine/populace-uk-private",
52
- "revision": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z",
53
- "sha256": "80b98127020aafb049846e0877a3818476aaf7adf13539d62d512fdd6727745d"
51
+ "enhanced_frs_2024_25": {
52
+ "path": "enhanced_frs_2024_25.h5",
53
+ "repo_id": "policyengine/policyengine-uk-data-private",
54
+ "revision": "1.56.16",
55
+ "sha256": "e433e532b17bd8ce76030156285816e33d44e93edabd2204adbef71d19a68712"
54
56
  },
55
- "enhanced_frs_2023_24": {
56
- "path": "enhanced_frs_2023_24.h5",
57
+ "enhanced_frs_2024_25_tiny": {
58
+ "path": "enhanced_frs_2024_25_tiny.h5",
57
59
  "repo_id": "policyengine/policyengine-uk-data-private",
58
- "revision": "655dd07e4bb9c777b00dac044949611f1feb824f",
59
- "sha256": "584ae33d80ca0431254610a3f8254d132da73477d31966d6446282861ecae50d"
60
+ "revision": "1.56.16",
61
+ "sha256": "6cbbda7eef1b0b16d62e24a3099dc7959906287d659868d31aa7fc82af598871"
60
62
  },
61
- "frs_2023_24": {
62
- "path": "frs_2023_24.h5",
63
+ "frs_2024_25": {
64
+ "path": "frs_2024_25.h5",
63
65
  "repo_id": "policyengine/policyengine-uk-data-private",
64
- "revision": "655dd07e4bb9c777b00dac044949611f1feb824f",
65
- "sha256": "df26d4d7af9d164aa2d064181b39290292d2f62bb26fee6126fc095fc06da292"
66
+ "revision": "1.56.16",
67
+ "sha256": "d4d29901d7ea0c1f636060d4177a411a39c1977fa9fd23a61af3bb0f030769bd"
66
68
  },
67
- "populace_uk_2023": {
68
- "path": "populace_uk_2023.h5",
69
- "repo_id": "policyengine/populace-uk-private",
70
- "revision": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z",
71
- "sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833"
69
+ "frs_2024_25_tiny": {
70
+ "path": "frs_2024_25_tiny.h5",
71
+ "repo_id": "policyengine/policyengine-uk-data-private",
72
+ "revision": "1.56.16",
73
+ "sha256": "74ca086be959b2942ecbf7755034d94dc6a817f4d9d54f2585a1c6df849d9588"
72
74
  },
73
- "populace_uk_2023_calibration": {
74
- "path": "populace_uk_2023_calibration.npz",
75
- "repo_id": "policyengine/populace-uk-private",
76
- "revision": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z",
77
- "sha256": "fb2fc115fbae53a501b8acbc1529f319b9e07b74478c7bd02d00c674d4c10022"
75
+ "local_authority_weights": {
76
+ "path": "local_authority_weights.h5",
77
+ "repo_id": "policyengine/policyengine-uk-data-private",
78
+ "revision": "1.56.16",
79
+ "sha256": "6d634d69fb472b80cc17ffe696e028c54d7b739166bb7d9a57860f9d73537aa5"
80
+ },
81
+ "local_geography_weights": {
82
+ "path": "local_geography_weights.csv.gz",
83
+ "repo_id": "policyengine/policyengine-uk-data-private",
84
+ "revision": "1.56.16",
85
+ "sha256": "6f623e277089d06c2c50ec3d8ab766635f695c8579d360410e3dcb4214ea9709"
86
+ },
87
+ "parliamentary_constituency_weights": {
88
+ "path": "parliamentary_constituency_weights.h5",
89
+ "repo_id": "policyengine/policyengine-uk-data-private",
90
+ "revision": "1.56.16",
91
+ "sha256": "6870c36072a0c34d2e6ce3ebf58664b7932ca46a9e3808d387988773e63b66d5"
78
92
  }
79
93
  },
80
- "default_dataset": "populace_uk_2023",
81
- "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z",
94
+ "default_dataset": "enhanced_frs_2024_25",
95
+ "default_dataset_uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.56.16",
82
96
  "model_package": {
83
97
  "name": "policyengine-uk",
84
- "sha256": "80965d3dd7dc767db9b083820d40262ce543020d5a8880a0cf88da10ae641b24",
85
- "version": "2.89.2",
86
- "wheel_url": "https://files.pythonhosted.org/packages/83/db/ce3154ba69b6fcd1e9e922ceee705ef4ddb1f81553da1e63b9296e74a4dc/policyengine_uk-2.89.2-py3-none-any.whl"
98
+ "sha256": "f100ef97e20b29b84138078f1dbc5b83f8857e6bc74b745fc6abef7ea1eeadf2",
99
+ "version": "2.90.2",
100
+ "wheel_url": "https://files.pythonhosted.org/packages/ec/da/658bff2df6094bd7bf2b0f561ff60fd41508adbd0a3af29b4553c83bc678/policyengine_uk-2.90.2-py3-none-any.whl"
87
101
  },
88
- "policyengine_version": "5.0.2",
102
+ "policyengine_version": "5.0.3",
89
103
  "region_datasets": {
90
104
  "national": {
91
- "path_template": "populace_uk_2023.h5"
105
+ "path_template": "enhanced_frs_2024_25.h5"
92
106
  }
93
107
  },
94
- "release_manifest_uri": "https://huggingface.co/datasets/policyengine/populace-uk-private/resolve/populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z/releases/populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z/release_manifest.json",
108
+ "release_manifest_uri": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/2966541fca275ab5ccb6cfb659b010b1db37ad49/releases/1.56.16/release_manifest.json",
95
109
  "schema_version": 1,
96
- "source_manifest_uri": "hf://dataset/policyengine/populace-uk-private@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z/releases/populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z/release_manifest.json",
97
- "version": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z"
110
+ "source_manifest_uri": "hf://model/policyengine/policyengine-uk-data-private@2966541fca275ab5ccb6cfb659b010b1db37ad49/releases/1.56.16/release_manifest.json",
111
+ "version": "policyengine-uk-data-1.56.16"
98
112
  },
99
113
  "us": {
100
114
  "build_id": "populace-us-2024-buildp-sparse-rmloss100-cae8640-20260728T011454Z",
101
- "bundle_id": "us-5.0.2",
115
+ "bundle_id": "us-5.0.3",
102
116
  "certification": {
103
117
  "built_with_model_version": "1.764.6",
104
118
  "certified_by": "policyengine.py bundle certification",
@@ -172,7 +186,7 @@
172
186
  "version": "1.764.6",
173
187
  "wheel_url": "https://files.pythonhosted.org/packages/e2/5a/0566666f30ad06e416f0cf25b24bdee73acd71897fb2de3c0ac43b59e3e3/policyengine_us-1.764.6-py3-none-any.whl"
174
188
  },
175
- "policyengine_version": "5.0.2",
189
+ "policyengine_version": "5.0.3",
176
190
  "region_datasets": {
177
191
  "national": {
178
192
  "path_template": "populace_us_2024.h5"
@@ -185,6 +199,26 @@
185
199
  }
186
200
  },
187
201
  "dataset_overlays": {
202
+ "uk": {
203
+ "enhanced_frs_2023_24": {
204
+ "path": "enhanced_frs_2023_24.h5",
205
+ "repo_id": "policyengine/policyengine-uk-data-private",
206
+ "revision": "655dd07e4bb9c777b00dac044949611f1feb824f",
207
+ "sha256": "584ae33d80ca0431254610a3f8254d132da73477d31966d6446282861ecae50d"
208
+ },
209
+ "frs_2023_24": {
210
+ "path": "frs_2023_24.h5",
211
+ "repo_id": "policyengine/policyengine-uk-data-private",
212
+ "revision": "655dd07e4bb9c777b00dac044949611f1feb824f",
213
+ "sha256": "df26d4d7af9d164aa2d064181b39290292d2f62bb26fee6126fc095fc06da292"
214
+ },
215
+ "populace_uk_2023": {
216
+ "path": "populace_uk_2023.h5",
217
+ "repo_id": "policyengine/populace-uk-private",
218
+ "revision": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z",
219
+ "sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833"
220
+ }
221
+ },
188
222
  "us": {
189
223
  "populace_us_2024_acs_local": {
190
224
  "path": "populace_us_2024_acs_local.h5",
@@ -212,25 +246,25 @@
212
246
  "packages": {
213
247
  "policyengine": {
214
248
  "import_name": "policyengine",
215
- "install_requirement": "policyengine==5.0.2",
249
+ "install_requirement": "policyengine==5.0.3",
216
250
  "name": "policyengine",
217
251
  "role": "bundle_carrier",
218
- "version": "5.0.2"
252
+ "version": "5.0.3"
219
253
  },
220
254
  "policyengine-core": {
221
255
  "import_name": "policyengine_core",
222
- "install_requirement": "policyengine-core==3.30.0",
256
+ "install_requirement": "policyengine-core==3.30.1",
223
257
  "name": "policyengine-core",
224
258
  "role": "runtime_dependency",
225
- "version": "3.30.0"
259
+ "version": "3.30.1"
226
260
  },
227
261
  "policyengine-uk": {
228
262
  "country": "uk",
229
263
  "import_name": "policyengine_uk",
230
- "install_requirement": "policyengine-uk==2.89.2",
264
+ "install_requirement": "policyengine-uk==2.90.2",
231
265
  "name": "policyengine-uk",
232
266
  "role": "country_model",
233
- "version": "2.89.2"
267
+ "version": "2.90.2"
234
268
  },
235
269
  "policyengine-us": {
236
270
  "country": "us",
@@ -241,6 +275,6 @@
241
275
  "version": "1.764.6"
242
276
  }
243
277
  },
244
- "policyengine_version": "5.0.2",
278
+ "policyengine_version": "5.0.3",
245
279
  "schema_version": 2
246
280
  }
@@ -17,19 +17,19 @@
17
17
  "schema:name": "PolicyEngine",
18
18
  "schema:url": "https://policyengine.org"
19
19
  },
20
- "schema:dateCreated": "2026-06-19T02:38:00Z",
21
- "schema:description": "TRACE TRO for certified runtime bundle uk-5.0.2 covering the bundle manifest, the certified dataset artifact, the country model wheel, and the country data release manifest when it is available.",
20
+ "schema:dateCreated": "2026-08-18T14:20:32.100961Z",
21
+ "schema:description": "TRACE TRO for certified runtime bundle uk-5.0.3 covering the bundle manifest, the certified dataset artifact, the country model wheel, and the country data release manifest when it is available.",
22
22
  "schema:name": "policyengine uk certified bundle TRO",
23
23
  "trov:createdWith": {
24
24
  "@type": "schema:SoftwareApplication",
25
25
  "schema:name": "policyengine",
26
- "schema:softwareVersion": "5.0.2"
26
+ "schema:softwareVersion": "5.0.3"
27
27
  },
28
28
  "trov:hasArrangement": [
29
29
  {
30
30
  "@id": "arrangement/1",
31
31
  "@type": "trov:ArtifactArrangement",
32
- "rdfs:comment": "Certified arrangement for bundle uk-5.0.2.",
32
+ "rdfs:comment": "Certified arrangement for bundle uk-5.0.3.",
33
33
  "trov:hasArtifactLocation": [
34
34
  {
35
35
  "@id": "arrangement/1/location/bundle_manifest",
@@ -45,7 +45,7 @@
45
45
  "trov:hasArtifact": {
46
46
  "@id": "composition/1/artifact/data_release_manifest"
47
47
  },
48
- "trov:hasLocation": "https://huggingface.co/datasets/policyengine/populace-uk-private/resolve/populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z/releases/populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z/release_manifest.json"
48
+ "trov:hasLocation": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/2966541fca275ab5ccb6cfb659b010b1db37ad49/releases/1.56.16/release_manifest.json"
49
49
  },
50
50
  {
51
51
  "@id": "arrangement/1/location/dataset",
@@ -53,7 +53,7 @@
53
53
  "trov:hasArtifact": {
54
54
  "@id": "composition/1/artifact/dataset"
55
55
  },
56
- "trov:hasLocation": "https://huggingface.co/datasets/policyengine/populace-uk-private/resolve/populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z/populace_uk_2023.h5"
56
+ "trov:hasLocation": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/1.56.16/enhanced_frs_2024_25.h5"
57
57
  },
58
58
  {
59
59
  "@id": "arrangement/1/location/model_wheel",
@@ -61,7 +61,7 @@
61
61
  "trov:hasArtifact": {
62
62
  "@id": "composition/1/artifact/model_wheel"
63
63
  },
64
- "trov:hasLocation": "https://files.pythonhosted.org/packages/83/db/ce3154ba69b6fcd1e9e922ceee705ef4ddb1f81553da1e63b9296e74a4dc/policyengine_uk-2.89.2-py3-none-any.whl"
64
+ "trov:hasLocation": "https://files.pythonhosted.org/packages/ec/da/658bff2df6094bd7bf2b0f561ff60fd41508adbd0a3af29b4553c83bc678/policyengine_uk-2.90.2-py3-none-any.whl"
65
65
  }
66
66
  ]
67
67
  }
@@ -75,50 +75,52 @@
75
75
  "@type": "trov:ResearchArtifact",
76
76
  "schema:name": "policyengine.py bundle manifest for uk",
77
77
  "trov:mimeType": "application/json",
78
- "trov:sha256": "255dbb893f455d078a6bcece87399f0a22478f56bc4c6e526b758c4fd5b4db24"
78
+ "trov:sha256": "6f113d9388d2b3dcc6a073a28ba3d0ae50b0cd32a317a574a38d6a673f96bfa6"
79
79
  },
80
80
  {
81
81
  "@id": "composition/1/artifact/data_release_manifest",
82
82
  "@type": "trov:ResearchArtifact",
83
- "schema:name": "populace-data release manifest 0.1.0",
83
+ "schema:name": "policyengine-uk-data release manifest 1.56.16",
84
84
  "trov:mimeType": "application/json",
85
- "trov:sha256": "687c5c19ee75aa7959d4eaedf310b10a00036dd8f9c46af4cb712c3f30f02921"
85
+ "trov:sha256": "9bfccac472d74b044596205ee153b0c81fcd8d93e84f5820c7081e30f2cab0c5"
86
86
  },
87
87
  {
88
88
  "@id": "composition/1/artifact/dataset",
89
89
  "@type": "trov:ResearchArtifact",
90
- "schema:name": "populace_uk_2023",
90
+ "schema:name": "enhanced_frs_2024_25",
91
91
  "trov:mimeType": "application/x-hdf5",
92
- "trov:sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833"
92
+ "trov:sha256": "e433e532b17bd8ce76030156285816e33d44e93edabd2204adbef71d19a68712"
93
93
  },
94
94
  {
95
95
  "@id": "composition/1/artifact/model_wheel",
96
96
  "@type": "trov:ResearchArtifact",
97
- "schema:name": "policyengine-uk==2.89.2 wheel",
97
+ "schema:name": "policyengine-uk==2.90.2 wheel",
98
98
  "trov:mimeType": "application/zip",
99
- "trov:sha256": "80965d3dd7dc767db9b083820d40262ce543020d5a8880a0cf88da10ae641b24"
99
+ "trov:sha256": "f100ef97e20b29b84138078f1dbc5b83f8857e6bc74b745fc6abef7ea1eeadf2"
100
100
  }
101
101
  ],
102
102
  "trov:hasFingerprint": {
103
103
  "@id": "composition/1/fingerprint",
104
104
  "@type": "trov:CompositionFingerprint",
105
- "trov:sha256": "2a63c2cdee7352bab2a46e4cc9c818f2d64c3bc120c3edfe9646c5bc6ab8f91c"
105
+ "trov:sha256": "d60ee6f14475da3b8ed7ebff5ae03d7029f17d12c273de4faec6f9768ed0c5d4"
106
106
  }
107
107
  },
108
108
  "trov:hasPerformance": {
109
109
  "@id": "trp/1",
110
110
  "@type": "trov:TransparentResearchPerformance",
111
+ "pe:builtWithModelGitSha": "12a1e028afeef08d8b2d74ee03fd9de3a78b2dd3",
111
112
  "pe:builtWithModelVersion": "2.89.2",
112
113
  "pe:certifiedBy": "policyengine.py bundle certification",
113
- "pe:certifiedForModelVersion": "2.89.2",
114
- "pe:compatibilityBasis": "built_with_model_package",
115
- "pe:dataBuildId": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z",
114
+ "pe:certifiedForModelVersion": "2.90.2",
115
+ "pe:compatibilityBasis": "legacy_compatible_model_package",
116
+ "pe:dataBuildFingerprint": "sha256:6bfff835b504094c05342d2b4d770d2d94c8c1adcb15c4468931f53b21a89ea9",
117
+ "pe:dataBuildId": "policyengine-uk-data-1.56.16",
116
118
  "pe:emittedIn": "repository-bundle",
117
- "rdfs:comment": "Certification of build populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z for policyengine-uk 2.89.2.",
119
+ "rdfs:comment": "Certification of build policyengine-uk-data-1.56.16 for policyengine-uk 2.90.2.",
118
120
  "trov:accessedArrangement": {
119
121
  "@id": "arrangement/1"
120
122
  },
121
- "trov:startedAtTime": "2026-06-19T02:38:00Z",
123
+ "trov:startedAtTime": "2026-08-18T14:20:32.100961Z",
122
124
  "trov:wasConductedBy": {
123
125
  "@id": "trs"
124
126
  }
@@ -18,18 +18,18 @@
18
18
  "schema:url": "https://policyengine.org"
19
19
  },
20
20
  "schema:dateCreated": "2026-07-28T03:56:03.415544+00:00",
21
- "schema:description": "TRACE TRO for certified runtime bundle us-5.0.2 covering the bundle manifest, the certified dataset artifact, the country model wheel, and the country data release manifest when it is available.",
21
+ "schema:description": "TRACE TRO for certified runtime bundle us-5.0.3 covering the bundle manifest, the certified dataset artifact, the country model wheel, and the country data release manifest when it is available.",
22
22
  "schema:name": "policyengine us certified bundle TRO",
23
23
  "trov:createdWith": {
24
24
  "@type": "schema:SoftwareApplication",
25
25
  "schema:name": "policyengine",
26
- "schema:softwareVersion": "5.0.2"
26
+ "schema:softwareVersion": "5.0.3"
27
27
  },
28
28
  "trov:hasArrangement": [
29
29
  {
30
30
  "@id": "arrangement/1",
31
31
  "@type": "trov:ArtifactArrangement",
32
- "rdfs:comment": "Certified arrangement for bundle us-5.0.2.",
32
+ "rdfs:comment": "Certified arrangement for bundle us-5.0.3.",
33
33
  "trov:hasArtifactLocation": [
34
34
  {
35
35
  "@id": "arrangement/1/location/bundle_manifest",
@@ -75,7 +75,7 @@
75
75
  "@type": "trov:ResearchArtifact",
76
76
  "schema:name": "policyengine.py bundle manifest for us",
77
77
  "trov:mimeType": "application/json",
78
- "trov:sha256": "255dbb893f455d078a6bcece87399f0a22478f56bc4c6e526b758c4fd5b4db24"
78
+ "trov:sha256": "6f113d9388d2b3dcc6a073a28ba3d0ae50b0cd32a317a574a38d6a673f96bfa6"
79
79
  },
80
80
  {
81
81
  "@id": "composition/1/artifact/data_release_manifest",
@@ -102,7 +102,7 @@
102
102
  "trov:hasFingerprint": {
103
103
  "@id": "composition/1/fingerprint",
104
104
  "@type": "trov:CompositionFingerprint",
105
- "trov:sha256": "9ad77a116d728a4f15d703a70d053c4838f31f9117a07831caa65a4b25d1004a"
105
+ "trov:sha256": "66ceaf4c12243f1f6ccb5b01e10fd1cd0a6e1e2fc6a9915ae5bde114353a4377"
106
106
  }
107
107
  },
108
108
  "trov:hasPerformance": {
@@ -65,7 +65,10 @@ COUNTRY_MODEL_PACKAGES = {
65
65
 
66
66
  CERTIFIED_BY = "policyengine.py bundle certification"
67
67
  BASIS_BUILT_WITH = "built_with_model_package"
68
- BASIS_PUBLISHER_CLAIM = "compatible_model_packages"
68
+ # Must match the runtime claims basis in provenance/manifest.py: the offline
69
+ # fallback there exempts exactly this string from the fingerprint identity
70
+ # check, so a claims-certified bundle stays importable without network access.
71
+ BASIS_PUBLISHER_CLAIM = "legacy_compatible_model_package"
69
72
  POPULACE_US_SOURCE_COVERAGE_FILE = "us_source_coverage.json"
70
73
  US_STATE_CODES = (
71
74
  "AL",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: policyengine
3
- Version: 5.0.2
3
+ Version: 5.0.3
4
4
  Summary: A package to conduct policy analysis using PolicyEngine tax-benefit models.
5
5
  Author-email: PolicyEngine <hello@policyengine.org>
6
6
  License: GNU AFFERO GENERAL PUBLIC LICENSE
@@ -689,14 +689,14 @@ Requires-Dist: plotly>=5.0.0; extra == "plotting"
689
689
  Provides-Extra: graph
690
690
  Requires-Dist: networkx>=3.0; extra == "graph"
691
691
  Provides-Extra: models
692
- Requires-Dist: policyengine-core==3.30.0; extra == "models"
692
+ Requires-Dist: policyengine-core==3.30.1; extra == "models"
693
693
  Requires-Dist: policyengine-us==1.764.6; extra == "models"
694
- Requires-Dist: policyengine-uk==2.89.2; extra == "models"
694
+ Requires-Dist: policyengine-uk==2.90.2; extra == "models"
695
695
  Provides-Extra: uk
696
- Requires-Dist: policyengine-core==3.30.0; extra == "uk"
697
- Requires-Dist: policyengine-uk==2.89.2; extra == "uk"
696
+ Requires-Dist: policyengine-core==3.30.1; extra == "uk"
697
+ Requires-Dist: policyengine-uk==2.90.2; extra == "uk"
698
698
  Provides-Extra: us
699
- Requires-Dist: policyengine-core==3.30.0; extra == "us"
699
+ Requires-Dist: policyengine-core==3.30.1; extra == "us"
700
700
  Requires-Dist: policyengine-us==1.764.6; extra == "us"
701
701
  Provides-Extra: dev
702
702
  Requires-Dist: pytest; extra == "dev"
@@ -712,9 +712,9 @@ Requires-Dist: ruff>=0.9.0; extra == "dev"
712
712
  Requires-Dist: towncrier>=24.8.0; extra == "dev"
713
713
  Requires-Dist: mypy>=1.11.0; extra == "dev"
714
714
  Requires-Dist: pytest-cov>=5.0.0; extra == "dev"
715
- Requires-Dist: policyengine-core==3.30.0; extra == "dev"
715
+ Requires-Dist: policyengine-core==3.30.1; extra == "dev"
716
716
  Requires-Dist: policyengine-us==1.764.6; extra == "dev"
717
- Requires-Dist: policyengine-uk==2.89.2; extra == "dev"
717
+ Requires-Dist: policyengine-uk==2.90.2; extra == "dev"
718
718
  Dynamic: license-file
719
719
 
720
720
  # PolicyEngine.py
@@ -23,25 +23,25 @@ ruff>=0.9.0
23
23
  towncrier>=24.8.0
24
24
  mypy>=1.11.0
25
25
  pytest-cov>=5.0.0
26
- policyengine-core==3.30.0
26
+ policyengine-core==3.30.1
27
27
  policyengine-us==1.764.6
28
- policyengine-uk==2.89.2
28
+ policyengine-uk==2.90.2
29
29
 
30
30
  [graph]
31
31
  networkx>=3.0
32
32
 
33
33
  [models]
34
- policyengine-core==3.30.0
34
+ policyengine-core==3.30.1
35
35
  policyengine-us==1.764.6
36
- policyengine-uk==2.89.2
36
+ policyengine-uk==2.90.2
37
37
 
38
38
  [plotting]
39
39
  plotly>=5.0.0
40
40
 
41
41
  [uk]
42
- policyengine-core==3.30.0
43
- policyengine-uk==2.89.2
42
+ policyengine-core==3.30.1
43
+ policyengine-uk==2.90.2
44
44
 
45
45
  [us]
46
- policyengine-core==3.30.0
46
+ policyengine-core==3.30.1
47
47
  policyengine-us==1.764.6
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "country_id": "uk",
3
- "data_package_name": "populace-data",
3
+ "data_package_name": "policyengine-uk-data",
4
4
  "has_employment_income": true,
5
5
  "has_income_tax": true,
6
6
  "has_region_registry": true,
7
7
  "model_package_name": "policyengine-uk",
8
- "num_parameters_bucketed_100s": 22,
8
+ "num_parameters_bucketed_100s": 23,
9
9
  "num_variables_bucketed_100s": 8,
10
10
  "region_registry_country": "uk"
11
11
  }