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
6 changes: 6 additions & 0 deletions changelog_entry.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
- bump: minor
changes:
added:
- Scottish Child Payment rates from 2026-27 to 2030-31 per Scottish Fiscal Commission forecasts.
- Scottish Child Payment baby boost under-1 total from 2027-28 to 2030-31 per SFC forecasts.
- CPI uprating for SCP parameters for projections beyond 2030-31.
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
description: Total weekly Scottish Child Payment amount for children under 1.
values:
0001-01-01: 0
2027-04-01: 40
2027-04-01: 40.00
2028-04-01: 40.80
2029-04-01: 41.65
2030-04-01: 42.50
metadata:
unit: currency-GBP
period: week
label: Scottish Child Payment total for under-1s
uprating: gov.economic_assumptions.indices.obr.consumer_price_index
reference:
- title: Scottish Budget 2026 to 2027
href: https://www.gov.scot/publications/scottish-budget-2026-2027/pages/6/
- title: Scottish Fiscal Commission - Scotland's Economic and Fiscal Forecasts January 2026
href: https://fiscalcommission.scot/wp-content/uploads/2026/01/Scotlands-Economic-and-Fiscal-Forecasts-January-2026-revised-13-01-2026.pdf
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

import yaml


# Years to calculate rates for
CALCULATION_YEARS = range(2026, 2031)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,20 @@ values:
2022-11-14: 25
2024-04-01: 26.70
2025-04-01: 27.15
2026-04-01: 28.20
2027-04-01: 28.85
2028-04-01: 29.45
2029-04-01: 30.05
2030-04-01: 30.65
metadata:
unit: currency-GBP
period: week
label: Scottish Child Payment weekly amount
uprating: gov.economic_assumptions.indices.obr.consumer_price_index
reference:
- title: The Scottish Child Payment Regulations 2020, Regulation 20
href: https://www.legislation.gov.uk/ssi/2020/351/regulation/20
- title: Scottish Government - Scottish Child Payment
href: https://www.gov.scot/policies/social-security/scottish-child-payment/
- title: Scottish Fiscal Commission - Scotland's Economic and Fiscal Forecasts January 2026
href: https://fiscalcommission.scot/wp-content/uploads/2026/01/Scotlands-Economic-and-Fiscal-Forecasts-January-2026-revised-13-01-2026.pdf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
from pathlib import Path
from policyengine_uk import Microsimulation


# Load configuration from YAML file
config_path = Path(__file__).parent / "reforms_config.yaml"
with open(config_path, "r") as f:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import pandas as pd
from policyengine_uk import Microsimulation


# Policy year when the salary sacrifice cap takes effect
POLICY_YEAR = 2030 # Use 2030 to ensure cap is active (cap starts 2029-04-06)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,72 @@
# [parent, child_1]
scottish_child_payment: [0, 1412]

- name: SCP with 2026 amount (£28.20/week)
period: 2026
absolute_error_margin: 10
input:
people:
parent:
age: 30
child_1:
age: 5
benunits:
benunit:
members: [parent, child_1]
universal_credit: 5000
households:
household:
members: [parent, child_1]
region: SCOTLAND
output:
# £28.20/week * 52 weeks = £1,466.40
# [parent, child_1]
scottish_child_payment: [0, 1466]

- name: SCP with 2027 amount (£28.85/week)
period: 2027
absolute_error_margin: 10
input:
people:
parent:
age: 30
child_1:
age: 5
benunits:
benunit:
members: [parent, child_1]
universal_credit: 5000
households:
household:
members: [parent, child_1]
region: SCOTLAND
output:
# £28.85/week * 52 weeks = £1,500.20
# [parent, child_1]
scottish_child_payment: [0, 1500]

- name: SCP with 2028 amount (£29.45/week)
period: 2028
absolute_error_margin: 10
input:
people:
parent:
age: 30
child_1:
age: 5
benunits:
benunit:
members: [parent, child_1]
universal_credit: 5000
households:
household:
members: [parent, child_1]
region: SCOTLAND
output:
# £29.45/week * 52 weeks = £1,531.40
# [parent, child_1]
scottish_child_payment: [0, 1531]

- name: CTC no longer qualifies from 2025 (after April 2024)
period: 2025
absolute_error_margin: 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@
members: [parent, baby]
region: SCOTLAND
output:
# Under-1s get £40/week total (policy parameter)
# £40/week * 52 weeks = £2,080 per year
# Under-1s get £40.80/week total (2028-29 SFC forecast)
# £40.80/week * 52 weeks = £2,121.60 per year
# [parent, baby]
scottish_child_payment: [0, 2080]
scottish_child_payment: [0, 2122]

- name: SCP baby bonus - child over 1 gets standard rate (2028)
period: 2028
Expand All @@ -49,9 +49,9 @@
members: [parent, toddler]
region: SCOTLAND
output:
# Standard rate only: £27.15/week * 52 = £1,411.80
# Standard rate only: £29.45/week * 52 = £1,531.40
# [parent, toddler]
scottish_child_payment: [0, 1412]
scottish_child_payment: [0, 1531]

- name: SCP baby bonus - mixed ages (2028)
period: 2028
Expand All @@ -75,10 +75,10 @@
members: [parent, baby, older_child]
region: SCOTLAND
output:
# Baby (age 0): £40/week total * 52 = £2,080
# Older child (age 5): £27.15/week * 52 = £1,411.80
# Baby (age 0): £40.80/week total * 52 = £2,121.60
# Older child (age 5): £29.45/week * 52 = £1,531.40
# [parent, baby, older_child]
scottish_child_payment: [0, 2080, 1412]
scottish_child_payment: [0, 2122, 1531]

- name: SCP baby bonus - not in Scotland (2028)
period: 2028
Expand Down
1 change: 0 additions & 1 deletion policyengine_uk/tests/test_behavioral_responses.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
from policyengine_uk import Microsimulation
from policyengine_uk.model_api import Scenario


# Check if HF token is available for data-dependent tests
HF_TOKEN_AVAILABLE = bool(os.environ.get("HUGGING_FACE_TOKEN"))
requires_hf_data = pytest.mark.skipif(
Expand Down
6 changes: 2 additions & 4 deletions policyengine_uk/utils/dependencies.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,14 +179,12 @@ def create_waterfall_change_chart(


def add_fonts():
fonts = HTML(
"""
fonts = HTML("""
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto+Serif:ital,opsz,wght@0,8..144,100..900;1,8..144,100..900&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap" rel="stylesheet">
"""
)
""")
return display_html(fonts)


Expand Down
1 change: 0 additions & 1 deletion policyengine_uk/variables/gov/hmrc/fuel_duty/fuel_duty.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from policyengine_uk.model_api import *


STATUTORY_CONSUMER_INCIDENCE = 0.5
ECONOMIC_CONSUMER_INCIDENCE = 1

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from policyengine_uk.model_api import *


"""
The section detailing some tax reliefs applicable is section 24 of the Act, but others are described in the 2003 and 2005 Acts as deductions from the respective components.
"""
Expand Down