policyengine 6.4.2__tar.gz → 6.4.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.4.2 → policyengine-6.4.3}/CHANGELOG.md +7 -0
- {policyengine-6.4.2/src/policyengine.egg-info → policyengine-6.4.3}/PKG-INFO +1 -1
- {policyengine-6.4.2 → policyengine-6.4.3}/pyproject.toml +1 -1
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/data/bundle/manifest.json +10 -10
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/data/bundle/uk.trace.tro.jsonld +5 -5
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/data/bundle/us.trace.tro.jsonld +5 -5
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/uk/budget_reform_population.py +9 -5
- {policyengine-6.4.2 → policyengine-6.4.3/src/policyengine.egg-info}/PKG-INFO +1 -1
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_uk_budget_reform_contract.py +68 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/uv.lock +1 -1
- {policyengine-6.4.2 → policyengine-6.4.3}/.claude/policyengine-guide.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.claude/quick-reference.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.github/CONTRIBUTING.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.github/bump_version.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.github/capture-version.sh +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.github/changelog_template.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.github/check-changelog.sh +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.github/copilot-instructions.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.github/dispatch-policyengine-release.sh +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.github/fetch_version.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.github/get-changelog-diff.sh +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.github/has-functional-changes.sh +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.github/is-version-number-acceptable.sh +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.github/publish-git-tag.sh +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.github/wait-for-pypi.sh +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.github/workflows/draft-pdf.yml +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.github/workflows/pr_code_changes.yaml +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.github/workflows/pr_docs_changes.yaml +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.github/workflows/push.yaml +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.gitignore +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/.python-version +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/AGENTS.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/CITATION.cff +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/CLAUDE.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/CODE_OF_CONDUCT.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/CONTRIBUTING.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/LICENSE +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/Makefile +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/README.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/architecture.png +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/architecture.svg +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/changelog.d/.gitkeep +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/.gitignore +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/_generator/README.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/_generator/build_reference.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/_quarto.yml +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/bundles.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/countries.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/data-publishing-design.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/decile-impact-spec.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/dev.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/disclosure.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/engineering/runbooks/acs-local-wic-replacement.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/engineering/runbooks/build-m-us-populace-certification.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/engineering/runbooks/canonical-spm-development.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/engineering/runbooks/us-legacy-spm-sources.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/engineering/skills/README.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/engineering/skills/data-certification.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/engineering/skills/github-prs.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/engineering/skills/repository-guidance.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/examples.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/getting-started.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/households.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/impact-analysis.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/index.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/methodology/index.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/methodology/model-architecture.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/methodology/us-health-costs.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/microsim.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/outputs.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/programs/index.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/programs/us-chip.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/reference/index.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/reforms.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/regions.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/release-bundles.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/run-records.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/trace-case-study.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/docs/visualisation.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/examples/belgium_axiom_pilot.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/examples/employment_income_variation_uk.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/examples/employment_income_variation_us.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/examples/household_impact_example.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/examples/income_bands_uk.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/examples/income_distribution_us.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/examples/paper_repro_uk.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/examples/policy_change_uk.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/examples/speedtest_us_simulation.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/examples/uk_geography_disclosure.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/examples/us_budgetary_impact.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/paper-preview.html +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/paper.bib +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/paper.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/scripts/bundle.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/scripts/certify_data_release.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/scripts/check_data_staleness.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/scripts/check_native_spm_loading.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/scripts/check_release_credentials.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/scripts/export_bundle_release_assets.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/scripts/generate_bundle_artifacts.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/scripts/generate_trace_tros.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/scripts/prepare_package_bundle_update.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/scripts/release_lock.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/scripts/spm_bundle.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/setup.cfg +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/bundle.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/cli.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/core/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/core/cache.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/core/dataset.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/core/dynamic.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/core/output.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/core/parameter.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/core/parameter_node.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/core/parameter_value.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/core/policy.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/core/region.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/core/run_record.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/core/scoping_strategy.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/core/simulation.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/core/spm.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/core/tax_benefit_model.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/core/tax_benefit_model_version.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/core/variable.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/countries/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/countries/uk/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/countries/uk/regions.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/countries/us/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/countries/us/data/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/countries/us/data/districts.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/countries/us/data/places.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/countries/us/data/states.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/countries/us/regions.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/data/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/data/schemas/trace_tro.schema.json +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/data/uk_geography_assets.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/derivations/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/derivations/narrate.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/derivations/trace.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/disclosure/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/disclosure/__main__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/disclosure/areas.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/disclosure/estimate.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/disclosure/noise.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/disclosure/release.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/disclosure/schema.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/disclosure/support.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/disclosure/validate.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/graph/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/graph/extractor.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/graph/graph.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/outputs/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/outputs/aggregate.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/outputs/change_aggregate.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/outputs/cliff_impact.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/outputs/congressional_district_impact.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/outputs/constituency_impact.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/outputs/decile_analysis.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/outputs/decile_grouping.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/outputs/decile_impact.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/outputs/extra_variables.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/outputs/inequality.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/outputs/intra_decile_impact.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/outputs/labor_supply_response.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/outputs/local_authority_impact.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/outputs/poverty.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/outputs/program_statistics.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/outputs/uk_geography_assets.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/outputs/uk_geography_disclosure.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/outputs/uk_geography_impact.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/provenance/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/provenance/bundle_validation.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/provenance/certification.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/provenance/dataset_materialization.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/provenance/manifest.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/provenance/pyproject_pins.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/provenance/spm_configuration.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/provenance/trace.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/provenance/verify.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/provenance/zenodo.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/results/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/results/schema.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/results/trace_tro.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/results/tracking.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/be/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/be/datasets.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/be/model.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/common/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/common/axes.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/common/extra_variables.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/common/household.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/common/model_version.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/common/reform.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/common/result.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/uk/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/uk/analysis.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/uk/budget_reform_contract.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/uk/datasets.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/uk/household.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/uk/model.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/us/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/us/analysis.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/us/datasets.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/us/household.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/us/legacy_inputs.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/us/legacy_spm/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/us/legacy_spm/declarations.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/us/legacy_spm/independence.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/us/legacy_spm/model_adapter.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/us/legacy_spm/record.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/us/legacy_spm/registry.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/us/legacy_spm/runs.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/us/legacy_spm/universe.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/us/model.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/tax_benefit_models/us/spm.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/utils/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/utils/dates.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/utils/design.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/utils/entity_utils.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/utils/errors.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/utils/hashing.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/utils/household_validation.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/utils/parameter_labels.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/utils/parametric_reforms.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/utils/plotting.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine.egg-info/SOURCES.txt +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine.egg-info/dependency_links.txt +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine.egg-info/entry_points.txt +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine.egg-info/requires.txt +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine.egg-info/top_level.txt +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/conftest.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/filtering_fixtures.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/household_calculator_snapshots/uk_couple_two_kids.json +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/household_calculator_snapshots/uk_model_surface.json +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/household_calculator_snapshots/uk_single_adult_employment_income.json +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/household_calculator_snapshots/uk_single_adult_no_income.json +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/household_calculator_snapshots/uk_single_parent_one_child.json +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/household_calculator_snapshots/us_married_two_kids_high_income.json +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/household_calculator_snapshots/us_model_surface.json +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/household_calculator_snapshots/us_single_adult_employment_income.json +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/household_calculator_snapshots/us_single_adult_no_income.json +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/household_calculator_snapshots/us_single_parent_one_child.json +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/parameter_labels_fixtures.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/parametric_reforms_fixtures.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/poverty_by_demographics_fixtures.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/region_fixtures.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/release_tros/README.md +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/release_tros/country-models.lock.toml +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/release_tros/manifest.json +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/release_tros/us-release_manifest.json +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/release_tros/us.trace.tro.jsonld +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/spm_development.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/uk_contract/evaluate_case_rows.json +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/us_reform_fixtures.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/fixtures/variable_label_fixtures.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_aggregate.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_be_axiom_pilot.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_budgetary_impact.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_bump_version.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_bundle.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_bundle_metadata.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_cache.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_certify_data_release.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_change_aggregate.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_cliff_impact.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_cliff_impact_analysis.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_congressional_district_impact.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_constituency_impact.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_dataset_materialization.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_dataset_persistence.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_dataset_runtime.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_dataset_source.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_decile_grouping.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_derivations.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_dict_reforms_on_simulation.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_disclosure_areas.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_disclosure_estimate.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_disclosure_noise.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_disclosure_release.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_disclosure_schema.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_disclosure_support.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_disclosure_validate.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_entity_mapping.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_entity_utils.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_entity_utils_characterization.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_errors.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_extra_variables.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_filtering.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_generate_trace_tros.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_graph/__init__.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_graph/conftest.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_graph/test_extractor.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_household_calculator_snapshot.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_household_impact.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_inequality.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_intra_decile_impact.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_labor_supply_response.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_local_authority_impact.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_manifest_version_mismatch.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_models.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_pandas3_compatibility.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_parameter_labels.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_parameter_nodes.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_parameter_values.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_parametric_reforms.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_poverty.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_poverty_by_demographics.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_poverty_run.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_preservation_mirror.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_program_statistics.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_pyproject_pins.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_region.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_region_group_strategy.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_release_credentials.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_release_lock.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_release_manifests.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_release_tro_generation.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_results.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_run_record.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_scoping_strategy.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_small_follow_ups.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_spm_bundle_bootstrap.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_spm_bundle_tooling.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_spm_decile.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_spm_development_authentication.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_spm_household.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_spm_model.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_spm_selection.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_spm_selection_schema.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_trace_tro.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_trace_tro_verify.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_uk_analysis.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_uk_dated_reforms.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_uk_geography_assets.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_uk_geography_disclosure.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_uk_program_statistics.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_uk_regions.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_uk_year_file_data_year.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_us_legacy_inputs.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_us_legacy_inputs_integration.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_us_legacy_spm.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_us_legacy_spm_integration.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_us_legacy_spm_model_contract.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_us_long_term_datasets.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_us_microsim_structural_reforms.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_us_native_alignment.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_us_native_hdf_weights.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_us_program_statistics.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_us_reform_application.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_us_regions.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_us_year_file_stamp.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_variable_labels.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_variable_metadata.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/test_zenodo_mirror.py +0 -0
- {policyengine-6.4.2 → policyengine-6.4.3}/tests/uk_contract_row_scenarios.py +0 -0
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [6.4.3] - 2026-10-15
|
|
2
|
+
|
|
3
|
+
### Changed
|
|
4
|
+
|
|
5
|
+
- The UK Budget reform contract's Universal Credit allowance check is tested on both runs: each must hold finite values and keep every payment at or above the payable floor, to within a penny. Beyond the payable floor, the check does not bound how far deductions rise: policyengine-uk scales every deduction type with the standard allowance, while the law holds some, such as advance recovery, fixed (policyengine-uk#2410).
|
|
6
|
+
|
|
7
|
+
|
|
1
8
|
## [6.4.2] - 2026-10-15
|
|
2
9
|
|
|
3
10
|
### Fixed
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"bundle_version": "6.4.
|
|
2
|
+
"bundle_version": "6.4.3",
|
|
3
3
|
"citation": {
|
|
4
4
|
"publisher": "PolicyEngine",
|
|
5
|
-
"title": "PolicyEngine bundle 6.4.
|
|
5
|
+
"title": "PolicyEngine bundle 6.4.3",
|
|
6
6
|
"type": "software-bundle",
|
|
7
|
-
"version": "6.4.
|
|
7
|
+
"version": "6.4.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.4.
|
|
20
|
+
"bundle_id": "uk-6.4.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.4.
|
|
102
|
+
"policyengine_version": "6.4.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.4.
|
|
115
|
+
"bundle_id": "us-6.4.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.4.
|
|
220
|
+
"policyengine_version": "6.4.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.4.
|
|
298
|
+
"install_requirement": "policyengine==6.4.3",
|
|
299
299
|
"name": "policyengine",
|
|
300
300
|
"role": "bundle_carrier",
|
|
301
|
-
"version": "6.4.
|
|
301
|
+
"version": "6.4.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.4.
|
|
337
|
+
"policyengine_version": "6.4.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.4.
|
|
21
|
+
"schema:description": "TRACE TRO for certified runtime bundle uk-6.4.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.4.
|
|
26
|
+
"schema:softwareVersion": "6.4.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.4.
|
|
32
|
+
"rdfs:comment": "Certified arrangement for bundle uk-6.4.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": "0570937645ce0722431c165380ee07e3b58da04bf1e09c9b2d9c6eacb8250e69"
|
|
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": "4cb13caf326046c95e4f2c9241a93b25e2c451d8ea2df69155aaf13d3f2e25b7"
|
|
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.4.
|
|
20
|
+
"schema:description": "TRACE TRO for certified runtime bundle us-6.4.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.4.
|
|
25
|
+
"schema:softwareVersion": "6.4.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.4.
|
|
31
|
+
"rdfs:comment": "Certified arrangement for bundle us-6.4.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": "0570937645ce0722431c165380ee07e3b58da04bf1e09c9b2d9c6eacb8250e69"
|
|
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": "3bc9bc20826c31ab06a356b5ad41d967791a90cf68014363a3fae95b80955a24"
|
|
105
105
|
}
|
|
106
106
|
},
|
|
107
107
|
"trov:hasPerformance": {
|
|
@@ -26,15 +26,19 @@ Checks:
|
|
|
26
26
|
``population_uc_standard_allowance_plus_10``
|
|
27
27
|
Every Universal Credit standard allowance 10% higher in 2027-28 raises
|
|
28
28
|
each benefit unit's standard allowance by exactly 10%, lowers no award
|
|
29
|
-
before deductions and raises
|
|
29
|
+
before deductions and raises at least one payment. The award before
|
|
30
30
|
deductions is ``universal_credit_pre_benefit_cap`` less
|
|
31
31
|
``benefit_cap_reduction``: the benefit cap reduces the award by the
|
|
32
32
|
excess of welfare benefits over the cap (Universal Credit Regulations
|
|
33
33
|
2013, SI 2013/376, reg 81), so a capped award stays flat. Deductions are
|
|
34
|
-
then taken from the award and
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
then taken from the award (Claims and Payments Regulations 2013, SI
|
|
35
|
+
2013/380, Sch 6). Many are set as percentages of the standard allowance,
|
|
36
|
+
others as fixed amounts (advances, SI 2013/383 reg 10), and deductions
|
|
37
|
+
can start with a new award, so the amount paid (``universal_credit``)
|
|
38
|
+
can fall, and total payments can fall too. The check requires every
|
|
39
|
+
value to be finite in both runs, and each payment to move by its award's
|
|
40
|
+
change less its deductions' change and to stay at or above the payable
|
|
41
|
+
floor (the lesser of its award and 12p a year), each to within a penny.
|
|
38
42
|
``population_state_pension_plus_10``
|
|
39
43
|
The basic and new State Pension rates 10% higher in 2027-28 raise each
|
|
40
44
|
person's basic and new State Pension by exactly 10% and raise total
|
|
@@ -1016,3 +1016,71 @@ def test_extraction_errors_and_unsupported_rows_carry_distinct_ids(monkeypatch,
|
|
|
1016
1016
|
assert statuses[:2] == ["error", "pending"]
|
|
1017
1017
|
if route == "wrapper.policy":
|
|
1018
1018
|
assert statuses[2] == "unsupported"
|
|
1019
|
+
|
|
1020
|
+
|
|
1021
|
+
@pytest.mark.parametrize("state", ["base", "reformed"])
|
|
1022
|
+
@pytest.mark.parametrize(
|
|
1023
|
+
"name",
|
|
1024
|
+
[
|
|
1025
|
+
"uc_standard_allowance",
|
|
1026
|
+
"universal_credit",
|
|
1027
|
+
"universal_credit_pre_benefit_cap",
|
|
1028
|
+
"benefit_cap_reduction",
|
|
1029
|
+
"uc_deductions",
|
|
1030
|
+
],
|
|
1031
|
+
)
|
|
1032
|
+
@pytest.mark.parametrize("value", [float("nan"), float("inf"), float("-inf")])
|
|
1033
|
+
def test_any_non_finite_value_in_either_run_fails(state, name, value):
|
|
1034
|
+
"""#614 round-3 review: finiteness is required of every input in both runs."""
|
|
1035
|
+
|
|
1036
|
+
base, reformed = _lawful_pair()
|
|
1037
|
+
{"base": base, "reformed": reformed}[state][name][0] = value
|
|
1038
|
+
holds, detail = _verdict(base, reformed)
|
|
1039
|
+
assert not holds
|
|
1040
|
+
assert detail["units_with_non_finite_values"] == 1
|
|
1041
|
+
|
|
1042
|
+
|
|
1043
|
+
@pytest.mark.parametrize("state", ["base", "reformed"])
|
|
1044
|
+
@pytest.mark.parametrize(
|
|
1045
|
+
("payment", "holds"), [(0.12, True), (0.115, True), (0.109, False)]
|
|
1046
|
+
)
|
|
1047
|
+
def test_the_payable_floor_holds_in_both_runs(state, payment, holds):
|
|
1048
|
+
"""#614 round-3 review: a payment pushed below the floor fails in either run.
|
|
1049
|
+
|
|
1050
|
+
The other run's payment sits exactly at the floor, and the deductions keep
|
|
1051
|
+
the accounting identity exact, so only this run's floor decides.
|
|
1052
|
+
"""
|
|
1053
|
+
|
|
1054
|
+
base, reformed = _lawful_pair()
|
|
1055
|
+
run = {"base": base, "reformed": reformed}[state]
|
|
1056
|
+
award = run["universal_credit_pre_benefit_cap"][0] - run["benefit_cap_reduction"][0]
|
|
1057
|
+
run["uc_deductions"][0] = award - payment
|
|
1058
|
+
run["universal_credit"][0] = payment
|
|
1059
|
+
other = reformed if state == "base" else base
|
|
1060
|
+
other_award = (
|
|
1061
|
+
other["universal_credit_pre_benefit_cap"][0] - other["benefit_cap_reduction"][0]
|
|
1062
|
+
)
|
|
1063
|
+
other["uc_deductions"][0] = other_award - 0.12
|
|
1064
|
+
other["universal_credit"][0] = 0.12
|
|
1065
|
+
result, detail = _verdict(base, reformed)
|
|
1066
|
+
assert result is holds, detail
|
|
1067
|
+
|
|
1068
|
+
|
|
1069
|
+
def test_an_award_below_the_floor_is_paid_in_full():
|
|
1070
|
+
"""#622 review: the floor is the lesser of the award and 12p a year."""
|
|
1071
|
+
|
|
1072
|
+
import numpy as np
|
|
1073
|
+
|
|
1074
|
+
base, reformed = _lawful_pair()
|
|
1075
|
+
for run in (base, reformed):
|
|
1076
|
+
unit = {
|
|
1077
|
+
"uc_standard_allowance": run["uc_standard_allowance"][0],
|
|
1078
|
+
"universal_credit_pre_benefit_cap": 0.05,
|
|
1079
|
+
"benefit_cap_reduction": 0.0,
|
|
1080
|
+
"uc_deductions": 0.0,
|
|
1081
|
+
"universal_credit": 0.05,
|
|
1082
|
+
}
|
|
1083
|
+
for name, value in unit.items():
|
|
1084
|
+
run[name] = np.append(run[name], value)
|
|
1085
|
+
holds, detail = _verdict(base, reformed)
|
|
1086
|
+
assert holds, detail
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine-6.4.2 → policyengine-6.4.3}/docs/engineering/runbooks/acs-local-wic-replacement.md
RENAMED
|
File without changes
|
|
File without changes
|
{policyengine-6.4.2 → policyengine-6.4.3}/docs/engineering/runbooks/canonical-spm-development.md
RENAMED
|
File without changes
|
{policyengine-6.4.2 → policyengine-6.4.3}/docs/engineering/runbooks/us-legacy-spm-sources.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine-6.4.2 → policyengine-6.4.3}/src/policyengine/core/tax_benefit_model_version.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|