Method ledger
rates verified 24 Jul 2026 · next refresh after Autumn Statement
Direct answer
We cite. We date. We update. Every numeric claim on taxbands.co.uk carries an inline source tick that links to the primary source. The ledger below lists every cited source with its retrieval date29. The updated log records every edit by date.
The convention
- SourceTick – a small superscript that links to a primary source (HMRC, VOA, OBR, SAA, Scottish Government, Welsh Government, HMT, LGA, IFS, MHCLG).
- VintageStamp – every page with figures carries a "rates verified DD MMM YYYY · next refresh after [event]" stamp.
- Updated log – public changelog at /updated records each numeric edit by date.
The ledger
| ID | Source | Publisher |
|---|---|---|
| govuk_income | Income Tax rates and Personal Allowances | GOV.UK / HMRC |
| govuk_council | Council Tax: how to find your band | GOV.UK / VOA |
| govuk_rates_2627 | Rates and thresholds for employers 2026-27 | GOV.UK / HMRC |
| govuk_rates_2526 | Rates and thresholds for employers 2025-26 | GOV.UK / HMRC |
| govuk_over_100k | Income over £100,000 | GOV.UK / HMRC |
| govuk_dividends | Tax on dividends | GOV.UK / HMRC |
| govuk_savings | Tax-free interest on savings | GOV.UK / HMRC |
| govuk_cgt | CGT rates | GOV.UK / HMRC |
| govuk_badr | Business Asset Disposal Relief | GOV.UK / HMRC |
| govuk_ni | National Insurance rates and categories | GOV.UK / HMRC |
| scot_rates | Scottish income tax rates | mygov.scot |
| scot_budget_2627 | Scottish Budget 2026 to 2027 | Scottish Government |
| wales_council | Welsh council tax bands and rates | Welsh Government |
| voa_check | Check your Council Tax band | VOA / HMRC Digital |
| obr_efo_2603 | EFO March 2026 | OBR |
| lga_ct | LGA council tax 2026-27 | LGA |
How the calculator is tested
The UnifiedBandResolver engine (src/lib/calculate.ts) computes income tax band-by-band against HMRC's published worked examples. The £100k taper is unit-tested at salaries £99,999 / £100,001 / £110,000 / £125,140 / £125,141 to confirm the discontinuity is handled correctly.