1. The shape of the calculation
Every screen on this site is the same underlying function:
- Resolve gross annual. For the Salary Calculator that is the value you type. For the Contractor Calculator we derive it from your hourly or daily rate, hours/day, days/week and weeks/year (default 8 × 5 × 46 = 230 working days). For the Salary Sacrifice Optimiser it is also the value you type, used twice — once for the baseline and once for the sacrifice scenario.
- Subtract any salary sacrifice from gross to get the taxable / NI-able gross. Salary sacrifice in the engine means an agreed reduction in contractual gross — it reduces both the income-tax base and the National Insurance base, because the sacrificed slice is, contractually, no longer earnings.
- Resolve Personal Allowance. Default £12,570 for
2026/27. The Marriage Allowance flag adds £1,257 to the recipient's
PA when their
M-suffix tax code is entered and the partner's salary is below the PA. Income above £100,000 triggers the taper: PA reduces by £1 for every £2 of income, hitting zero at £125,140. - Compute Income Tax using the rUK or Scottish band stack, depending on the active jurisdiction.
- Compute Class 1 employee NI using the UK-wide bands (Primary Threshold £12,570, UEL £50,270, main 8%, upper 2%). NI is always computed on the post-sacrifice taxable gross — even for Scottish taxpayers.
- Compute student loan deductions for the active plan (1, 2, 5 or PGL).
- Net take-home = gross − sacrifice − income tax − NI − student loan.
2. Integer pence — why it matters
JavaScript's number type is a 64-bit float, which is excellent for most arithmetic but cannot exactly represent values like 0.1 or 0.2 in binary. That is fine for charts; it is not fine for tax math, which is computed at the penny against statutory boundaries.
Every monetary value in SalaryGrid is stored internally as an integer
number of pence. £12,570 is represented as 1_257_000;
£50,270 as 5_027_000; the basic rate band of £37,700 as
3_770_000. Conversion to and from pounds.pence happens
only at the I/O boundaries — parsing user input and formatting
display strings — and every multiplication by a rate wraps in
Math.round() to stay in integer pence. Period scaling
(annual ÷ 12, ÷ 52, etc.) also rounds.
3. England, Wales & Northern Ireland — Income Tax bands
The rUK ("rest of UK") ruleset has three statutory bands
stacked above the Personal Allowance:
| Band | From | To | Rate |
|---|---|---|---|
| Personal Allowance | £0 | £12,570 | 0% |
| Basic rate | £12,571 | £50,270 | 20% |
| Higher rate | £50,271 | £125,140 | 40% |
| Additional rate | £125,141 | — | 45% |
The 60% effective marginal rate between £100,000 and £125,140 is not a separate statutory band — it emerges from PA tapering, see § 5 below.
4. Scotland — six bands plus top rate
| Band | From | To | Rate |
|---|---|---|---|
| Personal Allowance | £0 | £12,570 | 0% |
| Starter | £12,571 | £16,537 | 19% |
| Basic | £16,538 | £29,526 | 20% |
| Intermediate | £29,527 | £43,662 | 21% |
| Higher | £43,663 | £75,000 | 42% |
| Advanced | £75,001 | £125,140 | 45% |
| Top | £125,141 | — | 48% |
National Insurance is reserved to Westminster and stays uniform across the UK. For Scottish taxpayers the combined marginal rate spikes to 50% between £43,663 (start of the Scottish Higher band) and £50,270 (UK NI UEL) because the 42% Scottish rate overlaps the 8% NI main rate.
5. Personal Allowance taper above £100,000
For both jurisdictions, PA reduces by £1 for every £2 of taxable income above £100,000:
PA = max(0, £12,570 − floor((income − £100,000) ÷ 2))
PA reaches zero at exactly £125,140 — at which point the full additional / top rate applies to the entire £12,570 that was previously tax-free. The effective marginal rate inside the taper is:
- rUK: 40% (on the £1 itself) + 20% (the 50p of previously-allowance income now taxed at the higher rate) = 60% on every extra £1.
- Scotland: 45% (on the £1) + 22.5% (50p taxed at the advanced rate) = 67.5% on every extra £1.
6. Class 1 employee National Insurance
NI thresholds and rates are UK-wide for the 2026/27 year and applied to the post-sacrifice gross:
| Band | From | To | Rate |
|---|---|---|---|
| Below Primary Threshold | £0 | £12,570 | 0% |
| Main rate band | £12,571 | £50,270 | 8% |
| Upper band | £50,271 | — | 2% |
For salary sacrifice scenarios we additionally compute the employer's Secondary Class 1 saving at 15% of the sacrificed slice. Many employers contractually return part or all of that saving to the employee's pension — when modelling, we surface the figure separately from the employee's own NI saving so you can clearly see the lever.
7. Salary sacrifice mechanics
Salary sacrifice agreed before pay-day reduces the contractual gross for income tax and National Insurance purposes. The sacrificed amount is paid by the employer directly into the chosen workplace pension. We model this as:
- Taxable gross = gross − sacrifice.
- NI-able gross = gross − sacrifice.
- Pension contribution credited = sacrifice (plus optionally the employer's NI saving, when employers pass it through).
- Net take-home = gross − sacrifice − tax − NI.
Compare with net pay arrangements (the dominant occupational scheme): tax relief is given on the contribution but NI is paid on the full gross — so the same £1 contribution buys less pension than under sacrifice.
And relief at source: contribution comes out of net pay, the pension provider claims 20% back from HMRC for you. Higher / additional rate taxpayers must claim the rest via Self-Assessment.
8. Student loan deductions
| Plan | Threshold | Rate above threshold |
|---|---|---|
| Plan 1 | £22,015 | 9% |
| Plan 2 | £27,295 | 9% |
| Plan 5 | £25,000 | 9% |
| Postgraduate Loan | £21,000 | 6% |
Student loan deductions are computed on the post-sacrifice gross. Multiple plans cannot be active simultaneously in our UI — choose the plan that matches your repayment notice from the SLC.
9. Marriage Allowance
Marriage Allowance lets a basic-rate taxpayer transfer £1,257 of Personal Allowance to a basic-rate-paying spouse or civil partner. We apply it when:
- The recipient's tax code ends with
M(and the partner's withN); - The recipient remains a basic-rate taxpayer after the £1,257 boost;
- The partner's annual salary you enter is below the standard PA (£12,570).
If any condition fails, the calculator displays an "MA voided" alert and falls back to the standard PA. We never silently grant or deny the allowance.
10. Periodisation
Monthly figures are annual ÷ 12; weekly figures are
annual ÷ 52. For contractor day-rate breakdowns we use
annual ÷ working-days where working-days = days/week × weeks/year
so the per-day figure echoes the rate you entered. We do not model
1257L-style cumulative PAYE — we assume even monthly distribution of
tax / NI through the year.
11. What we deliberately do not model
See /assumptions for the full list. The short version: no Benefits-in-Kind, no P11D items, no share-scheme income, no dividend or savings tax, no Capital Gains, no Self-Assessment payments-on-account, no IR35 inside / outside deeming calculations.