Income tax calculator — methodology
The statutory stacking order, how the personal allowance and High Income Child Benefit Charge are calculated, why the bands are restated in gross income, and where the marginal rate exceeds every rate in the table.
Every incumbent on this search term returns one number. This calculator returns the number and the working: which band each pound fell into, which allowance covered it, what the next pound costs, and how far the next threshold is in the units the reader actually has. None of that requires an engine anyone else lacks — it requires reporting what the engine already knows instead of discarding it.
The calculation, in order
- Add earnings, savings interest and dividends. The total is what the personal allowance is worked out on.
- Taper the allowance: above £100,000 it falls by £1 for every £2 of income, and the surviving allowance is rounded up to a whole pound as ITA 2007 s.35(3) requires.
- Allocate that allowance across the three kinds of income in whichever way produces the smallest bill.
- Charge what remains in the statutory order: non-savings, then savings, then dividends, each slice starting where the one beneath it ended.
- Measure the rate on the next pound by asking the engine again with one more pound of earnings.
allowance = taper(gross income)
taxable = gross income − allowance
tax = schedule_earned(e) + schedule_savings(s) + schedule_dividend(d)
where e + s + d = taxable, chosen to minimise tax
marginal rate = tax(earnings + £1) − tax(earnings)The page performs no arithmetic beyond adding the three incomes and subtracting the engine’s answer from them. Every rate is applied inside tax-core.
Why the allowance is allocated rather than simply set against earnings
ITA 2007 s.25(2) entitles the taxpayer to deduct allowances in the way that produces the greatest reduction in liability, and HMRC’s own self-assessment calculation does exactly that. A fixed order is not merely suboptimal; it is the wrong answer, and wrong in the direction that over-taxes.
It matters because the allowance interacts with three nil-rate bands — the starting rate for savings, the personal savings allowance and the dividend allowance — whose position in the stack depends on where the allowance was put. Moving allowance between income types slides those bands up or down the schedule and changes how much they shelter. computeTaxPosition searches the allocation space exactly rather than heuristically; the argument for why enumerating vertices is exact rather than approximate is in that file.
The visible consequence on this page: with £50,000 of salary, £1,000 of interest and £2,000 of dividends, the bill is £8,168.25 — against £8,632.00 for the same £53,000 taken entirely as salary. Same income, different bill, and the difference is the stacking order and the nil-rate bands it hands out.
Why the band tables are restated in gross income
tax-core stores every threshold as taxable income, after the personal allowance. Every table a taxpayer has ever seen states them in gross income. Those are the same figures through one subtraction, and printing the stored ones under the published headings would produce a table agreeing with nothing the reader can check against gov.uk.
The conversion is not an addition, and that is the part worth stating. Adding the personal allowance to each threshold is right for the lower bands and wrong for the top one: the additional rate starts at £125,140 of taxable income, and by that much gross income the taper has removed the allowance entirely, so the two coincide there. lib/grossIncome.ts inverts the allowance function itself, which handles all three régimes — flat allowance, taper, no allowance — and gets the top band right by construction.
One residual, stated rather than hidden: s.35(3) rounds the surviving allowance up to a whole pound, so inside the taper the true function is a staircase and the inverse is its centre line. The error is bounded by about one pound of income, which is below the precision of a figure shown to the nearest pound.
The threshold distance is converted, because the engine's figure is not the reader's
ThresholdProximity.distance is measured in taxable income and the engine says so twice. A reader does not have taxable income; they have a salary, and the sentence they want is “how much more can I earn before the rate changes”. Printing the raw number answers a different question and is wrong in two distinct ways: below the personal allowance, extra income buys no taxable income at all until the allowance is used up; and inside the taper, each extra £1 of gross also withdraws part of the allowance, so it exposes more than £1 of taxable income and the raw figure overstates the gap.
Both fall out of the same inverse, in lib/thresholdDistance.ts. That file exists because seven pages wrote the conversion independently before it was consolidated; this page uses it and did not write an eighth. On the calculator’s opening figures the engine reports £270 of taxable income to the Higher rate band, and the page shows £270 of gross income, which is the figure to act on.
The personal allowance taper, and the rate that is in no table
Between £100,000 and £125,140 a pound of income is taxed itself and withdraws £0.50 of allowance, exposing that much again. The marginal rate there is therefore one and a half times whichever band rate applies — 60.00% in England, Wales and Northern Ireland, and 67.50% for a Scottish taxpayer in the advanced band.
Priced on a pay rise, in pounds: £10,000 added to a £95,000 salary in England takes the income tax bill from £25,432.00 to £30,432.00 — a charge of £5,000.00, or 50.00% of the rise, before any National Insurance. That is the demonstration this site exists for: the rate that matters is the one on the next pound, not the one on the last, and the two differ most exactly where the stakes are highest.
The figure is never written as “60%” anywhere in the code, because it is not 60% for everybody. It is 1.5 times the band rate, Scotland has band rates England does not, and the engine’s own docblock warns against hardcoding it. It is measured against the engine at the midpoint of the taper for the region chosen — the midpoint rather than an endpoint because both ends are boundary cases, and because the engine records that in the final taper period the probe spans one tapered pound and one past the end, which no single number describes.
Why the next £1,000 is priced by re-running the whole calculation
An allowance row saying “£1,000 available, none used” looks like £1,000 of tax-free interest. It is not. The personal savings allowance depends on the band the taxpayer ends up in, and receiving the interest is what moves them — AllowanceUse in tax-core documents this with a worked case and prescribes the remedy in as many words: recompute with that income included and compare the totals.
So the page does. Three extra engine calls, one per kind of income, each adding £1,000 and reporting the difference:
| Another £1,000 of | Extra income tax | Share of it |
|---|---|---|
| Earnings, pension or profit | £346.00 | 34.60% |
| Savings interest | £146.00 | 14.60% |
| Dividends | £136.23 | 13.62% |
A £1 probe would not do here, and that is a fact about the engine rather than a preference. applySchedule rounds each band’s tax to whole pence, so a £1 forward difference on the reported total is quantised to one percentage point and cannot represent a dividend rate at all. The engine solves that internally by keeping an unrounded total for its own probe, and that field is not exported. A£1,000 slice makes the rounding invisible, and it is the more honest question anyway: a slice that wide crosses thresholds, and the crossing is what the panel exists to show. The rate on the next single pound is reported separately, from the engine’s own measurement.
The marginal rate does not rise all the way
| Income | Income tax | Effective rate | Rate on the next £1 |
|---|---|---|---|
| £10,000 | £0.00 | 0.00% | 0.00% |
| £30,000 | £3,486.00 | 11.62% | 20.00% |
| £60,000 | £11,432.00 | 19.05% | 40.00% |
| £110,000 | £33,432.00 | 30.39% | 60.00% |
| £150,000 | £53,703.00 | 35.80% | 45.00% |
The last column is not monotonic, and no published table of tax bands can show that, because the hump is not a band. It is the personal allowance being withdrawn.
Devolution: what changes when the region changes, and what does not
Income tax on earnings is devolved to Scotland, which charges it across 6 bands where England, Wales and Northern Ireland use 3. Wales has independent rate-setting power and is modelled separately even though its rates currently equal the English ones.
Savings interest and dividends are not devolved. That is visible in the rules file rather than being this page’s interpretation: the Scottish region composes its own earnings schedule and is handed the very same savings and dividend arrays that England and Wales get. The personal allowance and its taper are UK figures too.
One subtlety the page does not flatten. “The rates are UK-wide” is exactly true and does not mean a Scottish taxpayer’s dividend tax always equals an English one’s on the same income: the best allocation of the personal allowance depends on the schedule sitting under each kind of income, and one of those three differs in Scotland. So the region selector recomputes rather than reprinting.
Rates, thresholds and allowances
| Figure | 2025/26 | 2026/27 |
|---|---|---|
| Personal allowance | £12,570 | £12,570 |
| Personal allowance taper starts at | £100,000 | £100,000 |
| Allowance withdrawn | £1 per £2 of income | £1 per £2 of income |
| Earned income — England, Wales and Northern Ireland | Basic rate 20.00% from £0; Higher rate 40.00% from £37,700; Additional rate 45.00% from £125,140 | Basic rate 20.00% from £0; Higher rate 40.00% from £37,700; Additional rate 45.00% from £125,140 |
| Earned income — Scotland | Starter rate 19.00% from £0; Basic rate 20.00% from £2,827; Intermediate rate 21.00% from £14,921; Higher rate 42.00% from £31,092; Advanced rate 45.00% from £62,430; Top rate 48.00% from £125,140 | Starter rate 19.00% from £0; Basic rate 20.00% from £3,967; Intermediate rate 21.00% from £16,956; Higher rate 42.00% from £31,092; Advanced rate 45.00% from £62,430; Top rate 48.00% from £125,140 |
| Savings — UK-wide | Basic rate 20.00% from £0; Higher rate 40.00% from £37,700; Additional rate 45.00% from £125,140 | Basic rate 20.00% from £0; Higher rate 40.00% from £37,700; Additional rate 45.00% from £125,140 |
| Dividends — UK-wide | Ordinary rate 8.75% from £0; Upper rate 33.75% from £37,700; Additional rate 39.35% from £125,140 | Ordinary rate 10.75% from £0; Upper rate 35.75% from £37,700; Additional rate 39.35% from £125,140 |
| Starting rate band for savings | £5,000 at 0.00% | £5,000 at 0.00% |
| Personal savings allowance — basic / higher / additional | £1,000 / £500 / £0 | £1,000 / £500 / £0 |
| Dividend allowance | £500 | £500 |
Thresholds above are taxable income, after allowances. The calculator restates them in gross income, which is how every published table states them.
How the High Income Child Benefit Charge is calculated
The charge is separate from the ordinary income-tax bands. It uses the adjusted net income of whichever partner has the higher figure and the Child Benefit actually received or treated as received. For 2026/27, the percentage is the number of complete £200 slices above £60,000, capped at 100%. The resulting share of Child Benefit is then rounded down to a whole pound. The calculator asks for both inputs because adjusted net income is not gross salary or household income and cannot be reconstructed safely from the ordinary income boxes.
The percentile comparison, and the four things it is not
The optional panel at the foot of the breakdown places the total income on this page against HMRC’s published percentile points for the total income of UK taxpayers. It is off unless you ask for it, it is deliberately at the bottom rather than beside the headline, and it changes no figure above it — a percentile explains nothing about a tax liability and is not evidence about one.
Four qualifications travel with it, and each one moves the answer in a knowable direction.
- The population is taxpayers, not adults. HMRC’s table covers only individuals with some liability to Income Tax, so everybody whose income falls below the personal allowance is absent — and all of them at the bottom. Any position it reports is therefore lower than the same income’s position among the population.
- The year is not this year. The Survey of Personal Incomes runs about three tax years behind, in the money of a year when wages and prices were both lower. Nothing here brings the figures forward: an uprated percentile point would be this site’s estimate wearing HMRC’s authority, and no published deflator for a distribution exists.
- “Total income” is not earnings. It is everything subject to tax — pay, pension, rent, interest, dividends — which is why the panel compares the page’s total income and not the earnings box.
- It is one individual, not a household. Two people each at the middle of the table are each at the middle, and their household is not.
The table stops at the 99th point and this page does not extend it: an income above that is reported as above the table rather than as a hundredth percentile that HMRC does not publish. And no figure here is phrased as a judgement — a percentile is a position in a distribution, not a verdict about a person, and the panel says how many taxpayers in a hundred were at or below the figure and stops there.
Sources
- HMRC — Table 3.1a: percentile points from 1 to 99 for total income before and after taxThe optional percentile panel only. The population is UK taxpayers rather than all adults, the survey year runs about three tax years behind, and no figure from it is used in any calculation on this page.
- gov.uk — Income tax rates and allowances: current and pastThe personal allowance, its taper, and the band thresholds for England, Wales and Northern Ireland.
- gov.uk — Income tax rates and Personal AllowancesThe public-facing table, which states every threshold in gross income. The tables on the calculator are converted to match it.
- gov.scot — Scottish income tax rates and bandsThe published page still titles its table “Proposed Bands”. The bands are in force: the Scottish Parliament agreed the Scottish Rate Resolution, motion S6M-20844, on 19 February 2026, and the resolution is the legal authority for the figures used here.
- gov.uk — Tax on savings interestThe starting rate for savings and the personal savings allowance, including that the allowance depends on the band the taxpayer reaches.
- gov.uk — Tax on dividendsThe dividend allowance and the dividend rates, which are UK-wide and are not devolved.
- gov.uk — High Income Child Benefit ChargeCited for the High Income Child Benefit Charge inputs, thresholds and statutory calculation used by this calculator.
The rates, thresholds and allowances used by this calculator were verified against gov.uk on . That covers the published rates, thresholds and allowances this page calculates with. It does not verify any figure the page produces for you: that is arithmetic on verified inputs. Parts of the engine behind it are checked against HMRC’s own published worked examples, which tests the method on a small number of scenarios rather than your answer, and most of the test suite derives its expected values by hand. That check was carried out automatically and no named person has signed it off yet.
| Figures covered | Verified on | Verified by | Human sign-off |
|---|---|---|---|
| 2025-26 | 2026-08-12 | Automated verification (Claude Opus 5) | not yet signed off |
| 2026-27 | 2026-08-12 | Automated verification (Claude Opus 5) | not yet signed off |
| 2020-21 to 2024-25 — pension annual allowance only | 2026-08-12 | Automated verification (Claude Opus 5) | not yet signed off |
| 2025-26 and 2026-27 — share identification window only | 2026-08-13 | Automated verification (Claude Opus 5) | not yet signed off |
| 2025-26 and 2026-27 — pension relief at source only | 2026-08-13 | Automated verification (Claude Opus 5) | not yet signed off |
| 2025-26 and 2026-27 — inheritance tax only | 2026-08-13 | Automated verification (Claude Opus 5) | not yet signed off |
| 2025-26 and 2026-27 — family tax, LISA and pension-access additions | 2026-08-13 | Automated verification (Codex) | not yet signed off |
| 2025-26 and 2026-27 — student loan deductions only | 2026-08-18 | Automated verification (Claude Opus 5) | not yet signed off |
| 2025-26 and 2026-27 — property acquisition tax only | 2026-08-18 | Automated verification (Claude Opus 5) | not yet signed off |
| 2025-26 and 2026-27 — automatic enrolment only | 2026-08-18 | Automated verification (Claude Opus 5) | not yet signed off |
| 2025-26 and 2026-27 — State Pension age and rates only | 2026-08-18 | Automated verification (Claude Opus 5) | not yet signed off |
The log covers the rules directory, not only this calculator. 8 rows are deliberately narrow — 2020-21 to 2024-25 — pension annual allowance only; 2025-26 and 2026-27 — share identification window only; 2025-26 and 2026-27 — pension relief at source only; 2025-26 and 2026-27 — inheritance tax only; 2025-26 and 2026-27 — student loan deductions only; 2025-26 and 2026-27 — property acquisition tax only; 2025-26 and 2026-27 — automatic enrolment only; 2025-26 and 2026-27 — State Pension age and rates only — and they verify the figures named there and nothing else. Those tax years are not modelled by any calculator on this site: the years this page can compute are the ones its tax-year selector offers, and no others.
A verification goes stale the moment one of its sources is updated past the date above. If a source below carries a later date than this stamp, trust the source.
Rates, thresholds and allowances on this page are taken from material published by HM Revenue & Customs and the Scottish Government. Contains public sector information licensed under the Open Government Licence v3.0.
Five things this calculation does not model, stated here rather than buried
- National Insurance, so this is not take-home pay. It is charged on a different base — employment earnings or self-employed profits, not total income, and nothing at all on savings interest or dividends — so a single combined figure under three income boxes would apply to part of one of them with no honest caption. The related calculators list links the page that does it.
- Pension contributions and Gift Aid. Relief at source works by extending the basic-rate band so that income which would have met the higher rate meets the basic rate instead. This calculator takes no contribution and applies no band extension — the claim is about this page rather than about the package, which is the honest scope: what
tax-corecan express is a moving target, and a page that describes its own behaviour does not go stale when the package grows. So anyone contributing is shown more income tax here than they will owe, with no correction to apply on the page. Both reliefs also reduce the income the allowance taper is measured against, which is where the omission matters most — and a calculator built around a contribution rather than around income is the place to model that. - Student loan repayments and tax codes. Repayments are collected alongside income tax at a percentage of income above a plan-specific threshold and are not modelled. A tax code carrying a benefit in kind, an underpayment, a marriage allowance transfer or a blind person’s allowance changes the allowance the whole calculation rests on.
- Anything outside the three boxes. No capital gains — a separate tax with its own rates and its own annual exempt amount, and its own calculator here. No rental profit worked out for you, no trading or property allowance, no rent-a-room relief, no foreign income, no state pension lump sum, no benefits in kind, no reliefs claimed on a return.
- Anything before or after the years offered. The tax-year selector lists exactly the years this software has rules files for, and no others. The verification log above covers the rules directory, not this page alone.