On this pageShow
- 1. Scope
- 2. Tax-year parameters
- 3. What counts as a disposal, and what does not
- 4. Matching rules (which tokens you sold)
- 5. Allowable costs and fees
- 6. Valuation in pounds
- 7. Losses, the annual exempt amount and the tax
- 8. Income
- 9. Rounding and precision
- 10. Do you need to report?
- 11. Records and what the report contains
- 12. Limitations
- 13. Review
This page sets out exactly how CryptoTaxCheck turns your exchange exports into Capital Gains Tax and Income Tax figures. Every rule below comes from GOV.UK guidance or HMRC's Cryptoassets Manual, linked in the Sources list, and every rate and allowance is shown with the page it came from. Where we make a choice that HMRC's guidance leaves open — for example, which price source to use — we say what we chose and why. Where we do not calculate something, we say that too. It is information about the calculator, not tax advice, and the results depend on the completeness of the data you provide.
1. Scope
The calculator is for individuals who are UK resident for the whole tax year and hold cryptoassets as personal investments. It covers tax years 2019/20 to 2026/27. It does not cover trading as a business (CRYPTO20250), companies, non-UK residents or split-year residence, or crypto received as employment income — those need an adviser, and the calculator says so. DeFi lending and liquidity pools, NFTs and margin or futures are detected, flagged and excluded from every total (see section 12).
2. Tax-year parameters
Each tax year runs from 6 April to 5 April. We use the following figures, verified against GOV.UK on 27 September 2026.
| Tax year | CGT annual exempt amount | CGT rates (basic / higher) | Basic rate band | Personal Allowance |
|---|---|---|---|---|
| 2019/20 | £12,000 | 10% / 20% | £37,500 | £12,500 |
| 2020/21 | £12,300 | 10% / 20% | £37,500 | £12,500 |
| 2021/22 | £12,300 | 10% / 20% | £37,700 | £12,570 |
| 2022/23 | £12,300 | 10% / 20% | £37,700 | £12,570 |
| 2023/24 | £6,000 | 10% / 20% | £37,700 | £12,570 |
| 2024/25 | £3,000 | 10% / 20% for disposals 6 April to 29 October 2024; 18% / 24% from 30 October 2024 | £37,700 | £12,570 |
| 2025/26 | £3,000 | 18% / 24% | £37,700 | £12,570 |
| 2026/27 | £3,000 | 18% / 24% | £37,700 | £12,570 |
Sources: GOV.UK's Capital Gains Tax rates and allowances page (rates for each period and the annual exempt amount from 2021/22), the tax information and impact notes for the 2019/20 and 2020/21 annual exempt amounts, GOV.UK's Income Tax rates and allowances page (2023/24 onwards), and the policy papers setting the Personal Allowance and basic rate limit for 2019/20 to 2020/21 and 2022/23 to 2025/26. The Personal Allowance is reduced by £1 for every £2 of adjusted net income over £100,000; the calculator applies this taper when you enter gross income, or you can enter taxable income directly. The exact figures live in the engine's configuration (packages/engine/src/config/taxYears.ts), each with the GOV.UK page it was verified against, and a test fails if any figure changes without a matching source note.
3. What counts as a disposal, and what does not
Following HMRC's Cryptoassets Manual (CRYPTO22100) and GOV.UK's guidance on selling and receiving cryptoassets:
| Event | Treatment |
|---|---|
| Sell for fiat (GBP, USD, EUR…) | Disposal at the sterling proceeds. |
| Swap crypto for crypto (including stablecoins) | Disposal of the asset given up and acquisition of the asset received, both at the trade's sterling market value. |
| Spend on goods or services | Disposal at the sterling value of what was bought. |
| Gift to anyone other than a spouse or civil partner | Disposal at market value. |
| Gift to a spouse or civil partner | No gain / no loss: the tokens leave your pool at their allowable cost and your spouse takes over that cost. Flagged for review. |
| Fee paid in crypto | A small disposal of the fee asset at market value (CRYPTO22280), and an allowable cost of the transaction it belongs to. |
| Buy with GBP | Acquisition; not a disposal. |
| Move between your own wallets or exchanges | Not a disposal (no change of beneficial ownership). Any network fee paid in crypto is a small disposal. |
| Staking, mining, lending interest, rewards | Income, at sterling market value when received (CRYPTO21150, CRYPTO21200). The tokens then enter your pool with that value as their cost. |
| Airdrops | Income at market value by default and flagged: if you received them without doing anything in return they may not be income (CRYPTO21250) — relabel as a gift received. Always an acquisition (CRYPTO22350). |
| Gift received | Acquisition at market value on the day. If it came from a spouse or civil partner, use their original cost instead (flagged). |
| Opening balance | Tokens you already held before your records start: entered with their total allowable cost and placed straight into the pool. |
Buying or selling foreign currency itself is ignored (fiat is out of scope).
Out of scope, flagged and excluded from totals: DeFi lending and liquidity pool positions, NFTs, and margin or futures. HMRC's DeFi guidance (CRYPTO61000 onwards) makes the treatment depend on each protocol's terms; draft legislation announced on 13 July 2026 would change the position from 6 April 2027 but not for earlier years. We detect these transactions, show a clear warning and leave them out of the figures.
4. Matching rules (which tokens you sold)
Per asset, each disposal is matched in HMRC's order (TCGA 1992 ss.104–106A; CRYPTO22200 and the worked examples CRYPTO22251–22257; HS284 for shares):
- Same-day rule. All acquisitions of that asset on the same UK calendar date are one acquisition and all disposals that day are one disposal. The disposal is matched against same-day acquisitions first.
- 30-day ("bed and breakfast") rule. Any remaining quantity is matched against acquisitions of the same asset in the 30 days after the disposal (day +1 to day +30 inclusive), earliest acquisition first. An acquisition is matched to the earliest disposal that can still use it.
- Section 104 pool. The rest comes out of the pool at average cost: pool cost × quantity disposed ÷ pool quantity.
Acquisitions matched under rules 1 or 2 never enter the pool — only their unmatched remainder does, on the day it happened. Because rule 2 looks forward in time, the engine makes three passes over each asset's history: it nets each day (rule 1), then walks the disposals in date order consuming the following 30 days' unmatched acquisitions (rule 2), and only then replays the pool chronologically (rule 3). Opening balances go directly into the pool and are not matched under rules 1–2.
HMRC treats same-day disposals of an asset as one disposal, so the calculator reports one disposal per asset per UK day (listing the underlying transactions) and counts disposals that way on the SA108. Every disposal shows the same-day, 30-day and pool parts, the acquisitions they were matched to, and the pool before and after.
Dates are UK calendar dates in the Europe/London time zone. A trade stamped 23:30 UTC on 10 June is 00:30 BST on 11 June and is treated as 11 June. The 30-day window is not limited by the tax year: a purchase in late April can be matched to a sale in the previous tax year.
If a disposal exceeds what your records show you held, the calculation is blocked for that asset and you are asked for the missing history or an opening balance. Differences smaller than 0.00000001 of a unit are treated as rounding dust.
Our engine's test suite reproduces GOV.UK's pooling example, GOV.UK's rate example, HMRC's worked examples at CRYPTO22251 to CRYPTO22257, and the share-matching examples in HS284, alongside our own multi-year worked example that appears throughout our guides.
5. Allowable costs and fees
Allowable costs follow TCGA 1992 s.38 and CRYPTO22150: the sterling paid for the tokens, transaction fees, and costs of valuation. Mining equipment and electricity are not allowable for Capital Gains Tax.
- A fee in sterling on a purchase is added to the cost of the tokens; on a sale, spend or gift it is deducted from the proceeds.
- A fee on a swap relates to both legs; HMRC accepts a 50/50 split (CRYPTO22150), so half reduces the proceeds of the asset given up and half is added to the cost of the asset received.
- A fee paid in crypto is valued in sterling using the transaction's own implied price when it is paid in one of the traded assets, or a value you supply otherwise. It is allowed as a cost as above and is also a disposal of the fee asset in its own right. When the fee asset is the one being disposed of on the same day, the same-day rule combines them into one computation, exactly as HMRC's example (CRYPTO22280).
- A fee on a transfer between your own wallets is a disposal of the fee asset but is not an allowable cost of anything.
- A fee that cannot be valued is left out and flagged.
6. Valuation in pounds
HMRC requires every transaction to be valued in pounds sterling using a reasonable, consistent methodology, with details kept (CRYPTO23000). Every transaction carries one sterling value and a record of where it came from:
| Source | Meaning |
|---|---|
exchange | The sterling value in the exchange's own export (preferred). |
fx_converted | A trade in another fiat currency converted to sterling using HMRC's published monthly exchange rates, applied consistently. |
price_api | A historical daily sterling price from the price service (CoinGecko by default) for the asset and date — the closing price, snapshotted at 00:00 UTC after the UK day ends. |
user | A value you entered where none could be found; listed in your report's assumptions. |
Swaps use that single value for both the disposal of the asset given up and the acquisition of the asset received (the two sides of a market trade have the same value). We value each swap once, preferring the side with the more reliable sterling price (a stablecoin, then BTC or ETH, then the asset given up), and record which side was used. Only asset symbols and dates are ever sent to the price service; amounts, files and identities never leave your device. Prices are cached on our server so the same coin and date always returns the same value. The report includes a valuation-method section and the source of every value, so that you can evidence a consistent method if HMRC asks.
Valuation method (as quoted in the report)
Every transaction is valued in pounds sterling using one consistent order of preference. (1) Where the exchange export already states a sterling value, that value is used. (2) Where the transaction is priced in another fiat currency (for example US dollars or euros), it is converted to sterling using HMRC's published monthly exchange rates: the table for the calendar month containing the transaction date (Europe/London), applied as sterling = amount ÷ (units of the currency per £1). (3) Where no sterling or fiat value is available, the asset is valued at its daily sterling closing price from CoinGecko's aggregated market data — the price snapshot taken at 00:00 UTC immediately after the UK calendar day ends — for that asset on that date. (4) Where none of these can supply a value, the transaction is flagged and the value the user enters is used and marked as user-supplied. Each value in the report records which of these sources it came from. Prices are cached once retrieved and re-used unchanged so the same asset and date always receives the same value.
HMRC's monthly rates are published on GOV.UK under Exchange rates for customs and VAT (the UK Trade Tariff service from January 2021; HMRC's archived XML files up to December 2020). The monthly rate is used for every foreign-currency amount in a report, including fees. The same text lives in code as VALUATION_METHOD_STATEMENT (packages/prices/src/contract.ts) so the report and this page cannot drift apart.
7. Losses, the annual exempt amount and the tax
Per tax year (6 April – 5 April), following GOV.UK's guidance on losses and rates:
- Gains and losses are worked out per disposal. Losses of the year are set against gains of the year in full (this is mandatory, even if it wastes the allowance). Any excess loss carries forward.
- Brought-forward losses are used only to bring the remaining gains down to the annual exempt amount; the unused balance carries forward. Losses the calculator works out for one requested year flow into the next requested year automatically; losses from years not covered can be entered separately, and must have been claimed.
- The annual exempt amount for the year comes off (£12,000 for 2019/20; £12,300 for 2020/21–2022/23; £6,000 for 2023/24; £3,000 from 2024/25).
- What is left is stacked on top of your taxable income. The part within the remaining basic rate band is taxed at the lower rate (10% to 29 October 2024, 18% from 30 October 2024); the rest at the higher rate (20% / 24%). The basic rate band is £37,500 for 2019/20 and 2020/21 and £37,700 from 2021/22.
Losses must be claimed within 4 years of the end of the tax year they arose in; the calculator warns when a year's losses are past or close to that deadline. If tokens you still hold have become worthless, a negligible value claim (CRYPTO22500) can crystallise a loss; the calculator does not make or model that claim — if you have made one, add the deemed disposal as a manual transaction at nil value.
Taxable income can be entered directly, or as gross income, in which case the Personal Allowance (£12,500 for 2019/20–2020/21, £12,570 from 2021/22) is deducted after tapering it by £1 for every £2 of income over £100,000. Crypto income computed by the calculator is added to your income for this purpose.
The 2024/25 mid-year change
For 2024/25 the rates changed on 30 October 2024, so gains are worked out separately for 6 April – 29 October 2024 (10% / 20%) and 30 October 2024 – 5 April 2025 (18% / 24%). HMRC's SA108 notes for 2024/25 (pages CGN 12–13) confirm that the annual exempt amount, losses and unused basic rate band "can be set against gains in the order you choose", and give the most beneficial order, which the calculator applies:
- losses and the annual exempt amount are set against the gains taxed at the highest rates first (the 18% / 24% period before the 10% / 20% period);
- the unused basic rate band is set against the gains with the greatest difference between their two rates first (the 10% / 20% period before the 18% / 24% period).
Scottish and Welsh taxpayers
Capital Gains Tax is not devolved. When working out how much basic rate band is left for gains, the law assumes the individual is not a Scottish or Welsh taxpayer (TCGA 1992 s.1J(6); HMRC Capital Gains Manual CG21204: "it is assumed the individual is not a Scottish or Welsh taxpayer"). The calculator therefore uses the UK-wide Personal Allowance and basic rate band for everyone, whatever rates of Income Tax you pay. The "Scottish taxpayer" box is informational only: it changes nothing in the computation, and the calculator does not work out Income Tax (see section 8).
8. Income
Staking, mining, lending interest and rewards are miscellaneous income at their sterling value on receipt (CRYPTO21150 onwards). The calculator totals this per tax year and by type, shows it separately from capital gains, and notes that the £1,000 trading and miscellaneous income allowance may cover small amounts. It does not work out Income Tax; it flags that the income probably needs reporting.
9. Rounding and precision
Full precision is kept throughout (decimal arithmetic, never floating point). Figures are rounded only:
- for display — nearest pound, estimated tax to the penny;
- for HMRC form boxes — whole pounds, in your favour: proceeds and gains rounded down, costs and losses rounded up, as HMRC's Self Assessment guidance allows.
HMRC's own worked examples round intermediate figures to whole pounds, so the calculator's exact figures can differ from the manual's by up to £1; the golden tests check both.
10. Do you need to report?
The calculator says you must report a tax year when gains after losses exceed the annual exempt amount, or you are in Self Assessment and your total proceeds exceed £50,000 (2023/24 onwards; 4 × the allowance before). It recommends reporting when you have losses to claim, and flags crypto income above the £1,000 trading and miscellaneous income allowance as probably needing reporting (GOV.UK says to contact HMRC between £1,000 and £2,500 and to register for Self Assessment above £2,500).
It explains the routes: the Cryptoassets section of the SA108 (boxes 13.1–13.8, on returns from 2024/25; "Other property, assets and gains", boxes 14–22, on earlier returns), due 31 January after the tax year; the real time Capital Gains Tax service (report by 31 December after the tax year, if you are not in Self Assessment); and HMRC's Cryptoasset Disclosure Service for earlier unreported years. The report maps your figures to the SA108 cryptoasset boxes as printed on the current form and notes.
11. Records and what the report contains
HMRC expects you to keep your own records of every transaction (CRYPTO10400). The paid report is designed to be that record: a summary per tax year; SA108 cryptoasset-section values; a disposal schedule with each disposal's same-day, 30-day and pool breakdown; a section 104 pool statement per asset; an income schedule; transfers treated as non-taxable; flagged or excluded items and what you confirmed; the valuation method and price sources; an import log of file names, row counts and date ranges; assumptions and limitations; a glossary; and a disclaimer.
12. Limitations
- Out of scope and excluded from totals with a warning: DeFi lending and liquidity pools, NFTs, margin and futures. Draft "no gain, no loss" DeFi rules are intended to apply from 6 April 2027 only.
- Not covered: business/trading treatment, companies, non-residents, split-year residence, employment income in crypto, negligible value claims, blockchain forks (CRYPTO22300 — costs must be split on a just and reasonable basis), lost keys and fraud (CRYPTO22400–22450), connected-party rules other than spouse transfers, remittance basis and the foreign income and gains regime.
- Airdrop treatment depends on facts the calculator cannot know; it defaults to income and asks you to confirm.
- HMRC's example of a crypto-to-crypto exchange (CRYPTO22257) values each side separately; the calculator uses one value per swap, which is the same thing whenever both sides are valued at the same market price.
- We rely on your exports being complete. A disposal with no prior acquisition (a negative balance) is blocked until you add the missing history or an opening balance.
- Transfer matching between your own accounts is proposed automatically (same asset, equal amounts after network fee, within 48 hours) but must be confirmed by you.
- Our launch import set is Coinbase, Kraken, Binance, Crypto.com App and Revolut, plus a universal CSV template. Unknown formats are rejected with a message rather than guessed.
- The estimate of tax assumes the rest of your income is as you entered it and that no other reliefs apply.
- Rates, allowances and HMRC guidance change. This page shows when it was last reviewed.
13. Review
The engine's test cases and this methodology are due to be reviewed by a named, qualified UK tax professional before launch; their details will appear on our about page and here.
Sources
- GOV.UK — Check if you need to pay tax when you sell cryptoassetsGOV.UK
- GOV.UK — Check if you need to pay tax when you receive cryptoassetsGOV.UK
- GOV.UK — Capital Gains Tax rates and allowancesGOV.UK
- GOV.UK — Capital Gains Tax ratesGOV.UK
- GOV.UK — Capital Gains Tax: annual exempt amount for tax year 2019-20GOV.UK
- GOV.UK — Changes to the annual exempt amount for Capital Gains Tax for 2020 to 2021GOV.UK
- GOV.UK — Income Tax rates and allowances for current and previous tax yearsGOV.UK
- GOV.UK — Income Tax: Personal Allowance and basic rate limit from 2019-20GOV.UK
- GOV.UK — Income Tax Personal Allowance and the basic rate limit from 6 April 2022 to 5 April 2026GOV.UK
- GOV.UK — Capital Gains Tax: if you make a lossGOV.UK
- GOV.UK — Capital Gains Tax: work out if you need to payGOV.UK
- GOV.UK — Capital Gains Tax: gifts to your spouse or charityGOV.UK
- GOV.UK — Tax-free allowances on property and trading incomeGOV.UK
- GOV.UK — Report and pay your Capital Gains Tax: if you have other capital gains to reportGOV.UK
- GOV.UK — Self Assessment: Capital gains summary (SA108)GOV.UK
- GOV.UK — HS284 Shares and Capital Gains Tax (2026)GOV.UK
- GOV.UK / HMRC — Monthly currency exchange ratestrade-tariff.service.gov.uk
- GOV.UK — Exchange rates for customs and VAT (collection)GOV.UK
- legislation.gov.uk — TCGA 1992 s.1I (rates of Capital Gains Tax)legislation.gov.uk
- HMRC Capital Gains Manual — CG21204: rates of tax, available basic rate bandGOV.UK
- HMRC Cryptoassets Manual — CRYPTO20050: which taxes applyGOV.UK
- HMRC Cryptoassets Manual — CRYPTO20250: what is tradingGOV.UK
- HMRC Cryptoassets Manual — CRYPTO21150: miningGOV.UK
- HMRC Cryptoassets Manual — CRYPTO21200: stakingGOV.UK
- HMRC Cryptoassets Manual — CRYPTO21250: airdropsGOV.UK
- HMRC Cryptoassets Manual — CRYPTO22100: what is a disposalGOV.UK
- HMRC Cryptoassets Manual — CRYPTO22150: allowable expensesGOV.UK
- HMRC Cryptoassets Manual — CRYPTO22200: poolingGOV.UK
- HMRC Cryptoassets Manual — CRYPTO22250: pooling examplesGOV.UK
- HMRC Cryptoassets Manual — CRYPTO22280: fees satisfied in tokensGOV.UK
- HMRC Cryptoassets Manual — CRYPTO22350: airdrops (Capital Gains Tax)GOV.UK
- HMRC Cryptoassets Manual — CRYPTO22300: blockchain forksGOV.UK
- HMRC Cryptoassets Manual — CRYPTO22400: losing public and private keysGOV.UK
- HMRC Cryptoassets Manual — CRYPTO22500: S24 and negligible valueGOV.UK
- HMRC Cryptoassets Manual — CRYPTO23000: valuationGOV.UK
- HMRC Cryptoassets Manual — CRYPTO10400: record keepingGOV.UK
- HMRC Cryptoassets Manual — CRYPTO61000: Decentralised Finance, lending and stakingGOV.UK
- GOV.UK — Tax treatment of cryptoasset loans and liquidity pools (draft measure, 13 July 2026)GOV.UK
- GOV.UK — Taxation of stablecoins (draft measure, 13 July 2026)GOV.UK
Written by Andrew Pickett
Founder of CryptoTaxCheck. Every guide cites GOV.UK and the HMRC Cryptoassets Manual, uses figures consistent with the calculator’s golden tests, and shows when it was last reviewed. An independent, qualified UK tax reviewer will be credited here once confirmed.
Last reviewed About CryptoTaxCheckHow the calculation works
Related reading
- GuideSection 104 Pool for Crypto: Same-Day and 30-Day RulesHow HMRC's section 104 pool, same-day rule and 30-day bed and breakfasting rule work for crypto, with step-by-step worked examples and pool tables.Read
- GuideCapital Gains Tax on Crypto UK: Rates, Allowance, ExamplesUK Capital Gains Tax on crypto for 2025/26: the 18% and 24% rates, the £3,000 allowance, how to work out your rate, losses and worked examples.Read
- GuideStaking Tax UK: How HMRC Taxes Staking, Mining and AirdropsHow staking rewards, mining, lending interest and airdrops are taxed in the UK: Income Tax on receipt, the £1,000 allowance, then CGT when you sell.Read
- ReadDisclaimer — CryptoTaxCheckCryptoTaxCheck is an information and calculation tool, not personal tax advice. You are responsible for your return. We are independent of HMRC.Read
This is general information, not personal tax advice. You are responsible for your own return; if your situation is complex, speak to a qualified adviser. See our disclaimer.