How Section 104 Pooling Works

guideshmrcsection-104
Updated

If you've sold shares in the UK, you've probably hit this question: which shares did I actually sell? You might have bought the same stock three times at three different prices. HMRC doesn't let you pick – instead, they use something called a Section 104 pool.

The idea in 30 seconds

All your shares of the same class in the same company go into one pool. The pool tracks two numbers:

  • How many shares you hold
  • What you paid for all of them combined (the "allowable cost")

When you buy more, both numbers go up. When you sell, you take out a proportional slice of the cost. That slice becomes your "cost basis" for the disposal – and HMRC uses it to calculate your gain or loss.

Worked example

You make three trades in Acme plc:

DateActionSharesPriceTotal
10 Jan 2025Buy200£5.00£1,000
15 Mar 2025Buy300£6.00£1,800
20 Aug 2025Sell100£8.00£800

Here's how the pool works visually:

BUY
200 @ £5.00
= £1,000
BUY
300 @ £6.00
= £1,800
POOL
500 shares
£2,800 total
avg £5.60
SELL
100 shares
cost: £560
GAIN: £800 − £560 = £240

Two buys go into the pool. The pool averages the cost at £5.60 per share. When you sell 100 shares, the allowable cost is 100 × £5.60 = £560. After the sale, 400 shares remain with £2,240 of cost.

Now let's put real numbers through it. After the two purchases the pool holds 500 shares at a combined cost of £2,800 (£1,000 + £1,800), so every share carries an average cost of £5.60 (£2,800 ÷ 500).

When you sell 100 shares on 20 August, none were bought on the same day or in the previous 30 days, so the whole disposal is matched against the pool at that average cost:

  • Proceeds: 100 × £8.00 = £800
  • Allowable cost: 100 × £5.60 = £560
  • Chargeable gain: £800 - £560 = £240

Here's the pool's running balance through all three events:

EventShares in poolPool costAverage cost/share
Buy 200 @ £5.00200£1,000£5.00
Buy 300 @ £6.00500£2,800£5.60
Sell 100 @ £8.00400£2,240£5.60

Notice the key point: selling shares doesn't change the average cost. After the disposal the pool still holds 400 shares at £5.60 each (£2,240 ÷ 400). You removed a proportional slice of the cost, not a specific tranche – that's the entire purpose of pooling.

A second example: buying more, then a loss

Pools carry on between tax years. Taking the 400 shares from above into 2026, suppose you buy more and then sell during a dip:

DateActionSharesPriceTotal
5 Feb 2026Buy100£7.00£700
1 Mar 2026Sell250£5.00£1,250

The new purchase blends into the pool and nudges the average cost up to £5.88 (£2,940 ÷ 500). The later sale of 250 shares is matched against the pool at that rate:

  • Proceeds: 250 × £5.00 = £1,250
  • Allowable cost: 250 × £5.88 = £1,470
  • Allowable loss: £1,250 - £1,470 = -£220
EventShares in poolPool costAverage cost/share
Carried over from example 1400£2,240£5.60
Buy 100 @ £7.00500£2,940£5.88
Sell 250 @ £5.00250£1,470£5.88

That £220 is an allowable loss you can set against other gains in the same year, or carry forward. The 250 shares left in the pool still sit at £5.88 each.

Where Section 104 fits in the matching rules

HMRC applies three rules in order when you sell shares. Section 104 is the last resort:

  1. Same Day Rule – shares bought on the same day as the sale are matched first
  2. Bed & Breakfast Rule – shares bought within 30 days after the sale are matched next
  3. Section 104 Pool – everything else comes from the pool

In practice, most sales end up matched against the pool. Same-day and 30-day matches only kick in when you buy and sell the same stock in quick succession.

What goes into the cost?

The cost you add to the pool isn't just the share price. You can include:

  • Dealing fees and broker commissions
  • Stamp Duty Reserve Tax (SDRT) – 0.5% on UK share purchases

For shares denominated in foreign currencies, the sterling cost on the date of purchase is what enters the pool, using HMRC's official exchange rates.

Edge cases worth knowing

  • Each company and share class has its own pool. Ordinary shares and preference shares in the same company are tracked separately, and every different holding gets its own Section 104 pool.
  • Selling your whole holding empties the pool. The next share you buy starts a fresh pool at its own cost – there's no memory of the old average.
  • Accumulation units still count. Income reinvested inside an accumulation fund has usually already been taxed, so it's added to the pool cost – that way you aren't taxed on it again when you sell.
  • Shares held at 31 March 1982 are rebased. Holdings from before then enter the pool at their March 1982 market value rather than the original purchase price.

Common questions

Does buying back within 30 days bypass the pool?

Yes – that's what the Bed & Breakfast Rule is for. If you sell and rebuy the same shares within 30 days, the disposal is matched against the repurchase price rather than the pool, which stops people crystallising a loss while keeping their position. Only the quantity left over after that matching falls back to the pool.

Do shares in an ISA or pension use the pool?

No. Shares held inside an ISA or SIPP are outside Capital Gains Tax altogether, so they never enter a Section 104 pool. Only shares in a general investment account or held directly are pooled.

How do foreign-currency shares fit in?

Convert each purchase and sale to sterling on its own transaction date, then pool the sterling amounts. Because the rate is fixed at the moment of each trade, currency movements between buying and selling become part of your gain or loss automatically.

Why it matters

Getting the pool calculation wrong means reporting the wrong gain or loss on your Self Assessment. For anyone with more than a handful of trades per year, manual tracking gets error-prone fast – especially once you add stock splits, rights issues, and foreign currency conversions.

Our CGT Calculator handles Section 104 pooling automatically – along with same-day and bed & breakfast matching, FX conversion, and corporate actions. Upload your broker data and see your report in seconds.

Further reading