# UK Taxation: Should I be able to calculate my PAYE tax for the year exactly?

Consider a simple employed person in the UK, with nothing particularly unusual or exciting.

At the end of a given (financial) year they look at their payslips and they can see (amongst other things):

• The total amount of income they were paid.
• The total amount of PAYE tax that was taken.

And they can look at their P60 and see the same 2 figures.

On HMRC's website they can see their Personal Allowance and the Tax bands for the year (current; historic).

I had assumed that if I took the 5 minutes to do the maths, then I ought to be able to satisfy myself that over the whole year, the PAYE tax taken matches the obvious interpretation of the tax bands. Except ... mine don't. 😢 They're consistently a few pounds out.

I'm unsurprised that the month-by-month PAYE is a bit out. For various reasons my month-to-month pay varies quite a lot (due to weird bonus structures and pay incremental rises), so it's going to be impossible for Sage to predict my final tax bill mid-year. ... But I would have expected that in the final pay-check of the (financial) year, Sage would now have the definitive annual total, and could adjust the PAYE correctly to fix the whole year?

So I would expect that once you look at the whole year, it would be exactly correct.

To take a specific example, supposing that I were to earn £62,143.28 (invented figure) in 2020/1, in England.

Then I would expect to pay:

• 0% = £0 on the first £12,500 (£0.01 to £12,500.00)
• 20% = £7,500 on the next £37,500 (£12,500.01 to £50,000.00)
• 40% = £4857.312 on the remaining (£50,000.01 to £62,143.28)

For an expected annual total of £12,357.31 (or possibly 32p, idk) I could also imagine any of the following:

• £12,357.32 (round up)
• £12,357.20 (round income to the nearest whole-pound)
• £12,357.00 (round income to the nearest whole-pound, then round down)

But I'm seeing something like £12,352.40 ... it's "way" out ... far more than I could expect from an rounding change.

So the specific question is: Should I actually expect the total of my PAYE to be exactly £12,357.31, based on this setup? or is UK PAYE tax actually a little fuzzy in the details/has more rounding than one would guess.

Context: I can foresee 3 likely possibilities:

• The HMRC system is exact, but Sage is less exact & everyone involved knows this ... but most people don't sweat a few £s discrepancy ... you can submit a TaxReturn if you care.
• The HMRC system isn't actually exact, but it always errs in individuals favour, and this is considered fine.
• HMRC and Sage are exact, and the fact that I can't get them to match tells me that they're accounting for something that I've missed ... and if I could find out what that was then I could make the numbers line up exactly.

Essentially, I want to know which of these realities I'm in, so I know whether I should spend additional time trying to find out what I'm missing.

• How much is your time worth? I.e. what's the opportunity cost in chasing £5? Apr 29 at 8:53
• The value in knowing that my understanding of my finances (including my taxation) is complete and accurate is substantial. Apr 29 at 9:14
• Also ... if you don't know why it's out by £5, then you can't be confident that it will continue to be only £5 in the future, and thus you can't make guaranteed predictions about your future finances. Apr 29 at 9:15
• Have you taken your tax code into account? FWIW I have written code for myself that reproduces pretty much all the tax calculations on my pay modulo some tiny rounding errors (pennies) so it is possible, but it might take me a while to write an answer explaining it. Apr 29 at 9:16
• You are probably failing to account for something, A lot of taxation rules have rules where some expenses like medical insurance or mortgage payments are tax free and effectively reduce your income for tax purposes. Are you sure nothing like that applies to you? However I don't think this is "way out". An anomaly of £5 out of £12,350 is an error of around 0.05%. Apr 29 at 9:17

This is a partial answer that I may flesh out later, but according to the comments perhaps still enough of an answer to be useful.

The short answer is that PAYE tax is predictable but it does take a fair amount of digging to get it perfect as there are weird rounding based effects at different stages. You also need to take into account your tax code which embeds quite a few complications of its own. Then you need to figure out how to reconcile PAYE with your year-end tax return.

I've written Haskell code to do it in case it's useful to see the logic. From memory, I may not have managed to reproduce the precise rounding of every single NI calculation and it's occasionally 1p out on that.

A couple of sources:

WOW!

I've now solved the ~probl~puzzle, and found the information that was missing.

• the UK Tax Rules are exact ... they just don't quite match the main headline figures that HMRC publish!!!

I wasn't missing any factors in my understanding of my personal Tax situation ... it's just that the default tax-free personal allowance (TFPA) for a "normal" English employee isn't actually £12,570 (the headline figure that HMRC publish) ... if that's your nominal TFPA then the actual figure used in all tax calculations is £12,579.12.

Further you are only Taxed on each whole Pound of Taxable Income, not on the pennies up to the next whole pound ... except the TFPA does use the pennies! So the points at which your tax changes are between the 12th and 13th penny of each Gross Pound 🤦‍♂️

The minutiae are findable if you dig into some of the guts of the HMRC website, but definitely not easy to find.

See a self-answered SE question here for my gory investigation of it all, including both documentation of the logic/rationale and a final 1-line calculation for "how to identify the relevant actual figure". But roughly speaking it's about rounding and months, and some really funky stuff about multiple of 500.

I strongly suspect (Citation Needed!) that this it all inheritted kruft derived from an era (Victorian, perhaps?) in which Tax Calculations were done by human clerks, who had been trained in addition and subtraction, but division or multiplication were done with slide-rules and look-up tables.

Thus the Tax Calculations had to be done in the same way, and were thus defined in terms of those look-up algorithms and the tables they looked stuff up in, rather than being defined in terms of the logic that populated the look-up tables in the first place.

And then that was never been formally changed, because ... beauracracy?

• I think if you fill in a tax return then you'll "only" get the normal personal allowance, i.e. the extra tax saving will be recouped. The current system is necessary because tax codes are rounded to the nearest £10, so continues even in the digital age. (Of course they could change the tax code meaning but that'd be a whole new world of pain.) May 1 at 11:41
• ` tax codes are rounded to the nearest £10,` Yep, that's that I found. `I think if you fill in a tax return then you'll "only" get the normal personal allowance` that would likely explain the discrepancy in my predicted Tax Rebate vs actual Tax Rebate (which was what started the whole deep-dive in the first place) May 1 at 12:41