How to Calculate Bitcoin Capital Gains by Hand

FIFO is a contraction of the term “first in, first out,” and means the first coins you purchased are the first coins you sold. FIFO is the most conservative way to calculate capital gains, and also the easiest. Here is how you can calculate your capital gains by hand using the FIFO method.

First, download a spreadsheet from your exchange showing your trades for the year. The spreadsheet should show the following information:

  1. Basis (price in BTC when you made purchase)
  2. Amount of BTC collected
  3. Date of basis
  4. Price of basis in USD at the date of sale
  5. Price in BTC when sold
  6. Amount of BTC sold
  7. Date of sale
  8. Price of BTC in USD at the date of sale

For instance, if you download a statement of your “fills” for the year from GDAX, you would get a spreadsheet that looks like this:

Table 1.jpg

Next, if you transferred BTC into GDAX instead of purchasing BTC directly in GDAX, you will need to add this information in the spreadsheet. In the example below, 1.3048406 BTC was purchased when the value of 1 BTC was $766.3771, and 0.72488808 BTC was purchased when the value of 1 BTC was $2,100.117. These purchases were made in a separate exchange but were transferred into GDAX at a later date.

Table 2.jpg

Next, to simplify the calculations, you will want to group sell orders that take place on the same date at the same price. In this example, a limit order on 06/16/2017 triggered 2 separate sells at the same price of $2,497. Since these orders are triggered at the exact same price, same date, they will constitute 1 taxable event. I highlighted a total of 4 taxable events in blue below.

Table 3.jpg

Now I will make a separate spreadsheet to the right of this spreadsheet to do the math. Using the data from the first taxable event, there was a sell of a total of 1 BTC (0.52493082 + 0.47506918). The price this was sold at was $2,497.00. The BTC portion sold was 1 BTC of the original 1.3048406 BTC which was purchased at $766.38 USD. Since we have depleted 1 BTC at $766.3771, we have 1.3048406 BTC – 1 BTC = 0.3048406 BTC remaining for our next calculation.

Table 4.jpg

In the next taxable event, I will calculate the gain by (1) subtracting the new sell price of $2,494.00 from the purchase price of $766.38 to get the total capital gain. I will then take this result and multiply this by the remaining amount of BTC that was purchased at $766.38. The calculation used is ($2,494 – $766.38) * 0.3048406 = $526.65.

I have now used up my initial basis of 1.3048406 BTC and can calculate the remaining capital gain using the next basis of 0.72488808. However I only need a portion of this 0.72488808 amount to calculate the capital gain for the 1 BTC purchased at $2,494: I need only calculate the capital gain for 1 – 0.3048406 = 0.6951594 BTC. The result is ($2,494 – $2,100.12) * 0.6951594 = $273.81. Here is how the calculation will look in excel:

Table 5.jpg

The total capital gain from this second taxable event would be $526.65 + $273.81 = $800.46.

Table 6.jpg


Your remaining basis is now 0.02972868 BTC at $2,100.12 which can be applied to the next taxable event of selling 1 BTC at $2,509. Once the 0.2972868 is accounted for, you can move on to use the next basis of $2,489 and so forth. Here is the what the end result should look like:

Table 7.jpg

This is a relatively simple example showing 4 limit orders during the year. Many clients have hundreds if not thousands of limit orders to calculate – imagine doing the math for these line by line! Fortunately we are able to streamline the process and can calculate your capital gains or losses for you. If you need assistance feel free to contact us at

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s