Summary
Companion issue for policyengine-uk-data#358 and policyengine-uk-data#357.
Today household_land_value uses a single national scalar for the land-to-property ratio:
# policyengine_uk/variables/household/wealth/household_land_value.py
property_wealth_intensity = (
wealth.land.value.aggregate_household_land_value
/ wealth.property_wealth
)
return property_wealth * property_wealth_intensity + owned_land
That means regional variation in household land value comes only from regional variation in property_wealth, and the formula cannot express that London dwellings are ~80% land value while rural dwellings are ~45%. Regional calibration targets cannot fix that on their own — they can re-weight households, but every household still computes the same land/property ratio, so the distribution is pinned.
What's needed in policyengine-uk
-
Add a region-keyed parameter — e.g. gov.wealth.land.regional_land_to_property_ratio[region] — with one entry per English region (and GB-wide fallbacks for Wales/Scotland as appropriate).
-
Change household_land_value to look up the household's region and use the matching regional ratio rather than the national scalar:
ratios = parameters(period).gov.wealth.land.regional_land_to_property_ratio
region = household(\"region\", period)
property_wealth_intensity = ratios[region]
return property_wealth * property_wealth_intensity + owned_land
-
Keep the national scalar as the default / fallback for backward compatibility during rollout.
Coordination
policyengine-uk-data#358 (merged or open) adds the data-side plumbing — _compute_regional_shares now accepts a land_to_property_ratio mapping — but does not ship real ratios yet. The same parameter values should feed both sides once sourced.
- The two changes must land together for the bias fix to take effect end-to-end. Until this issue is done, supplying non-uniform ratios on the data side will make the calibration fight itself, because the formula still forces every household onto the national ratio.
- Real per-region numbers should be sourced (VOA dwelling value minus ONS reconstruction cost, or Savills residential land-value estimates) in a separate PR with modelling-team sign-off, not as part of this one.
Why this matters
Surfaced while modelling a council-tax → flat-rate LVT swap. Without regional land-share variation:
- London is understated as an LVT base.
- South East / East of England / rural areas with high property wealth but lower land share are overstated.
- Regional winners/losers from a council-tax → LVT swap are distorted in both directions.
Out of scope for this issue
- Sourcing the actual regional ratios.
- Behavioural responses to an LVT.
- Wales/Scotland/NI-specific land-value work beyond whatever fallback is appropriate.
🤖 Generated with Claude Code
Summary
Companion issue for
policyengine-uk-data#358andpolicyengine-uk-data#357.Today
household_land_valueuses a single national scalar for the land-to-property ratio:That means regional variation in household land value comes only from regional variation in
property_wealth, and the formula cannot express that London dwellings are ~80% land value while rural dwellings are ~45%. Regional calibration targets cannot fix that on their own — they can re-weight households, but every household still computes the same land/property ratio, so the distribution is pinned.What's needed in
policyengine-ukAdd a region-keyed parameter — e.g.
gov.wealth.land.regional_land_to_property_ratio[region]— with one entry per English region (and GB-wide fallbacks for Wales/Scotland as appropriate).Change
household_land_valueto look up the household'sregionand use the matching regional ratio rather than the national scalar:Keep the national scalar as the default / fallback for backward compatibility during rollout.
Coordination
policyengine-uk-data#358(merged or open) adds the data-side plumbing —_compute_regional_sharesnow accepts aland_to_property_ratiomapping — but does not ship real ratios yet. The same parameter values should feed both sides once sourced.Why this matters
Surfaced while modelling a council-tax → flat-rate LVT swap. Without regional land-share variation:
Out of scope for this issue
🤖 Generated with Claude Code