diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb..7a61c2569 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -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. diff --git a/policyengine_uk/parameters/gov/contrib/scotland/scottish_child_payment/baby_bonus.yaml b/policyengine_uk/parameters/gov/contrib/scotland/scottish_child_payment/baby_bonus.yaml deleted file mode 100644 index 7a9f60a1f..000000000 --- a/policyengine_uk/parameters/gov/contrib/scotland/scottish_child_payment/baby_bonus.yaml +++ /dev/null @@ -1,24 +0,0 @@ -description: Additional weekly amount for Scottish Child Payment based on child age. Effective from 2027-28 fiscal year. -brackets: - - threshold: - values: - 0001-01-01: 0 - amount: - values: - 0001-01-01: 0 - 2027-04-01: 12.85 - - threshold: - values: - 0001-01-01: 1 - amount: - values: - 0001-01-01: 0 -metadata: - type: single_amount - threshold_unit: year - amount_unit: currency-GBP - period: week - label: Scottish Child Payment baby bonus by age - reference: - - title: Scottish Budget 2026 to 2027 - href: https://www.gov.scot/publications/scottish-budget-2026-2027/pages/6/ diff --git a/policyengine_uk/parameters/gov/contrib/scotland/scottish_child_payment/under_one.yaml b/policyengine_uk/parameters/gov/contrib/scotland/scottish_child_payment/under_one.yaml new file mode 100644 index 000000000..eaf3a1c64 --- /dev/null +++ b/policyengine_uk/parameters/gov/contrib/scotland/scottish_child_payment/under_one.yaml @@ -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/ diff --git a/policyengine_uk/parameters/gov/social_security_scotland/scottish_child_payment/amount.yaml b/policyengine_uk/parameters/gov/social_security_scotland/scottish_child_payment/amount.yaml index 417f53a40..aeb758150 100644 --- a/policyengine_uk/parameters/gov/social_security_scotland/scottish_child_payment/amount.yaml +++ b/policyengine_uk/parameters/gov/social_security_scotland/scottish_child_payment/amount.yaml @@ -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 @@ -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/ diff --git a/policyengine_uk/reforms/scotland/scottish_child_payment_reform.py b/policyengine_uk/reforms/scotland/scottish_child_payment_reform.py index 654845db2..9162e6c60 100644 --- a/policyengine_uk/reforms/scotland/scottish_child_payment_reform.py +++ b/policyengine_uk/reforms/scotland/scottish_child_payment_reform.py @@ -6,12 +6,13 @@ 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): @@ -19,7 +20,7 @@ class scottish_child_payment(Variable): 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 @@ -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): diff --git a/policyengine_uk/tests/policy/baseline/gov/social_security_scotland/scottish_child_payment.yaml b/policyengine_uk/tests/policy/baseline/gov/social_security_scotland/scottish_child_payment.yaml index 5d2254d0d..5428c243d 100644 --- a/policyengine_uk/tests/policy/baseline/gov/social_security_scotland/scottish_child_payment.yaml +++ b/policyengine_uk/tests/policy/baseline/gov/social_security_scotland/scottish_child_payment.yaml @@ -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] diff --git a/policyengine_uk/tests/policy/reforms/scp_baby_bonus/scottish_child_payment_baby_bonus.yaml b/policyengine_uk/tests/policy/reforms/scp_baby_bonus/scottish_child_payment_baby_bonus.yaml index 0d80c70cf..b7e71d175 100644 --- a/policyengine_uk/tests/policy/reforms/scp_baby_bonus/scottish_child_payment_baby_bonus.yaml +++ b/policyengine_uk/tests/policy/reforms/scp_baby_bonus/scottish_child_payment_baby_bonus.yaml @@ -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 @@ -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] @@ -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] @@ -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]