Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Employer Class 1 rate is 13.8% in 2022-23; the Health and Social Care Levy set 15.05%

Closed
#2,226 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

A pull request for this has already been merged.

  • #2227 by @MaxGhenis — merged

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
18/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
python, yaml
Domain
data

Research direction

The rate sits in class_1/rates/employer.yaml, and the year sampling happens in convert_to_fiscal_year_parameters, which #1807 covers. Open PR #2227 already targets this, so read it and the statute references before doing anything else. Done means model year 2022 reads 15.05% for the employer rate under the agreed sampling convention, with the Acts cited in the YAML.

Written by the indexing model from the issue text.

Description

Summary

The employer (secondary) Class 1 rate parameter holds 13.8% for all of 2022-23. The Health and Social Care Levy Act 2021 s.5(2)(b) set the secondary percentage at 15.05% for the tax year 2022-23. The Health and Social Care Levy (Repeal) Act 2022 s.2(1) kept that rate only "in relation to payments of earnings made before 6 November 2022".

The employee main rate (gov.hmrc.national_insurance.class_1.rates.employee.main) already carries the levy: 13.25% from 2022-04-01, then 12% from 2022-11-06. So model year 2022 has the levy on the employee side but not on the employer side.

The law

HSCL Act 2021 s.5(2): Part 1 of SSCBA 1992 is to have effect for 2022-23 as if:

  • (a)(i) in s.8(2)(a), the main primary percentage, "13.25" replaced "12";
  • (b) in s.9(2), the secondary percentage, "15.05" replaced "13.8".

Repeal Act 2022 s.2(1) continues s.5(2)(a) and (b) for payments of earnings made before 6 November 2022. Sch para 5(3) gives directors' annual earnings periods for 2022-23 a main primary percentage of 12.73% and a secondary percentage of 14.53%. To two decimal places these equal the day-weighted averages of the two rates over the tax year: 214 days at the levy rate and 151 days at the base rate.

What the model does

convert_to_fiscal_year_parameters reads each tax year at 30 April (#1807). For 2022 it returns:

Rate Model (main) Statute at 30 April 2022
Employee main 13.25% 13.25%
Employer (secondary) 13.8% 15.05%

Example: employer NI on £30,000 in 2022-23 is £2,884.20 (13.8% × (£30,000 − £9,100)). At 15.05% it is £3,145.45.

Fix

Add 15.05% from 2022-04-06 and 13.8% again from 2022-11-06 to class_1/rates/employer.yaml, citing both Acts. With 30 April sampling, model year 2022 then reads 15.05%, which matches how the employee main rate is treated. Whether to average across the year instead (14.53%, the directors' figure) is the per-parameter choice that #1807 covers. This fix follows the employee rate's existing convention.

Related gaps (separate fixes)

These have the same statutory source. They change other years, so they are not part of this fix:

  • class_1/rates/employee/additional.yaml holds 3.25% until 2024-04-04. Under Repeal Act s.2(1) the additional primary percentage went back to 2% from 6 November 2022. So model year 2023 reads 3.25% instead of 2%.
  • class_4/rates/main.yaml and class_4/rates/additional.yaml: Repeal Act s.2(2) sets 9.73% and 2.73% for the whole of 2022-23. The model reads 10.25% and 3.5% for 2022. HSCL s.5(2)(c)(ii) set the additional Class 4 rate at 3.25%, so 3.5% was never in force. Open PR #2058 corrects both Class 4 rates.

Related: #652 (closed), #1807, #2178.

Dominant language
Python
Stars
51
Forks
34
Avg merge
2d 13h
Merged PRs (30d)
177

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from PolicyEngine/policyengine-uk

All issues in PolicyEngine/policyengine-uk

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.