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
5 changes: 5 additions & 0 deletions changelog_entry.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
- bump: patch
changes:
fixed:
- Reverted premature SCP 2026-27 rate increase (not yet law).
- Refactored SCP baby bonus reform to use £40/week total as the policy parameter instead of a fixed bonus amount.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
description: Total weekly Scottish Child Payment amount for children under 1.
values:
0001-01-01: 0
2027-04-01: 40
metadata:
unit: currency-GBP
period: week
label: Scottish Child Payment total for under-1s
reference:
- title: Scottish Budget 2026 to 2027
href: https://www.gov.scot/publications/scottish-budget-2026-2027/pages/6/
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ values:
2022-11-14: 25
2024-04-01: 26.70
2025-04-01: 27.15
2026-04-01: 28.20
metadata:
unit: currency-GBP
period: week
Expand All @@ -16,5 +15,3 @@ metadata:
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 Budget 2026-27
href: https://www.gov.scot/news/a-budget-to-tackle-child-poverty/
37 changes: 22 additions & 15 deletions policyengine_uk/reforms/scotland/scottish_child_payment_reform.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,21 @@ def create_scottish_child_payment_baby_bonus_reform() -> Reform:
"""
Reform that implements SCP baby bonus for children under 1.

Policy: Children under 1 receive an additional weekly bonus on top of
the standard SCP rate. The bonus amount is parameterized at
gov.contrib.scotland.scottish_child_payment.baby_bonus.
Policy: Children under 1 receive a total of £40/week (the policy parameter).
The "bonus" is implicitly the difference between this total and the base rate.

Source: Scottish Budget 2026-27
https://www.gov.scot/publications/scottish-budget-2026-2027-finance-secretarys-statement-13-january-2026-2/
https://www.gov.scot/publications/scottish-budget-2026-2027/pages/6/
"This will bring the total Scottish Child Payment amount to £40 a week
for children under 1."
"""

class scottish_child_payment(Variable):
label = "Scottish Child Payment"
documentation = (
"Scottish Child Payment amount for this child. "
"Paid to eligible children in families receiving qualifying benefits. "
"When baby bonus reform is active, children under 1 receive additional payment."
"When baby bonus reform is active, children under 1 receive £40/week total."
)
entity = Person
definition_period = YEAR
Expand All @@ -32,27 +33,33 @@ class scottish_child_payment(Variable):
]

def formula(person, period, parameters):
# Get SCP parameters
# Get base SCP rate
p = parameters(
period
).gov.social_security_scotland.scottish_child_payment
weekly_amount = p.amount
base_weekly = p.amount

# Get baby bonus parameter (age-bracketed)
baby_bonus_params = parameters(
# Get reform parameters
scp_reform = parameters(
period
).gov.contrib.scotland.scottish_child_payment.baby_bonus
age = person("age", period)
baby_bonus = baby_bonus_params.calc(age)
).gov.contrib.scotland.scottish_child_payment
in_effect = scp_reform.in_effect
under_one = scp_reform.under_one

# Total weekly amount = base + baby bonus
total_weekly = weekly_amount + baby_bonus
# For under-1s when reform in effect: use under_one total
# Otherwise: use base rate
age = person("age", period)
weekly_amount = where(
(age < 1) & in_effect,
under_one,
base_weekly,
)

# Child-level take-up (generated stochastically in dataset)
would_claim = person("would_claim_scp", period)

# Convert to annual amount
return total_weekly * WEEKS_IN_YEAR * would_claim
return weekly_amount * WEEKS_IN_YEAR * would_claim

class reform(Reform):
def apply(self):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -415,27 +415,3 @@
# £27.15/week * 52 weeks = £1,411.80
# [grandparent, child_1]
scottish_child_payment: [0, 1412]

# 2026-27 rate increase

- 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]
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Scottish Child Payment Baby Bonus Reform tests
# Tests that the SCP baby bonus reform correctly applies additional
# payment for children under 1 year old.
# Tests that the SCP baby bonus reform correctly applies the £40/week
# total for children under 1 year old.
# Policy effective from 2027-28 fiscal year (April 2027).
# Reform adds £12.85/week bonus for under-1s on top of standard rate.
# Policy parameter: £40/week total for under-1s (not base + bonus).

- name: SCP baby bonus for child under 1 (2028)
period: 2028
Expand All @@ -24,7 +24,7 @@
members: [parent, baby]
region: SCOTLAND
output:
# Base: £27.15/week + Bonus: £12.85/week = £40/week total
# Under-1s get £40/week total (policy parameter)
# £40/week * 52 weeks = £2,080 per year
# [parent, baby]
scottish_child_payment: [0, 2080]
Expand Down Expand Up @@ -75,7 +75,7 @@
members: [parent, baby, older_child]
region: SCOTLAND
output:
# Baby (age 0): £40/week * 52 = £2,080
# Baby (age 0): £40/week total * 52 = £2,080
# Older child (age 5): £27.15/week * 52 = £1,411.80
# [parent, baby, older_child]
scottish_child_payment: [0, 2080, 1412]
Expand Down Expand Up @@ -124,7 +124,7 @@
members: [parent, baby]
region: SCOTLAND
output:
# Before 2027-04-01 - baby bonus is £0, so standard rate only
# Before 2027-04-01 - under_one_total is £0, so standard rate applies
# £27.15/week * 52 = £1,411.80
# [parent, baby]
scottish_child_payment: [0, 1412]