Trying to understand cost basis using Shared Pool / Individual

Hi, Uk tax payer here :slight_smile:

I made a test ETH trade today, where I bought 0.42 ETH and then hit a stop minutes later which sold the 0.42 ETH. My crystallised loss was about ~$2.

What is confusing me a bit is this:

I understand that the shared cost pooling is at work here and considers my sale to be liable for gains because it doesn’t match it with the buy transaction earlier to work out that the trade was a loss.

So in real terms, what does this gain mean for my taxes ? Do I have to pay gains for a losing trade because my overall cost basis was fairly low ?

I was under the impression that buys and sells of the same asset class on the same day were put into a separate pool.

I’m fairly new to all this so any help is much appreciated !

Never heard of this, but I’m not from the UK.

Not tax advice but, one thing you can do is to soft delete both transactions. Make a USDT transaction to keep the books balanced.

From HMRC’s tax advice:

Acquiring within 30 days of selling

Special pooling rules apply if an individual acquires tokens of a cryptoasset:

  • on the same day that they dispose tokens of the same cryptoasset (even if the disposal took place before the acquisition)
  • within 30 days after they disposed of tokens of the same cryptoasset

If the special rules apply, the new cryptoassets and the costs of acquiring them stay separate from the main pool. The gain or loss should be calculated using the costs of the new tokens of the cryptoasset that are kept separate.

If the number of tokens disposed of exceeds the number of new tokens acquired, then the calculation of any gain or loss may also include an appropriate proportion of the pooled allowable cost.

Unless I am mistaken this would cover any trade you close out or part-close within a 30 day period.

The rules are in a koinly article here:

There is a same-day rule and a 30-day rule.

I have my cost basis set to Shared Pool / Individual too, for UK individuals.

The 30 days applies to the days after disposing of a token.

So like you I have now tried a same day token exchange and reversal as a test, entered as manual transactions.

For some reason the reversal cost basis doesn’t just use the value from the same day pool, bought one minute before, instead it takes part of it from that pool and part from the section 104 pool, even though the whole quantity (1 token) was available from the same day.

So are we saying this is a bug in Koinly?

My guess is that koinly might be correct and we are missing something, but without koinly engaging it is hard to know. The jury is out.

Thanks for the feedback folks. This detail is concerning me a bit as I have literally hundreds of trades and this does not seem right.

I understand that the HMRC rules are there to prevent bed-and-breakfasting where you can sell shares at a loss to remove capital gains and then buy back to retain the position. However if you buy the asset first then there is no corresponding disposal to pair it with and so my guess is it uses the shared pool.

Of course this whole thing could be a trader trap that I’m unaware of; HMRC specifies acquiring within 30 days of selling - not the other way around… now of course I could just reverse the transactions but I would have to hunt down every trade I’ve made and hand edit everything in which case I might as well just use a spreadsheet :slight_smile:

You can see what it is using by clicking on the transaction to expand it and then clicking on Cost analysis. In the test I did, for some reason it showed 0.66 came from the 0 days pool and 0.33 came from the long term Section 104 pool. There was 1 available in the 0 days pool so I have no idea why that didn’t form the full cost basis.

1 Like

Now I have done two more experiments. First I entered two manual transactions, BTC to BNB and then back again, but this time I entered 100 BNB instead of 1 BNB. This time the same day pool was used for 99.66 of the BNB and the Section 104 pool for just 0.33 BNB. Consequently this outcome in gains is almost correct. So there is something making koinly use this small amount from a Section 104 pool on my account.

Then I tried with ETH instead. So pretended to trade BTC for 100 ETH, then trade the 100 ETH back to BTC. The cost base for selling the 100 ETH should be the same day 100 ETH just bought as I understand it. But this time 7.6 ETH only was taken from that same day pool for the cost and the other 92.4 from the Section 104 pool. I will try a direct message to koinly to clarify.


Please let us know if you hear back from Koinly on this one?!

I may have a clue as to what is happening. I suspect koinly is giving priority to the “bed and breakfast” 30 day rule, when in fact the “same day” rule should take priority. So I think the reason that we see the same day pool not being applied is that the token quantity (or part of) has been grabbed by another transaction within the last 30 days under the b&b rule. This is wrong, the Same Day transaction should take priority, see

Thanks for the investigation forest ! I hope somebody from Koinly can weigh in on this at some point to confirm whether this is indeed an issue… still waiting :slight_smile:

This does appear to be an issue on our end, we have applied a fix that addresses the bnb prioritization issue. You will receive an email from us during this week if your account was affected by this.


Thanks for the response on this.

As per koinly update, they worked with me just now to check the updates on my account and the fix appears to resolve this issue. It isn’t released yet, so wait to hear from koinly. This does impact previous years tax gains, though not in a big way, something to be aware of. Thanks for taking action on this one quickly koinly and working at the weekend.

1 Like

Look forward to seeing how this fix affects my transactions. Will update with results once it’s released.