Skip to content

additional_residential_property_purchased treats a household's whole other-property stock as an additional purchase #2238

Open

Description

@MaxGhenis

What happens

additional_residential_property_purchased returns other_residential_property_value × property_purchased (variables/household/consumption/additional_residential_property_purchased.py). property_purchased flags any residential purchase in the year, including a main home, so a household that bought any home has its entire stock of other residential property charged as an additional-dwelling purchase. The variable's own documentation says "Only include the value of a single purchase."

Reproducer

Run at 2.89.2. The formula is unchanged on main as of 9 October 2026.

One adult, £80,000 earnings, London, 2025, main_residence_value £600,000, other_residential_property_value £2,000,000:

property_purchased additional_residential_property_purchased stamp_duty_land_tax
False £0 £0
True £2,000,000 £233,750

Impact

Found by the fiscal-event replay in PolicyEngine/policyengine-scorecard#157. Autumn Budget 2024's 2pp rise in the higher rates for additional dwellings costs £2.0bn to £2.3bn a year in PolicyEngine, against the OBR's £0.2bn to £0.5bn. The flagged base is about £94.7bn, and 2pp of that is about £1.9bn.

Fix

Separate main-home purchases from additional-dwelling purchases, and impute one additional purchase value (or a purchase probability on the other-property stock) rather than the whole stock. Calibrate the result to HMRC's SDLT statistics on higher-rate transactions.

Activity

  1. MaxGhenis commented on Oct 10, 2026

    @MaxGhenis
    CollaboratorAuthor

    Fix in #2241: a main-residence purchase no longer charges the household's other residential or non-residential stock. The additional-dwelling and non-residential purchase prices are inputs, nil unless set directly or imputed by a dataset. Household higher-rates SDLT is therefore nil on data without imputed purchases (an inert leg, not an inferred base) until policyengine-uk-data imputes them; the PR has the HMRC comparison.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    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