Every figure on this site comes out of a tax engine that applies HMRC's published rules for the 2026/27tax year to whatever you typed in. There's no AI guessing in the loop. This page covers where the rates come from, when they're reviewed, how they're tested, and the defaults the engine assumes when you don't specify.
Where the numbers come from
Every band, threshold, allowance and rate is taken straight from the relevant UK government page. The big ones are listed below; each calculator also shows the specific sources it relies on in its "Sources & last reviewed" panel.
- HMRC: Income tax rates and personal allowances
- HMRC: National Insurance rates
- HMRC: Dividend tax rates
- HMRC: Capital Gains Tax rates
- HMRC: Stamp Duty Land Tax
- Revenue Scotland: LBTT
- Welsh Revenue Authority: LTT
- HMRC: Inheritance Tax
- GOV.UK: Student loan repayment plans
- HMRC: High Income Child Benefit Charge
How rates stay current
The engine gets a full sweep against the official pages whenever a Budget or HMRC announcement could change something. The last full sweep was May 2026. Three dates in the year are non-negotiable:
- 6 April, the start of the new tax year. Bands, NI thresholds, dividend allowances, ISA limits and CGT allowances are all rechecked.
- Spring Statement (usually March). Most years it doesn't change a rate, but it gets read carefully anyway.
- Autumn Budget (usually late October or November). The big one. Most of the next April's changes are announced here.
Every change is listed on the changelog with the date it took effect.
How calculations are tested
The tax engine is a separate npm package (@afterax/tax-engine) with its own test suite. There are three kinds of tests:
- Worked-example fixtures. Specific inputs (salaries, capital gains, dividend mixes, property prices) with results worked out by hand. The nasty edge cases get the most attention: the £100k personal-allowance taper, the Scottish higher-rate band, the £2m IHT residence nil-rate band taper, dividend stacking on top of salary.
- Cross-checks against GOV.UK's own examples.Where HMRC publish a worked example on a guidance page, those exact inputs become a test case. Any drift between the engine's output and HMRC's example fails the build.
- Regression tests. Once a calculation is verified, its inputs and expected output stay in the suite forever. If a future change to the engine breaks a historical case, the build fails before anything ships.
Defaults the engine assumes
When you don't set something explicitly, the engine has to assume something. The defaults below match the most common UK employee:
- Standard tax code 1257L unless the calculator exposes a tax-code field.
- NI letter A (the default for most employees under State Pension age).
- The full personal allowance applies when income is under £100,000; the published taper applies above.
- Pension contributions are treated as relief at source by default; salary-sacrifice mode is opt-in on calculators that support it.
- Student loan plans and postgraduate loans are off by default; you choose the plan.
- Region defaults to England, Wales & Northern Ireland; Scotland is one click away.
- Calculations are for a full tax year. Mid-year starters or leavers will see different real-world figures because PAYE codes apply on a cumulative basis.
What the engine doesn't handle
The published rates are modelled accurately, but plenty of corners of the UK tax code are deliberately out of scope:
- Benefits in kind, beyond the BIK fields on the calculators that have them.
- The pension annual allowance taper for very high earners (above £260,000 adjusted income).
- Non-UK residency, split-year treatment, the remittance basis.
- Trust taxation, partnership returns, and most non-standard Self Assessment cases.
- Past tax years. The engine only models 2026/27.
If you're in any of these, treat the number as a starting point. A qualified accountant or HMRC's own tool is the right source of truth before you file or commit to anything.
Privacy
The tax engine runs in your browser. Whatever you type stays on your device; no salary, gain or estate value is ever sent to a server. The only network requests Afterax makes are anonymous pageview analytics and, if you choose to use the "email me a copy" button, the email address you type into that form. The full picture is on the Privacy page.
Reporting an error
Spotting a wrong figure or an outdated rate is genuinely useful. The point of all of this is for the numbers to be right. Drop a note via the form on the About pageand you'll get a reply from me.