Moonworkers
Blog

Cumulative tax code: how PAYE keeps a running total

The cumulative tax code basis explained: how PAYE uses pay and tax to date, why refunds and catch-ups happen, worked figures and what employers must get right.

Cumulative tax code: how PAYE keeps a running total

Check what a tax code means

Every UK tax code explained, with exact tax-free pay for each pay schedule.

By September, an employee on the standard code has £6,288 of tax-free pay available against that month's wages, six months at £1,048 each, because PAYE counts the whole tax year to date rather than the single payday [2]. HMRC describes this cumulative basis as the one that makes tax deducted during the year "roughly correct for most cases" [1].

A "cumulative tax code" is not a separate code printed on a notice. It is the default way every ordinary code, such as 1257L, is operated when no W1, M1 or X marker follows it [4] [8]. On each payday the payroll adds this period's pay to everything paid since 6 April, works out the tax due on that running total, and deducts the difference between that figure and the tax already taken.

The method explains most of the payslip behaviour that surprises employees: a tax refund in a month with unpaid leave, a lower deduction after a bonus month, a sudden jump when a code is cut mid-year. It also explains why the same code can produce different results for two people on the same salary.

This guide sets out how the cumulative basis works, how it differs from the non-cumulative alternative, what happens when pay or codes change during the year, and what payroll software has to record to get it right. Every figure in the worked examples was computed by a payroll engine implementing HMRC's routines for the 2026-27 tax year.

Key takeaways

  • Cumulative operation is the default for every code without a W1, M1 or X marker; PAYE "should always be operated on a cumulative basis where appropriate" [10].
  • Each payday compares total pay to date with total tax-free pay to date, so unused allowance from earlier months is released and overpaid tax is refunded through payroll [1] [2].
  • On £500 of pay after four months at £3,000, a cumulative 1257L code refunds £109.60 of tax; the Month 1 basis would deduct £0 and refund nothing.
  • A code cut mid-year recovers the shortfall for earlier months in a single payday on the cumulative basis, which is why HMRC usually issues lower codes on a week 1 or month 1 basis [12].
  • The overriding regulatory limit caps tax in any period at half of that period's pay, even when cumulative catch-up calculates more [4].
  • Employers must enter previous pay and tax when HMRC supplies them with a new code, or the running total starts from the wrong place [9].

How the cumulative basis works

The cumulative method treats the tax year as one continuous calculation. The PAYE Manual states that, under this basis, "the employer takes into account any previous pay and tax for the year" [1]. The tax-free amount in the code is spread evenly across the year, so each pay period adds one more slice of allowance to the total available.

The running-total calculation

HMRC's Specification for PAYE tax table routines, updated to version 24.0 in February 2026, defines the calculation that payroll software follows [5]. The steps are mechanical and identical in every recognised product.

StepWhat payroll calculates
1Total pay to date: previous pay to date plus this period's pay
2Free pay to date: one period's free pay multiplied by the period number
3Taxable pay to date: step 1 minus step 2, rounded down to the whole pound
4Tax due to date on that taxable pay, using the bands to date
5Tax this period: step 4 minus tax already deducted, which can be negative

Source: PAYE tax table routines specification [5], applied with the 2026-27 Personal Allowance of £12,570 and the 20% basic rate [6].

Step 5 is what makes the basis cumulative. A negative result is a refund paid through the payslip. GOV.UK confirms the letter-and-number structure that feeds step 2: the number in the code shows how much tax-free income the employee gets from that employer in the tax year [7].

Why a steady salary still moves by a few pence

The rounding in step 3 produces a small, predictable pattern. On £3,000 a month under 1257L, the engine deducts £390.20 of income tax in month 1 and £390.40 in month 2, because taxable pay to date is rounded down to whole pounds before the tax is worked out [5]. The variation corrects itself across the year rather than accumulating, which is the point of a running total [1].

Cumulative and non-cumulative compared

The alternative to the cumulative basis is the week 1 or month 1 basis, signalled by a W1, M1 or X marker after the code [11]. The PAYE Manual says it "differs from the cumulative basis in that it ignores previous pay and tax", and that its aim is "to prevent the employer making heavy deductions or giving any refund" [1].

Side-by-side behaviour

The two bases share the same allowance and the same bands. They differ only in what each payday looks back at.

FeatureCumulative basisWeek 1 / Month 1 basis
How the code is writtenCode alone, e.g. 1257LCode plus W1, M1 or X
Pay consideredAll pay since 6 AprilThis period's pay only
Allowance givenAll free pay due to dateOne period's free pay
Overpaid tax earlier in the yearRefunded through payrollNot refunded through payroll
Underpaid tax earlier in the yearRecovered through payrollLeft for HMRC to settle
Typical triggerNormal operationMissing pay history, emergency codes, many reduced codes

Sources: PAYE Manual [1], GOV.UK employer guidance on code letters [4] and Low Incomes Tax Reform Group [2].

Which basis applies, and who decides

The employer does not choose. GOV.UK states that 1257L "is an emergency tax code only if followed by 'W1', 'M1' or 'X'"; without the marker it is the ordinary cumulative code used for most people with one job or pension [8] [7]. HMRC's own instruction to its staff is that PAYE "should always be operated on a cumulative basis where appropriate", and that a P6 is sent "cancelling the Week 1 or Month 1 basis and restoring the cumulative basis as soon as" previous pay and tax details are available [10]. The M1 tax code guide covers the non-cumulative side in detail.

Worked examples: where the running total matters

For an employee paid the same amount from April onwards, both bases give the same deduction. The differences appear when pay is uneven, when the employee joins mid-year, or when HMRC changes the code. All cases below assume a category A employee in England paid monthly on 1257L unless stated otherwise, with employee National Insurance worked out separately for each pay period [23].

A bonus month

An employee earns £2,500 in month 1, £6,000 in month 2 including a bonus, then £2,500 in month 3. The engine gives £290.20 of income tax in month 1. In month 2 the cumulative basis deducts £1,014.33, because two months of basic rate band are available against the combined £8,500. In month 3 the deduction falls to £266.47, below the month 1 figure, as the running total rebalances [5] [6].

Month 2 payslip, £6,000 grossIncome taxNet pay
1257L cumulative£1,014.33£4,698.17
1257L M1£1,352.06£4,360.44

On the Month 1 basis the same £6,000 payslip carries £1,352.06 of tax, because one month's basic rate band cannot absorb the bonus and more of it falls into the 40% band [6] [1]. Employee National Insurance on that month is £287.50 under either basis.

A month of unpaid leave

After four months at £3,000, an employee takes mostly unpaid leave and earns £500 in month 5. On the cumulative basis the engine produces a refund of £109.60 and net pay of £609.60, more than the gross pay. The extra allowance for month 5 exceeds the small salary, so the excess comes back as tax already paid [1] [2].

On 1257L M1 the same month shows £0 of tax and net pay of £500. The allowance unused in month 5 is not lost for the year, but the employee waits for a cumulative code or for HMRC's year-end reconciliation to receive it [19] [31].

A mid-year starter with a P45

The Low Incomes Tax Reform Group uses the example of an employee starting on 1 September 2026 with pay of £1,150 and tax of £20.40 from a previous job that ended on 30 April [2]. With those P45 figures entered, a cumulative 1257L code on a £2,500 salary in month 6 refunds the full £20.40, giving net pay of £2,404.24. On 1257L M1 the same payslip deducts £290.20 and nets £2,093.64.

LITRG adds that HMRC treats refund funding for employees as a priority and aims to issue funds within 7 to 10 days when an employer needs it [2]. A starter with no earlier pay at all fares better still: joining in month 7 on £3,000, the cumulative basis deducts £0 of tax and pays £2,843.84 net. The guide to emergency tax codes explains when a starter is put on the non-cumulative basis instead [22].

When the code changes during the year

A new code operated cumulatively is applied to the whole year to date, not just to the months that remain. That is helpful when the code rises and abrupt when it falls. GOV.UK asks employers to update the record as soon as possible and before the employee's next payday, and to add previous pay and tax if HMRC supplied them with the code [9].

A code reduced from 1257L to 857L

An employee on £3,000 a month has paid £2,342.00 of tax over six months on 1257L. In month 7 the code drops to 857L. Operated cumulatively, the engine deducts £857.00 of tax in month 7, recovering in one payday the shortfall for months 1 to 6, and £457.00 from month 8 onwards. Operated as 857L M1, month 7 carries £457.00 and the shortfall is left to be settled another way [1] [13].

Month 7 payslip, £3,000 grossIncome taxNet pay
857L cumulative£857.00£1,986.84
857L M1£457.00£2,386.84

This is the reason behind HMRC's staff rule that a revised code "must be issued on a week 1 / month 1 basis when the revised tax code to be operated is lower" [12]. The code-reduction guidance also notes that in Jobseeker's Allowance cases "the cumulative basis will always be allocated" [13].

In-year adjustments

Since 2 July 2017, HMRC carries out a full calculation for the year whenever it amends a code, and builds any expected shortfall into the new code as an in-year adjustment [14] [29]. The system assumes that 10 days pass before a code with suffix T or prefix K takes effect, and 31 days for codes with suffix L or Y, and in most cases the whole adjustment is collected in the current year [14].

Where the amended code would breach the 50% limit, the balance is pushed into the following tax year [14]. Only underpayments of up to £2,999.99 can be recovered through a tax code; an actual underpayment of £3,000 or more must not be collected that way [16] [17]. The guide to why a tax code changes lists the common triggers.

The safety nets: the 50% limit and week 53

Two rules stop the cumulative basis producing results that would be unfair or unworkable. One caps deductions, the other handles the extra payday in some tax years.

The overriding regulatory limit

GOV.UK states that "the tax deduction for each pay period cannot be more than half an employee's pre-tax pay or pension" [4]. The PAYE Manual repeats the rule for K codes: "the tax deducted on any one day cannot exceed 50% of the gross pay for that period" [15]. The routines specification tells software to carry forward any tax that the limit prevents it from deducting [5].

Cumulative K codes show the limit in action. An employee on £2,000 a month, with £1,142.00 of tax paid in six months on 1257L, receives code K500 in month 7. Cumulative catch-up would take more than the month's pay can bear, so the engine deducts exactly £1,000, half of the gross, leaving net pay of £923.84. On K500 M1 the deduction is £483.40. The K tax code guide explains how K codes are built [15].

Week 53 and other extra paydays

A tax year can contain 53 weekly paydays, 27 fortnightly ones or 14 four-weekly ones. HMRC's instruction is clear: "If tax is due from the fifty third weekly payment, the employer should apply the Week 1 Free Pay Table on a non-cumulative basis" [18]. The same applies with the Week 2 table to a 27th fortnightly payment [18].

In practice the extra payday is taxed like a W1 code. For a £600 weekly wage, that means £71.60 of income tax and £28.64 of employee National Insurance in week 53, with net pay of £499.76. Any resulting underpayment for the year is reconciled by HMRC after the year ends [19] [5].

What employers and payroll software must get right

The cumulative basis is only as accurate as the history it starts from. Most cumulative errors come from three places: missing previous pay and tax, a basis indicator that does not match the code operated, and markers that survive into a new tax year.

Previous pay and tax

For a new starter with a P45, previous pay and tax are entered so that step 1 of the calculation starts from the right total [2]. For an existing employee, GOV.UK tells employers to add the figures HMRC sends with a new code [9]. HMRC's own staff are told to "enter Nil where there are no previous earnings or tax" before issuing a P6, and that a cumulative code can be restored once the employment history is complete [10] [28].

Employers running HMRC-recognised payroll software for SMEs see these as fields on the employee record. For bureaux, a multi-client payroll dashboard that lists every employee whose previous pay is still blank stops cumulative errors before they reach a payslip [30].

The basis indicator on the FPS

Every Full Payment Submission tells HMRC which basis was used. The RTI data item guide requires the "Tax Code Basis is non-cumulative" indicator to be set when a code is operated on a week 1 or month 1 basis, and left unset for cumulative operation [24]. The FPS goes to HMRC on or before each payday [25], and HMRC's coding history records the basis of operation against each code, so a mismatch between the two produces queries [26].

Platforms that embed payroll through the HMRC-recognised payroll API pass the code, the basis and year-to-date figures as part of each pay calculation; the request fields are listed in the API documentation. The engine then follows the same routines as any HMRC-recognised product [5].

The new tax year reset

The running total starts again at nil on 6 April. HMRC tells employers between January and March about new codes, and where a code is not changing the employer carries it forward [20]. The P9X instructions for codes from 6 April 2026 add: "Do not copy or carry over any 'week 1' or 'month 1' markings", so every carried-forward code becomes cumulative on the first payday of the year [3] [20].

Check a tax code before the next payrun

Before entering a code from a notice, an employer can confirm what its number, letters and any W1 or M1 marker mean with the Moonworkers tax code checker, which decodes standard, K, flat-rate and emergency codes.

On your payslip, P45 or P60. Suffixes W1, M1 or X welcome.

What you'll get

Enter any UK tax code to see:

  • · what each letter and number means
  • · which nation's rates apply (S and C prefixes)
  • · cumulative vs emergency W1/M1/X basis
  • · the exact tax-free pay for every pay schedule, to the penny

Try 1257L, a K code, or an emergency W1 code.

Payroll that applies every tax code correctly

Moonworkers runs the full HMRC exact percentage method on every payslip, including K codes, emergency codes and in-year code changes, and files RTI automatically.

Conclusion

The cumulative basis is the quiet default behind almost every UK payslip. It turns a tax code into a year-long budget of tax-free pay, then reconciles that budget on every payday, which is why refunds appear in low-pay months, bonuses are taxed less harshly than a single month's view would suggest, and a reduced code can bite hard in the month it arrives. The week 1 and month 1 basis exists precisely to switch that reconciliation off when the history is unreliable or the catch-up would be too abrupt.

For employers the discipline is about inputs rather than arithmetic: the right code, the right basis indicator, complete previous pay and tax, and a clean reset each April. As payroll moves into HR, accounting and workforce platforms through embedded engines, those inputs increasingly arrive through integrations rather than manual entry, and the accuracy of the running total depends on how faithfully each system carries the year-to-date figures from one payday to the next.

Frequently asked questions

What does a cumulative tax code mean on a payslip?

It means the code is applied to total pay and tax since 6 April rather than to the current payday alone. GOV.UK treats a code such as 1257L without a W1, M1 or X marker as an ordinary, non-emergency code [8]. Each payday the payroll works out the tax due to date and deducts or refunds the difference [1].

Why did an employee get a tax refund in their pay?

On the cumulative basis, a month with low pay, or a newly increased code, can leave the employee with more tax-free pay to date than they have earned. The excess tax already deducted is then refunded through the payslip [1]. GOV.UK notes that a corrected code makes sure overpayments are paid back through pay [22].

How does an employer switch from Month 1 to cumulative?

Only on instruction. HMRC sends a P6 cancelling the week 1 or month 1 basis once it has previous pay and tax details [10]. The employer then enters the new code and any previous pay and tax supplied before the next payday [9].

Can a cumulative code take more than half of someone's pay?

No. The overriding regulatory limit caps the tax deducted in any pay period at half of the pre-tax pay for that period [4]. Any tax the limit holds back is carried forward to later periods, and HMRC moves part of an in-year adjustment into the following year where a new code would otherwise breach the limit [14].