Tax codes
D0 and D1 tax codes explained — 40% & 45%
What D0 and D1 tax codes mean, when they're correct (second jobs, pensions), when they're errors costing you money, Scotland's S D0/S D1 variants, and how to fix them free.
D0 and D1 are the UK's "flat tax" codes: every pound from that income source is taxed at 40% or 45% respectively, with zero Personal Allowance applied. Sometimes they're exactly right. Sometimes they're a payroll accident quietly taking hundreds a month too much. This guide separates the two.
The codes, defined
| Code | Meaning | When HMRC intends it |
|---|---|---|
| D0 | All income from this source taxed at the higher rate — 40% | Your allowance and your basic-rate band are already used by a bigger income |
| D1 | All income from this source taxed at the additional rate — 45% | Your income elsewhere already crosses £125,140 |
In Scotland the same letters pair with the S prefix — S D0 means 42% on everything (the Scottish higher rate), S D1 means 48% (the Scottish top rate). Flat as the day is long: no allowance, no lower bands, just one rate from pound one.
When D0 and D1 are legitimately correct
Three situations where the codes earn their keep:
- A genuine second income sitting on top of a main job that already uses your £12,570 allowance and your £37,700 basic-rate band — the second job's every pound falls in the 40% (or 45%) zone anyway, so taxing it flat is accurate, not punitive
- A pension drawn alongside work — same logic: total income is what matters, and the pension source is flat-coded to tax the overlap correctly
- Very high earners where HMRC flat-codes secondary sources at 45% because every pound genuinely is additional-rate
The giveaway of correctness: your other income already exceeds £50,270 (for D0) or £125,140 (for D1).
When D0 or D1 is an expensive mistake
The main-job misfire is the classic. You leave one job, the income stops in month four, but the code — or a duplicate employment record — lingers in HMRC's data. Your only remaining job gets D0: "everything else must be using the allowance already." Except nothing else exists. You spend months paying 40% on income your own £12,570 and 20% band should be eating; each £3,000 payslip gives HMRC £1,200 instead of about £486. That's roughly £700 a month in overpayments — usually recovered only when someone notices.
Red flags worth acting on this week:
- D0 or D1 on your main or only job — almost never correct
- D0 after leaving a second job — the ghost income never got closed
- D0 appearing with total income clearly under £50,270 — the higher rate can't even apply
- D1 for anyone outside the £125,140+ club
Run the code through the tax code checker for a plain-English verdict in seconds; if it flags, the fix below takes longer to read than to do.
Fixing a wrong D0/D1 — the free route
- Personal Tax Account (or HMRC app) → Income Tax → your tax code breakdown: you can see, and remove, the phantom employment or wrong estimate sitting behind the flat code
- HMRC Income Tax helpline — a five-minute call fixes it where online doesn't; have your NI number and P60
- The corrected code reaches your employer automatically within days, and the over-collected tax washes back through payroll on the next payslip or two — you don't claim it, it flows back
Had a wrong flat code in an earlier tax year? The P800 reconciliation recovers it — or claim directly via the free refund route. Years back to 2021-22 are still open in the four-year window.
D0-correct people: one thing to check anyway
If D0 is right for your second income but your combined total will actually clear £125,140 this year, part of that second income is technically 45% money — a small underpayment to expect in your P800. Forecasting it with the income tax calculator on your combined figure turns an autumn surprise into a planned-for line item. The reverse is true too: collapse of the main job mid-year can turn a correct D0 into an overpayment the year-end reconciliation repays.
Either way, the code is a prediction — and predictions are exactly what a good estimate exists to beat.
Do the numbers
Tax code checker calculator
Decode any UK tax code — 1257L, BR, D0, K, S/C prefixes, W1/M1 emergencies — see the allowance it implies and the warning signs of an error.
Open the free calculatorFree, on your device, with the working shown. Not affiliated with HMRC.