I am trying to workout how the UK tax tables are generated.

If you look at the monthly tables from HMRC:

Month   £   diff
1   533.46  533.46
2   1066.93 533.47
3   1600    533.07
4   2133.46 533.46
5   2666.93 533.47
6   3200    533.07
7   3733.46 533.46
8   4266.93 533.47
9   4800    533.07
10  5333.46 533.46
11  5866.93 533.47
12  6400    533.07

I want to workout how the cumulative value is calculated. Each month has a cycling difference of 533.46, 533.47 and 533.07.

Why is this?

6400/12 = 533.3333 reoccurring

I cant see its relevant to days in the year/month.

The tax rate is 20% upto £32,000.

  • (32000/12)*0.2=533.33
  • floor(32000/12)*0.2=533.2
  • ceil(32000/12)*0.2=533.4

Does anyone know the formula HMRC use to create these tables?

1 Answer 1


tl;dr: It's caused by rounding of the tax thresholds for higher-rate tax, and then correcting the total tax to account for this.

I think you're looking at something like the "Tax due on pay in Table C1" table on page 3 of the 2016-17 tax calculator.

That table is only part of the method for calculating tax for someone who is subject to higher rate tax (but not additional rate) because they have taxable pay at an annualised rate of more than £32000/year.

The first step in that method is to compare the pay so far with a threshold value, that amounts to the 32000 pro-rated for the year so far, rounded up.

So for example the threshold value for the first month is 2667 (see table C1 on the same page), whereas the mathematically correct value would be 2666.66666..

If hte pay so far is above that threshold, then the total tax owed so far is calculated by (pay so far - rounded threshold) * 0.4 + 533.46. The idea is that you owe basic rate tax up to the threshold, and higher rate tax above the threshold.

If 2667 was the genuine threshold value, then the correct tax up to that point would be 0.2 * 2667 = 533.40, and then you'd owe the higher rate tax on the remainder.

But actually the unrounded threshold is slightly lower, and the calculator is slightly inaccurately working out the higher rate component based on the rounded threshold. So they correct by adding (higher rate - basic rate) * (rounded threshold - unrounded threshold) = 0.2 * 0.3333... = 0.06 (rounding the final figure down).

The same happens the next month - rounded threshold is 5334, the initial basic rate tax looks like 1066.80, and they add 13p to correct.

In month 3, rounded and unrounded thresholds match, so the correction goes away.

If you happen to earn between 2666.66 and 2667 in month 1, you probably save up to 6p of PAYE temporarily, but by month 3 it'll sort itself out.

  • 1
    ntl;dr;vi; (Not too long, did read; very interesting). So it's basically a correction factor as a consequence of always rounding tax-thresholds to whole numbers of pounds.
    – TripeHound
    Commented Aug 2, 2017 at 7:15

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .