Building The World's Most Efficient Crypto Tracker
A sunny night many many days ago, I realized that my spreadsheet, which had been with me in good times and bad (of which there were so many...), had reached its end of life.
Not only had it botched my last tax report but it was quickly becoming a maintenance nightmare. It's not a pleasant moment when you realize the gains on your tax reports are much higher than what you actually made. I knew it was too good to be true... Alas, it was time to find a better solution...
It began with a lot of googling, attempts to find products that can fill my spreadsheet's shoes, a lot of failed product trials, a lot of sleepless nights (well maybe not) and eventually a realization that my spreadsheet is not that bad after all. Its not that I didnt find any other trackers, there are tons out there. My issue was that they all lacked something fundamental.
The mobile trackers like Delta & Blockfolio were terrible at generating reports, the online "tax calculators" like coin tracking or bitcoin tax could only be used for tax reports and it required a lot of manual effort to get them working. And, if god forbid the numbers didn't match up, you were pretty much on your own to figure out what went wrong. Have fun going through every one of your transactions to solve that -why is my gain so high- problem. There were numerous other issues from non-existant or overly-complex ways of adding fees, terrible user interfaces to lack of support.
There had to be a better way!
As an avid crypto investor myself I had a fairly good idea of what a good portfolio tracker should have and what the existing solutions were lacking. My requirements were rather simple, things that can be easily automated or made more efficient through better ui design. After all, if I am to leave my cosy spreadsheet I want to be sure that the solution I am moving to is at least 10x better.
Basically, I would like my crypto portfolio tracker to be able to:
Automatically track cryptocurrency across my exchange accounts (Coinbase, Binance, etc) and wallet addresses. It should do this by syncing transactions and not just the current account balances. I also want to be able to see, filter, and search through all my transactions.
Identify transfers within my own exchange accounts/wallets. Ex. if I move 100 BTC (I wish...) from my Coinbase account into my Binance account, I don't want to see 2 separate transactions. I want a single transaction that clearly shows that I transferred funds. Surprisingly, hardly any portfolio trackers have this ability...
Combine multiple trades for the same order into a single transaction. This requirement came about later after I had tried a few trackers that were polluting my transaction list with a bunch of transactions I had never seen before. Basically, when you place an order on an exchange, it gets executed in multiple transactions which were all showing up on the interface. I don't care about these transactions, I just want to see 1 transaction for the completed part of my order.
Handle fees in any currency. Fees are a cost and must be accounted for if you want accurate gains reports (or if you want to avoid paying excess taxes!). Also, certain exchanges like Binance allow paying for fees in BNB even if you are trading between 2 completely different cryptocurrencies, so the tracker must be able to handle such cases.
Keep track of original acquisition costs when I exchange cryptos. Ex. if I buy 10 BTC for 1000 USD and a few days later trade the 10 BTC for 100 ETH, my cost for the ETH should be 1000 USD (irrespective of the current market price). This behaviour should be configurable though as you are not allowed to carry over costs like this in your tax reports...which brings us to the next requirement!
Allow switching between an investment mode and a tax mode. In the investment mode, gains should be calculated normally i.e. only when I sell a crypto asset (trades between cryptos should not result in gains). In tax mode, gains should also be calculated when I exchange crypto for another.
Clearly show how the 'gain' for each transaction was calculated. A gain is basically the difference between the Selling Price and the Buying Price (aka cost-basis). Ex. if I bought a total of 15 BTC in 2 separate transactions and later sold them all for a gain of 1000 USD, I would like an easy way to see the 2 transactions that contributed to the cost-basis.
Support generating gains using various accounting methods like Average Cost Basis (ACB), First In First Out (FIFO), Share Pool (UK) etc. Generate income, profit & loss as well as tax reports.
With a clear goal in mind, I embarked on a mini-adventure to #JustBuildIt. After 4 months of development with a lot of sleepless nights powered by magical wings, I am happy to announce that these requirements have been molded into an actual working product: ala Koinly!
The result: Automated cryptocurrency tracker & tax calculator!
The vision behind Koinly is to make it easier to track, analyze and generate reports from your cryptocurrency. All this without ever touching your private keys or other sensitive data. If blockchain is the replacement for banks, Koinly is the replacement for the bank's UI (just not as fugly).
Koinly is in active development which means new features are added regularly, so if there is something you have been longing for in a crypto tracker, now is your chance to get it!
Any feedback, ideas, or suggestions would be much appreciated. Thanks for reading!