Skip to content

Land value calibration targets not converging #295

@vahid-ahmadi

Description

@vahid-ahmadi

Summary

The ONS land value calibration targets added in #292 are correctly wired into the national loss function, but the calibration cannot bring aggregates close to the targets through reweighting alone.

Current state (v1.44.0)

Variable Current ONS Target Gap
Household land (owned_land) £0.05tn £5.06tn ~99% under
Corporate wealth £6.96tn £2.04tn ~241% over
Property wealth £8.08tn £7.10tn ~14% over

Root cause

The underlying household-level values for owned_land are near zero across nearly all households. No amount of weight adjustment can scale £0.05tn to £5.06tn — the base values are too small. The calibration optimiser includes these targets in the loss function (confirmed in calibrate.py lines 86-93, 113, 124), but the gradient signal cannot move weights far enough.

This likely needs an imputation step (similar to how wealth variables are imputed from WAS) rather than relying on reweighting alone.

Relevant code

  • policyengine_uk_data/targets/sources/ons_land_values.py — target definitions
  • policyengine_uk_data/targets/build_loss_matrix.py lines 293-300 — dispatch routing
  • policyengine_uk_data/utils/calibrate.py — national targets in loss function
  • policyengine_uk_data/tests/test_land_value_targets.py — tests marked xfail

Source

ONS National Balance Sheet 2025: https://www.ons.gov.uk/economy/nationalaccounts/uksectoraccounts/bulletins/nationalbalancesheet/2025

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions