policyengine 6.4.0__tar.gz → 6.4.2__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 (358) hide show
  1. {policyengine-6.4.0 → policyengine-6.4.2}/CHANGELOG.md +15 -0
  2. {policyengine-6.4.0/src/policyengine.egg-info → policyengine-6.4.2}/PKG-INFO +4 -4
  3. {policyengine-6.4.0 → policyengine-6.4.2}/pyproject.toml +4 -4
  4. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/data/bundle/manifest.json +44 -44
  5. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/data/bundle/uk.trace.tro.jsonld +19 -19
  6. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/data/bundle/us.trace.tro.jsonld +5 -5
  7. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/uk/budget_reform_contract.py +8 -1
  8. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/uk/budget_reform_population.py +199 -29
  9. {policyengine-6.4.0 → policyengine-6.4.2/src/policyengine.egg-info}/PKG-INFO +4 -4
  10. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine.egg-info/SOURCES.txt +2 -0
  11. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine.egg-info/requires.txt +3 -3
  12. policyengine-6.4.2/tests/fixtures/uk_contract/evaluate_case_rows.json +1 -0
  13. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_models.py +3 -3
  14. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_release_manifests.py +6 -6
  15. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_uk_budget_reform_contract.py +448 -0
  16. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_uk_regions.py +1 -1
  17. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_uk_year_file_data_year.py +3 -1
  18. policyengine-6.4.2/tests/uk_contract_row_scenarios.py +208 -0
  19. {policyengine-6.4.0 → policyengine-6.4.2}/uv.lock +7 -7
  20. {policyengine-6.4.0 → policyengine-6.4.2}/.claude/policyengine-guide.md +0 -0
  21. {policyengine-6.4.0 → policyengine-6.4.2}/.claude/quick-reference.md +0 -0
  22. {policyengine-6.4.0 → policyengine-6.4.2}/.github/CONTRIBUTING.md +0 -0
  23. {policyengine-6.4.0 → policyengine-6.4.2}/.github/bump_version.py +0 -0
  24. {policyengine-6.4.0 → policyengine-6.4.2}/.github/capture-version.sh +0 -0
  25. {policyengine-6.4.0 → policyengine-6.4.2}/.github/changelog_template.md +0 -0
  26. {policyengine-6.4.0 → policyengine-6.4.2}/.github/check-changelog.sh +0 -0
  27. {policyengine-6.4.0 → policyengine-6.4.2}/.github/copilot-instructions.md +0 -0
  28. {policyengine-6.4.0 → policyengine-6.4.2}/.github/dispatch-policyengine-release.sh +0 -0
  29. {policyengine-6.4.0 → policyengine-6.4.2}/.github/fetch_version.py +0 -0
  30. {policyengine-6.4.0 → policyengine-6.4.2}/.github/get-changelog-diff.sh +0 -0
  31. {policyengine-6.4.0 → policyengine-6.4.2}/.github/has-functional-changes.sh +0 -0
  32. {policyengine-6.4.0 → policyengine-6.4.2}/.github/is-version-number-acceptable.sh +0 -0
  33. {policyengine-6.4.0 → policyengine-6.4.2}/.github/publish-git-tag.sh +0 -0
  34. {policyengine-6.4.0 → policyengine-6.4.2}/.github/wait-for-pypi.sh +0 -0
  35. {policyengine-6.4.0 → policyengine-6.4.2}/.github/workflows/draft-pdf.yml +0 -0
  36. {policyengine-6.4.0 → policyengine-6.4.2}/.github/workflows/pr_code_changes.yaml +0 -0
  37. {policyengine-6.4.0 → policyengine-6.4.2}/.github/workflows/pr_docs_changes.yaml +0 -0
  38. {policyengine-6.4.0 → policyengine-6.4.2}/.github/workflows/push.yaml +0 -0
  39. {policyengine-6.4.0 → policyengine-6.4.2}/.gitignore +0 -0
  40. {policyengine-6.4.0 → policyengine-6.4.2}/.python-version +0 -0
  41. {policyengine-6.4.0 → policyengine-6.4.2}/AGENTS.md +0 -0
  42. {policyengine-6.4.0 → policyengine-6.4.2}/CITATION.cff +0 -0
  43. {policyengine-6.4.0 → policyengine-6.4.2}/CLAUDE.md +0 -0
  44. {policyengine-6.4.0 → policyengine-6.4.2}/CODE_OF_CONDUCT.md +0 -0
  45. {policyengine-6.4.0 → policyengine-6.4.2}/CONTRIBUTING.md +0 -0
  46. {policyengine-6.4.0 → policyengine-6.4.2}/LICENSE +0 -0
  47. {policyengine-6.4.0 → policyengine-6.4.2}/Makefile +0 -0
  48. {policyengine-6.4.0 → policyengine-6.4.2}/README.md +0 -0
  49. {policyengine-6.4.0 → policyengine-6.4.2}/architecture.png +0 -0
  50. {policyengine-6.4.0 → policyengine-6.4.2}/architecture.svg +0 -0
  51. {policyengine-6.4.0 → policyengine-6.4.2}/changelog.d/.gitkeep +0 -0
  52. {policyengine-6.4.0 → policyengine-6.4.2}/docs/.gitignore +0 -0
  53. {policyengine-6.4.0 → policyengine-6.4.2}/docs/_generator/README.md +0 -0
  54. {policyengine-6.4.0 → policyengine-6.4.2}/docs/_generator/build_reference.py +0 -0
  55. {policyengine-6.4.0 → policyengine-6.4.2}/docs/_quarto.yml +0 -0
  56. {policyengine-6.4.0 → policyengine-6.4.2}/docs/bundles.md +0 -0
  57. {policyengine-6.4.0 → policyengine-6.4.2}/docs/countries.md +0 -0
  58. {policyengine-6.4.0 → policyengine-6.4.2}/docs/data-publishing-design.md +0 -0
  59. {policyengine-6.4.0 → policyengine-6.4.2}/docs/decile-impact-spec.md +0 -0
  60. {policyengine-6.4.0 → policyengine-6.4.2}/docs/dev.md +0 -0
  61. {policyengine-6.4.0 → policyengine-6.4.2}/docs/disclosure.md +0 -0
  62. {policyengine-6.4.0 → policyengine-6.4.2}/docs/engineering/runbooks/acs-local-wic-replacement.md +0 -0
  63. {policyengine-6.4.0 → policyengine-6.4.2}/docs/engineering/runbooks/build-m-us-populace-certification.md +0 -0
  64. {policyengine-6.4.0 → policyengine-6.4.2}/docs/engineering/runbooks/canonical-spm-development.md +0 -0
  65. {policyengine-6.4.0 → policyengine-6.4.2}/docs/engineering/runbooks/us-legacy-spm-sources.md +0 -0
  66. {policyengine-6.4.0 → policyengine-6.4.2}/docs/engineering/skills/README.md +0 -0
  67. {policyengine-6.4.0 → policyengine-6.4.2}/docs/engineering/skills/data-certification.md +0 -0
  68. {policyengine-6.4.0 → policyengine-6.4.2}/docs/engineering/skills/github-prs.md +0 -0
  69. {policyengine-6.4.0 → policyengine-6.4.2}/docs/engineering/skills/repository-guidance.md +0 -0
  70. {policyengine-6.4.0 → policyengine-6.4.2}/docs/examples.md +0 -0
  71. {policyengine-6.4.0 → policyengine-6.4.2}/docs/getting-started.md +0 -0
  72. {policyengine-6.4.0 → policyengine-6.4.2}/docs/households.md +0 -0
  73. {policyengine-6.4.0 → policyengine-6.4.2}/docs/impact-analysis.md +0 -0
  74. {policyengine-6.4.0 → policyengine-6.4.2}/docs/index.md +0 -0
  75. {policyengine-6.4.0 → policyengine-6.4.2}/docs/methodology/index.md +0 -0
  76. {policyengine-6.4.0 → policyengine-6.4.2}/docs/methodology/model-architecture.md +0 -0
  77. {policyengine-6.4.0 → policyengine-6.4.2}/docs/methodology/us-health-costs.md +0 -0
  78. {policyengine-6.4.0 → policyengine-6.4.2}/docs/microsim.md +0 -0
  79. {policyengine-6.4.0 → policyengine-6.4.2}/docs/outputs.md +0 -0
  80. {policyengine-6.4.0 → policyengine-6.4.2}/docs/programs/index.md +0 -0
  81. {policyengine-6.4.0 → policyengine-6.4.2}/docs/programs/us-chip.md +0 -0
  82. {policyengine-6.4.0 → policyengine-6.4.2}/docs/reference/index.md +0 -0
  83. {policyengine-6.4.0 → policyengine-6.4.2}/docs/reforms.md +0 -0
  84. {policyengine-6.4.0 → policyengine-6.4.2}/docs/regions.md +0 -0
  85. {policyengine-6.4.0 → policyengine-6.4.2}/docs/release-bundles.md +0 -0
  86. {policyengine-6.4.0 → policyengine-6.4.2}/docs/run-records.md +0 -0
  87. {policyengine-6.4.0 → policyengine-6.4.2}/docs/trace-case-study.md +0 -0
  88. {policyengine-6.4.0 → policyengine-6.4.2}/docs/visualisation.md +0 -0
  89. {policyengine-6.4.0 → policyengine-6.4.2}/examples/belgium_axiom_pilot.py +0 -0
  90. {policyengine-6.4.0 → policyengine-6.4.2}/examples/employment_income_variation_uk.py +0 -0
  91. {policyengine-6.4.0 → policyengine-6.4.2}/examples/employment_income_variation_us.py +0 -0
  92. {policyengine-6.4.0 → policyengine-6.4.2}/examples/household_impact_example.py +0 -0
  93. {policyengine-6.4.0 → policyengine-6.4.2}/examples/income_bands_uk.py +0 -0
  94. {policyengine-6.4.0 → policyengine-6.4.2}/examples/income_distribution_us.py +0 -0
  95. {policyengine-6.4.0 → policyengine-6.4.2}/examples/paper_repro_uk.py +0 -0
  96. {policyengine-6.4.0 → policyengine-6.4.2}/examples/policy_change_uk.py +0 -0
  97. {policyengine-6.4.0 → policyengine-6.4.2}/examples/speedtest_us_simulation.py +0 -0
  98. {policyengine-6.4.0 → policyengine-6.4.2}/examples/uk_geography_disclosure.py +0 -0
  99. {policyengine-6.4.0 → policyengine-6.4.2}/examples/us_budgetary_impact.py +0 -0
  100. {policyengine-6.4.0 → policyengine-6.4.2}/paper-preview.html +0 -0
  101. {policyengine-6.4.0 → policyengine-6.4.2}/paper.bib +0 -0
  102. {policyengine-6.4.0 → policyengine-6.4.2}/paper.md +0 -0
  103. {policyengine-6.4.0 → policyengine-6.4.2}/scripts/bundle.py +0 -0
  104. {policyengine-6.4.0 → policyengine-6.4.2}/scripts/certify_data_release.py +0 -0
  105. {policyengine-6.4.0 → policyengine-6.4.2}/scripts/check_data_staleness.py +0 -0
  106. {policyengine-6.4.0 → policyengine-6.4.2}/scripts/check_native_spm_loading.py +0 -0
  107. {policyengine-6.4.0 → policyengine-6.4.2}/scripts/check_release_credentials.py +0 -0
  108. {policyengine-6.4.0 → policyengine-6.4.2}/scripts/export_bundle_release_assets.py +0 -0
  109. {policyengine-6.4.0 → policyengine-6.4.2}/scripts/generate_bundle_artifacts.py +0 -0
  110. {policyengine-6.4.0 → policyengine-6.4.2}/scripts/generate_trace_tros.py +0 -0
  111. {policyengine-6.4.0 → policyengine-6.4.2}/scripts/prepare_package_bundle_update.py +0 -0
  112. {policyengine-6.4.0 → policyengine-6.4.2}/scripts/release_lock.py +0 -0
  113. {policyengine-6.4.0 → policyengine-6.4.2}/scripts/spm_bundle.py +0 -0
  114. {policyengine-6.4.0 → policyengine-6.4.2}/setup.cfg +0 -0
  115. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/__init__.py +0 -0
  116. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/bundle.py +0 -0
  117. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/cli.py +0 -0
  118. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/core/__init__.py +0 -0
  119. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/core/cache.py +0 -0
  120. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/core/dataset.py +0 -0
  121. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/core/dynamic.py +0 -0
  122. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/core/output.py +0 -0
  123. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/core/parameter.py +0 -0
  124. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/core/parameter_node.py +0 -0
  125. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/core/parameter_value.py +0 -0
  126. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/core/policy.py +0 -0
  127. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/core/region.py +0 -0
  128. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/core/run_record.py +0 -0
  129. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/core/scoping_strategy.py +0 -0
  130. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/core/simulation.py +0 -0
  131. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/core/spm.py +0 -0
  132. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/core/tax_benefit_model.py +0 -0
  133. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/core/tax_benefit_model_version.py +0 -0
  134. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/core/variable.py +0 -0
  135. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/countries/__init__.py +0 -0
  136. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/countries/uk/__init__.py +0 -0
  137. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/countries/uk/regions.py +0 -0
  138. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/countries/us/__init__.py +0 -0
  139. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/countries/us/data/__init__.py +0 -0
  140. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/countries/us/data/districts.py +0 -0
  141. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/countries/us/data/places.py +0 -0
  142. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/countries/us/data/states.py +0 -0
  143. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/countries/us/regions.py +0 -0
  144. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/data/__init__.py +0 -0
  145. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/data/schemas/trace_tro.schema.json +0 -0
  146. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/data/uk_geography_assets.py +0 -0
  147. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/derivations/__init__.py +0 -0
  148. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/derivations/narrate.py +0 -0
  149. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/derivations/trace.py +0 -0
  150. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/disclosure/__init__.py +0 -0
  151. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/disclosure/__main__.py +0 -0
  152. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/disclosure/areas.py +0 -0
  153. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/disclosure/estimate.py +0 -0
  154. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/disclosure/noise.py +0 -0
  155. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/disclosure/release.py +0 -0
  156. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/disclosure/schema.py +0 -0
  157. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/disclosure/support.py +0 -0
  158. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/disclosure/validate.py +0 -0
  159. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/graph/__init__.py +0 -0
  160. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/graph/extractor.py +0 -0
  161. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/graph/graph.py +0 -0
  162. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/outputs/__init__.py +0 -0
  163. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/outputs/aggregate.py +0 -0
  164. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/outputs/change_aggregate.py +0 -0
  165. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/outputs/cliff_impact.py +0 -0
  166. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/outputs/congressional_district_impact.py +0 -0
  167. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/outputs/constituency_impact.py +0 -0
  168. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/outputs/decile_analysis.py +0 -0
  169. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/outputs/decile_grouping.py +0 -0
  170. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/outputs/decile_impact.py +0 -0
  171. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/outputs/extra_variables.py +0 -0
  172. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/outputs/inequality.py +0 -0
  173. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/outputs/intra_decile_impact.py +0 -0
  174. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/outputs/labor_supply_response.py +0 -0
  175. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/outputs/local_authority_impact.py +0 -0
  176. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/outputs/poverty.py +0 -0
  177. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/outputs/program_statistics.py +0 -0
  178. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/outputs/uk_geography_assets.py +0 -0
  179. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/outputs/uk_geography_disclosure.py +0 -0
  180. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/outputs/uk_geography_impact.py +0 -0
  181. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/provenance/__init__.py +0 -0
  182. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/provenance/bundle_validation.py +0 -0
  183. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/provenance/certification.py +0 -0
  184. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/provenance/dataset_materialization.py +0 -0
  185. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/provenance/manifest.py +0 -0
  186. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/provenance/pyproject_pins.py +0 -0
  187. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/provenance/spm_configuration.py +0 -0
  188. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/provenance/trace.py +0 -0
  189. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/provenance/verify.py +0 -0
  190. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/provenance/zenodo.py +0 -0
  191. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/results/__init__.py +0 -0
  192. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/results/schema.py +0 -0
  193. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/results/trace_tro.py +0 -0
  194. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/results/tracking.py +0 -0
  195. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/be/__init__.py +0 -0
  196. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/be/datasets.py +0 -0
  197. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/be/model.py +0 -0
  198. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/common/__init__.py +0 -0
  199. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/common/axes.py +0 -0
  200. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/common/extra_variables.py +0 -0
  201. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/common/household.py +0 -0
  202. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/common/model_version.py +0 -0
  203. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/common/reform.py +0 -0
  204. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/common/result.py +0 -0
  205. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/uk/__init__.py +0 -0
  206. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/uk/analysis.py +0 -0
  207. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/uk/datasets.py +0 -0
  208. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/uk/household.py +0 -0
  209. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/uk/model.py +0 -0
  210. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/us/__init__.py +0 -0
  211. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/us/analysis.py +0 -0
  212. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/us/datasets.py +0 -0
  213. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/us/household.py +0 -0
  214. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/us/legacy_inputs.py +0 -0
  215. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/us/legacy_spm/__init__.py +0 -0
  216. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/us/legacy_spm/declarations.py +0 -0
  217. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/us/legacy_spm/independence.py +0 -0
  218. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/us/legacy_spm/model_adapter.py +0 -0
  219. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/us/legacy_spm/record.py +0 -0
  220. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/us/legacy_spm/registry.py +0 -0
  221. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/us/legacy_spm/runs.py +0 -0
  222. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/us/legacy_spm/universe.py +0 -0
  223. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/us/model.py +0 -0
  224. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/tax_benefit_models/us/spm.py +0 -0
  225. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/utils/__init__.py +0 -0
  226. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/utils/dates.py +0 -0
  227. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/utils/design.py +0 -0
  228. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/utils/entity_utils.py +0 -0
  229. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/utils/errors.py +0 -0
  230. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/utils/hashing.py +0 -0
  231. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/utils/household_validation.py +0 -0
  232. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/utils/parameter_labels.py +0 -0
  233. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/utils/parametric_reforms.py +0 -0
  234. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine/utils/plotting.py +0 -0
  235. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine.egg-info/dependency_links.txt +0 -0
  236. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine.egg-info/entry_points.txt +0 -0
  237. {policyengine-6.4.0 → policyengine-6.4.2}/src/policyengine.egg-info/top_level.txt +0 -0
  238. {policyengine-6.4.0 → policyengine-6.4.2}/tests/__init__.py +0 -0
  239. {policyengine-6.4.0 → policyengine-6.4.2}/tests/conftest.py +0 -0
  240. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/__init__.py +0 -0
  241. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/filtering_fixtures.py +0 -0
  242. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/household_calculator_snapshots/uk_couple_two_kids.json +0 -0
  243. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/household_calculator_snapshots/uk_model_surface.json +0 -0
  244. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/household_calculator_snapshots/uk_single_adult_employment_income.json +0 -0
  245. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/household_calculator_snapshots/uk_single_adult_no_income.json +0 -0
  246. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/household_calculator_snapshots/uk_single_parent_one_child.json +0 -0
  247. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/household_calculator_snapshots/us_married_two_kids_high_income.json +0 -0
  248. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/household_calculator_snapshots/us_model_surface.json +0 -0
  249. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/household_calculator_snapshots/us_single_adult_employment_income.json +0 -0
  250. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/household_calculator_snapshots/us_single_adult_no_income.json +0 -0
  251. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/household_calculator_snapshots/us_single_parent_one_child.json +0 -0
  252. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/parameter_labels_fixtures.py +0 -0
  253. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/parametric_reforms_fixtures.py +0 -0
  254. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/poverty_by_demographics_fixtures.py +0 -0
  255. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/region_fixtures.py +0 -0
  256. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/release_tros/README.md +0 -0
  257. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/release_tros/country-models.lock.toml +0 -0
  258. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/release_tros/manifest.json +0 -0
  259. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/release_tros/us-release_manifest.json +0 -0
  260. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/release_tros/us.trace.tro.jsonld +0 -0
  261. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/spm_development.py +0 -0
  262. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/us_reform_fixtures.py +0 -0
  263. {policyengine-6.4.0 → policyengine-6.4.2}/tests/fixtures/variable_label_fixtures.py +0 -0
  264. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_aggregate.py +0 -0
  265. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_be_axiom_pilot.py +0 -0
  266. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_budgetary_impact.py +0 -0
  267. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_bump_version.py +0 -0
  268. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_bundle.py +0 -0
  269. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_bundle_metadata.py +0 -0
  270. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_cache.py +0 -0
  271. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_certify_data_release.py +0 -0
  272. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_change_aggregate.py +0 -0
  273. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_cliff_impact.py +0 -0
  274. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_cliff_impact_analysis.py +0 -0
  275. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_congressional_district_impact.py +0 -0
  276. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_constituency_impact.py +0 -0
  277. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_dataset_materialization.py +0 -0
  278. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_dataset_persistence.py +0 -0
  279. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_dataset_runtime.py +0 -0
  280. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_dataset_source.py +0 -0
  281. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_decile_grouping.py +0 -0
  282. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_derivations.py +0 -0
  283. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_dict_reforms_on_simulation.py +0 -0
  284. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_disclosure_areas.py +0 -0
  285. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_disclosure_estimate.py +0 -0
  286. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_disclosure_noise.py +0 -0
  287. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_disclosure_release.py +0 -0
  288. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_disclosure_schema.py +0 -0
  289. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_disclosure_support.py +0 -0
  290. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_disclosure_validate.py +0 -0
  291. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_entity_mapping.py +0 -0
  292. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_entity_utils.py +0 -0
  293. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_entity_utils_characterization.py +0 -0
  294. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_errors.py +0 -0
  295. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_extra_variables.py +0 -0
  296. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_filtering.py +0 -0
  297. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_generate_trace_tros.py +0 -0
  298. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_graph/__init__.py +0 -0
  299. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_graph/conftest.py +0 -0
  300. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_graph/test_extractor.py +0 -0
  301. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_household_calculator_snapshot.py +0 -0
  302. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_household_impact.py +0 -0
  303. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_inequality.py +0 -0
  304. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_intra_decile_impact.py +0 -0
  305. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_labor_supply_response.py +0 -0
  306. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_local_authority_impact.py +0 -0
  307. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_manifest_version_mismatch.py +0 -0
  308. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_pandas3_compatibility.py +0 -0
  309. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_parameter_labels.py +0 -0
  310. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_parameter_nodes.py +0 -0
  311. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_parameter_values.py +0 -0
  312. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_parametric_reforms.py +0 -0
  313. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_poverty.py +0 -0
  314. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_poverty_by_demographics.py +0 -0
  315. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_poverty_run.py +0 -0
  316. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_preservation_mirror.py +0 -0
  317. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_program_statistics.py +0 -0
  318. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_pyproject_pins.py +0 -0
  319. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_region.py +0 -0
  320. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_region_group_strategy.py +0 -0
  321. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_release_credentials.py +0 -0
  322. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_release_lock.py +0 -0
  323. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_release_tro_generation.py +0 -0
  324. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_results.py +0 -0
  325. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_run_record.py +0 -0
  326. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_scoping_strategy.py +0 -0
  327. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_small_follow_ups.py +0 -0
  328. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_spm_bundle_bootstrap.py +0 -0
  329. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_spm_bundle_tooling.py +0 -0
  330. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_spm_decile.py +0 -0
  331. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_spm_development_authentication.py +0 -0
  332. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_spm_household.py +0 -0
  333. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_spm_model.py +0 -0
  334. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_spm_selection.py +0 -0
  335. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_spm_selection_schema.py +0 -0
  336. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_trace_tro.py +0 -0
  337. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_trace_tro_verify.py +0 -0
  338. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_uk_analysis.py +0 -0
  339. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_uk_dated_reforms.py +0 -0
  340. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_uk_geography_assets.py +0 -0
  341. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_uk_geography_disclosure.py +0 -0
  342. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_uk_program_statistics.py +0 -0
  343. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_us_legacy_inputs.py +0 -0
  344. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_us_legacy_inputs_integration.py +0 -0
  345. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_us_legacy_spm.py +0 -0
  346. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_us_legacy_spm_integration.py +0 -0
  347. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_us_legacy_spm_model_contract.py +0 -0
  348. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_us_long_term_datasets.py +0 -0
  349. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_us_microsim_structural_reforms.py +0 -0
  350. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_us_native_alignment.py +0 -0
  351. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_us_native_hdf_weights.py +0 -0
  352. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_us_program_statistics.py +0 -0
  353. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_us_reform_application.py +0 -0
  354. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_us_regions.py +0 -0
  355. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_us_year_file_stamp.py +0 -0
  356. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_variable_labels.py +0 -0
  357. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_variable_metadata.py +0 -0
  358. {policyengine-6.4.0 → policyengine-6.4.2}/tests/test_zenodo_mirror.py +0 -0
@@ -1,3 +1,18 @@
1
+ ## [6.4.2] - 2026-10-15
2
+
3
+ ### Fixed
4
+
5
+ - The UK Budget reform contract's Universal Credit allowance check now asserts on the award before deductions, and bounds how far deductions can lower the amount paid.
6
+
7
+
8
+ ## [6.4.1] - 2026-10-15
9
+
10
+ ### Changed
11
+
12
+ - The UK Budget reform contract report gives each assertion a unique id, and the population checks declare the rows a full run emits.
13
+ - Certify policyengine-uk 2.130.1 with policyengine-uk-data 1.58.1 (enhanced_frs_2024_25) as the UK default pair, on the publisher's compatibility claim.
14
+
15
+
1
16
  ## [6.4.0] - 2026-10-14
2
17
 
3
18
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: policyengine
3
- Version: 6.4.0
3
+ Version: 6.4.2
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
@@ -687,11 +687,11 @@ Requires-Dist: networkx>=3.0; extra == "graph"
687
687
  Provides-Extra: models
688
688
  Requires-Dist: policyengine-core==3.33.0; extra == "models"
689
689
  Requires-Dist: policyengine-us==2.2.1; extra == "models"
690
- Requires-Dist: policyengine-uk==2.126.12; extra == "models"
690
+ Requires-Dist: policyengine-uk==2.130.1; extra == "models"
691
691
  Requires-Dist: spm-calculator==1.0.0; extra == "models"
692
692
  Provides-Extra: uk
693
693
  Requires-Dist: policyengine-core==3.33.0; extra == "uk"
694
- Requires-Dist: policyengine-uk==2.126.12; extra == "uk"
694
+ Requires-Dist: policyengine-uk==2.130.1; extra == "uk"
695
695
  Provides-Extra: us
696
696
  Requires-Dist: policyengine-core==3.33.0; extra == "us"
697
697
  Requires-Dist: policyengine-us==2.2.1; extra == "us"
@@ -713,7 +713,7 @@ Requires-Dist: pytest-cov>=5.0.0; extra == "dev"
713
713
  Requires-Dist: hypothesis>=6.100.0; extra == "dev"
714
714
  Requires-Dist: policyengine-core==3.33.0; extra == "dev"
715
715
  Requires-Dist: policyengine-us==2.2.1; extra == "dev"
716
- Requires-Dist: policyengine-uk==2.126.12; extra == "dev"
716
+ Requires-Dist: policyengine-uk==2.130.1; extra == "dev"
717
717
  Requires-Dist: spm-calculator==1.0.0; extra == "dev"
718
718
  Dynamic: license-file
719
719
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "policyengine"
7
- version = "6.4.0"
7
+ version = "6.4.2"
8
8
  description = "A package to conduct policy analysis using PolicyEngine tax-benefit models."
9
9
  readme = "README.md"
10
10
  authors = [
@@ -42,12 +42,12 @@ graph = [
42
42
  models = [
43
43
  "policyengine-core==3.33.0",
44
44
  "policyengine-us==2.2.1",
45
- "policyengine-uk==2.126.12",
45
+ "policyengine-uk==2.130.1",
46
46
  "spm-calculator==1.0.0",
47
47
  ]
48
48
  uk = [
49
49
  "policyengine-core==3.33.0",
50
- "policyengine-uk==2.126.12",
50
+ "policyengine-uk==2.130.1",
51
51
  ]
52
52
  us = [
53
53
  "policyengine-core==3.33.0",
@@ -71,7 +71,7 @@ dev = [
71
71
  "hypothesis>=6.100.0",
72
72
  "policyengine-core==3.33.0",
73
73
  "policyengine-us==2.2.1",
74
- "policyengine-uk==2.126.12",
74
+ "policyengine-uk==2.130.1",
75
75
  "spm-calculator==1.0.0",
76
76
  ]
77
77
 
@@ -1,10 +1,10 @@
1
1
  {
2
- "bundle_version": "6.4.0",
2
+ "bundle_version": "6.4.2",
3
3
  "citation": {
4
4
  "publisher": "PolicyEngine",
5
- "title": "PolicyEngine bundle 6.4.0",
5
+ "title": "PolicyEngine bundle 6.4.2",
6
6
  "type": "software-bundle",
7
- "version": "6.4.0"
7
+ "version": "6.4.2"
8
8
  },
9
9
  "countries": {
10
10
  "uk": {
@@ -16,103 +16,103 @@
16
16
  },
17
17
  "data_releases": {
18
18
  "uk": {
19
- "build_id": "policyengine-uk-data-1.58.0",
20
- "bundle_id": "uk-6.4.0",
19
+ "build_id": "policyengine-uk-data-1.58.1",
20
+ "bundle_id": "uk-6.4.2",
21
21
  "certification": {
22
- "built_with_model_git_sha": "4cbedbecca352f52dffe47e849553c2759a00711",
22
+ "built_with_model_git_sha": "daad71cd26c107f1b784ff600d1464ba59c70e4a",
23
23
  "built_with_model_version": "2.122.2",
24
24
  "certified_by": "policyengine.py bundle certification",
25
- "certified_for_model_version": "2.126.12",
25
+ "certified_for_model_version": "2.130.1",
26
26
  "compatibility_basis": "legacy_compatible_model_package",
27
27
  "data_build_fingerprint": "sha256:c094d7006fdd81df220090284212f16bbffb15624643bc442c4bb3e1b1e5dac8",
28
- "data_build_id": "policyengine-uk-data-1.58.0"
28
+ "data_build_id": "policyengine-uk-data-1.58.1"
29
29
  },
30
30
  "certified_data_artifact": {
31
- "build_id": "policyengine-uk-data-1.58.0",
31
+ "build_id": "policyengine-uk-data-1.58.1",
32
32
  "data_package": {
33
33
  "name": "policyengine-uk-data",
34
- "version": "1.58.0"
34
+ "version": "1.58.1"
35
35
  },
36
36
  "dataset": "enhanced_frs_2024_25",
37
- "sha256": "5ba399ea5ab9a6c7d4e9aaf6c623080beb34d9ad5f330f6244dbad72b8d960b6",
38
- "uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.58.0"
37
+ "sha256": "056e80fd8e9151d78f432a25cde863340baee81304c6216a37fb575ce8563784",
38
+ "uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.58.1"
39
39
  },
40
40
  "country_id": "uk",
41
41
  "data_package": {
42
42
  "name": "policyengine-uk-data",
43
- "release_manifest_path": "releases/1.58.0/release_manifest.json",
44
- "release_manifest_revision": "0aa3eee1cdae8f8125f4aff126a8f01957595dc3",
43
+ "release_manifest_path": "releases/1.58.1/release_manifest.json",
44
+ "release_manifest_revision": "89be6b73fc1e6eeba6dae2f9400676d8510bcd51",
45
45
  "repo_id": "policyengine/policyengine-uk-data-private",
46
46
  "repo_type": "model",
47
- "version": "1.58.0"
47
+ "version": "1.58.1"
48
48
  },
49
49
  "data_producer": "populace",
50
50
  "datasets": {
51
51
  "enhanced_frs_2024_25": {
52
52
  "path": "enhanced_frs_2024_25.h5",
53
53
  "repo_id": "policyengine/policyengine-uk-data-private",
54
- "revision": "1.58.0",
55
- "sha256": "5ba399ea5ab9a6c7d4e9aaf6c623080beb34d9ad5f330f6244dbad72b8d960b6"
54
+ "revision": "1.58.1",
55
+ "sha256": "056e80fd8e9151d78f432a25cde863340baee81304c6216a37fb575ce8563784"
56
56
  },
57
57
  "enhanced_frs_2024_25_tiny": {
58
58
  "path": "enhanced_frs_2024_25_tiny.h5",
59
59
  "repo_id": "policyengine/policyengine-uk-data-private",
60
- "revision": "1.58.0",
61
- "sha256": "a2e938b6c68952dc6fa3af998501371d9014b66263baef262d4f649fe6f19dd5"
60
+ "revision": "1.58.1",
61
+ "sha256": "d5d2bde80f1f028fec98391ea31bb5a0cf8449e3867fc3c1bfe23693b9faecf8"
62
62
  },
63
63
  "frs_2024_25": {
64
64
  "path": "frs_2024_25.h5",
65
65
  "repo_id": "policyengine/policyengine-uk-data-private",
66
- "revision": "1.58.0",
67
- "sha256": "2ec0ea6c10bc82d030a071474c1b376780ea88053e1659d784b4253662341634"
66
+ "revision": "1.58.1",
67
+ "sha256": "97af00b2cd2739957f40dcc4de8e0383a6a91d47952c90d4b4921a6007bd2021"
68
68
  },
69
69
  "frs_2024_25_tiny": {
70
70
  "path": "frs_2024_25_tiny.h5",
71
71
  "repo_id": "policyengine/policyengine-uk-data-private",
72
- "revision": "1.58.0",
73
- "sha256": "e91d17c4bae92067222272da33918f15027f65a58e3765c7bdff8aa119df914e"
72
+ "revision": "1.58.1",
73
+ "sha256": "e4d7662cd3f053620224b7ceff17266783f09407002a72633b043b844cec3f5a"
74
74
  },
75
75
  "local_authority_weights": {
76
76
  "path": "local_authority_weights.h5",
77
77
  "repo_id": "policyengine/policyengine-uk-data-private",
78
- "revision": "1.58.0",
79
- "sha256": "0f8e43877f13cea86ea7bd78ce938769d0c2746ac0b191be661c25608aa786fc"
78
+ "revision": "1.58.1",
79
+ "sha256": "2b7a2f7f9e7081a394b37cb84e909fd3c01d22e421808141684e7c3be59f2089"
80
80
  },
81
81
  "local_geography_weights": {
82
82
  "path": "local_geography_weights.csv.gz",
83
83
  "repo_id": "policyengine/policyengine-uk-data-private",
84
- "revision": "1.58.0",
85
- "sha256": "2c4026139eb69d26af5a0ddad7e7fe9ee981b89a0968e77a5f41820091f641c2"
84
+ "revision": "1.58.1",
85
+ "sha256": "97c6e3542543baf737a713bb918ebc3d3dbc3f3765be9bf3414375c322d0e3d1"
86
86
  },
87
87
  "parliamentary_constituency_weights": {
88
88
  "path": "parliamentary_constituency_weights.h5",
89
89
  "repo_id": "policyengine/policyengine-uk-data-private",
90
- "revision": "1.58.0",
91
- "sha256": "da3d021bf6cd57f06e878094e48524a6a691207231158d9a109da73ea459e900"
90
+ "revision": "1.58.1",
91
+ "sha256": "8c696e4d65a22033deb4c4f69a767fdb46e0a4f5580f36b7fb47ee4722629b11"
92
92
  }
93
93
  },
94
94
  "default_dataset": "enhanced_frs_2024_25",
95
- "default_dataset_uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.58.0",
95
+ "default_dataset_uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.58.1",
96
96
  "model_package": {
97
97
  "name": "policyengine-uk",
98
- "sha256": "4aa6d7ba411de0009d460efdc4e4992f2e8c89cbf8ec419024b1bce89d407ace",
99
- "version": "2.126.12",
100
- "wheel_url": "https://files.pythonhosted.org/packages/4f/3f/0a611e9b25beb75db3f2f521d359eabad0d1ab4e50194b866663355591ff/policyengine_uk-2.126.12-py3-none-any.whl"
98
+ "sha256": "f8b1b8b917c9297ff66937811dbebd9a62d3b1796ce894c326e98051cac4c873",
99
+ "version": "2.130.1",
100
+ "wheel_url": "https://files.pythonhosted.org/packages/1a/21/88e8addba0eabd9a7d3a29fa5293e141feb405baf0432209387f9a1f467a/policyengine_uk-2.130.1-py3-none-any.whl"
101
101
  },
102
- "policyengine_version": "6.4.0",
102
+ "policyengine_version": "6.4.2",
103
103
  "region_datasets": {
104
104
  "national": {
105
105
  "path_template": "enhanced_frs_2024_25.h5"
106
106
  }
107
107
  },
108
- "release_manifest_uri": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/0aa3eee1cdae8f8125f4aff126a8f01957595dc3/releases/1.58.0/release_manifest.json",
108
+ "release_manifest_uri": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/89be6b73fc1e6eeba6dae2f9400676d8510bcd51/releases/1.58.1/release_manifest.json",
109
109
  "schema_version": 1,
110
- "source_manifest_uri": "hf://model/policyengine/policyengine-uk-data-private@0aa3eee1cdae8f8125f4aff126a8f01957595dc3/releases/1.58.0/release_manifest.json",
111
- "version": "policyengine-uk-data-1.58.0"
110
+ "source_manifest_uri": "hf://model/policyengine/policyengine-uk-data-private@89be6b73fc1e6eeba6dae2f9400676d8510bcd51/releases/1.58.1/release_manifest.json",
111
+ "version": "policyengine-uk-data-1.58.1"
112
112
  },
113
113
  "us": {
114
114
  "build_id": "populace-us-2024-spm-20260915",
115
- "bundle_id": "us-6.4.0",
115
+ "bundle_id": "us-6.4.2",
116
116
  "certification": {
117
117
  "built_with_model_version": "2.2.1",
118
118
  "certified_by": "policyengine.py bundle certification",
@@ -217,7 +217,7 @@
217
217
  "version": "2.2.1",
218
218
  "wheel_url": "https://files.pythonhosted.org/packages/5e/09/86ac3968d2a18e28fce3ba1186fc21728e9f299b96a806d6f204f1e0aaed/policyengine_us-2.2.1-py3-none-any.whl"
219
219
  },
220
- "policyengine_version": "6.4.0",
220
+ "policyengine_version": "6.4.2",
221
221
  "region_datasets": {
222
222
  "congressional_district": {
223
223
  "path_template": "populace_us_2024.h5"
@@ -295,10 +295,10 @@
295
295
  "packages": {
296
296
  "policyengine": {
297
297
  "import_name": "policyengine",
298
- "install_requirement": "policyengine==6.4.0",
298
+ "install_requirement": "policyengine==6.4.2",
299
299
  "name": "policyengine",
300
300
  "role": "bundle_carrier",
301
- "version": "6.4.0"
301
+ "version": "6.4.2"
302
302
  },
303
303
  "policyengine-core": {
304
304
  "import_name": "policyengine_core",
@@ -310,10 +310,10 @@
310
310
  "policyengine-uk": {
311
311
  "country": "uk",
312
312
  "import_name": "policyengine_uk",
313
- "install_requirement": "policyengine-uk==2.126.12",
313
+ "install_requirement": "policyengine-uk==2.130.1",
314
314
  "name": "policyengine-uk",
315
315
  "role": "country_model",
316
- "version": "2.126.12"
316
+ "version": "2.130.1"
317
317
  },
318
318
  "policyengine-us": {
319
319
  "country": "us",
@@ -334,6 +334,6 @@
334
334
  "wheel_url": "https://files.pythonhosted.org/packages/19/a0/c484f69a0ebf88a9b9fd0ac28176f8df66550f46714f1b0c5ec0b360824e/spm_calculator-1.0.0-py3-none-any.whl"
335
335
  }
336
336
  },
337
- "policyengine_version": "6.4.0",
337
+ "policyengine_version": "6.4.2",
338
338
  "schema_version": 2
339
339
  }
@@ -17,19 +17,19 @@
17
17
  "schema:name": "PolicyEngine",
18
18
  "schema:url": "https://policyengine.org"
19
19
  },
20
- "schema:dateCreated": "2026-10-07T17:31:53.189867Z",
21
- "schema:description": "TRACE TRO for certified runtime bundle uk-6.4.0 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-10-14T07:43:49.920588Z",
21
+ "schema:description": "TRACE TRO for certified runtime bundle uk-6.4.2 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": "6.4.0"
26
+ "schema:softwareVersion": "6.4.2"
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-6.4.0.",
32
+ "rdfs:comment": "Certified arrangement for bundle uk-6.4.2.",
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/policyengine/policyengine-uk-data-private/resolve/0aa3eee1cdae8f8125f4aff126a8f01957595dc3/releases/1.58.0/release_manifest.json"
48
+ "trov:hasLocation": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/89be6b73fc1e6eeba6dae2f9400676d8510bcd51/releases/1.58.1/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/policyengine/policyengine-uk-data-private/resolve/1.58.0/enhanced_frs_2024_25.h5"
56
+ "trov:hasLocation": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/1.58.1/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/4f/3f/0a611e9b25beb75db3f2f521d359eabad0d1ab4e50194b866663355591ff/policyengine_uk-2.126.12-py3-none-any.whl"
64
+ "trov:hasLocation": "https://files.pythonhosted.org/packages/1a/21/88e8addba0eabd9a7d3a29fa5293e141feb405baf0432209387f9a1f467a/policyengine_uk-2.130.1-py3-none-any.whl"
65
65
  }
66
66
  ]
67
67
  }
@@ -75,52 +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": "53430915cbdd1531c0735481c4eaf0fc425fc18f9e945f424b6b0f5120ce11b3"
78
+ "trov:sha256": "ca23fac0cbac5b2dfd0a7a4a9b9e5a04eda2c239e934b54769f2f286d88f09c1"
79
79
  },
80
80
  {
81
81
  "@id": "composition/1/artifact/data_release_manifest",
82
82
  "@type": "trov:ResearchArtifact",
83
- "schema:name": "policyengine-uk-data release manifest 1.58.0",
83
+ "schema:name": "policyengine-uk-data release manifest 1.58.1",
84
84
  "trov:mimeType": "application/json",
85
- "trov:sha256": "9bde769f476b0c550dc1a40862e413e95a18185ae6beffc970551913ea5e4613"
85
+ "trov:sha256": "545797bf231cd3681e64b677065d921304e9a32f1e46e757a940a412b4136c17"
86
86
  },
87
87
  {
88
88
  "@id": "composition/1/artifact/dataset",
89
89
  "@type": "trov:ResearchArtifact",
90
90
  "schema:name": "enhanced_frs_2024_25",
91
91
  "trov:mimeType": "application/x-hdf5",
92
- "trov:sha256": "5ba399ea5ab9a6c7d4e9aaf6c623080beb34d9ad5f330f6244dbad72b8d960b6"
92
+ "trov:sha256": "056e80fd8e9151d78f432a25cde863340baee81304c6216a37fb575ce8563784"
93
93
  },
94
94
  {
95
95
  "@id": "composition/1/artifact/model_wheel",
96
96
  "@type": "trov:ResearchArtifact",
97
- "schema:name": "policyengine-uk==2.126.12 wheel",
97
+ "schema:name": "policyengine-uk==2.130.1 wheel",
98
98
  "trov:mimeType": "application/zip",
99
- "trov:sha256": "4aa6d7ba411de0009d460efdc4e4992f2e8c89cbf8ec419024b1bce89d407ace"
99
+ "trov:sha256": "f8b1b8b917c9297ff66937811dbebd9a62d3b1796ce894c326e98051cac4c873"
100
100
  }
101
101
  ],
102
102
  "trov:hasFingerprint": {
103
103
  "@id": "composition/1/fingerprint",
104
104
  "@type": "trov:CompositionFingerprint",
105
- "trov:sha256": "76da4207c63012c882686b518126c57797e6cb9b345bf8b755dc18917f8dcceb"
105
+ "trov:sha256": "315f4c63f5e8a0a1c2d5bb6348117acdb592c35105e6c41039ad073755f93b04"
106
106
  }
107
107
  },
108
108
  "trov:hasPerformance": {
109
109
  "@id": "trp/1",
110
110
  "@type": "trov:TransparentResearchPerformance",
111
- "pe:builtWithModelGitSha": "4cbedbecca352f52dffe47e849553c2759a00711",
111
+ "pe:builtWithModelGitSha": "daad71cd26c107f1b784ff600d1464ba59c70e4a",
112
112
  "pe:builtWithModelVersion": "2.122.2",
113
113
  "pe:certifiedBy": "policyengine.py bundle certification",
114
- "pe:certifiedForModelVersion": "2.126.12",
114
+ "pe:certifiedForModelVersion": "2.130.1",
115
115
  "pe:compatibilityBasis": "legacy_compatible_model_package",
116
116
  "pe:dataBuildFingerprint": "sha256:c094d7006fdd81df220090284212f16bbffb15624643bc442c4bb3e1b1e5dac8",
117
- "pe:dataBuildId": "policyengine-uk-data-1.58.0",
117
+ "pe:dataBuildId": "policyengine-uk-data-1.58.1",
118
118
  "pe:emittedIn": "repository-bundle",
119
- "rdfs:comment": "Certification of build policyengine-uk-data-1.58.0 for policyengine-uk 2.126.12.",
119
+ "rdfs:comment": "Certification of build policyengine-uk-data-1.58.1 for policyengine-uk 2.130.1.",
120
120
  "trov:accessedArrangement": {
121
121
  "@id": "arrangement/1"
122
122
  },
123
- "trov:startedAtTime": "2026-10-07T17:31:53.189867Z",
123
+ "trov:startedAtTime": "2026-10-14T07:43:49.920588Z",
124
124
  "trov:wasConductedBy": {
125
125
  "@id": "trs"
126
126
  }
@@ -17,18 +17,18 @@
17
17
  "schema:name": "PolicyEngine",
18
18
  "schema:url": "https://policyengine.org"
19
19
  },
20
- "schema:description": "TRACE TRO for certified runtime bundle us-6.4.0 covering the bundle manifest, the certified dataset artifact, the country model wheel, and the country data release manifest when it is available.",
20
+ "schema:description": "TRACE TRO for certified runtime bundle us-6.4.2 covering the bundle manifest, the certified dataset artifact, the country model wheel, and the country data release manifest when it is available.",
21
21
  "schema:name": "policyengine us certified bundle TRO",
22
22
  "trov:createdWith": {
23
23
  "@type": "schema:SoftwareApplication",
24
24
  "schema:name": "policyengine",
25
- "schema:softwareVersion": "6.4.0"
25
+ "schema:softwareVersion": "6.4.2"
26
26
  },
27
27
  "trov:hasArrangement": [
28
28
  {
29
29
  "@id": "arrangement/1",
30
30
  "@type": "trov:ArtifactArrangement",
31
- "rdfs:comment": "Certified arrangement for bundle us-6.4.0.",
31
+ "rdfs:comment": "Certified arrangement for bundle us-6.4.2.",
32
32
  "trov:hasArtifactLocation": [
33
33
  {
34
34
  "@id": "arrangement/1/location/bundle_manifest",
@@ -74,7 +74,7 @@
74
74
  "@type": "trov:ResearchArtifact",
75
75
  "schema:name": "policyengine.py bundle manifest for us",
76
76
  "trov:mimeType": "application/json",
77
- "trov:sha256": "53430915cbdd1531c0735481c4eaf0fc425fc18f9e945f424b6b0f5120ce11b3"
77
+ "trov:sha256": "ca23fac0cbac5b2dfd0a7a4a9b9e5a04eda2c239e934b54769f2f286d88f09c1"
78
78
  },
79
79
  {
80
80
  "@id": "composition/1/artifact/data_release_manifest",
@@ -101,7 +101,7 @@
101
101
  "trov:hasFingerprint": {
102
102
  "@id": "composition/1/fingerprint",
103
103
  "@type": "trov:CompositionFingerprint",
104
- "trov:sha256": "08f4859401033e106356414bddda468370031b7c747ec00c26afb06dd02cb403"
104
+ "trov:sha256": "a21df74d73d581321a7d2896ab65efd85983aa58061b8cc2d85231c310b8f28f"
105
105
  }
106
106
  },
107
107
  "trov:hasPerformance": {
@@ -1539,8 +1539,11 @@ def evaluate_case(
1539
1539
  )
1540
1540
  ]
1541
1541
  rows = []
1542
- for check in case.checks:
1542
+ for assertion_index, check in enumerate(case.checks):
1543
1543
  label = f"{check.target}:{check.name}:{check.year}"
1544
+ # Several assertions can read the same value under different oracles.
1545
+ # The index identifies each declared assertion even when labels collide.
1546
+ assertion_id = f"{label}:{assertion_index}"
1544
1547
  if check.target == "parameter" and route not in COUNTRY_ROUTES:
1545
1548
  rows.append(
1546
1549
  _row(
@@ -1548,6 +1551,7 @@ def evaluate_case(
1548
1551
  route,
1549
1552
  digest,
1550
1553
  check=label,
1554
+ assertion_id=assertion_id,
1551
1555
  status=UNSUPPORTED,
1552
1556
  reason="this route exposes outputs, not parameter values",
1553
1557
  )
@@ -1560,6 +1564,7 @@ def evaluate_case(
1560
1564
  route,
1561
1565
  digest,
1562
1566
  check=label,
1567
+ assertion_id=assertion_id,
1563
1568
  status=UNSUPPORTED,
1564
1569
  reason="the policy route's output dataset holds the reformed run only",
1565
1570
  )
@@ -1592,6 +1597,7 @@ def evaluate_case(
1592
1597
  route,
1593
1598
  digest,
1594
1599
  check=label,
1600
+ assertion_id=assertion_id,
1595
1601
  status=PENDING if check.pending is not None else ERROR,
1596
1602
  decision_id=check.pending,
1597
1603
  detail=repr(error)[:500],
@@ -1608,6 +1614,7 @@ def evaluate_case(
1608
1614
  route,
1609
1615
  digest,
1610
1616
  check=label,
1617
+ assertion_id=assertion_id,
1611
1618
  status=status,
1612
1619
  expected=float(expected),
1613
1620
  actual=actual,