It's not that diffiult really - most exchanges allow exporting historic transactions, and there are tools popping up that help to organise it all for the tax purposes.
That might've worked, except it doesn't delineate short and long-term gains, and even worse it counts every transfer to GDAX as a sale. That meant hours of pouring through GDAX's even more bare-bones reports to figure out which coins were sold, which were kept, which were transferred back to Coinbase or to other wallets, which coins were held for longer than a year...
That process, across several different cryptocurrencies and thousands of transactions, took 8 hours of work. At the end of it all you're left with the sinking worry that you overlooked something and are overpaying or underpaying.