Skip to content
InvestmentCalculator
All calculators

Crypto profit calculator — methodology

Why HMRC charges cryptoassets to capital gains tax rather than treating them as currency or as gambling, why a gain is stacked on income rather than charged at a rate, and why this calculator states the pooling rules instead of applying them.

Open the crypto profit calculator

The word “profit” is doing a lot of work in this page’s title, and the gap between what a reader means by it and what HMRC means by it is the whole subject. A reader means what they sold it for less what they paid. HMRC means the chargeable gain — proceeds less an allowable cost worked out under identification rules, less an annual exemption, charged at a rate that depends on income the reader has not mentioned. This calculator does the second half properly and is explicit that it does not do the first.

The calculation, in order

  1. Profit is proceeds less cost less fees. This is the only step no engine performs.
  2. Taxable income is derived through the income tax engine, never by subtracting an allowance.
  3. Deduct the annual exempt amount from the gain, once.
  4. Stack the chargeable gain on taxable income and charge each part at its own rate.
  5. A loss is a loss, and is not charged as a nil gain.
profit           = proceeds − cost − fees
chargeable       = max(0, profit − annual exempt amount)

taxable income   = income − personalAllowance(income)      ← from the tax engine
lower-rate room  = max(0, lower-rate ceiling − taxable income)
at the lower rate = min(chargeable, lower-rate room)
at the higher rate = chargeable − at the lower rate

Crypto is a chargeable asset — not currency, and not gambling

Both of the beliefs that bring people to a page like this one lead to the same conclusion, that there is nothing to declare, and both are wrong. A cryptoasset is property for tax purposes; a disposal of it is a chargeable event; and capital gains tax applies as it does to shares or to a second property.

What counts as a disposal is wider than selling. Swapping one token for another disposes of the first, charged on its sterling value at the moment of the swap even though no money moved. So does spending it, and so does giving it away to anybody other than a spouse or civil partner. Somebody who has never converted anything back to pounds can still have a substantial gain to report — which is the single most common way a liability goes unnoticed.

It is also possible for a receipt to be income rather than a gain: mining, staking rewards, airdrops received in return for doing something, and tokens paid by an employer. Those are charged to income tax — and to National Insurance where they come from employment — with a capital gains calculation only later, on disposal. This calculator applies the capital gains treatment to everything entered and has no way to ask which the reader has.

Why the identification rules are stated here and not applied

HMRC applies the same identification rules to cryptoassets that it applies to shares: a same-day rule, a thirty-day rule, and a pooled cost per token that every acquisition enters and every disposal draws from in proportion. This codebase implements those rules — they are used by the bed and ISA calculation — so the decision not to use them here is a decision rather than a gap.

  • Matching needs a transaction history: a date, a quantity and a cost for every acquisition and every disposal, in order. That is a different page with a different control and a different reader. Somebody searching for a crypto profit calculator has two numbers in mind, and a page that demands a full history instead of them answers nobody.
  • Half-doing it is worse than not doing it. A page that took a cost figure and silently treated it as a pooled cost would be applying the rules in name only — producing an answer that is wrong rather than simplified, which is exactly what the capital gains engine’s own scope note warns about.

So the limitation is scoped out the way /capital-gains-tax-on-shares-calculator scopes out the identical thing, and visibly is taken literally: it is in the hint beside the cost box and again in a callout directly above the answer — not here, where a reader who has already screenshotted the figure will never reach it.

Why a gain has no rate of its own

A chargeable gain is stacked on top of taxable income, and the part landing below the lower-rate ceiling is charged at the lower rate for gains while the rest is charged at the higher one. One gain routinely meets both — so a calculator that asks “are you a higher-rate taxpayer?” and applies a single rate cannot be right for anybody near the boundary, which is most people with a gain worth calculating.

The same £20,000.00 profit costs £4,063.80 on £50,000 of income and £4,080.00 on £80,000. Nothing about the asset differs.

The annual exempt amount is deducted from the gain and consumes no band, which is why the exempt slice never pushes the rest of a gain into the higher rate. Taxable income is derived through computeTaxPosition rather than by subtracting a personal allowance, because the allowance tapers above a threshold and a page has no business knowing that.

One call, one exemption — and no Business Asset Disposal Relief

Two known limits of the capital gains engine, and what each means here.

  • The annual exempt amount is applied per call. This page makes one call, so the figure is right for a reader whose only chargeable disposal this year is the one on screen — and running the page twice for two disposals and adding the answers deducts the exemption twice and understates the bill. Stated on the calculator, not only here.
  • The Business Asset Disposal Relief lifetime limit is not enforced by the engine, and it cannot bite on this page, because this page does not offer that relief at all. A cryptoasset is not a share in the reader’s own trading company, and offering a control that could apply to nobody would teach the wrong thing about what matters. The asset class is fixed and never asked about.

Rates and allowances

Read from the rules files this calculator runs on
Figure2025/262026/27
Annual exempt amount£3,000£3,000
Other assets — lower / higher18.00% / 24.00%18.00% / 24.00%
Taxable income at which the higher rate for gains starts£37,700£37,700
Personal allowance£12,570£12,570
Personal allowance taper starts at£100,000£100,000

Capital gains tax is not devolved. The rates, the exempt amount and the band boundary are the same across the UK; Scottish income tax bands change the taxable income a gain is stacked on and do not change which gains rate it meets. Today’s exempt amount is £3,000.

Converting a foreign-currency purchase and sale

Almost every crypto disposal a UK reader has to report was priced in dollars, and both figures this page asks for have to be in sterling. The optional panel in the breakdown converts them at the European Central Bank’s published reference rates. It writes nothing into either box and changes no figure above it: read the sterling amount and type what fits.

Every rate but the euro’s is derived by this site. The ECB quotes against the euro, so pounds per dollar is one division — (GBP per EUR) ÷ (USD per EUR) — and both original observations and the division are printed under each leg so the arithmetic can be checked against the ECB’s own figures rather than taken on trust. The euro is labelled published rather than derived, because it is.

The rate is a monthly average rather than a day’s figure. The ECB’s daily rate is a fix taken at 2.15pm central European time, and nobody’s trade happened at it — an exchange charged a spread on top of something like it, and nothing here works out what that spread was. A monthly average neither claims a precision the transaction never had nor invents one.

HMRC does not prescribe the European Central Bank. What it requires is a reasonable method applied consistently, so HMRC’s own published monthly rates, or the rate an exchange actually used, are equally acceptable — which is why each leg has a box for your own rate. What is not acceptable is picking whichever is kinder on each side of a disposal, and that is why there is one currency selector for both legs rather than a source selector on each: the consistency is structural rather than requested.

Sources

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.

The verification log, as recorded in the source repository
Figures coveredVerified onVerified byHuman sign-off
2025-262026-08-12Automated verification (Claude Opus 5)not yet signed off
2026-272026-08-12Automated verification (Claude Opus 5)not yet signed off
2020-21 to 2024-25 — pension annual allowance only2026-08-12Automated verification (Claude Opus 5)not yet signed off
2025-26 and 2026-27 — share identification window only2026-08-13Automated verification (Claude Opus 5)not yet signed off
2025-26 and 2026-27 — pension relief at source only2026-08-13Automated verification (Claude Opus 5)not yet signed off
2025-26 and 2026-27 — inheritance tax only2026-08-13Automated verification (Claude Opus 5)not yet signed off
2025-26 and 2026-27 — family tax, LISA and pension-access additions2026-08-13Automated verification (Codex)not yet signed off
2025-26 and 2026-27 — student loan deductions only2026-08-18Automated verification (Claude Opus 5)not yet signed off
2025-26 and 2026-27 — property acquisition tax only2026-08-18Automated verification (Claude Opus 5)not yet signed off
2025-26 and 2026-27 — automatic enrolment only2026-08-18Automated verification (Claude Opus 5)not yet signed off
2025-26 and 2026-27 — State Pension age and rates only2026-08-18Automated 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

  • The identification rules that decide the allowable cost. Same-day, thirty-day and pooling all apply to cryptoassets and none of them is applied here. The cost entered is the cost used, and for anybody who bought the same token more than once that is the figure most likely to be wrong.
  • More than one disposal in a year. One call, one exempt amount.
  • Receipts that are income rather than gains. Mining, staking, airdrops for a service and employment tokens are charged to income tax, and this page applies the capital gains treatment to everything it is given.
  • Losses beyond reporting one. Setting a loss against gains, carrying it forward after reporting it in time, and the way a loss set against gains reduces them before the exempt amount is applied — all outside this page.
  • Reporting. Self Assessment deadlines, the thresholds at which a return is required at all, and record keeping. This produces a figure, not a filing.

This site publishes information, not advice. It cannot know your circumstances, it does not recommend any product, provider or course of action, and nothing on it is a personal recommendation. For a decision that matters, check the figures against gov.uk or speak to an accountant or a regulated adviser.

Every calculation runs in your browser. There is no application server and no database, so nothing you type is transmitted or stored. A share link is the exception: it carries your figures in the URL.

Found an error? It belongs on the corrections log, and how to report one is on that page.