From 5a2ce0f2f9975cf19778bc9afd36754cb744d720 Mon Sep 17 00:00:00 2001 From: Nikhil Woodruff <35577657+nikhilwoodruff@users.noreply.github.com> Date: Thu, 17 Oct 2024 23:03:03 +0100 Subject: [PATCH] Make employee incidence a percentage (#964) * Bump UK data * Add employee incidence parameter * Versioning --- CHANGELOG.md | 7 +++++++ changelog.yaml | 5 +++++ .../policyengine/employer_ni/employee_incidence.yaml | 6 +++--- policyengine_uk/reforms/policyengine/budget_change.py | 2 +- .../employer_ni_fixed_employer_cost_change.py | 11 ++++++++--- setup.py | 2 +- 6 files changed, 25 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 297837c1f..8d84f796d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.4.0] - 2024-10-17 21:43:42 + +### Added + +- Employee incidence percentage for employer NICs. + ## [2.3.0] - 2024-10-17 10:47:06 ### Changed @@ -1500,6 +1506,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 +[2.4.0]: https://github.com/PolicyEngine/openfisca-uk/compare/2.3.0...2.4.0 [2.3.0]: https://github.com/PolicyEngine/openfisca-uk/compare/2.2.0...2.3.0 [2.2.0]: https://github.com/PolicyEngine/openfisca-uk/compare/2.1.1...2.2.0 [2.1.1]: https://github.com/PolicyEngine/openfisca-uk/compare/2.1.0...2.1.1 diff --git a/changelog.yaml b/changelog.yaml index 847991412..2c47ea1d3 100644 --- a/changelog.yaml +++ b/changelog.yaml @@ -1259,3 +1259,8 @@ changed: - UK-data bumped to 1.5. date: 2024-10-17 10:47:06 +- bump: minor + changes: + added: + - Employee incidence percentage for employer NICs. + date: 2024-10-17 21:43:42 diff --git a/policyengine_uk/parameters/gov/contrib/policyengine/employer_ni/employee_incidence.yaml b/policyengine_uk/parameters/gov/contrib/policyengine/employer_ni/employee_incidence.yaml index eebcf37df..e31153a34 100644 --- a/policyengine_uk/parameters/gov/contrib/policyengine/employer_ni/employee_incidence.yaml +++ b/policyengine_uk/parameters/gov/contrib/policyengine/employer_ni/employee_incidence.yaml @@ -1,6 +1,6 @@ -description: Assume that employers keep employment costs constant in response to employer NI changes. +description: Fraction of employer NI that is borne by employees. The remaining is passed onto prices. values: - 2010-01-01: true + 2010-01-01: 1 metadata: label: Employer NI employee incidence - unit: bool + unit: /1 diff --git a/policyengine_uk/reforms/policyengine/budget_change.py b/policyengine_uk/reforms/policyengine/budget_change.py index 6d0b3a04f..ab04edacb 100644 --- a/policyengine_uk/reforms/policyengine/budget_change.py +++ b/policyengine_uk/reforms/policyengine/budget_change.py @@ -86,7 +86,7 @@ class pre_budget_change_household_tax(Variable): "expected_sdlt", "expected_ltt", "expected_lbtt", - "corporate_sdlt_", + "corporate_sdlt", "business_rates", "council_tax", "domestic_rates", diff --git a/policyengine_uk/variables/contrib/policyengine/employer_ni/employer_ni_fixed_employer_cost_change.py b/policyengine_uk/variables/contrib/policyengine/employer_ni/employer_ni_fixed_employer_cost_change.py index 039384f7a..53d57560c 100644 --- a/policyengine_uk/variables/contrib/policyengine/employer_ni/employer_ni_fixed_employer_cost_change.py +++ b/policyengine_uk/variables/contrib/policyengine/employer_ni/employer_ni_fixed_employer_cost_change.py @@ -22,9 +22,10 @@ class employer_ni_fixed_employer_cost_change(Variable): unit = GBP def formula(person, period, parameters): - if not parameters( + employee_incidence = parameters( period - ).gov.contrib.policyengine.employer_ni.employee_incidence: + ).gov.contrib.policyengine.employer_ni.employee_incidence + if employee_incidence == 0: return 0 # First, calculate baseline and reformed employer NI contributions. @@ -103,8 +104,12 @@ def formula(person, period, parameters): pay_change = new_employment_income - previous_employment_income + # Apply incidence percentage + + interpolated_pay_change = pay_change * employee_incidence + # Where a person's prior employment income was below the secondary threshold, the formula doesn't hold, so assume no change. below_threshold = previous_employment_income < t_b - return where(below_threshold, 0, pay_change) + return where(below_threshold, 0, interpolated_pay_change) diff --git a/setup.py b/setup.py index 3c015ee12..897415239 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ setup( name="PolicyEngine-UK", - version="2.3.0", + version="2.4.0", author="PolicyEngine", author_email="nikhil@policyengine.org", classifiers=[