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
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)
owned_land)Root cause
The underlying household-level values for
owned_landare 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 incalibrate.pylines 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 definitionspolicyengine_uk_data/targets/build_loss_matrix.pylines 293-300 — dispatch routingpolicyengine_uk_data/utils/calibrate.py— national targets in loss functionpolicyengine_uk_data/tests/test_land_value_targets.py— tests markedxfailSource
ONS National Balance Sheet 2025: https://www.ons.gov.uk/economy/nationalaccounts/uksectoraccounts/bulletins/nationalbalancesheet/2025