Section 104 Pool Worked Example: Five Buys, Two Sells and a Swap (Crypto, With Every Number)
A full Section 104 pool calculation for ETH across two UK tax years — fees, a partial sell at a loss, a crypto-to-crypto swap and the closing pool you carry forward. Every figure shown so you can check your own.
Most explanations of Section 104 pooling stop at "HMRC averages your cost". That is true, but it does not tell you what to do when a fee is involved, when you only sell part of the pool, or when you swap one token for another. This post walks one ETH pool through five acquisitions and three disposals, with every line of arithmetic, so you can lay your own transactions alongside it.
If you want the rules first, read Section 104 pooling for crypto: how HMRC calculates cost basis. This post is the numbers.
The rules we are applying
Three pieces of legislation drive everything below:
- TCGA 1992 s.104 — all units of the same cryptoasset you own are treated as one "pool" with a single average cost. HMRC confirms this applies to exchange tokens at CRYPTO22200.
- TCGA 1992 s.38 — the allowable cost of an asset includes what you paid for it plus the incidental costs of acquiring and disposing of it. Exchange and network fees are incidental costs (CRYPTO22150).
- TCGA 1992 s.105 and s.106A — same-day and 30-day matching rules take priority over the pool. None of the disposals in this example are re-bought within 30 days, so the pool does all the work. See the 30-day rule worked example for what changes when they do.
HS284 (HMRC's helpsheet on shares and Capital Gains Tax) sets out the same method for shares and is the format an HMRC officer will expect your workings to follow.
The transactions
One person, one token (ETH), bought on a UK exchange, held partly across two tax years. Prices are illustrative round numbers.
| Date | Action | Units | Price | Fee | Notes |
|---|---|---|---|---|---|
| 10 Jun 2024 | Buy | 2.0 ETH | £2,600 | £20 | 2024/25 |
| 15 Sep 2024 | Buy | 1.0 ETH | £1,900 | £10 | 2024/25 |
| 20 Jan 2025 | Buy | 1.5 ETH | £2,800 | £15 | 2024/25 |
| 3 Jul 2025 | Sell | 1.0 ETH | £2,300 | £12 | 2025/26 |
| 10 Oct 2025 | Swap ETH to USDC | 0.5 ETH | £3,100 | — | 2025/26 |
| 12 Dec 2025 | Buy | 1.0 ETH | £3,000 | £15 | 2025/26 |
| 2 Feb 2026 | Sell | 2.0 ETH | £2,900 | £20 | 2025/26 |
No ETH was disposed of in 2024/25, so that year's SA108 has nothing to report for this pool. The whole story is in 2025/26.
Step 1: build the pool from the acquisitions
Each purchase adds units and cost. The fee goes into cost, not units — s.38(1)(a) covers the consideration given, s.38(1)(c) the incidental costs.
| Acquisition | Units added | Cost added | Pool units | Pool cost | Average |
|---|---|---|---|---|---|
| 10 Jun 2024 | 2.0 | £5,200 + £20 = £5,220.00 | 2.0 | £5,220.00 | £2,610.00 |
| 15 Sep 2024 | 1.0 | £1,900 + £10 = £1,910.00 | 3.0 | £7,130.00 | £2,376.67 |
| 20 Jan 2025 | 1.5 | £4,200 + £15 = £4,215.00 | 4.5 | £11,345.00 | £2,521.11 |
Going into 6 April 2025 the pool is 4.5 ETH with an allowable cost of £11,345.00, an average of £2,521.11 per ETH. Notice that the average is not the price of any single purchase. That is the point of pooling: HMRC does not care which "lot" you think you sold.
Step 2: the July 2025 partial sale
On 3 July 2025 you sell 1 ETH for £2,300 and pay a £12 fee.
- Proceeds: £2,300.00
- Allowable cost from the pool: £11,345.00 × (1 ÷ 4.5) = £2,521.11
- Incidental cost of disposal (fee): £12.00
- Gain or loss: £2,300.00 − £2,521.11 − £12.00 = loss of £233.11
The pool is reduced proportionally, not by the price you sold at:
- Units: 4.5 − 1.0 = 3.5 ETH
- Cost: £11,345.00 − £2,521.11 = £8,823.89
- Average: still £2,521.11 (a proportional withdrawal never changes the average)
A loss is only allowable if you claim it — TCGA 1992 s.16(2A) — which in practice means putting it on the SA108 (or writing to HMRC) within four years of the end of the tax year. Losses in the same year are set against gains automatically once claimed.
Step 3: the October swap — yes, it is a disposal
On 10 October 2025 you swap 0.5 ETH for 1,500 USDC on a decentralised exchange. ETH is worth £3,100 at the time.
HMRC is unambiguous that exchanging one cryptoasset for another is a disposal for CGT (CRYPTO22100). The proceeds are the sterling value of what you received, which in a fair swap equals the sterling value of what you gave up.
- Proceeds: 0.5 × £3,100 = £1,550.00
- Allowable cost: £8,823.89 × (0.5 ÷ 3.5) = £1,260.56
- Gain: £1,550.00 − £1,260.56 = £289.44
The ETH pool becomes 3.0 ETH at £7,563.33. A new USDC pool opens: 1,500 USDC with an allowable cost of £1,550.00. When you later spend or sell that USDC, £1,550 is its base cost, not "£1 per dollar".
The network gas fee for the swap, if paid in ETH, is a tiny separate disposal of ETH. Most tools including cryptolens.uk treat it as such and add the sterling value to the swap's incidental costs. On a £2 fee it does not move the answer; on a year of DeFi it can.
Step 4: the December top-up
On 12 December 2025 you buy 1 ETH for £3,000 plus £15 fee. This is more than 30 days after the July sale and 63 days after the October swap, so the bed-and-breakfast rule (s.106A) does not bite. It simply goes into the pool.
- Units: 3.0 + 1.0 = 4.0 ETH
- Cost: £7,563.33 + £3,015.00 = £10,578.33
- Average: £2,644.58
Had you bought this ETH on, say, 20 October instead, the 0.5 ETH swapped ten days earlier would have been matched against it at £3,015 per ETH rather than against the pool, producing a small gain of £42.50 instead of £289.44 — and the remaining 0.5 ETH would enter the pool. That is the entire mechanic of the 30-day rule.
Step 5: the February sale
On 2 February 2026 you sell 2 ETH for £2,900 each (£5,800) with a £20 fee.
- Proceeds: £5,800.00
- Allowable cost: £10,578.33 × (2 ÷ 4) = £5,289.17
- Fee: £20.00
- Gain: £5,800.00 − £5,289.17 − £20.00 = £490.83
Closing pool for the year: 2.0 ETH, allowable cost £5,289.16, average £2,644.58. That closing figure is the opening figure for 2026/27. If you get it wrong, every future disposal of ETH is wrong too, which is why the Section 104 carry-forward matters more than any single year's number.
The 2025/26 SA108 figures
| Box | Figure |
|---|---|
| Number of disposals | 3 |
| Disposal proceeds | £9,650.00 |
| Allowable costs (including fees) | £9,102.84 |
| Gains in the year before losses | £780.27 |
| Losses in the year | £233.11 |
| Net gain | £547.16 |
| Annual exempt amount (TCGA 1992 s.1K) | £3,000 |
| Taxable gain | £0 |
Net gain of £547.16 sits well inside the £3,000 annual exempt amount, so no CGT is due. Proceeds of £9,650 are under the £50,000 proceeds threshold, so if you are not otherwise in Self Assessment there is nothing to file. If you are already filing a return you still complete SA108 if gains before losses exceed the exempt amount or proceeds exceed £50,000 — neither applies here, though claiming the £233.11 loss requires reporting it, and it is worth doing.
Three mistakes this example is designed to catch
Treating the swap as tax-free. Nothing was cashed out to pounds, but £289.44 of gain crystallised in October. Multiply that by a year of active swapping and the figure is real.
Reducing the pool by sale price. After the July sale the pool cost fell by £2,521.11 (the average), not £2,300 (the price). Reducing by price quietly overstates every subsequent gain.
Ignoring fees. £92 of fees across seven transactions changed the net gain by £92. Small here, but s.38 lets you deduct them, and HMRC lists them as allowable at CRYPTO22150.
Doing this for real
For a handful of trades a spreadsheet is fine and the table format above is what HMRC expects. Once you have several tokens, swaps in both directions and anything inside the 30-day window, the ordering rules interact and a spreadsheet becomes the most likely place the error lives. Whatever tool you use, check that it shows the closing pool per token, not just the year's gain.
This is general information, not personal tax advice.
Frequently asked questions
Does a fee reduce the gain or go into the pool?
Both, depending on which side. A fee on a purchase is added to the pool's allowable cost (s.38(1)(a)-(c)). A fee on a sale is an incidental cost of disposal deducted from that disposal's proceeds. Either way it reduces your gain.
Is swapping ETH for USDC really a disposal?
Yes. HMRC treats exchanging one cryptoasset for another as a disposal of the first asset at its sterling value (CRYPTO22100). The sterling value becomes the cost basis of the asset you received.
What happens to the pool when I sell part of it?
You remove the units sold and a proportional share of the pool's cost — units sold divided by units held, times pool cost. The average cost per unit does not change on a sale.
Run your own Section 104 pool
Put this knowledge into action with CryptoLens — free to use, no sign-up required.
Open Tool →