From 7066c561a0db73a6643cd0b0df0a1005340b77df Mon Sep 17 00:00:00 2001 From: Nikhil Woodruff Date: Tue, 22 Jul 2025 10:30:17 +0100 Subject: [PATCH 1/2] Fix bad multiplication in uprating --- changelog_entry.yaml | 4 ++++ policyengine_uk/data/economic_assumptions.py | 12 ++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb..db73799f6 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,4 @@ +- bump: patch + changes: + fixed: + - Bug in uprating. diff --git a/policyengine_uk/data/economic_assumptions.py b/policyengine_uk/data/economic_assumptions.py index c5b4beee9..90d728bbf 100644 --- a/policyengine_uk/data/economic_assumptions.py +++ b/policyengine_uk/data/economic_assumptions.py @@ -48,7 +48,9 @@ def apply_single_year_uprating( prev_year_value = getattr(previous_year, table_name)[ variable ] - current_year_value = prev_year_value * index_rel_change + current_year_value = prev_year_value * ( + 1 + index_rel_change + ) getattr(current_year, table_name)[ variable ] = current_year_value @@ -158,11 +160,6 @@ def uprate_rent( private_rent_growth = ( aggregate_growth - social_weight * social_rent_growth ) / private_weight - print( - f"Backed out private rent growth: {private_rent_growth:.1%} in {year}" - ) - print(f"OBR aggregate rent growth: {aggregate_growth:.1%} in {year}") - print(f"Social rent growth: {social_rent_growth:.1%} in {year}") current_year.household["rent"] = np.where( is_private_rented, @@ -182,3 +179,6 @@ def reset_uprating( for year in dataset.datasets: if year != first_year: dataset.datasets[year] = dataset.datasets[first_year].copy() + dataset.datasets[year].time_period = str(year) + + return dataset From 6f31133eeb9ab7deeb6e691436efc01bc8c49fdb Mon Sep 17 00:00:00 2001 From: Nikhil Woodruff Date: Tue, 22 Jul 2025 10:32:42 +0100 Subject: [PATCH 2/2] Update reform tests --- policyengine_uk/tests/microsimulation/reforms_config.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/policyengine_uk/tests/microsimulation/reforms_config.yaml b/policyengine_uk/tests/microsimulation/reforms_config.yaml index 71ce38fb9..2bb3012cb 100644 --- a/policyengine_uk/tests/microsimulation/reforms_config.yaml +++ b/policyengine_uk/tests/microsimulation/reforms_config.yaml @@ -1,6 +1,6 @@ reforms: - name: Raise basic rate by 1pp - expected_impact: 7.5 + expected_impact: 7.6 parameters: gov.hmrc.income_tax.rates.uk[0].rate: 0.21 - name: Raise higher rate by 1pp @@ -16,7 +16,7 @@ reforms: parameters: gov.hmrc.child_benefit.amount.additional: 25 - name: Reduce Universal Credit taper rate to 20% - expected_impact: -36.4 + expected_impact: -36.6 parameters: gov.dwp.universal_credit.means_test.reduction_rate: 0.2 - name: Raise Class 1 main employee NICs rate to 10% @@ -24,10 +24,10 @@ reforms: parameters: gov.hmrc.national_insurance.class_1.rates.employee.main: 0.1 - name: Raise VAT standard rate by 2pp - expected_impact: 18.9 + expected_impact: 18.8 parameters: gov.hmrc.vat.standard_rate: 0.22 - name: Raise additional rate by 3pp - expected_impact: 5.3 + expected_impact: 5.4 parameters: gov.hmrc.income_tax.rates.uk[2].rate: 0.48