diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb..a223ddaa6 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -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. 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 index eaf3a1c64..a7af5bbca 100644 --- 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 @@ -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 diff --git a/policyengine_uk/parameters/gov/hmrc/fuel_duty/calculate_fuel_duty_rates.py b/policyengine_uk/parameters/gov/hmrc/fuel_duty/calculate_fuel_duty_rates.py index f24f902fb..f7864b055 100644 --- a/policyengine_uk/parameters/gov/hmrc/fuel_duty/calculate_fuel_duty_rates.py +++ b/policyengine_uk/parameters/gov/hmrc/fuel_duty/calculate_fuel_duty_rates.py @@ -18,7 +18,6 @@ import yaml - # Years to calculate rates for CALCULATION_YEARS = range(2026, 2031) 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 aeb758150..be0d0e272 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,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 diff --git a/policyengine_uk/tests/microsimulation/test_reform_impacts.py b/policyengine_uk/tests/microsimulation/test_reform_impacts.py index 4e036dd34..24cfde006 100644 --- a/policyengine_uk/tests/microsimulation/test_reform_impacts.py +++ b/policyengine_uk/tests/microsimulation/test_reform_impacts.py @@ -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: diff --git a/policyengine_uk/tests/microsimulation/test_salary_sacrifice_cap_reform.py b/policyengine_uk/tests/microsimulation/test_salary_sacrifice_cap_reform.py index 5a76645d9..ec5353ddd 100644 --- a/policyengine_uk/tests/microsimulation/test_salary_sacrifice_cap_reform.py +++ b/policyengine_uk/tests/microsimulation/test_salary_sacrifice_cap_reform.py @@ -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) 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 5428c243d..b17b33d54 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 @@ -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 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 b7e71d175..40ab1d737 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 @@ -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 @@ -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 @@ -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 diff --git a/policyengine_uk/tests/test_behavioral_responses.py b/policyengine_uk/tests/test_behavioral_responses.py index f28b0c2e6..16f7b50ff 100644 --- a/policyengine_uk/tests/test_behavioral_responses.py +++ b/policyengine_uk/tests/test_behavioral_responses.py @@ -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( diff --git a/policyengine_uk/utils/dependencies.py b/policyengine_uk/utils/dependencies.py index c1ea9d059..71f4126d3 100644 --- a/policyengine_uk/utils/dependencies.py +++ b/policyengine_uk/utils/dependencies.py @@ -179,14 +179,12 @@ def create_waterfall_change_chart( def add_fonts(): - fonts = HTML( - """ + fonts = HTML(""" - """ - ) + """) return display_html(fonts) diff --git a/policyengine_uk/variables/gov/hmrc/fuel_duty/fuel_duty.py b/policyengine_uk/variables/gov/hmrc/fuel_duty/fuel_duty.py index 3169b8db6..b0806780c 100644 --- a/policyengine_uk/variables/gov/hmrc/fuel_duty/fuel_duty.py +++ b/policyengine_uk/variables/gov/hmrc/fuel_duty/fuel_duty.py @@ -1,6 +1,5 @@ from policyengine_uk.model_api import * - STATUTORY_CONSUMER_INCIDENCE = 0.5 ECONOMIC_CONSUMER_INCIDENCE = 1 diff --git a/policyengine_uk/variables/gov/hmrc/income_tax/reliefs/loss_relief.py b/policyengine_uk/variables/gov/hmrc/income_tax/reliefs/loss_relief.py index fc5aaecc6..ced48ecb1 100644 --- a/policyengine_uk/variables/gov/hmrc/income_tax/reliefs/loss_relief.py +++ b/policyengine_uk/variables/gov/hmrc/income_tax/reliefs/loss_relief.py @@ -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. """