I have been trading very actively crypto-markets since late 2015, and it has become my main occupation since mid-2016 as I trade on a daily basis, and have a very high turnover on many different exchanges in different countries and juridictions. I am based in Japan but I think anyone who is trading crypto actively should pay attention to my story wherever they are.

When computing 2016 taxes, I was a bit naïve. I compiled the transaction records from my exchanges, mainly Kraken and Poloniex at the time. I was facing quite a few difficulties as there were already several thousand trade orders and even more executions, and the reporting files had different format for each exchange.

I found out that the exchanges don’t care about your taxes, and provide their info as such, and thats about what they will do. They are small and understaffed startups, already full of their own problem, and especially in 2016, their systems were crap.

Here are the most problematic things specific to the exchanges I used that I encountered:

Poloniex provides only a history of transaction, there is no ledger report

There was a big inaccuracy in kraken reports: trying to reconstruct the ledger from the transaction report files, the 2 reports were not agreeing on the ETH balance. Given that the ledger was right ,because it found a zero balance at the end, it can only mean some transactions / info were missing on the transaction report. I *think* the explanation was due to Kraken doing some sort of manual adjustment of my positions after some stop-orders were not executed as they should have, but I spent a lot of time researching on that issue together with Kraken support and we could not confirm the exact reason.

given the absence of explanations, and lack of a ledger report, I (still) don’t understand how coins are debited and credited when doing margin trading on Poloniex !

Margin trading is very difficult to handle properly for tax purposes, especially when margined in crypto. Suppose you make 1BTC of profit doing margin trading on Poloniex. Then for tax purposes, the logical to do is to declare an income of 1BTC at the date on the day it is credited, using the BTC/fiat rate on that day, and when this BTC is sold, capital gain tax is due using that cost basis.

Alas, most if not all platforms won’t show an explicit BTC transaction with a relevant fiat rate for those margin credit/debits.

It is also essential in some/many juridictions to distinguish margin trading P&L and spot trading (actual coins) P&L. Strange as it seems, it might be the case in some juridictions and/or some cases that both P&L cannot offset each other. i.e. For example, if you try to hedge your coin portfolio by selling futures, but the price of coins is still going up and you are losing on your futures, you may have realized a loss on your hedge that cannot be offset against your capital gains on coins. This loss can be used only against profits on other hedges or similar transactions. Worse, it may be the case that those losses cannot be carried forward to later years.

When dealing with an international exchange, make sure you have no potential tax liabilities with the country of residence of the exchange. It seems natural there wouldn’t be any, but the most natural thing isn’t necessarily happening…

So before engaging in margin trading or trading on multiple exchanges in different countries, it is imperative that you check with an expert tax accountant.

Now, let’s go to the main part of this article.

In order to calculate your income, you don’t need your transactions at all ! I hear many guys on SNS complaining that compiling transactions can be a tough task because there are so many exchanges, whose reports are all in a different format, and its difficult to aggregate all this information. Some even go as far as to say that should be a sufficient excuse as not to file taxes !

Any serious accountant would tell you it’s not a receivable excuse at all, and there is a much simpler, and desirable approach to compute your income and that’s to maintain your balance sheet.

Let’s take the simplest example of trading on a single exchange, in a single year.

You have invested 1,000$ and done tens of thousands of transactions, perhaps through API trading. Your favourite exchange doesn’t even allow you to download the whole history of transactions [deletes it every 3 months and you ‘forgot’ to download it].

Still, IF you have sent those 1,000$ to this exchange, and never done any fiat transfer since, and if you sold all your coins and remain in fiat in this exchange, and your end balance is 11,000$, then it means your profit (=taxable income) is 11,000–1,000 = 10,000$ . This is a net profit after exchange fees.

This figure is guaranteed to be right, even if you don’t have your transaction history at all, as long as you made no mistakes on your balance sheet [= you haven’t transferred coins in a personal wallet, or fiat to another account] !

Now if you had some BTC transferred in your personal wallet, and they are worth 11,000$ at the end of the year, and thats the ONLY coins you own, and you have no FIAT left on the exchange, your economic profit will be 10,000$, but your taxable income may be a different figure, because you need to know the book value of your BTC.

In the following, suppose you have 2 BTC at the end of the year and no FIAT, and haven’t made any transfers to a personal wallet or to your bank. BTC is worth 5,500$

example 1. If you bought your BTC at 5,000$ (=book value) each , then you are sitting on a 11,000–2x5,000 = 1,000$ unrealized profit

In this case, because

economic profit/loss = realized profit/loss + unrealized profit/loss,

it must mean that realized profit (=taxable income) =10,000–1000 = 9,000$ !

Example 2. You bought your 2 BTC at a price of 10,500$ each for a total of 21,000$, it means you are sitting on a unrealized loss of 21,000–11,000 = 10,000$

which means your realized profit (=taxable income) is 20,000$ and your unrealized loss is 10,000$ !

So to do this calculation, it is crucial to know the correct BOOK VALUE

To calculate the book value, you don’t have to go through the whole transaction history. You may have traded a lot of BTC throughout all the year, but to determine when you bought your 2 BTC, go through your trade history in REVERSE time order.

The simplest case would be that your last transaction is a purchase of 2 BTC and there you would have your BOOK value immediately.

Else you would have to find out when your position was totally flat last time, and work it out from there. According to your tax juridiction, a different method may be applied , FIFO, LIFO , or average price, so I will not go into further details here.

If you purchased your BTC via a coin-to-coin transaction, for example selling ETH, then i would use the fiat reference price on CoinMarketCap for BTC, and the implied price for ETH (ETH fiat price for this transaction = BTC ref price * ETHBTC transaction price). There is some work to do there.

Example : you sold ETH/BTC @ 0.03. [selling ETH / buy BTC] CoinMarketCap says the ref price of BTC for that day was 2,000$ then for your book value calculation, I would use that for the BTC buy transaction, the ETH price of the related ETH sell transaction would be 2000*0.03= 600$.

It should be clear now, that to make your calculations much simpler, it is in your interest to realize profits and cleanup your positions before the end of the year, so you can make it easy to calculate a book value. It involves selling down to 0 all small and/or stupid positions, and for other ones to sell all your positions down to 0 and buy them immediately back, don’t trade this coin after that until the new year !

That trick may be not desirable when you are a HODLer with unrealized profits, but if you are such a HODLer then you should avoid trading because you’re realizing gains along the way ! If you are a HODLer, in a medium/high tax juridiction, then you’re probably better off not trading at all the coins that you are HODLing, and/or to do trading only on a platform such like BitMex where you’re trading derivatives, so something different than real coins, and basically those trading gains would be in their own compartment, separated from the unrealized profits.

On the other hand, if you’re sitting on unrealized losses, make sure you have profits to offset those losses. The timing to realize the profits or losses is important.

I have been audited by the tax office this year, and they accepted my approach. I provided them with end-of-year screenshots, and files of coin+fiat deposits / withdrawals from exchanges and personal wallets. They were 100% satisfied with the numbers. Of course, they could double check with the transaction history files that nothing was missing and that numbers were consistent.

For 2016 taxes, i tried to go through my transaction history and it was a big mess. It was much simpler when i switched the methodology and it could be extended such as to look over. My own case is much more complicated what i exposed because there is FX valuation involved as i have used different FIAT currencies (EUR, USD, JPY) to trade, and I will not give more details here, but basically you can deal with a fiat currency different from the reference currency the same way as if it was a virtual currency !

By changing the methodology, and starting from point 0 in time (i.e. not considering 2017 only), I am 100% sure i didn’t miss a single cent in profit, I could adjust for 2017 my realized profits by taking into account what i had declared in previous years.

I haven’t covered all the details, but I hope I have convinced you about the approach, and even if you don’t understand everything now yet, take your time, but do not forget to make screenshots on Dec31st, I promise this will help you a lot !

Of course, I am very much encouraging to work with a good qualified professional and to discuss with him about your crypto trading activities. He will surely help and give you sound advice which is appropriate to your unique situation. I cannot guarantee that everything I’ve been saying can apply favorably to you.

SUMMARY

economic profit/loss = realized profit/loss (=taxable income) + unrealized profit/loss

balance sheet EOY Y (mark-to-market) = balance sheet EOY Y-1 (book value) + economic PL (Y)

Files to provide in addition to transaction history

Deposit/withdrawals of coins and fiat (private wallet and exchange)

Flow chart of fiat and coins (including a list of exchanges, wallets, bank accounts)

Balance sheet at each EOY (screenshots of exchanges and wallets)

Do NOT forget to do it !!! just don’t trade at all on DEC 31st for example and spend your whole day doing screenshots, stopping trading 2 days or more in a row is even more desirable due to time stamp differences between exchanges.

Reference price history for each coin taken on CoinMarketCap on Dec 31st seen on https://coinmarketcap.com/historical/.

Historical BTC prices https://coinmarketcap.com/currencies/bitcoin/historical-data/

Exchange rate history if needed. For example https://www.m2j.co.jp/market/historical.php

I accept donations here at this BTC address

12ZYMmPeoCgnSE1M28mn6bPhCNid4fBP4S