Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/1795.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Updated the Scottish Additional Dwelling Supplement to 8% for annual model years from 2025, retaining its statutory 5 December 2024 parameter date.
Original file line number Diff line number Diff line change
@@ -1 +1,20 @@
# Residential

## Additional Dwelling Supplement

[SSI 2024/367, articles 1–3](https://www.legislation.gov.uk/ssi/2024/367/made)
raises the supplement from 6% to 8% for transactions with an effective date
on or after 5 December 2024. Transactions under contracts entered into on or
before 4 December 2024 retain the previous 6% rate, even if their effective
date is later. [Revenue Scotland's guidance](https://revenue.scot/taxes/land-buildings-transaction-tax/additional-dwelling-supplement-ads)
confirms the rate and transition.

The parameter retains the statutory 5 December 2024 change date. The model's
existing annual transactional-tax convention samples parameters on 30 April,
so annual 2024 calculations use 6% and annual 2025 onward calculations use
8%. The annual household purchase inputs have no contract or effective-date
field: they cannot select protected contracts or distinguish purchases before
and after the December change within 2024. These annual calculations do not
represent every actual transaction in those years. The rate update preserves
that convention and does not introduce a blended annual rate or new date
inputs.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,17 @@ values:
2016-04-01: 0.03
2019-01-25: 0.04
2022-12-16: 0.06
# The annual model samples 30 April; the raw statutory date remains here.
# Pre-5 December contracts protected by article 3 cannot be selected
# individually without contract/effective-date inputs (see README.md).
2024-12-05:
value: 0.08
metadata:
reference:
- title: The Land and Buildings Transaction Tax (additional amount) (Scotland) Amendment Order 2024, arts. 1–3
href: https://www.legislation.gov.uk/ssi/2024/367/made
- title: Revenue Scotland, ADS rates and transitional provision
href: https://revenue.scot/taxes/land-buildings-transaction-tax/additional-dwelling-supplement-ads
metadata:
unit: /1
label: Lbtt fixed rate increase for secondary residences
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# SSI 2024/367 arts1–3:8% from5December2024 for unprotected contracts.
# https://www.legislation.gov.uk/ssi/2024/367/made
# Existing annual transactional-tax convention samples30April, so2024
# retains6% and2025onward uses8%. These cases do not simulate actual
# late2024transaction dates or the protected pre5December contract rule.
# A £300,000 purchase's unchanged ordinary LBTT is£4,600:
# £105,000*2%+£50,000*5% (SSI2015/126 TableA).
# ADS adds£18,000 at6%, or£24,000 at8%. Purchase/rent inputs are explicit;
# no liability flag, intermediate tax or property stock is forced.

- name: Annual 2024 additional purchase retains the April sample at six percent
period: 2024
absolute_error_margin: 0.01
input:
age: 45
region: SCOTLAND
main_residential_property_purchased: 0
additional_residential_property_purchased: 300_000
non_residential_property_purchased: 0
rent: 0
cumulative_residential_rent: 0
non_residential_rent: 0
cumulative_non_residential_rent: 0
output:
land_and_buildings_transaction_tax: 22_600

- name: Annual 2025 additional purchase pays eight percent ADS
period: 2025
absolute_error_margin: 0.01
input:
age: 45
region: SCOTLAND
main_residential_property_purchased: 0
additional_residential_property_purchased: 300_000
non_residential_property_purchased: 0
rent: 0
cumulative_residential_rent: 0
non_residential_rent: 0
cumulative_non_residential_rent: 0
output:
land_and_buildings_transaction_tax: 28_600

- name: Annual 2026 additional purchase retains eight percent ADS
period: 2026
absolute_error_margin: 0.01
input:
age: 45
region: SCOTLAND
main_residential_property_purchased: 0
additional_residential_property_purchased: 300_000
non_residential_property_purchased: 0
rent: 0
cumulative_residential_rent: 0
non_residential_rent: 0
cumulative_non_residential_rent: 0
output:
land_and_buildings_transaction_tax: 28_600

- name: Ordinary main-home purchase receives no ADS
period: 2025
absolute_error_margin: 0.01
input:
age: 45
region: SCOTLAND
main_residential_property_purchased: 300_000
main_residential_property_purchased_is_first_home: false
additional_residential_property_purchased: 0
non_residential_property_purchased: 0
rent: 0
cumulative_residential_rent: 0
non_residential_rent: 0
cumulative_non_residential_rent: 0
output:
land_and_buildings_transaction_tax: 4_600

- name: English purchase has no Scottish LBTT liability
period: 2025
absolute_error_margin: 0.01
input:
age: 45
region: LONDON
main_residential_property_purchased: 0
additional_residential_property_purchased: 300_000
non_residential_property_purchased: 0
rent: 0
cumulative_residential_rent: 0
non_residential_rent: 0
cumulative_non_residential_rent: 0
output:
land_and_buildings_transaction_tax: 0
48 changes: 48 additions & 0 deletions policyengine_uk/tests/test_lbtt_additional_dwelling_rate.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
"""ADS statutory date and the existing annual transactional-tax convention.

SSI 2024/367 arts1–3 changes6% to8% from5December2024, with protection
for contracts entered on/before4December. Annual purchase inputs have no
contract/effective date; processed parameters sample30April, so these
annual readings cannot select protected contracts or late2024 purchases.
"""

from pathlib import Path

import pytest
import yaml
from policyengine_core.parameters import Parameter

import policyengine_uk
from policyengine_uk import CountryTaxBenefitSystem

PATH = "gov.revenue_scotland.lbtt.residential.additional_residence_surcharge"
FILE = (
Path(policyengine_uk.__file__).parent
/ "parameters/gov/revenue_scotland/lbtt/residential/additional_residence_surcharge.yaml"
)


def test_raw_ads_rate_keeps_history_and_changes_on_5_december_2024():
data = yaml.safe_load(FILE.read_text())
data["values"] = {str(date): value for date, value in data["values"].items()}
raw = Parameter(PATH, data=data, file_path=str(FILE))
for date, expected in [
("2016-04-01", 0.03),
("2019-01-25", 0.04),
("2022-12-16", 0.06),
("2024-12-04", 0.06),
("2024-12-05", 0.08),
]:
assert raw(date) == expected, date
assert not raw.metadata.get("fiscal_year_blend", False)
assert not raw.metadata.get("preserve_calendar_dates", False)


@pytest.fixture(scope="module")
def system():
return CountryTaxBenefitSystem()


@pytest.mark.parametrize("year,expected", [(2024, 0.06), (2025, 0.08), (2026, 0.08)])
def test_annual_ads_rate_preserves_april30_sampling(system, year, expected):
assert system.parameters.get_child(PATH)(f"{year}-01-01") == expected
Loading