Mintage Payroll ·

Getting the 2022 PAYE rules right

March was about accuracy: insurance deducted before PAYE, corrected 2022 bands for every pay frequency, and a careful way to keep earlier pay runs reproducible.

2 min read101 commits that monthPAYECompliancePlatform

Insurance first, then PAYE

One change in the 2022 tax rules was the order of deductions. PAYE is now worked out after an employee's NIS and their private life and health insurance contributions are taken off. We updated the payroll engine so insurance is calculated before PAYE, and gave the PAYE calculation access to those insurance figures.

We also corrected the 2022 PAYE bands for monthly, fortnightly and weekly pay. A few of the limits we had added in January needed adjusting once the rules were checked line by line.

Fixing forward without rewriting history

Here is the honest part. Our first version of the 2022 calculation had been used before the corrections landed. Simply replacing it would have meant that re-opening an earlier pay run gave different numbers from the payslips people had already received.

So we kept the earlier calculation as its own clearly labelled version and pointed the affected period at it, while new pay runs use the corrected rules. We also added the ability to override PAYE and NIS with a specific value for an employee when an adjustment is needed. It is a pattern we have kept ever since: tax rules are versioned, and history stays reproducible.

Under the hood

The Laravel 9 upgrade started in February was completed, along with a move to PHP 8.1. We reworked how the application is built and released so deployments are more repeatable, which accounts for much of the month's 101 commits. On the product side, employee records gained ID card details, company address can now appear on forms, a year-to-date view that was missing December was fixed, and the PAYE deduction sheet was corrected.

This article was written from Mintage Payroll’s commit history for March 2022. See Mintage Payroll today