policyengine 6.7.2__tar.gz → 6.7.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {policyengine-6.7.2 → policyengine-6.7.3}/CHANGELOG.md +7 -0
- {policyengine-6.7.2/src/policyengine.egg-info → policyengine-6.7.3}/PKG-INFO +1 -1
- {policyengine-6.7.2 → policyengine-6.7.3}/pyproject.toml +1 -1
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/data/bundle/manifest.json +10 -10
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/data/bundle/uk.trace.tro.jsonld +5 -5
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/data/bundle/us.trace.tro.jsonld +5 -5
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/uk/budget_reform_contract.py +126 -44
- {policyengine-6.7.2 → policyengine-6.7.3/src/policyengine.egg-info}/PKG-INFO +1 -1
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine.egg-info/SOURCES.txt +1 -1
- policyengine-6.7.3/tests/fixtures/uk_contract/README.md +15 -0
- policyengine-6.7.3/tests/fixtures/uk_contract/evaluate_case_rows.json +1 -0
- policyengine-6.7.2/tests/fixtures/uk_contract/full_released_uk_2.130.1.json → policyengine-6.7.3/tests/fixtures/uk_contract/full_released_uk_2.135.0.json +2346 -567
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_uk_budget_reform_contract.py +88 -4
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_uk_candidate_gates.py +228 -47
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/uk_contract_row_scenarios.py +5 -2
- {policyengine-6.7.2 → policyengine-6.7.3}/uv.lock +1 -1
- policyengine-6.7.2/tests/fixtures/uk_contract/README.md +0 -15
- policyengine-6.7.2/tests/fixtures/uk_contract/evaluate_case_rows.json +0 -1
- {policyengine-6.7.2 → policyengine-6.7.3}/.claude/policyengine-guide.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.claude/quick-reference.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.github/CONTRIBUTING.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.github/bump_version.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.github/capture-version.sh +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.github/changelog_template.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.github/check-changelog.sh +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.github/copilot-instructions.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.github/dispatch-policyengine-release.sh +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.github/fetch_version.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.github/get-changelog-diff.sh +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.github/has-functional-changes.sh +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.github/is-version-number-acceptable.sh +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.github/publish-git-tag.sh +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.github/qualification-ledger.sh +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.github/wait-for-pypi.sh +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.github/workflows/certify-uk-release.yaml +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.github/workflows/draft-pdf.yml +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.github/workflows/pr_code_changes.yaml +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.github/workflows/pr_docs_changes.yaml +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.github/workflows/push.yaml +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.gitignore +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/.python-version +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/AGENTS.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/CITATION.cff +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/CLAUDE.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/CODE_OF_CONDUCT.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/CONTRIBUTING.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/LICENSE +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/Makefile +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/README.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/architecture.png +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/architecture.svg +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/changelog.d/.gitkeep +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/.gitignore +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/_generator/README.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/_generator/build_reference.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/_quarto.yml +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/bundles.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/countries.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/data-publishing-design.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/decile-impact-spec.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/dev.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/disclosure.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/engineering/runbooks/acs-local-wic-replacement.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/engineering/runbooks/build-m-us-populace-certification.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/engineering/runbooks/canonical-spm-development.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/engineering/runbooks/uk-qualification.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/engineering/runbooks/us-legacy-spm-sources.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/engineering/skills/README.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/engineering/skills/data-certification.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/engineering/skills/github-prs.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/engineering/skills/repository-guidance.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/examples.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/getting-started.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/households.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/impact-analysis.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/index.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/methodology/index.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/methodology/model-architecture.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/methodology/us-health-costs.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/microsim.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/outputs.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/programs/index.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/programs/us-chip.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/receipts.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/reference/index.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/reforms.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/regions.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/release-bundles.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/run-records.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/trace-case-study.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/docs/visualisation.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/examples/belgium_axiom_pilot.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/examples/employment_income_variation_uk.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/examples/employment_income_variation_us.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/examples/household_impact_example.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/examples/income_bands_uk.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/examples/income_distribution_us.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/examples/paper_repro_uk.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/examples/policy_change_uk.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/examples/speedtest_us_simulation.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/examples/uk_geography_disclosure.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/examples/us_budgetary_impact.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/paper-preview.html +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/paper.bib +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/paper.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/scripts/bundle.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/scripts/certify_data_release.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/scripts/check_data_staleness.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/scripts/check_native_spm_loading.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/scripts/check_release_credentials.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/scripts/check_uk_candidate.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/scripts/export_bundle_release_assets.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/scripts/generate_bundle_artifacts.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/scripts/generate_receipt_schemas.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/scripts/generate_trace_tros.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/scripts/prepare_package_bundle_update.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/scripts/release_consumers.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/scripts/release_lock.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/scripts/spm_bundle.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/setup.cfg +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/bundle.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/cli.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/core/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/core/cache.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/core/dataset.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/core/dynamic.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/core/output.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/core/parameter.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/core/parameter_node.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/core/parameter_value.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/core/policy.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/core/region.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/core/run_record.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/core/scoping_strategy.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/core/simulation.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/core/spm.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/core/tax_benefit_model.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/core/tax_benefit_model_version.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/core/variable.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/countries/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/countries/uk/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/countries/uk/regions.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/countries/us/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/countries/us/data/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/countries/us/data/districts.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/countries/us/data/places.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/countries/us/data/states.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/countries/us/regions.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/data/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/data/qualification/replay_policy.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/data/qualification/uk.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/data/qualification/uk_budget_critical_inputs.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/data/qualification/uk_review_bounds.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/data/schemas/execution_receipt.v1.schema.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/data/schemas/trace_tro.schema.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/data/schemas/vendor/policyengine-scorecard/README.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/data/schemas/vendor/policyengine-scorecard/qualification_request.v1.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/data/schemas/vendor/policyengine-scorecard/replay_receipt.v1.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/data/schemas/vendor/policyengine-scorecard/replay_status.v1.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/data/uk_geography_assets.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/derivations/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/derivations/narrate.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/derivations/trace.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/disclosure/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/disclosure/__main__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/disclosure/areas.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/disclosure/estimate.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/disclosure/noise.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/disclosure/release.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/disclosure/schema.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/disclosure/support.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/disclosure/validate.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/graph/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/graph/extractor.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/graph/graph.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/outputs/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/outputs/aggregate.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/outputs/change_aggregate.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/outputs/cliff_impact.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/outputs/congressional_district_impact.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/outputs/constituency_impact.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/outputs/decile_analysis.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/outputs/decile_grouping.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/outputs/decile_impact.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/outputs/extra_variables.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/outputs/inequality.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/outputs/intra_decile_impact.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/outputs/labor_supply_response.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/outputs/local_authority_impact.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/outputs/poverty.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/outputs/program_statistics.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/outputs/uk_geography_assets.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/outputs/uk_geography_disclosure.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/outputs/uk_geography_impact.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/provenance/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/provenance/bundle_validation.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/provenance/bytecode.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/provenance/canonical.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/provenance/certification.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/provenance/dataset_materialization.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/provenance/loaded.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/provenance/manifest.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/provenance/pyproject_pins.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/provenance/qualification.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/provenance/qualification_ledger.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/provenance/receipt.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/provenance/spm_configuration.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/provenance/trace.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/provenance/uk_candidate.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/provenance/uk_qualification.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/provenance/verify.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/provenance/wheels.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/provenance/zenodo.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/results/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/results/schema.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/results/trace_tro.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/results/tracking.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/be/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/be/datasets.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/be/model.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/common/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/common/axes.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/common/extra_variables.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/common/household.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/common/model_version.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/common/reform.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/common/result.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/uk/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/uk/analysis.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/uk/budget_reform_population.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/uk/capital_gains_responses.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/uk/datasets.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/uk/household.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/uk/model.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/us/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/us/analysis.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/us/datasets.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/us/household.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/us/legacy_inputs.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/us/legacy_spm/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/us/legacy_spm/declarations.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/us/legacy_spm/independence.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/us/legacy_spm/model_adapter.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/us/legacy_spm/record.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/us/legacy_spm/registry.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/us/legacy_spm/runs.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/us/legacy_spm/universe.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/us/model.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/tax_benefit_models/us/spm.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/utils/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/utils/dates.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/utils/design.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/utils/entity_utils.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/utils/errors.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/utils/hashing.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/utils/household_validation.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/utils/parameter_labels.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/utils/parametric_reforms.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine/utils/plotting.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine.egg-info/dependency_links.txt +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine.egg-info/entry_points.txt +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine.egg-info/requires.txt +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/src/policyengine.egg-info/top_level.txt +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/conftest.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/filtering_fixtures.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/household_calculator_snapshots/uk_couple_two_kids.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/household_calculator_snapshots/uk_model_surface.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/household_calculator_snapshots/uk_single_adult_employment_income.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/household_calculator_snapshots/uk_single_adult_no_income.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/household_calculator_snapshots/uk_single_parent_one_child.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/household_calculator_snapshots/us_married_two_kids_high_income.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/household_calculator_snapshots/us_model_surface.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/household_calculator_snapshots/us_single_adult_employment_income.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/household_calculator_snapshots/us_single_adult_no_income.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/household_calculator_snapshots/us_single_parent_one_child.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/parameter_labels_fixtures.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/parametric_reforms_fixtures.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/poverty_by_demographics_fixtures.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/region_fixtures.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/release_tros/README.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/release_tros/country-models.lock.toml +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/release_tros/manifest.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/release_tros/us-release_manifest.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/release_tros/us.trace.tro.jsonld +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/spm_development.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/uk_contract/pinned_uk_2.125.1_defects.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/uk_contract/population_pass_max_examples_0.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/uk_metrics/README.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/uk_metrics/budget_metrics_report.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/uk_metrics/standard_reforms.yaml +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/uk_replay/DIGESTS.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/uk_replay/README.md +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/uk_replay/qualification_request_golden.jcs +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/uk_replay/qualification_request_golden.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/uk_replay/receipt_6.4.1_attempt1/REPLAY_RECEIPT.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/uk_replay/receipt_6.4.1_attempt1/REQUEST.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/uk_replay/receipt_6.5.0/REPLAY_RECEIPT.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/uk_replay/receipt_6.5.0/REQUEST.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/uk_replay/receipt_6.5.0/STATUS.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/uk_replay/replay_receipt_golden.jcs +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/uk_replay/replay_receipt_golden.json +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/us_reform_fixtures.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/fixtures/variable_label_fixtures.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/qualification_fixtures.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/receipt_modifiers.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/receipt_unbindable_modifiers.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_aggregate.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_be_axiom_pilot.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_budgetary_impact.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_bump_version.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_bundle.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_bundle_metadata.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_cache.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_canonical_json.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_certify_data_release.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_change_aggregate.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_cliff_impact.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_cliff_impact_analysis.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_congressional_district_impact.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_constituency_impact.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_dataset_materialization.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_dataset_persistence.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_dataset_runtime.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_dataset_source.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_decile_grouping.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_derivations.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_dict_reforms_on_simulation.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_disclosure_areas.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_disclosure_estimate.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_disclosure_noise.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_disclosure_release.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_disclosure_schema.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_disclosure_support.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_disclosure_validate.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_entity_mapping.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_entity_utils.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_entity_utils_characterization.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_errors.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_execution_receipt.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_extra_variables.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_filtering.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_generate_trace_tros.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_graph/__init__.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_graph/conftest.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_graph/test_extractor.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_household_calculator_snapshot.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_household_impact.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_inequality.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_intra_decile_impact.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_labor_supply_response.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_local_authority_impact.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_manifest_version_mismatch.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_models.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_pandas3_compatibility.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_parameter_labels.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_parameter_nodes.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_parameter_values.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_parametric_reforms.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_poverty.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_poverty_by_demographics.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_poverty_run.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_preservation_mirror.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_program_statistics.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_pyproject_pins.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_qualification_contracts.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_qualification_ledger_concurrency.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_qualification_ledger_script.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_qualified_pair_certification.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_region.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_region_group_strategy.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_release_credentials.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_release_lock.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_release_manifests.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_release_tro_generation.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_results.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_run_record.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_scoping_strategy.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_small_follow_ups.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_spm_bundle_bootstrap.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_spm_bundle_tooling.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_spm_decile.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_spm_development_authentication.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_spm_household.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_spm_model.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_spm_selection.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_spm_selection_schema.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_trace_tro.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_trace_tro_verify.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_uk_analysis.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_uk_candidate_metric_baselines.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_uk_cgt_response_records.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_uk_cgt_responses.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_uk_dated_reforms.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_uk_geography_assets.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_uk_geography_disclosure.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_uk_program_statistics.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_uk_qualification_pipeline.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_uk_qualification_workflow.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_uk_regions.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_uk_year_file_data_year.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_us_legacy_inputs.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_us_legacy_inputs_integration.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_us_legacy_spm.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_us_legacy_spm_integration.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_us_legacy_spm_model_contract.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_us_long_term_datasets.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_us_microsim_structural_reforms.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_us_native_alignment.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_us_native_hdf_weights.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_us_program_statistics.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_us_reform_application.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_us_regions.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_us_year_file_stamp.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_variable_labels.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_variable_metadata.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_wheels.py +0 -0
- {policyengine-6.7.2 → policyengine-6.7.3}/tests/test_zenodo_mirror.py +0 -0
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [6.7.3] - 2026-10-17
|
|
2
|
+
|
|
3
|
+
### Changed
|
|
4
|
+
|
|
5
|
+
- Contract 2.0.0 of the UK Budget reform contract resolves cos d1344: after a freeze ends, the personal allowance, basic rate limit and aligned NICs thresholds are checked against indexation from the frozen amount (ITA 2007 ss21 and 57), and the six pending checks become gating ones; the sampled property uses the same statutory oracle for the allowance.
|
|
6
|
+
|
|
7
|
+
|
|
1
8
|
## [6.7.2] - 2026-10-17
|
|
2
9
|
|
|
3
10
|
### Fixed
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"bundle_version": "6.7.
|
|
2
|
+
"bundle_version": "6.7.3",
|
|
3
3
|
"citation": {
|
|
4
4
|
"publisher": "PolicyEngine",
|
|
5
|
-
"title": "PolicyEngine bundle 6.7.
|
|
5
|
+
"title": "PolicyEngine bundle 6.7.3",
|
|
6
6
|
"type": "software-bundle",
|
|
7
|
-
"version": "6.7.
|
|
7
|
+
"version": "6.7.3"
|
|
8
8
|
},
|
|
9
9
|
"countries": {
|
|
10
10
|
"uk": {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"data_releases": {
|
|
18
18
|
"uk": {
|
|
19
19
|
"build_id": "policyengine-uk-data-1.58.1",
|
|
20
|
-
"bundle_id": "uk-6.7.
|
|
20
|
+
"bundle_id": "uk-6.7.3",
|
|
21
21
|
"certification": {
|
|
22
22
|
"built_with_model_git_sha": "daad71cd26c107f1b784ff600d1464ba59c70e4a",
|
|
23
23
|
"built_with_model_version": "2.122.2",
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
"version": "2.130.1",
|
|
100
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.7.
|
|
102
|
+
"policyengine_version": "6.7.3",
|
|
103
103
|
"region_datasets": {
|
|
104
104
|
"national": {
|
|
105
105
|
"path_template": "enhanced_frs_2024_25.h5"
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
},
|
|
113
113
|
"us": {
|
|
114
114
|
"build_id": "populace-us-2024-spm-20260915",
|
|
115
|
-
"bundle_id": "us-6.7.
|
|
115
|
+
"bundle_id": "us-6.7.3",
|
|
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.7.
|
|
220
|
+
"policyengine_version": "6.7.3",
|
|
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.7.
|
|
298
|
+
"install_requirement": "policyengine==6.7.3",
|
|
299
299
|
"name": "policyengine",
|
|
300
300
|
"role": "bundle_carrier",
|
|
301
|
-
"version": "6.7.
|
|
301
|
+
"version": "6.7.3"
|
|
302
302
|
},
|
|
303
303
|
"policyengine-core": {
|
|
304
304
|
"import_name": "policyengine_core",
|
|
@@ -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.7.
|
|
337
|
+
"policyengine_version": "6.7.3",
|
|
338
338
|
"schema_version": 2
|
|
339
339
|
}
|
|
@@ -18,18 +18,18 @@
|
|
|
18
18
|
"schema:url": "https://policyengine.org"
|
|
19
19
|
},
|
|
20
20
|
"schema:dateCreated": "2026-10-14T07:43:49.920588Z",
|
|
21
|
-
"schema:description": "TRACE TRO for certified runtime bundle uk-6.7.
|
|
21
|
+
"schema:description": "TRACE TRO for certified runtime bundle uk-6.7.3 covering the bundle manifest, the certified dataset artifact, the country model wheel, and the country data release manifest when it is available.",
|
|
22
22
|
"schema:name": "policyengine uk certified bundle TRO",
|
|
23
23
|
"trov:createdWith": {
|
|
24
24
|
"@type": "schema:SoftwareApplication",
|
|
25
25
|
"schema:name": "policyengine",
|
|
26
|
-
"schema:softwareVersion": "6.7.
|
|
26
|
+
"schema:softwareVersion": "6.7.3"
|
|
27
27
|
},
|
|
28
28
|
"trov:hasArrangement": [
|
|
29
29
|
{
|
|
30
30
|
"@id": "arrangement/1",
|
|
31
31
|
"@type": "trov:ArtifactArrangement",
|
|
32
|
-
"rdfs:comment": "Certified arrangement for bundle uk-6.7.
|
|
32
|
+
"rdfs:comment": "Certified arrangement for bundle uk-6.7.3.",
|
|
33
33
|
"trov:hasArtifactLocation": [
|
|
34
34
|
{
|
|
35
35
|
"@id": "arrangement/1/location/bundle_manifest",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"@type": "trov:ResearchArtifact",
|
|
76
76
|
"schema:name": "policyengine.py bundle manifest for uk",
|
|
77
77
|
"trov:mimeType": "application/json",
|
|
78
|
-
"trov:sha256": "
|
|
78
|
+
"trov:sha256": "c7295f74a1145f2f90bc015f503c70295b3959878c2504b542efef0021f3250d"
|
|
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": "
|
|
105
|
+
"trov:sha256": "9807327c2a08dd5d193295864a0efca682d851bf42b72c00a9f8a4892de6d19e"
|
|
106
106
|
}
|
|
107
107
|
},
|
|
108
108
|
"trov:hasPerformance": {
|
|
@@ -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.7.
|
|
20
|
+
"schema:description": "TRACE TRO for certified runtime bundle us-6.7.3 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.7.
|
|
25
|
+
"schema:softwareVersion": "6.7.3"
|
|
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.7.
|
|
31
|
+
"rdfs:comment": "Certified arrangement for bundle us-6.7.3.",
|
|
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": "
|
|
77
|
+
"trov:sha256": "c7295f74a1145f2f90bc015f503c70295b3959878c2504b542efef0021f3250d"
|
|
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": "
|
|
104
|
+
"trov:sha256": "f69dfc687a037b5c08ac87a52632a0e3a43b44cf4859ae27b14a0a4e942b24c0"
|
|
105
105
|
}
|
|
106
106
|
},
|
|
107
107
|
"trov:hasPerformance": {
|
|
@@ -47,11 +47,30 @@ reading cases.
|
|
|
47
47
|
Prior law after a bounded change
|
|
48
48
|
--------------------------------
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
50
|
+
Where the timeline states no later value, what prior law is after a change
|
|
51
|
+
ends depends on how the parameter's future is made. Contract 2.0.0
|
|
52
|
+
(``PRIOR_LAW_OPTION = "statutory"``) records the Budget CI workstream's
|
|
53
|
+
call under cos d1344, taken with independent review:
|
|
54
|
+
|
|
55
|
+
- A threshold indexed from its own previous year (the personal allowance,
|
|
56
|
+
the basic rate limit and the NICs thresholds aligned with them) resumes
|
|
57
|
+
indexation from the changed amount. Income Tax Act 2007 s57(3) Step 1
|
|
58
|
+
multiplies "the allowance ... for the previous tax year" and s21(3) Step 1
|
|
59
|
+
increases "the basic rate limit for the previous tax year"; freezes are
|
|
60
|
+
legislated by fixing the amount and disapplying the indexation for named
|
|
61
|
+
years (Finance Act 2021 s5), so the frozen amount is indexed after them.
|
|
62
|
+
Returning to the path the threshold would have taken without the change,
|
|
63
|
+
contract 1.0.0's reading, has no statutory basis.
|
|
64
|
+
- An amount uprated from an index (benefit and pension rates) returns to its
|
|
65
|
+
uprated path, as contract 1.0.0 expected. That reading is not settled:
|
|
66
|
+
freezes of such amounts resumed from the frozen amount (Welfare Reform and
|
|
67
|
+
Work Act 2016 s11), while a period-limited modification reverts (SI
|
|
68
|
+
2020/371 reg 3). It is open in policyengine-uk#2430; the contract's
|
|
69
|
+
checks on it stay as they were until that is decided.
|
|
70
|
+
|
|
71
|
+
``Check.pending`` remains for open calls. No check waits on d1344 now; the
|
|
72
|
+
default capital gains response's checks wait on policyengine-uk#2396 (see
|
|
73
|
+
Behavioural responses).
|
|
55
74
|
|
|
56
75
|
Behavioural responses
|
|
57
76
|
---------------------
|
|
@@ -111,9 +130,13 @@ from decimal import ROUND_CEILING, Decimal
|
|
|
111
130
|
from typing import Any, Optional, Union
|
|
112
131
|
|
|
113
132
|
CONTRACT_ID = "policyengine-uk/budget-reform-contract"
|
|
114
|
-
CONTRACT_VERSION = "
|
|
115
|
-
PRIOR_LAW_OPTION = "
|
|
133
|
+
CONTRACT_VERSION = "2.0.0"
|
|
134
|
+
PRIOR_LAW_OPTION = "statutory"
|
|
135
|
+
# The cos decision under which the prior-law call was taken.
|
|
116
136
|
PRIOR_LAW_DECISION = "d1344"
|
|
137
|
+
# Finance Act 2021 s5, as amended by Finance Act 2026 s10, fixes the
|
|
138
|
+
# personal allowance and basic rate limit for 2022-23 to 2030-31.
|
|
139
|
+
LAST_FROZEN_TAX_YEAR = 2030
|
|
117
140
|
# The capital gains response default: policyengine-uk#2396 makes it a
|
|
118
141
|
# retention-rate elasticity of 1. Its checks gate once policyengine.py pins it.
|
|
119
142
|
DEFAULT_RESPONSE_DECISION = "policyengine-uk#2396"
|
|
@@ -335,18 +358,51 @@ def _freeze_change(year: int) -> Callable[[Context], float]:
|
|
|
335
358
|
return expected
|
|
336
359
|
|
|
337
360
|
|
|
338
|
-
def
|
|
361
|
+
def _resumed_after_freeze(path: str, year: int) -> Callable[[Context], float]:
|
|
362
|
+
"""A threshold frozen to 2033-34, indexed from the frozen amount after it.
|
|
363
|
+
|
|
364
|
+
ITA 2007 s57(3) for the personal allowance and s21(3) for the basic rate
|
|
365
|
+
limit, each year from the year before, with current law's September CPI
|
|
366
|
+
rise for that year.
|
|
367
|
+
"""
|
|
368
|
+
|
|
339
369
|
def expected(context: Context) -> float:
|
|
340
|
-
|
|
370
|
+
allowance, limit = 12_570.0, 37_700.0
|
|
371
|
+
for each in range(2034, year + 1):
|
|
372
|
+
increase = context.baseline(SEPTEMBER_CPI_RISE, each)
|
|
373
|
+
allowance = s57_personal_allowance(allowance, increase)
|
|
374
|
+
limit = s21_basic_rate_limit(limit, increase)
|
|
341
375
|
if path == PERSONAL_ALLOWANCE:
|
|
342
|
-
return
|
|
343
|
-
|
|
376
|
+
return allowance
|
|
377
|
+
if path == BASIC_RATE_LIMIT:
|
|
378
|
+
return limit
|
|
379
|
+
if path == LOWER_PROFITS_LIMIT:
|
|
380
|
+
return allowance
|
|
381
|
+
if path == UPPER_PROFITS_LIMIT:
|
|
382
|
+
return allowance + limit
|
|
383
|
+
if path == PRIMARY_THRESHOLD:
|
|
384
|
+
return weekly(allowance)
|
|
385
|
+
if path == UPPER_EARNINGS_LIMIT:
|
|
386
|
+
return weekly(allowance + limit)
|
|
387
|
+
raise ValueError(path)
|
|
388
|
+
|
|
389
|
+
return expected
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
def _resumed_freeze_change(year: int) -> Callable[[Context], float]:
|
|
393
|
+
def expected(context: Context) -> float:
|
|
394
|
+
allowance = _resumed_after_freeze(PERSONAL_ALLOWANCE, year)(context)
|
|
395
|
+
frozen_out = context.baseline(PERSONAL_ALLOWANCE, year) - allowance
|
|
396
|
+
return context.baseline(BASIC_RATE, year) * frozen_out
|
|
344
397
|
|
|
345
398
|
return expected
|
|
346
399
|
|
|
347
400
|
|
|
348
|
-
|
|
349
|
-
|
|
401
|
+
RESUMPTION_ORACLE = (
|
|
402
|
+
"indexed from the frozen amount after the freeze (ITA 2007 s57(3) and "
|
|
403
|
+
"s21(3), the previous tax year's amount; cos d1344), with current law's "
|
|
404
|
+
"September CPI rise"
|
|
405
|
+
)
|
|
350
406
|
|
|
351
407
|
|
|
352
408
|
GAINS = 10_000
|
|
@@ -635,30 +691,37 @@ CASES: tuple[Case, ...] = (
|
|
|
635
691
|
),
|
|
636
692
|
)
|
|
637
693
|
)
|
|
638
|
-
+ (
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
694
|
+
+ tuple(
|
|
695
|
+
check
|
|
696
|
+
for year in (2034, 2035)
|
|
697
|
+
for check in (
|
|
698
|
+
*(
|
|
699
|
+
Check(
|
|
700
|
+
"parameter",
|
|
701
|
+
path,
|
|
702
|
+
year,
|
|
703
|
+
_resumed_after_freeze(path, year),
|
|
704
|
+
RESUMPTION_ORACLE,
|
|
705
|
+
)
|
|
706
|
+
for path in (
|
|
707
|
+
PERSONAL_ALLOWANCE,
|
|
708
|
+
BASIC_RATE_LIMIT,
|
|
709
|
+
LOWER_PROFITS_LIMIT,
|
|
710
|
+
UPPER_PROFITS_LIMIT,
|
|
711
|
+
PRIMARY_THRESHOLD,
|
|
712
|
+
UPPER_EARNINGS_LIMIT,
|
|
713
|
+
)
|
|
714
|
+
),
|
|
715
|
+
Check(
|
|
716
|
+
"change",
|
|
717
|
+
"income_tax",
|
|
718
|
+
year,
|
|
719
|
+
_resumed_freeze_change(year),
|
|
720
|
+
"basic rate x (current law's allowance - the allowance "
|
|
721
|
+
"indexed from the frozen amount)",
|
|
722
|
+
0.005,
|
|
723
|
+
),
|
|
724
|
+
)
|
|
662
725
|
),
|
|
663
726
|
),
|
|
664
727
|
Case(
|
|
@@ -2001,16 +2064,21 @@ def _sampled_change(rng: random.Random) -> Change:
|
|
|
2001
2064
|
def expected_annual(
|
|
2002
2065
|
change: Change, year: int, baseline: Callable[[str, int], float]
|
|
2003
2066
|
) -> float:
|
|
2004
|
-
"""The annual value a single change gives, under
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
|
|
2067
|
+
"""The annual value a single change gives, under contract 2.0.0.
|
|
2068
|
+
|
|
2069
|
+
For the personal allowance, prior law is statute: tax years the change
|
|
2070
|
+
covers take its value, years to 2030-31 take current law (Finance Act
|
|
2071
|
+
2021 s5 fixes them), and every later year is ITA 2007 s57(3) applied to
|
|
2072
|
+
the year before. For the other sampled parameters prior law is current
|
|
2073
|
+
law's annual value outside the change. Blended parameters are sampled
|
|
2074
|
+
only from 2025 on, where current law holds one value through each fiscal
|
|
2075
|
+
year, so each day of the year takes the change's value inside the change
|
|
2076
|
+
and prior law's outside it.
|
|
2011
2077
|
"""
|
|
2012
2078
|
blend, _ = SAMPLED_PARAMETERS[change.path]
|
|
2013
2079
|
stop = change.stop or FLAT_STOP
|
|
2080
|
+
if change.path == PERSONAL_ALLOWANCE:
|
|
2081
|
+
return _statutory_allowance(change, year, baseline)
|
|
2014
2082
|
prior = baseline(change.path, year)
|
|
2015
2083
|
if not blend:
|
|
2016
2084
|
sample = datetime.date(year, 4, 30)
|
|
@@ -2026,6 +2094,20 @@ def expected_annual(
|
|
|
2026
2094
|
return total / days
|
|
2027
2095
|
|
|
2028
2096
|
|
|
2097
|
+
def _statutory_allowance(
|
|
2098
|
+
change: Change, year: int, baseline: Callable[[str, int], float]
|
|
2099
|
+
) -> float:
|
|
2100
|
+
sample = datetime.date(year, 4, 30)
|
|
2101
|
+
if change.start <= sample <= (change.stop or FLAT_STOP):
|
|
2102
|
+
return float(change.value)
|
|
2103
|
+
if year <= LAST_FROZEN_TAX_YEAR:
|
|
2104
|
+
return baseline(PERSONAL_ALLOWANCE, year)
|
|
2105
|
+
return s57_personal_allowance(
|
|
2106
|
+
_statutory_allowance(change, year - 1, baseline),
|
|
2107
|
+
baseline(SEPTEMBER_CPI_RISE, year),
|
|
2108
|
+
)
|
|
2109
|
+
|
|
2110
|
+
|
|
2029
2111
|
def _property_annual_values(
|
|
2030
2112
|
change: Change,
|
|
2031
2113
|
routes: Sequence[str],
|
|
@@ -394,7 +394,7 @@ tests/fixtures/release_tros/us-release_manifest.json
|
|
|
394
394
|
tests/fixtures/release_tros/us.trace.tro.jsonld
|
|
395
395
|
tests/fixtures/uk_contract/README.md
|
|
396
396
|
tests/fixtures/uk_contract/evaluate_case_rows.json
|
|
397
|
-
tests/fixtures/uk_contract/full_released_uk_2.
|
|
397
|
+
tests/fixtures/uk_contract/full_released_uk_2.135.0.json
|
|
398
398
|
tests/fixtures/uk_contract/pinned_uk_2.125.1_defects.json
|
|
399
399
|
tests/fixtures/uk_contract/population_pass_max_examples_0.json
|
|
400
400
|
tests/fixtures/uk_metrics/README.md
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# UK Budget reform contract reports
|
|
2
|
+
|
|
3
|
+
Real reports from the UK Budget reform contract runner (workstream W1,
|
|
4
|
+
`policyengine.tax_benefit_models.uk.budget_reform_contract`, PolicyEngine/policyengine.py#577),
|
|
5
|
+
run on 11 October 2026. The qualification gate tests in `tests/test_uk_candidate_gates.py` read them.
|
|
6
|
+
|
|
7
|
+
- `pinned_uk_2.125.1_defects.json`: every case on policyengine-uk 2.125.1, the pinned model at the time, with `max_examples=2` and no dataset. The 66 failures and 35 errors are the dated-reform defects the contract was written to catch.
|
|
8
|
+
- `full_released_uk_2.135.0.json`: the full run of contract 2.0.0 (17 October 2026, UTC), the runner at policyengine.py#627's head f1f2431d9 (main merged in, #643 included), on policyengine-uk 2.135.0, which holds the d1344 statutory resumption (policyengine-uk#2423), with core 3.33.0. It covers every route and case, seed 0 and `max_examples=20`, with population checks on the certified `enhanced_frs_2024_25` (SHA-256 `056e80fd…`, the dataset of the certified pair). Result: 881 pass, 19 pending a methodology call (policyengine-uk#2396, the default capital gains response), 119 unsupported with reasons, both properties passing, 19 of 19 population rows. #651 changed only how the household route imports the UK model; its review found the output unchanged row for row. Its `versions` record policyengine 6.4.3, the stale metadata of the editable install that ran it; treat them as fixture metadata. The gate tests read it through the coverage the current runner module declares, and fail rather than skip when the runner's contract version moves past it. It replaces the 1.1.0 run on policyengine-uk 2.130.1, whose freeze checks contract 2.0.0 replaced.
|
|
9
|
+
- `population_pass_max_examples_0.json`: population checks only, on the earlier certified `enhanced_frs_2024_25` (uk-data 1.58.0, SHA-256 `5ba399ea…`). It has no cases, and with `max_examples=0` its sampled properties did not run, so the gate treats it as an incomplete run.
|
|
10
|
+
|
|
11
|
+
The edits:
|
|
12
|
+
- `dataset.path` (a local Hugging Face cache path) was replaced with a placeholder in the two files that name a dataset, and every file was re-serialized with sorted keys.
|
|
13
|
+
- Population rows are computed on the survey dataset, so a count from 1 to 9 in their `detail` is a small cell, which the metrics tool's `privacy.py` rule never publishes. Since policyengine.py#643 the runner suppresses them at source, so `full_released_uk_2.135.0.json` reads `"fewer than 10"` where they occur, and its population details agree across routes. No gate rule reads `detail`, and the qualification ledger (`publishable_contract_report`) publishes none of a population detail's values beyond its top-level true/false findings, since rows of one check on different routes share a subsample and their differences would give a handful's figures back. Check any new fixture for such counts before committing it.
|
|
14
|
+
|
|
15
|
+
The run of contract 1.0.0 on policyengine-uk 2.126.8 (`full_allpass_uk_2.126.8.json`) was removed once no test read it.
|