policyengine 4.20.0__tar.gz → 4.20.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 (270) hide show
  1. {policyengine-4.20.0 → policyengine-4.20.2}/CHANGELOG.md +14 -0
  2. {policyengine-4.20.0 → policyengine-4.20.2}/PKG-INFO +8 -8
  3. {policyengine-4.20.0 → policyengine-4.20.2}/pyproject.toml +8 -8
  4. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/data/bundle/manifest.json +43 -49
  5. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/data/bundle/uk.trace.tro.jsonld +5 -5
  6. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/data/bundle/us.trace.tro.jsonld +18 -18
  7. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine.egg-info/PKG-INFO +8 -8
  8. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine.egg-info/requires.txt +7 -7
  9. {policyengine-4.20.0 → policyengine-4.20.2}/tests/fixtures/household_calculator_snapshots/us_model_surface.json +2 -2
  10. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_models.py +2 -2
  11. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_release_manifests.py +3 -5
  12. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_us_regions.py +1 -1
  13. {policyengine-4.20.0 → policyengine-4.20.2}/uv.lock +14 -14
  14. {policyengine-4.20.0 → policyengine-4.20.2}/.claude/policyengine-guide.md +0 -0
  15. {policyengine-4.20.0 → policyengine-4.20.2}/.claude/quick-reference.md +0 -0
  16. {policyengine-4.20.0 → policyengine-4.20.2}/.github/CONTRIBUTING.md +0 -0
  17. {policyengine-4.20.0 → policyengine-4.20.2}/.github/bump_version.py +0 -0
  18. {policyengine-4.20.0 → policyengine-4.20.2}/.github/capture-version.sh +0 -0
  19. {policyengine-4.20.0 → policyengine-4.20.2}/.github/changelog_template.md +0 -0
  20. {policyengine-4.20.0 → policyengine-4.20.2}/.github/check-changelog.sh +0 -0
  21. {policyengine-4.20.0 → policyengine-4.20.2}/.github/copilot-instructions.md +0 -0
  22. {policyengine-4.20.0 → policyengine-4.20.2}/.github/dispatch-policyengine-release.sh +0 -0
  23. {policyengine-4.20.0 → policyengine-4.20.2}/.github/fetch_version.py +0 -0
  24. {policyengine-4.20.0 → policyengine-4.20.2}/.github/get-changelog-diff.sh +0 -0
  25. {policyengine-4.20.0 → policyengine-4.20.2}/.github/has-functional-changes.sh +0 -0
  26. {policyengine-4.20.0 → policyengine-4.20.2}/.github/is-version-number-acceptable.sh +0 -0
  27. {policyengine-4.20.0 → policyengine-4.20.2}/.github/publish-git-tag.sh +0 -0
  28. {policyengine-4.20.0 → policyengine-4.20.2}/.github/wait-for-pypi.sh +0 -0
  29. {policyengine-4.20.0 → policyengine-4.20.2}/.github/workflows/draft-pdf.yml +0 -0
  30. {policyengine-4.20.0 → policyengine-4.20.2}/.github/workflows/pr_code_changes.yaml +0 -0
  31. {policyengine-4.20.0 → policyengine-4.20.2}/.github/workflows/pr_docs_changes.yaml +0 -0
  32. {policyengine-4.20.0 → policyengine-4.20.2}/.github/workflows/push.yaml +0 -0
  33. {policyengine-4.20.0 → policyengine-4.20.2}/.gitignore +0 -0
  34. {policyengine-4.20.0 → policyengine-4.20.2}/.python-version +0 -0
  35. {policyengine-4.20.0 → policyengine-4.20.2}/AGENTS.md +0 -0
  36. {policyengine-4.20.0 → policyengine-4.20.2}/CITATION.cff +0 -0
  37. {policyengine-4.20.0 → policyengine-4.20.2}/CLAUDE.md +0 -0
  38. {policyengine-4.20.0 → policyengine-4.20.2}/CODE_OF_CONDUCT.md +0 -0
  39. {policyengine-4.20.0 → policyengine-4.20.2}/LICENSE +0 -0
  40. {policyengine-4.20.0 → policyengine-4.20.2}/Makefile +0 -0
  41. {policyengine-4.20.0 → policyengine-4.20.2}/README.md +0 -0
  42. {policyengine-4.20.0 → policyengine-4.20.2}/architecture.png +0 -0
  43. {policyengine-4.20.0 → policyengine-4.20.2}/architecture.svg +0 -0
  44. {policyengine-4.20.0 → policyengine-4.20.2}/changelog.d/.gitkeep +0 -0
  45. {policyengine-4.20.0 → policyengine-4.20.2}/docs/.gitignore +0 -0
  46. {policyengine-4.20.0 → policyengine-4.20.2}/docs/_generator/README.md +0 -0
  47. {policyengine-4.20.0 → policyengine-4.20.2}/docs/_generator/build_reference.py +0 -0
  48. {policyengine-4.20.0 → policyengine-4.20.2}/docs/_quarto.yml +0 -0
  49. {policyengine-4.20.0 → policyengine-4.20.2}/docs/bundles.md +0 -0
  50. {policyengine-4.20.0 → policyengine-4.20.2}/docs/countries.md +0 -0
  51. {policyengine-4.20.0 → policyengine-4.20.2}/docs/data-publishing-design.md +0 -0
  52. {policyengine-4.20.0 → policyengine-4.20.2}/docs/dev.md +0 -0
  53. {policyengine-4.20.0 → policyengine-4.20.2}/docs/engineering/skills/README.md +0 -0
  54. {policyengine-4.20.0 → policyengine-4.20.2}/docs/engineering/skills/data-certification.md +0 -0
  55. {policyengine-4.20.0 → policyengine-4.20.2}/docs/engineering/skills/github-prs.md +0 -0
  56. {policyengine-4.20.0 → policyengine-4.20.2}/docs/engineering/skills/repository-guidance.md +0 -0
  57. {policyengine-4.20.0 → policyengine-4.20.2}/docs/examples.md +0 -0
  58. {policyengine-4.20.0 → policyengine-4.20.2}/docs/getting-started.md +0 -0
  59. {policyengine-4.20.0 → policyengine-4.20.2}/docs/households.md +0 -0
  60. {policyengine-4.20.0 → policyengine-4.20.2}/docs/impact-analysis.md +0 -0
  61. {policyengine-4.20.0 → policyengine-4.20.2}/docs/index.md +0 -0
  62. {policyengine-4.20.0 → policyengine-4.20.2}/docs/methodology/index.md +0 -0
  63. {policyengine-4.20.0 → policyengine-4.20.2}/docs/methodology/model-architecture.md +0 -0
  64. {policyengine-4.20.0 → policyengine-4.20.2}/docs/methodology/us-health-costs.md +0 -0
  65. {policyengine-4.20.0 → policyengine-4.20.2}/docs/microsim.md +0 -0
  66. {policyengine-4.20.0 → policyengine-4.20.2}/docs/outputs.md +0 -0
  67. {policyengine-4.20.0 → policyengine-4.20.2}/docs/programs/index.md +0 -0
  68. {policyengine-4.20.0 → policyengine-4.20.2}/docs/programs/us-chip.md +0 -0
  69. {policyengine-4.20.0 → policyengine-4.20.2}/docs/reference/index.md +0 -0
  70. {policyengine-4.20.0 → policyengine-4.20.2}/docs/reforms.md +0 -0
  71. {policyengine-4.20.0 → policyengine-4.20.2}/docs/regions.md +0 -0
  72. {policyengine-4.20.0 → policyengine-4.20.2}/docs/release-bundles.md +0 -0
  73. {policyengine-4.20.0 → policyengine-4.20.2}/docs/run-records.md +0 -0
  74. {policyengine-4.20.0 → policyengine-4.20.2}/docs/trace-case-study.md +0 -0
  75. {policyengine-4.20.0 → policyengine-4.20.2}/docs/visualisation.md +0 -0
  76. {policyengine-4.20.0 → policyengine-4.20.2}/examples/employment_income_variation_uk.py +0 -0
  77. {policyengine-4.20.0 → policyengine-4.20.2}/examples/employment_income_variation_us.py +0 -0
  78. {policyengine-4.20.0 → policyengine-4.20.2}/examples/household_impact_example.py +0 -0
  79. {policyengine-4.20.0 → policyengine-4.20.2}/examples/income_bands_uk.py +0 -0
  80. {policyengine-4.20.0 → policyengine-4.20.2}/examples/income_distribution_us.py +0 -0
  81. {policyengine-4.20.0 → policyengine-4.20.2}/examples/paper_repro_uk.py +0 -0
  82. {policyengine-4.20.0 → policyengine-4.20.2}/examples/policy_change_uk.py +0 -0
  83. {policyengine-4.20.0 → policyengine-4.20.2}/examples/speedtest_us_simulation.py +0 -0
  84. {policyengine-4.20.0 → policyengine-4.20.2}/examples/us_budgetary_impact.py +0 -0
  85. {policyengine-4.20.0 → policyengine-4.20.2}/paper-preview.html +0 -0
  86. {policyengine-4.20.0 → policyengine-4.20.2}/paper.bib +0 -0
  87. {policyengine-4.20.0 → policyengine-4.20.2}/paper.md +0 -0
  88. {policyengine-4.20.0 → policyengine-4.20.2}/scripts/bundle.py +0 -0
  89. {policyengine-4.20.0 → policyengine-4.20.2}/scripts/certify_data_release.py +0 -0
  90. {policyengine-4.20.0 → policyengine-4.20.2}/scripts/check_data_staleness.py +0 -0
  91. {policyengine-4.20.0 → policyengine-4.20.2}/scripts/export_bundle_release_assets.py +0 -0
  92. {policyengine-4.20.0 → policyengine-4.20.2}/scripts/generate_bundle_artifacts.py +0 -0
  93. {policyengine-4.20.0 → policyengine-4.20.2}/scripts/generate_trace_tros.py +0 -0
  94. {policyengine-4.20.0 → policyengine-4.20.2}/scripts/prepare_package_bundle_update.py +0 -0
  95. {policyengine-4.20.0 → policyengine-4.20.2}/setup.cfg +0 -0
  96. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/__init__.py +0 -0
  97. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/bundle.py +0 -0
  98. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/cli.py +0 -0
  99. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/core/__init__.py +0 -0
  100. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/core/cache.py +0 -0
  101. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/core/dataset.py +0 -0
  102. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/core/dynamic.py +0 -0
  103. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/core/output.py +0 -0
  104. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/core/parameter.py +0 -0
  105. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/core/parameter_node.py +0 -0
  106. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/core/parameter_value.py +0 -0
  107. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/core/policy.py +0 -0
  108. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/core/region.py +0 -0
  109. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/core/run_record.py +0 -0
  110. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/core/scoping_strategy.py +0 -0
  111. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/core/simulation.py +0 -0
  112. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/core/tax_benefit_model.py +0 -0
  113. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/core/tax_benefit_model_version.py +0 -0
  114. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/core/variable.py +0 -0
  115. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/countries/__init__.py +0 -0
  116. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/countries/uk/__init__.py +0 -0
  117. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/countries/uk/regions.py +0 -0
  118. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/countries/us/__init__.py +0 -0
  119. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/countries/us/data/__init__.py +0 -0
  120. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/countries/us/data/districts.py +0 -0
  121. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/countries/us/data/places.py +0 -0
  122. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/countries/us/data/states.py +0 -0
  123. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/countries/us/regions.py +0 -0
  124. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/data/__init__.py +0 -0
  125. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/data/schemas/trace_tro.schema.json +0 -0
  126. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/data/uk_geography_assets.py +0 -0
  127. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/derivations/__init__.py +0 -0
  128. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/derivations/narrate.py +0 -0
  129. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/derivations/trace.py +0 -0
  130. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/graph/__init__.py +0 -0
  131. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/graph/extractor.py +0 -0
  132. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/graph/graph.py +0 -0
  133. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/outputs/__init__.py +0 -0
  134. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/outputs/aggregate.py +0 -0
  135. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/outputs/change_aggregate.py +0 -0
  136. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/outputs/cliff_impact.py +0 -0
  137. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/outputs/congressional_district_impact.py +0 -0
  138. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/outputs/constituency_impact.py +0 -0
  139. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/outputs/decile_impact.py +0 -0
  140. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/outputs/extra_variables.py +0 -0
  141. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/outputs/inequality.py +0 -0
  142. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/outputs/intra_decile_impact.py +0 -0
  143. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/outputs/labor_supply_response.py +0 -0
  144. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/outputs/local_authority_impact.py +0 -0
  145. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/outputs/poverty.py +0 -0
  146. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/outputs/program_statistics.py +0 -0
  147. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/outputs/uk_geography_assets.py +0 -0
  148. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/outputs/uk_geography_impact.py +0 -0
  149. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/provenance/__init__.py +0 -0
  150. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/provenance/certification.py +0 -0
  151. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/provenance/dataset_sources.py +0 -0
  152. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/provenance/manifest.py +0 -0
  153. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/provenance/pyproject_pins.py +0 -0
  154. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/provenance/trace.py +0 -0
  155. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/provenance/verify.py +0 -0
  156. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/provenance/zenodo.py +0 -0
  157. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/results/__init__.py +0 -0
  158. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/results/schema.py +0 -0
  159. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/results/trace_tro.py +0 -0
  160. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/results/tracking.py +0 -0
  161. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/tax_benefit_models/common/__init__.py +0 -0
  162. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/tax_benefit_models/common/axes.py +0 -0
  163. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/tax_benefit_models/common/extra_variables.py +0 -0
  164. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/tax_benefit_models/common/household.py +0 -0
  165. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/tax_benefit_models/common/model_version.py +0 -0
  166. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/tax_benefit_models/common/reform.py +0 -0
  167. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/tax_benefit_models/common/result.py +0 -0
  168. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/tax_benefit_models/uk/__init__.py +0 -0
  169. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/tax_benefit_models/uk/analysis.py +0 -0
  170. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/tax_benefit_models/uk/datasets.py +0 -0
  171. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/tax_benefit_models/uk/household.py +0 -0
  172. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/tax_benefit_models/uk/model.py +0 -0
  173. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/tax_benefit_models/us/__init__.py +0 -0
  174. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/tax_benefit_models/us/analysis.py +0 -0
  175. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/tax_benefit_models/us/datasets.py +0 -0
  176. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/tax_benefit_models/us/household.py +0 -0
  177. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/tax_benefit_models/us/model.py +0 -0
  178. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/utils/__init__.py +0 -0
  179. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/utils/data/__init__.py +0 -0
  180. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/utils/data/caching_google_storage_client.py +0 -0
  181. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/utils/data/version_aware_storage_client.py +0 -0
  182. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/utils/dates.py +0 -0
  183. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/utils/design.py +0 -0
  184. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/utils/entity_utils.py +0 -0
  185. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/utils/errors.py +0 -0
  186. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/utils/google_cloud_bucket.py +0 -0
  187. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/utils/household_validation.py +0 -0
  188. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/utils/parameter_labels.py +0 -0
  189. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/utils/parametric_reforms.py +0 -0
  190. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine/utils/plotting.py +0 -0
  191. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine.egg-info/SOURCES.txt +0 -0
  192. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine.egg-info/dependency_links.txt +0 -0
  193. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine.egg-info/entry_points.txt +0 -0
  194. {policyengine-4.20.0 → policyengine-4.20.2}/src/policyengine.egg-info/top_level.txt +0 -0
  195. {policyengine-4.20.0 → policyengine-4.20.2}/tests/__init__.py +0 -0
  196. {policyengine-4.20.0 → policyengine-4.20.2}/tests/conftest.py +0 -0
  197. {policyengine-4.20.0 → policyengine-4.20.2}/tests/fixtures/__init__.py +0 -0
  198. {policyengine-4.20.0 → policyengine-4.20.2}/tests/fixtures/filtering_fixtures.py +0 -0
  199. {policyengine-4.20.0 → policyengine-4.20.2}/tests/fixtures/household_calculator_snapshots/uk_couple_two_kids.json +0 -0
  200. {policyengine-4.20.0 → policyengine-4.20.2}/tests/fixtures/household_calculator_snapshots/uk_model_surface.json +0 -0
  201. {policyengine-4.20.0 → policyengine-4.20.2}/tests/fixtures/household_calculator_snapshots/uk_single_adult_employment_income.json +0 -0
  202. {policyengine-4.20.0 → policyengine-4.20.2}/tests/fixtures/household_calculator_snapshots/uk_single_adult_no_income.json +0 -0
  203. {policyengine-4.20.0 → policyengine-4.20.2}/tests/fixtures/household_calculator_snapshots/uk_single_parent_one_child.json +0 -0
  204. {policyengine-4.20.0 → policyengine-4.20.2}/tests/fixtures/household_calculator_snapshots/us_married_two_kids_high_income.json +0 -0
  205. {policyengine-4.20.0 → policyengine-4.20.2}/tests/fixtures/household_calculator_snapshots/us_single_adult_employment_income.json +0 -0
  206. {policyengine-4.20.0 → policyengine-4.20.2}/tests/fixtures/household_calculator_snapshots/us_single_adult_no_income.json +0 -0
  207. {policyengine-4.20.0 → policyengine-4.20.2}/tests/fixtures/household_calculator_snapshots/us_single_parent_one_child.json +0 -0
  208. {policyengine-4.20.0 → policyengine-4.20.2}/tests/fixtures/parameter_labels_fixtures.py +0 -0
  209. {policyengine-4.20.0 → policyengine-4.20.2}/tests/fixtures/parametric_reforms_fixtures.py +0 -0
  210. {policyengine-4.20.0 → policyengine-4.20.2}/tests/fixtures/poverty_by_demographics_fixtures.py +0 -0
  211. {policyengine-4.20.0 → policyengine-4.20.2}/tests/fixtures/region_fixtures.py +0 -0
  212. {policyengine-4.20.0 → policyengine-4.20.2}/tests/fixtures/us_reform_fixtures.py +0 -0
  213. {policyengine-4.20.0 → policyengine-4.20.2}/tests/fixtures/variable_label_fixtures.py +0 -0
  214. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_aggregate.py +0 -0
  215. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_budgetary_impact.py +0 -0
  216. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_bump_version.py +0 -0
  217. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_bundle.py +0 -0
  218. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_bundle_metadata.py +0 -0
  219. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_cache.py +0 -0
  220. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_certify_data_release.py +0 -0
  221. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_change_aggregate.py +0 -0
  222. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_cliff_impact.py +0 -0
  223. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_cliff_impact_analysis.py +0 -0
  224. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_congressional_district_impact.py +0 -0
  225. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_constituency_impact.py +0 -0
  226. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_dataset_persistence.py +0 -0
  227. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_dataset_sources.py +0 -0
  228. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_derivations.py +0 -0
  229. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_dict_reforms_on_simulation.py +0 -0
  230. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_entity_mapping.py +0 -0
  231. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_entity_utils.py +0 -0
  232. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_errors.py +0 -0
  233. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_extra_variables.py +0 -0
  234. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_filtering.py +0 -0
  235. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_graph/__init__.py +0 -0
  236. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_graph/conftest.py +0 -0
  237. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_graph/test_extractor.py +0 -0
  238. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_household_calculator_snapshot.py +0 -0
  239. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_household_impact.py +0 -0
  240. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_inequality.py +0 -0
  241. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_intra_decile_impact.py +0 -0
  242. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_labor_supply_response.py +0 -0
  243. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_local_authority_impact.py +0 -0
  244. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_manifest_version_mismatch.py +0 -0
  245. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_pandas3_compatibility.py +0 -0
  246. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_parameter_labels.py +0 -0
  247. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_parametric_reforms.py +0 -0
  248. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_poverty.py +0 -0
  249. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_poverty_by_demographics.py +0 -0
  250. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_poverty_run.py +0 -0
  251. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_preservation_mirror.py +0 -0
  252. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_program_statistics.py +0 -0
  253. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_pyproject_pins.py +0 -0
  254. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_region.py +0 -0
  255. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_results.py +0 -0
  256. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_run_record.py +0 -0
  257. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_scoping_strategy.py +0 -0
  258. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_small_follow_ups.py +0 -0
  259. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_trace_tro.py +0 -0
  260. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_trace_tro_verify.py +0 -0
  261. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_uk_analysis.py +0 -0
  262. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_uk_geography_assets.py +0 -0
  263. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_uk_program_statistics.py +0 -0
  264. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_uk_regions.py +0 -0
  265. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_us_long_term_datasets.py +0 -0
  266. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_us_microsim_structural_reforms.py +0 -0
  267. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_us_program_statistics.py +0 -0
  268. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_us_reform_application.py +0 -0
  269. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_variable_labels.py +0 -0
  270. {policyengine-4.20.0 → policyengine-4.20.2}/tests/test_zenodo_mirror.py +0 -0
@@ -1,3 +1,17 @@
1
+ ## [4.20.2] - 2026-07-09
2
+
3
+ ### Fixed
4
+
5
+ - Upgrade `policyengine-core` to 3.30.0. This enforces formula-time determinism with a static check at variable registration instead of a runtime monkeypatch of the process-global `numpy.random`, fixing intermittent, misattributed `NonDeterministicFormulaError`s that could be raised when building or running many simulations concurrently in one process (policyengine-core#518). It also corrects `Reform.from_dict` bare-date period semantics (policyengine-core#510). The pinned country packages already allow `policyengine-core>=3.26.0` and are randomness-clean, so no country-package bump is required.
6
+
7
+
8
+ ## [4.20.1] - 2026-07-09
9
+
10
+ ### Changed
11
+
12
+ - Certify the US populace data release `populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z` (populace_us_2024, policyengine-us 1.764.6) into the PolicyEngine bundle manifest.
13
+
14
+
1
15
  ## [4.20.0] - 2026-07-07
2
16
 
3
17
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: policyengine
3
- Version: 4.20.0
3
+ Version: 4.20.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
@@ -689,15 +689,15 @@ 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.28.0; extra == "models"
693
- Requires-Dist: policyengine-us==1.752.2; extra == "models"
692
+ Requires-Dist: policyengine-core==3.30.0; extra == "models"
693
+ Requires-Dist: policyengine-us==1.764.6; extra == "models"
694
694
  Requires-Dist: policyengine-uk==2.89.2; extra == "models"
695
695
  Provides-Extra: uk
696
- Requires-Dist: policyengine-core==3.28.0; extra == "uk"
696
+ Requires-Dist: policyengine-core==3.30.0; extra == "uk"
697
697
  Requires-Dist: policyengine-uk==2.89.2; extra == "uk"
698
698
  Provides-Extra: us
699
- Requires-Dist: policyengine-core==3.28.0; extra == "us"
700
- Requires-Dist: policyengine-us==1.752.2; extra == "us"
699
+ Requires-Dist: policyengine-core==3.30.0; extra == "us"
700
+ Requires-Dist: policyengine-us==1.764.6; extra == "us"
701
701
  Provides-Extra: dev
702
702
  Requires-Dist: pytest; extra == "dev"
703
703
  Requires-Dist: furo; extra == "dev"
@@ -712,8 +712,8 @@ 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.28.0; extra == "dev"
716
- Requires-Dist: policyengine-us==1.752.2; extra == "dev"
715
+ Requires-Dist: policyengine-core==3.30.0; extra == "dev"
716
+ Requires-Dist: policyengine-us==1.764.6; extra == "dev"
717
717
  Requires-Dist: policyengine-uk==2.89.2; 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 = "4.20.0"
7
+ version = "4.20.2"
8
8
  description = "A package to conduct policy analysis using PolicyEngine tax-benefit models."
9
9
  readme = "README.md"
10
10
  authors = [
@@ -44,17 +44,17 @@ graph = [
44
44
  "networkx>=3.0",
45
45
  ]
46
46
  models = [
47
- "policyengine-core==3.28.0",
48
- "policyengine-us==1.752.2",
47
+ "policyengine-core==3.30.0",
48
+ "policyengine-us==1.764.6",
49
49
  "policyengine-uk==2.89.2",
50
50
  ]
51
51
  uk = [
52
- "policyengine-core==3.28.0",
52
+ "policyengine-core==3.30.0",
53
53
  "policyengine-uk==2.89.2",
54
54
  ]
55
55
  us = [
56
- "policyengine-core==3.28.0",
57
- "policyengine-us==1.752.2",
56
+ "policyengine-core==3.30.0",
57
+ "policyengine-us==1.764.6",
58
58
  ]
59
59
  dev = [
60
60
  "pytest",
@@ -70,8 +70,8 @@ dev = [
70
70
  "towncrier>=24.8.0",
71
71
  "mypy>=1.11.0",
72
72
  "pytest-cov>=5.0.0",
73
- "policyengine-core==3.28.0",
74
- "policyengine-us==1.752.2",
73
+ "policyengine-core==3.30.0",
74
+ "policyengine-us==1.764.6",
75
75
  "policyengine-uk==2.89.2",
76
76
  ]
77
77
 
@@ -1,10 +1,10 @@
1
1
  {
2
- "bundle_version": "4.20.0",
2
+ "bundle_version": "4.20.2",
3
3
  "citation": {
4
4
  "publisher": "PolicyEngine",
5
- "title": "PolicyEngine bundle 4.20.0",
5
+ "title": "PolicyEngine bundle 4.20.2",
6
6
  "type": "software-bundle",
7
- "version": "4.20.0"
7
+ "version": "4.20.2"
8
8
  },
9
9
  "countries": {
10
10
  "uk": {
@@ -17,7 +17,7 @@
17
17
  "data_releases": {
18
18
  "uk": {
19
19
  "build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z",
20
- "bundle_id": "uk-4.20.0",
20
+ "bundle_id": "uk-4.20.2",
21
21
  "certification": {
22
22
  "built_with_model_version": "2.89.2",
23
23
  "certified_by": "policyengine.py bundle certification",
@@ -85,7 +85,7 @@
85
85
  "version": "2.89.2",
86
86
  "wheel_url": "https://files.pythonhosted.org/packages/83/db/ce3154ba69b6fcd1e9e922ceee705ef4ddb1f81553da1e63b9296e74a4dc/policyengine_uk-2.89.2-py3-none-any.whl"
87
87
  },
88
- "policyengine_version": "4.20.0",
88
+ "policyengine_version": "4.20.2",
89
89
  "region_datasets": {
90
90
  "national": {
91
91
  "path_template": "populace_uk_2023.h5"
@@ -97,30 +97,30 @@
97
97
  "version": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z"
98
98
  },
99
99
  "us": {
100
- "build_id": "populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701",
101
- "bundle_id": "us-4.20.0",
100
+ "build_id": "populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z",
101
+ "bundle_id": "us-4.20.2",
102
102
  "certification": {
103
- "built_with_model_version": "1.752.2",
103
+ "built_with_model_version": "1.764.6",
104
104
  "certified_by": "policyengine.py bundle certification",
105
- "certified_for_model_version": "1.752.2",
105
+ "certified_for_model_version": "1.764.6",
106
106
  "compatibility_basis": "built_with_model_package",
107
- "data_build_id": "populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701"
107
+ "data_build_id": "populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z"
108
108
  },
109
109
  "certified_data_artifact": {
110
- "build_id": "populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701",
110
+ "build_id": "populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z",
111
111
  "data_package": {
112
112
  "name": "populace-data",
113
113
  "version": "0.1.0"
114
114
  },
115
115
  "dataset": "populace_us_2024",
116
- "sha256": "c2065b642ab00da74746afdfd9f06890e5f32f9b10bd6610ff236452d40f39c5",
117
- "uri": "hf://policyengine/populace-us/populace_us_2024.h5@populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701"
116
+ "sha256": "5e2a10b97f1fa740fbc1cc1be3450a19b2089c56de59d3754db13ec0dd048b88",
117
+ "uri": "hf://policyengine/populace-us/populace_us_2024.h5@populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z"
118
118
  },
119
119
  "country_id": "us",
120
120
  "data_package": {
121
121
  "name": "populace-data",
122
- "release_manifest_path": "releases/populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701/release_manifest.json",
123
- "release_manifest_revision": "populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701",
122
+ "release_manifest_path": "releases/populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z/release_manifest.json",
123
+ "release_manifest_revision": "populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z",
124
124
  "repo_id": "policyengine/populace-us",
125
125
  "repo_type": "dataset",
126
126
  "version": "0.1.0"
@@ -128,60 +128,54 @@
128
128
  "data_producer": "populace",
129
129
  "datasets": {
130
130
  "calibration_diagnostics": {
131
- "path": "releases/populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701/calibration_diagnostics.json",
131
+ "path": "releases/populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z/calibration_diagnostics.json",
132
132
  "repo_id": "policyengine/populace-us",
133
- "revision": "populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701",
134
- "sha256": "d05b5862ded4c06de4354dff7ab198eb0870efbfe3184ef38b4d416735ff4c36"
133
+ "revision": "populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z",
134
+ "sha256": "79d3a780a2e3f3524da261d702ddc9ca1ad09fb3d5a4da52d998038cf815eeb9"
135
135
  },
136
136
  "demographics": {
137
- "path": "releases/populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701/demographics.json",
137
+ "path": "releases/populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z/demographics.json",
138
138
  "repo_id": "policyengine/populace-us",
139
- "revision": "populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701",
140
- "sha256": "8f918a224c48951ff5abefd17d513dd0d53ab495abd4e5e5bd31223b4c62375c"
139
+ "revision": "populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z",
140
+ "sha256": "b057cb4bede77d843fec2654a213610079be7d0a3195fa0ae9875e39691a4418"
141
141
  },
142
142
  "populace_us_2024": {
143
143
  "path": "populace_us_2024.h5",
144
144
  "repo_id": "policyengine/populace-us",
145
- "revision": "populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701",
146
- "sha256": "c2065b642ab00da74746afdfd9f06890e5f32f9b10bd6610ff236452d40f39c5"
145
+ "revision": "populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z",
146
+ "sha256": "5e2a10b97f1fa740fbc1cc1be3450a19b2089c56de59d3754db13ec0dd048b88"
147
147
  },
148
148
  "populace_us_2024_calibration": {
149
149
  "path": "populace_us_2024_calibration.npz",
150
150
  "repo_id": "policyengine/populace-us",
151
- "revision": "populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701",
152
- "sha256": "5c8e418d2d82bbce836f764b691d8cba2ff0f6e2f1ba9539b793feed1b28fdd7"
153
- },
154
- "reform_validation": {
155
- "path": "releases/populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701/reform_validation.json",
156
- "repo_id": "policyengine/populace-us",
157
- "revision": "populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701",
158
- "sha256": "7df68869c57e52297181838f67f91467b8eb49cfaa128cc743411348ddcdd47f"
151
+ "revision": "populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z",
152
+ "sha256": "763f2ec8b191c81aea9a0aa7cd3ffc2235ed8d1249ebb74df95a4715a97c1101"
159
153
  },
160
154
  "us_source_coverage": {
161
- "path": "releases/populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701/us_source_coverage.json",
155
+ "path": "releases/populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z/us_source_coverage.json",
162
156
  "repo_id": "policyengine/populace-us",
163
- "revision": "populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701",
164
- "sha256": "51c174551b330ee4e8b756296aa3b363bc542ac75caa9cb8a2dffedfb3fe4817"
157
+ "revision": "populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z",
158
+ "sha256": "56bf87c81f143cdf318aa13d43faddc79f23d4d6b849b223f980f8c34c66e0dd"
165
159
  }
166
160
  },
167
161
  "default_dataset": "populace_us_2024",
168
- "default_dataset_uri": "hf://policyengine/populace-us/populace_us_2024.h5@populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701",
162
+ "default_dataset_uri": "hf://policyengine/populace-us/populace_us_2024.h5@populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z",
169
163
  "model_package": {
170
164
  "name": "policyengine-us",
171
- "sha256": "7e30468ae369ddd14e5d834c12cacbc5b5159c809b0990caf204c0747ef4c096",
172
- "version": "1.752.2",
173
- "wheel_url": "https://files.pythonhosted.org/packages/7f/85/bbee92f747a382779bae41a67da39fa5a8592d068853a64226279e6c32a7/policyengine_us-1.752.2-py3-none-any.whl"
165
+ "sha256": "2b2c5c02c26ab212270948db1f30129728b625fc6109fc9ca0c604b714546909",
166
+ "version": "1.764.6",
167
+ "wheel_url": "https://files.pythonhosted.org/packages/e2/5a/0566666f30ad06e416f0cf25b24bdee73acd71897fb2de3c0ac43b59e3e3/policyengine_us-1.764.6-py3-none-any.whl"
174
168
  },
175
- "policyengine_version": "4.20.0",
169
+ "policyengine_version": "4.20.2",
176
170
  "region_datasets": {
177
171
  "national": {
178
172
  "path_template": "populace_us_2024.h5"
179
173
  }
180
174
  },
181
- "release_manifest_uri": "https://huggingface.co/datasets/policyengine/populace-us/resolve/populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701/releases/populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701/release_manifest.json",
175
+ "release_manifest_uri": "https://huggingface.co/datasets/policyengine/populace-us/resolve/populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z/releases/populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z/release_manifest.json",
182
176
  "schema_version": 1,
183
- "source_manifest_uri": "hf://dataset/policyengine/populace-us@populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701/releases/populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701/release_manifest.json",
184
- "version": "populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701"
177
+ "source_manifest_uri": "hf://dataset/policyengine/populace-us@populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z/releases/populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z/release_manifest.json",
178
+ "version": "populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z"
185
179
  }
186
180
  },
187
181
  "extras": {
@@ -202,17 +196,17 @@
202
196
  "packages": {
203
197
  "policyengine": {
204
198
  "import_name": "policyengine",
205
- "install_requirement": "policyengine==4.20.0",
199
+ "install_requirement": "policyengine==4.20.2",
206
200
  "name": "policyengine",
207
201
  "role": "bundle_carrier",
208
- "version": "4.20.0"
202
+ "version": "4.20.2"
209
203
  },
210
204
  "policyengine-core": {
211
205
  "import_name": "policyengine_core",
212
- "install_requirement": "policyengine-core==3.28.0",
206
+ "install_requirement": "policyengine-core==3.30.0",
213
207
  "name": "policyengine-core",
214
208
  "role": "runtime_dependency",
215
- "version": "3.28.0"
209
+ "version": "3.30.0"
216
210
  },
217
211
  "policyengine-uk": {
218
212
  "country": "uk",
@@ -225,12 +219,12 @@
225
219
  "policyengine-us": {
226
220
  "country": "us",
227
221
  "import_name": "policyengine_us",
228
- "install_requirement": "policyengine-us==1.752.2",
222
+ "install_requirement": "policyengine-us==1.764.6",
229
223
  "name": "policyengine-us",
230
224
  "role": "country_model",
231
- "version": "1.752.2"
225
+ "version": "1.764.6"
232
226
  }
233
227
  },
234
- "policyengine_version": "4.20.0",
228
+ "policyengine_version": "4.20.2",
235
229
  "schema_version": 2
236
230
  }
@@ -18,18 +18,18 @@
18
18
  "schema:url": "https://policyengine.org"
19
19
  },
20
20
  "schema:dateCreated": "2026-06-19T02:38:00Z",
21
- "schema:description": "TRACE TRO for certified runtime bundle uk-4.20.0 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 uk-4.20.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": "4.20.0"
26
+ "schema:softwareVersion": "4.20.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-4.20.0.",
32
+ "rdfs:comment": "Certified arrangement for bundle uk-4.20.2.",
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 uk",
77
77
  "trov:mimeType": "application/json",
78
- "trov:sha256": "965b8b3775f76010fc68c5f93ebc1b4a174474598fcbd9ed61a052406e56764d"
78
+ "trov:sha256": "6cdb09036189a8c5fddc0c05354396d93611d31be548e2a67e3685b27f083fe3"
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": "463ac98af598f87ab8f418ad80b83f5b432876b1bae590852e2e6074b14054e5"
105
+ "trov:sha256": "92b5f08c4a9e4e96bbc1e1f4b01dbd307029c1ad12aa437b7126f90e28e24592"
106
106
  }
107
107
  },
108
108
  "trov:hasPerformance": {
@@ -17,19 +17,19 @@
17
17
  "schema:name": "PolicyEngine",
18
18
  "schema:url": "https://policyengine.org"
19
19
  },
20
- "schema:dateCreated": "2026-07-01T18:55:29.665030+00:00",
21
- "schema:description": "TRACE TRO for certified runtime bundle us-4.20.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-07-09T03:47:49.070290+00:00",
21
+ "schema:description": "TRACE TRO for certified runtime bundle us-4.20.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 us certified bundle TRO",
23
23
  "trov:createdWith": {
24
24
  "@type": "schema:SoftwareApplication",
25
25
  "schema:name": "policyengine",
26
- "schema:softwareVersion": "4.20.0"
26
+ "schema:softwareVersion": "4.20.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 us-4.20.0.",
32
+ "rdfs:comment": "Certified arrangement for bundle us-4.20.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/datasets/policyengine/populace-us/resolve/populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701/releases/populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701/release_manifest.json"
48
+ "trov:hasLocation": "https://huggingface.co/datasets/policyengine/populace-us/resolve/populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z/releases/populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z/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-us/resolve/populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701/populace_us_2024.h5"
56
+ "trov:hasLocation": "https://huggingface.co/datasets/policyengine/populace-us/resolve/populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z/populace_us_2024.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/7f/85/bbee92f747a382779bae41a67da39fa5a8592d068853a64226279e6c32a7/policyengine_us-1.752.2-py3-none-any.whl"
64
+ "trov:hasLocation": "https://files.pythonhosted.org/packages/e2/5a/0566666f30ad06e416f0cf25b24bdee73acd71897fb2de3c0ac43b59e3e3/policyengine_us-1.764.6-py3-none-any.whl"
65
65
  }
66
66
  ]
67
67
  }
@@ -75,50 +75,50 @@
75
75
  "@type": "trov:ResearchArtifact",
76
76
  "schema:name": "policyengine.py bundle manifest for us",
77
77
  "trov:mimeType": "application/json",
78
- "trov:sha256": "965b8b3775f76010fc68c5f93ebc1b4a174474598fcbd9ed61a052406e56764d"
78
+ "trov:sha256": "6cdb09036189a8c5fddc0c05354396d93611d31be548e2a67e3685b27f083fe3"
79
79
  },
80
80
  {
81
81
  "@id": "composition/1/artifact/data_release_manifest",
82
82
  "@type": "trov:ResearchArtifact",
83
83
  "schema:name": "populace-data release manifest 0.1.0",
84
84
  "trov:mimeType": "application/json",
85
- "trov:sha256": "61057ab851bb8cf8d17e922e8ab84b7dc1376a1bfb2927648b770ae6d5fe3a5b"
85
+ "trov:sha256": "c2bbe50a75279a83f741ec2267134702ee0e1de2e7babb74bd72ef148d25aa4b"
86
86
  },
87
87
  {
88
88
  "@id": "composition/1/artifact/dataset",
89
89
  "@type": "trov:ResearchArtifact",
90
90
  "schema:name": "populace_us_2024",
91
91
  "trov:mimeType": "application/x-hdf5",
92
- "trov:sha256": "c2065b642ab00da74746afdfd9f06890e5f32f9b10bd6610ff236452d40f39c5"
92
+ "trov:sha256": "5e2a10b97f1fa740fbc1cc1be3450a19b2089c56de59d3754db13ec0dd048b88"
93
93
  },
94
94
  {
95
95
  "@id": "composition/1/artifact/model_wheel",
96
96
  "@type": "trov:ResearchArtifact",
97
- "schema:name": "policyengine-us==1.752.2 wheel",
97
+ "schema:name": "policyengine-us==1.764.6 wheel",
98
98
  "trov:mimeType": "application/zip",
99
- "trov:sha256": "7e30468ae369ddd14e5d834c12cacbc5b5159c809b0990caf204c0747ef4c096"
99
+ "trov:sha256": "2b2c5c02c26ab212270948db1f30129728b625fc6109fc9ca0c604b714546909"
100
100
  }
101
101
  ],
102
102
  "trov:hasFingerprint": {
103
103
  "@id": "composition/1/fingerprint",
104
104
  "@type": "trov:CompositionFingerprint",
105
- "trov:sha256": "634c8443041a568a2ccf406f620be940b55c6e173e6e36b3efea952c18aa209d"
105
+ "trov:sha256": "cd0d43feb4fe567e2e54191a09c53c3992c9fbefc5d57b04448bde559a214052"
106
106
  }
107
107
  },
108
108
  "trov:hasPerformance": {
109
109
  "@id": "trp/1",
110
110
  "@type": "trov:TransparentResearchPerformance",
111
- "pe:builtWithModelVersion": "1.752.2",
111
+ "pe:builtWithModelVersion": "1.764.6",
112
112
  "pe:certifiedBy": "policyengine.py bundle certification",
113
- "pe:certifiedForModelVersion": "1.752.2",
113
+ "pe:certifiedForModelVersion": "1.764.6",
114
114
  "pe:compatibilityBasis": "built_with_model_package",
115
- "pe:dataBuildId": "populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701",
115
+ "pe:dataBuildId": "populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z",
116
116
  "pe:emittedIn": "repository-bundle",
117
- "rdfs:comment": "Certification of build populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701 for policyengine-us 1.752.2.",
117
+ "rdfs:comment": "Certification of build populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z for policyengine-us 1.764.6.",
118
118
  "trov:accessedArrangement": {
119
119
  "@id": "arrangement/1"
120
120
  },
121
- "trov:startedAtTime": "2026-07-01T18:55:29.665030+00:00",
121
+ "trov:startedAtTime": "2026-07-09T03:47:49.070290+00:00",
122
122
  "trov:wasConductedBy": {
123
123
  "@id": "trs"
124
124
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: policyengine
3
- Version: 4.20.0
3
+ Version: 4.20.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
@@ -689,15 +689,15 @@ 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.28.0; extra == "models"
693
- Requires-Dist: policyengine-us==1.752.2; extra == "models"
692
+ Requires-Dist: policyengine-core==3.30.0; extra == "models"
693
+ Requires-Dist: policyengine-us==1.764.6; extra == "models"
694
694
  Requires-Dist: policyengine-uk==2.89.2; extra == "models"
695
695
  Provides-Extra: uk
696
- Requires-Dist: policyengine-core==3.28.0; extra == "uk"
696
+ Requires-Dist: policyengine-core==3.30.0; extra == "uk"
697
697
  Requires-Dist: policyengine-uk==2.89.2; extra == "uk"
698
698
  Provides-Extra: us
699
- Requires-Dist: policyengine-core==3.28.0; extra == "us"
700
- Requires-Dist: policyengine-us==1.752.2; extra == "us"
699
+ Requires-Dist: policyengine-core==3.30.0; extra == "us"
700
+ Requires-Dist: policyengine-us==1.764.6; extra == "us"
701
701
  Provides-Extra: dev
702
702
  Requires-Dist: pytest; extra == "dev"
703
703
  Requires-Dist: furo; extra == "dev"
@@ -712,8 +712,8 @@ 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.28.0; extra == "dev"
716
- Requires-Dist: policyengine-us==1.752.2; extra == "dev"
715
+ Requires-Dist: policyengine-core==3.30.0; extra == "dev"
716
+ Requires-Dist: policyengine-us==1.764.6; extra == "dev"
717
717
  Requires-Dist: policyengine-uk==2.89.2; extra == "dev"
718
718
  Dynamic: license-file
719
719
 
@@ -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.28.0
27
- policyengine-us==1.752.2
26
+ policyengine-core==3.30.0
27
+ policyengine-us==1.764.6
28
28
  policyengine-uk==2.89.2
29
29
 
30
30
  [graph]
31
31
  networkx>=3.0
32
32
 
33
33
  [models]
34
- policyengine-core==3.28.0
35
- policyengine-us==1.752.2
34
+ policyengine-core==3.30.0
35
+ policyengine-us==1.764.6
36
36
  policyengine-uk==2.89.2
37
37
 
38
38
  [plotting]
39
39
  plotly>=5.0.0
40
40
 
41
41
  [uk]
42
- policyengine-core==3.28.0
42
+ policyengine-core==3.30.0
43
43
  policyengine-uk==2.89.2
44
44
 
45
45
  [us]
46
- policyengine-core==3.28.0
47
- policyengine-us==1.752.2
46
+ policyengine-core==3.30.0
47
+ policyengine-us==1.764.6
@@ -5,7 +5,7 @@
5
5
  "has_income_tax": true,
6
6
  "has_region_registry": true,
7
7
  "model_package_name": "policyengine-us",
8
- "num_parameters_bucketed_100s": 969,
9
- "num_variables_bucketed_100s": 56,
8
+ "num_parameters_bucketed_100s": 978,
9
+ "num_variables_bucketed_100s": 57,
10
10
  "region_registry_country": "us"
11
11
  }
@@ -114,13 +114,13 @@ class TestUSModel:
114
114
  assert us_latest.release_manifest is not None
115
115
  assert us_latest.release_manifest.country_id == "us"
116
116
  assert us_latest.model_package.name == "policyengine-us"
117
- assert us_latest.model_package.version == "1.752.2"
117
+ assert us_latest.model_package.version == "1.764.6"
118
118
  assert us_latest.data_package.name == "populace-data"
119
119
  assert us_latest.data_package.version == "0.1.0"
120
120
  assert (
121
121
  us_latest.default_dataset_uri
122
122
  == "hf://policyengine/populace-us/populace_us_2024.h5"
123
- "@populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701"
123
+ "@populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z"
124
124
  )
125
125
 
126
126
  def test_has_hundreds_of_parameters(self):
@@ -38,12 +38,10 @@ POLICYENGINE_VERSION = re.search(
38
38
  PYPROJECT.read_text(),
39
39
  re.MULTILINE,
40
40
  ).group(1)
41
- US_MODEL_VERSION = "1.752.2"
42
- US_BUILT_WITH_MODEL_VERSION = "1.752.2"
41
+ US_MODEL_VERSION = "1.764.6"
42
+ US_BUILT_WITH_MODEL_VERSION = "1.764.6"
43
43
  US_DATA_RELEASE_VERSION = "0.1.0"
44
- US_DATA_RELEASE_ID = (
45
- "populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701"
46
- )
44
+ US_DATA_RELEASE_ID = "populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z"
47
45
  US_DATA_RELEASE_REVISION = US_DATA_RELEASE_ID
48
46
  US_DATA_RELEASE_PATH = f"releases/{US_DATA_RELEASE_ID}/release_manifest.json"
49
47
  US_DATA_ARTIFACT_REVISION = US_DATA_RELEASE_ID
@@ -107,7 +107,7 @@ class TestUSRegionRegistry:
107
107
  assert national.region_type == "national"
108
108
  assert national.dataset_path == (
109
109
  "hf://policyengine/populace-us/populace_us_2024.h5"
110
- "@populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701"
110
+ "@populace-us-2024-buildi-sparse-rmloss100-6e8e929-20260709T034135Z"
111
111
  )
112
112
 
113
113
  def test__given_us_registry__then_has_51_states(self):