Skip to content

Make property_wealth_intensity region-aware (consumes policyengine-uk-data#358) #1626

Description

@vahid-ahmadi

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

  1. 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).

  2. 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
  3. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions