Calling the housekeeper

Bill Dodwell asks whether tax codes complexities are due for a good spring clean

One of the cleverest – but most misunderstood (and often incorrect) – parts of the tax system is the tax code. Everyone who is paid through PAYE has a tax code for each source of employment or pension income. Their invention goes back to the dawn of PAYE, in 1944, when employers used paper tables to work out how much tax to deduct from 12 million employees’ income.  

The idea of the tax code was to define how much of the individual’s pay was tax free. It also took on other attributes, such as setting a specific tax rate to be applied to the source of income. In some cases, it can be used to require additional tax deductions from a source – the infamous K tax code.  

Tax codes complexities

There are two big issues with tax codes. Firstly, the way they are expressed is confusing; and secondly, the HMRC calculators often produce incorrect results.  

It obviously seemed a very good idea to reduce the number of individual calculations by rounding everything to the nearest £10. This means that the personal allowance of £12,570 is turned into a tax code of 1257. In the days of the printed tables, this considerably reduced the number of pages. Readers may be amused to find that the 1940s personal allowances included additions for each child, dependant relatives and for a housekeeper (see 

The challenge is that the meaning of a tax code of 1257L is not immediately obvious. Today, PAYE is calculated by payroll software, including HMRC’s excellent (and free) PAYE Tools. We should no longer be worried about the number of rows in tax tables, since computers can easily process tax allowances. Why not change the tax code to the actual figure of the tax allowance – 12,570?  

Tax codes have a range of letters and special codes attached to them. There are ten basic letters, with a further six codes for Scottish taxpayers and five codes for Welsh taxpayers (see Some codes – OT, BR, D0 and D1 – do not have a figure for allowances attached and simply indicate the rate of tax to be deducted (or in the case of OT, that no allowances are given). Obviously it is helpful that there is a whole page on the HMRC website explaining the codes – but why not make the code itself more obvious? Perhaps 40 instead of D0? Do we need L, M and N?

Some too common problems

The calculation of the tax code goes wrong all too frequently. No doubt in olden times a tax officer would calculate the tax code manually, but today tax calculations are done by computer. It is obvious that the programming is complicated and, too often, incorrect. Many people who look at their useful online personal tax account will find that the estimate of their annual income is wrong. 

The calculator cannot manage annual increases or one-off payments, such as bonuses. For example, a tax year’s income could be made up of three months at the old rate and nine months at the new rate. It would take a human no more than a minute to work out what is going on – and only a little longer to produce an accurate estimate of annual income. Unfortunately, it is hard to program the computer to get this right – with the result that the estimate of annual income is unpredictable and generally below the actual income. 

Given that a great many employees receive annual pay increases and millions receive a bonus, much more effort needs to be devoted to better calculations. Even when the computer had details of 12 monthly payments, it cannot guess what the annual total is!  

There is another problem for those (over a million) who have a mixture of self-assessment income and PAYE income. The online business tax account is not linked to the personal tax account, which means that it is impossible to work out an accurate tax code. Agents for taxpayers will be accustomed to calling HMRC to request a modified tax code. In part, issues arise because when the tax code for the forthcoming tax year is set, no account is taken of the current tax code – which could easily have been corrected following calls to HMRC. Programming the calculation engine to recognise that the individual has a business tax account – and therefore take a different approach – might result in fewer errors and fewer calls.

And finally…

K codes are an enduring mystery to those who receive them. Pensioners receive a disproportionate share of K codes, no doubt in part because the state pension is taxable but not subject to PAYE. Assigning a K code to a source of income big enough to manage the additional tax deduction is also not done accurately, although HMRC is attempting to set a primary source of income to which a potential K code could be attached. 

Given the vast scale of PAYE, errors which affect only small percentages of the total population turn out to affect millions, or at least several hundred thousand people. Handling the calls from the confused and those with errors takes a considerable resource – which points to the value in working on improvements.     

Average: 1 (1 vote)