Skip to content

Add Kingston upon Thames council tax reduction#1771

Merged
MaxGhenis merged 1 commit into
mainfrom
codex/ctr-kingston-20260607
Jun 7, 2026
Merged

Add Kingston upon Thames council tax reduction#1771
MaxGhenis merged 1 commit into
mainfrom
codex/ctr-kingston-20260607

Conversation

@MaxGhenis

Copy link
Copy Markdown
Collaborator

Summary

  • Add working-age Council Tax Reduction for Kingston upon Thames from the council's 2026-27 scheme PDF.
  • Register Kingston as a supported local CTR scheme and include it in the local CTR aggregator.
  • Reuse the shared legacy CTR helper, adding an optional additional applicable-income term for Kingston's non-UC capital tariff income.

Source

Tests

  • uv run policyengine-core test policyengine_uk/tests/policy/baseline/gov/local_authorities/council_tax_reduction/council_tax_reduction.yaml -c policyengine_uk
  • uv run ruff check policyengine_uk/variables/gov/local_authorities/council_tax_reduction policyengine_uk/variables/gov/local_authorities/kingston_upon_thames
  • uv run policyengine-core test policyengine_uk/tests/policy -c policyengine_uk
  • uv run --with pytest --with pytest-cov python -m pytest policyengine_uk/tests/ --cov=policyengine_uk --cov-report=xml --maxfail=1 -v
  • git diff --check origin/main...HEAD

@MaxGhenis MaxGhenis force-pushed the codex/ctr-kingston-20260607 branch from da90ed4 to 8e630af Compare June 7, 2026 01:06
@MaxGhenis MaxGhenis merged commit d1cbf9b into main Jun 7, 2026
9 checks passed
@MaxGhenis MaxGhenis deleted the codex/ctr-kingston-20260607 branch June 7, 2026 01:14
MaxGhenis added a commit to TheAxiomFoundation/axiom-oracles that referenced this pull request Jul 14, 2026
…ales

Stages the axiom-oracles PolicyEngine mapping sweep for the incoming
council tax reduction encodings (rulespec-uk#140 lanes A/B/C, batches
CTR-ENP/CTR-SC/CTR-WA), per the lane-E oracle-readiness report.

- Add one not_comparable prefix per incoming regulation-layer scheme
  spine: uk:regulations/{uksi/2012/2885, ssi/2021/249, ssi/2012/319,
  wsi/2013/3029}/. These absorb the means-test intermediates PolicyEngine
  UK does not expose one-to-one (hard capital cliff vs Schedule
  tariff-income taper; applicable amount built from Housing Benefit
  allowances vs a CTR Schedule 2 table). The final household
  council_tax_reduction award stays the single comparable CTR surface
  (already mapped, direct_variable); exact mappings take precedence over
  these prefixes.

- Refresh the two stale Kingston not_comparable prefix rationales: PE-UK
  2.89.2 (PolicyEngine/policyengine-uk#1771) now models Kingston
  working-age CTR via kingston_upon_thames_council_tax_reduction, so the
  "PE-UK does not model council-level schemes" rationale is false. Kept
  not_comparable pending a per-local-authority input adapter in the
  oracle harness; candidate_priority P2/P3.

No PolicyEngine-UK pin bump: the committed oracle pin
(conformance/uk-pe.yaml) is already policyengine-uk 2.89.2, which carries
council_tax_reduction + the per-scheme parameters (merged 2026-07-06,
axiom-oracles#192), post-dating the CTR wave. The mapping-registry
classifier reads the registry directly and resolves no PE-UK install.

Refs axiom-oracles#78, rulespec-uk#101, rulespec-uk#140.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant