Coder Social home page Coder Social logo

Comments (22)

aleqx avatar aleqx commented on July 21, 2024

By the way, this also affects data such as Etherscan's exported CSV, where coin swaps (on Uniswap or elsewhere) are imported as separate deposit and withdrawal transactions (ideally those should be imported as trades, but the conversion would be more involved as there can be several deposits for a single withdrawal)

from bittytax.

nanonano avatar nanonano commented on July 21, 2024

I think there are might be 2 issues here.

1st Issue (The transfer_include flag should not make any difference to the P&L)

To address the 1st issue, in your example where the withdrawal fee is specified, I agree the transfers_include flag should not make any difference to the P&L for the year.

Looking at the debug log I can see that the Spend for the withdrawal fee is being excluded from the section 104 pool, in addition to the Withdrawal itself. This explains the difference in cost.

By default, transfers_include=False configuration is not used, so has not been as thoroughly tested.

from bittytax.

nanonano avatar nanonano commented on July 21, 2024

2nd Issue

The current implementation for handling of transfers fees is that they are removed from the pool at zero cost, so there is no disposal recorded for Deposit or Withdrawal fees.

This was based on assertion that transfers between your own wallets were not taxable events. I'm now trying to find where this statement was from, it's not clear in the guidance.

I will add a new config option to allow transfer fees to be handled as disposals, so the user can choose how they want to handle this.

from bittytax.

nanonano avatar nanonano commented on July 21, 2024

Re-opened so 2nd Issue can be tracked.

from bittytax.

nanonano avatar nanonano commented on July 21, 2024

The latest HMRC guidance update (30 Mar 2021) still does not clarify if transfer fees for crypto deposits and withdrawals are allowable costs.

One argument is that they are not, as the're not directly related to a trade, unless you can attribute the deposit/withdrawal to a single trade.

The other argument is that paying the fee, is a spend, so a disposal, you're paying the miner to include your transaction in a block, and since "transaction fees paid for having the transaction included on the distributed ledger" is an allowable cost of that spend.

For the time being the default for BittyTax will remain, that transfer fees are not a disposal/allowable cost so will be removed from the section 104 pool at zero cost. With the config parameter "transfer_fee_disposal" set to False by default.

from bittytax.

acodernamedoliver avatar acodernamedoliver commented on July 21, 2024

https://www.gov.uk/hmrc-internal-manuals/cryptoassets-manual/crypto22150

"When a person calculates their gains/losses from the disposal of tokens, not all costs are allowable as a deduction.

Section 38 of the Taxation of Chargeable Gains Act (TCGA) 1992 provides for the types of costs which can be deducted. HMRC’s view is that these include:

...

transaction fees paid for having the transaction included on the distributed ledger..."

Since a withdrawal and deposit to and from and exchange puts the crypto on the respective blockchain, shouldn't this be an allowable cost according to the above?

from bittytax.

acodernamedoliver avatar acodernamedoliver commented on July 21, 2024

Apologies, I think we are agreeing.

from bittytax.

nanonano avatar nanonano commented on July 21, 2024

Personally I think it should be regarded as a spend which is consistent with paying other fees which are treated as spends.

The only question then is if the exchange charges you a cost for a deposit/withdrawal in addition to the miner/transaction fee, only the later might be an allowable cost, and how would you differentiate between the two costs?

from bittytax.

acodernamedoliver avatar acodernamedoliver commented on July 21, 2024

Unfortunately, in my experience exchanges don't give a breakdown of this, therefore one could assume that the whole fee goes towards miners and is such an amount that regardless of how congested the mempool is, the transaction is confirmed quite quickly.

from bittytax.

nanonano avatar nanonano commented on July 21, 2024

That would be the simplest option.

If you want to treat transfer fees as a disposal/allowable cost, you can set the parameter as below in your bittytax.conf file.

transfer_fee_disposal: True

from bittytax.

acodernamedoliver avatar acodernamedoliver commented on July 21, 2024

Sorry, I might be completely wrong, but I was under the impression that an allowable cost and a disposal are the exact opposite.

Disposal would mean that the amount of crypto in fees is removed from the cost basis and pool, and any capital gains may be payable, as with any other disposal. (transfer_fee_disposal: True)

An allowable cost would mean that the initial capital / cost basis is the same with a reduced pool. (transfer_fee_disposal: False)

Correct?

from bittytax.

aleqx avatar aleqx commented on July 21, 2024

The latest HMRC guidance update (30 Mar 2021) still does not clarify if transfer fees for crypto deposits and withdrawals are allowable costs.

I would say it has always been fairly clear, though perhaps a little subtle, but in the new guidance they are all allowable cost.

  • In the old guidance from Dec 2018, fees were allowable cost only if they were incurred before they hit the blockchain. This was subtle, but it essentially meant that transfers between wallets, deposits, withdrawals were not allowable cost, since those fees were hitting the blockchain at the same time as the transfered amount did (they both are confirmed by the chain in the same block).

  • In the new guidance (relevant this and this), HMRC says that "Section 38 of the Taxation of Chargeable Gains Act (TCGA) 1992 provides for the types of costs which can be deducted. HMRC’s view is that these include: [...] transaction fees paid for having the transaction included on the distributed ledger" and no further distinction is made whether it's before or at the same time or after it hits the blockchain.

That is, in the new guidance HMRC recognizes all network fees as allowable cost.

IMPORTANT: Now that withdrawal fees are allowable cost, it is important to distinguish between fees incurred for mining payments and fees incurred for trading. For the former, the fees offset income, whereas in the latter the fees offset capital gains. HMRC tried to clarify this when stating: "Any costs deducted against profits for Income Tax, see CG10260, are not allowable as a deduction for Capital Gains Tax." ... however, this introduces uncertainty regarding fees paid to move own funds between cold wallets, for example, it may depend on the provenance of said assets, i.e. "were they from income or capital gains?"

(exchange fees to perform a trade between two assets remains an allowable cost; how it's apportioned when a crypto-crypto trade is performed is another matter)

from bittytax.

nanonano avatar nanonano commented on July 21, 2024

Thanks @aleqx, I agree, but I still don't think it's that clear, and there's definitely not consensus on this issue with other crypto accountants I've spoken to, also Recap don't believe that transfers between your own wallets are an allowable cost.

I might add a 3rd option, to choose if transfer fees are an allowable cost or not (only applicable if transfer_fee_disposal: True)

Disposal would mean that the amount of crypto in fees is removed from the cost basis and pool, and any capital gains may be payable, as with any other disposal. (transfer_fee_disposal: True)

An allowable cost would mean that the initial capital / cost basis is the same with a reduced pool. (transfer_fee_disposal: False)

@olivercodingtools the options currently.

  1. transfer_fee_disposal: False: The amount of crypto in fees is removed from the pool, but at zero cost. There is no disposal (in terms of capital gains), so there can be no allowable cost.

  2. transfer_fee_disposal: True: The amount of crypto in fees is removed from the pool, and the cost of the pool reduced by the cost basis of the fee. It's treated as a spend/disposal, so liable for capital gains. The fee is also an allowable cost, so the cost of the transfer is subtracted from the cost basis used to pay the fee to calculate a gain/loss, normally resulting in a loss.

I'm now thinking to add an option where the transfer is still a disposal but it's NOT an allowance cost.

from bittytax.

aleqx avatar aleqx commented on July 21, 2024

The fact that HMRC explicitly

  • removed the "before it hits the blockchain" condition from the new guidance (old guidance)
  • explicitly added deposit to exchanges and withdrawals from exchanges in the list of fees (see last list)
  • explicitly states as allowable cost "transaction fees paid for having the transaction included on the distributed ledger" which clearly does not refer to a trade on the exchange, but to deposits/withdrawals

has a pretty clear meaning ... those are deliberate, they're not idiots. These aren't typos/mistakes.

The fact that some accountants/Recap are still confused is really nothing new. Recap still makes other mistakes in their published recaps (they were informed)

Let's please allow BT to do the above, i.e. fee = always allowable cost, unconditionally. I don't mind if it's not the default option, even though it should be (non-expert BT users will just overpay tax a little).

from bittytax.

nanonano avatar nanonano commented on July 21, 2024

In the allowable expenses exchange fees section, it looks like HMRC deliberately didn't clarify token deposits/withdrawals for exchanges, focusing only on fiat. Even though they touch on it here:

Withdrawal fees may be applied for withdrawing fiat currency but may also apply to the withdrawal of tokens.

Maybe this is because they are waiting to clarify it when they cover DEXes, which could imply they will only allow transfer fees as an allowable cost if it can be attributed to a specific trade/swap, which others are assuming is the case.

from bittytax.

aleqx avatar aleqx commented on July 21, 2024

I don't see confusion here. "Exchange fees" focuses on fees unrelated to the blockchain, i.e. they are charged by exchanges, while deposit & withdrawal fees (charged by the network) are explicitly covered in a separate section which is new and deliberate. Accounting is performed on what the legislation says now (not on what HMRC might say in the future) and right now HMRC explicitly added exchange deposits and withdrawals to the list of fees.

I don't see any need for HMRC to change anything for DEXes, and I'm quite sure that HMRC were aware of DEXes when they reworded their 2021 guidance and didn't choose to be sloppy to revise it later; that would only confuse and cause headaches for everyone, HMRC included.

What the guidance says now is sufficient to treat all fees as allowed costs. I see no way in which HMRC would win in court with the current wording. It's not sloppy wording. Even if they do change their mind and reword it again, I don't think they would be able to penalize anyone who made all fees allowable cost in their filings based on the Mar 2021 version.

That is to say, it's worth having the option in BT now regardless :)

from bittytax.

aleqx avatar aleqx commented on July 21, 2024

To add one bit, which is relevant: Note that HMRC was careful enough to talk about exchange deposit and withdrawals, and not include transfers between cold wallets in the list. I do not deem those as allowable cost. It's easy enough for practically everyone to prove that exchange deposits and withdrawals are indeed associated with disposal activity. It makes total sense for HMRC to simplify fees treatment like this (just like they simplified casual mining and offered a 1000 GBP allowance for it).

p.s. By the way, we should add that 1000 mining allowance to BT. Works in the same way, no need to declare if below

from bittytax.

nanonano avatar nanonano commented on July 21, 2024

This is what makes me say it's unclear, there's nothing specifically mentioned about deposits/withdrawals between your own wallets.

If paying the fee is a disposal (which I think we agree on), and adding it to the blockchain an allowable cost, it shouldn't matter if you are moving tokens between your own wallets, hot or cold, or to/from an exchange.

The difficult part is knowing what part of the fee is related to adding the transaction to the blockchain, and what is if/any handling fee charged by the exchange.

Yes adding the £1000 tax-free allowance for trading to the income report is a good idea.

from bittytax.

acodernamedoliver avatar acodernamedoliver commented on July 21, 2024

My interpretation of CRYPTO22150 is that any fee paid for having the transaction included on the distributed ledger is an allowable cost. This is mentioned before the exchange fee paragraph and makes no distinction about where the fee is incurred. As long as the transaction is broadcasted, it is an allowable cost.

from bittytax.

aleqx avatar aleqx commented on July 21, 2024

This is what makes me say it's unclear, there's nothing specifically mentioned about deposits/withdrawals between your own wallets.

But that's perfectly fine, those aren't allowable cost. It's a capital loss (allowable cost) when it's associated with a disposal, and a spend when it's not. I always had a problem with fees=disposal. Doesn't mean it's unclear for all other fees associated with a disposal (gift fees, exchange deposit fees, exchange trade fees, exchange withdrawal fees, etc). It's the association with a disposal that's important.

It should have been "We want you to pay tax when you dispose. Costs associated with it will be deducted." HMRC is making it all more confusing by trying to clarify individual bits, because they always have been a few steps behind technology and possible scenarios, then people start wondering and asking questions like in this very thread "Yes, but they didn't specifically mention X" ... well, if they had simplified it we'd all have been better for it, HMRC included.

@olivercodingtools there are explicit distinctions, once because it mentions deposits on exchanges, and two because it mentions allowable costs for disposal of tokens. If the transfer isn't associated with a disposal then fees are on you.

from bittytax.

aleqx avatar aleqx commented on July 21, 2024

But perhaps we can cut this debate short and just add an option for it in BT. It's not like we're going to improve the legislation :)

from bittytax.

nanonano avatar nanonano commented on July 21, 2024

I've added the option to specify if transfer fees are an allowable cost or not. See d4a6545.

from bittytax.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.