As Head of Product Development for Voyager, I am grateful that I get to wake up each day full of energy and enthusiasm for what I'm about to spend my day doing – working on the development of features and functionality for what I believe will be the premier trading, custody and information solution for retail and institutional cryptocurrency investors. On the other side of the token, I often have trouble falling asleep at night as I stare at my bedroom ceiling contemplating all that we have left to accomplish before meeting that goal.

Like many of you taking the time to read this post, I have a passion for crypto, blockchain, trading, financial markets analysis, and technology. From the moment I first read about Bitcoin in 2013 (early-on, but still five years after Satoshi Nakamoto's famous whitepaper), I was intrigued by its potential to revolutionize finance.

I bought my first few bitcoins in April 2013 for $84 each using a Western Union cash transfer to the now-infamous Mt. Gox exchange in Japan. I was 50/50 when I sent the transfer that it would successfully make its way to my exchange account so I could buy BTC on the other side. If I had known Mt. Gox stood for "Magic the Gathering Online Exchange" before sending the transfer, I likely would have refrained. But it worked, and I don't think a day has gone by since then where I didn't check the price of Bitcoin or read at least one related tweet or news article.

In the years between that first purchase and accepting the role of Head of Product at Voyager in April 2018, I learned everything I could about crypto. Each day I checked my crypto positions on several exchanges/wallets, read through crypto-twitter posts, looked at prices and charts using various apps, read news articles, and even checked the status of the GPU mining rigs in my basement to see how many coins I had mined in the last 24 hours.

I was perpetually frustrated with the sheer number of apps and websites I needed to visit to get the full picture of the crypto-verse. I knew that this was a significant barrier to entry for many people who didn't have the patience, understanding or time to navigate all of these resources each day or open accounts at different exchanges around the globe. When the opportunity arose to lead product for a company whose mission it was to bridge this gap, I jumped at it quickly as an opportunity to fix my own struggles, which I was sure were shared by millions of others around the globe.

The development of the full suite of features needed to deliver on Voyager's mission, however, is no small endeavor. Each feature builds upon another, and taking the time to prioritize and develop them appropriately requires the collective effort of our entire team. We are aware of the fact that features like crypto-transfers, private wallets, advanced order types, portfolio tracking and analysis, news & social integration, market alerts, managed portfolios, etc., are all important to our customers in varying degrees based upon their unique perspectives and goals.

There is no shortcut to creating these features and no easy way to prioritize what we do first as each of our users has different needs. Our goal is to deliver all of these features as quickly as possible, weighing our perceived demand for the feature against the complexity of its development.

Cost-Basis Feature

After providing this introduction and a bit of background, I'm happy to report that in the upcoming version 1.1.0 of our iOS app, users will be able to see the cost-basis of their open positions, or, in other words, the average price at which they acquired their current crypto-positions. I know this is important to me when reviewing my investments, and a crucial piece of information I use when analyzing how to rebalance my portfolio. It is also a feature not available in many of the most popular crypto trading apps, much to my frustration as a user of each of them through the years.

On the Portfolio page of our iOS app, the positions grid will now contain additional information revealed when you swipe it to the left. The current price of the asset (previously only available on the market page), the average cost at which you acquired that asset, your profit/loss on the position, the % gain/loss on the position, as well as the % allocation of each position as part of your overall portfolio, and the one day/24-hour change in each asset's price is now available.

Calculating Cost-Basis

To determine the "average cost" for each position, there are a few methodologies that can be employed. Many users do not buy a position all at once and then hold it, but instead tend to either accumulate their positions over time or trade in-and-out of them on a regular basis. Therefore, the cost-basis, or average price, of an open position must be calculated taking all of the user's prior trades into account.

The simpler part of the calculation involves implementing a weighted-average approach to calculating the average price. For example, if you bought 1 BTC at $3,500 and then bought 2 BTC at $3,800, the "average price" is not $3,650, or the straight average of the two prices, but is instead $3,700 using a weighted average calculation. The 3 BTC were purchased for a total of $9,100, and $9,100/3 = $3,700 per BTC acquired.

The more complicated part of the calculation comes into play when you must decide which prior purchases of BTC to include in the calculation if you have sold some BTC you purchased along the way. There are various accepted methodologies for determining which previous purchases to include in the calculation – you can use all prior purchases, or remove purchases that have since been sold based on a first-in-first-out (FIFO) or last-in-first-out (LIFO) matching algorithm.

Without getting into the bitter details of each method, which are likely only interesting to you if you are a CPA (like our CEO) or math/data nerd (like me), I'll let you know that we chose to use the FIFO matching algorithm for determining which purchases to include in the cost-basis calculation. This method is the most commonly used and typically the one utilized by investors/accountants when filing taxes. With this process, upon the sale of one of your positions, the calculation looks back to the earliest of your purchases in that asset and "matches" the sale to that purchase for "closing" that portion of your position.

Using our previous example, assume BTC was trading at $4,000. Your "open profit/loss" for the 3 BTC position, with its cost basis of $3,700, would be $900 ($300 per coin multiplied by your three coin position). Assume you decide to sell 1 of your 3 BTC at $4,000. Using the FIFO methodology, we would look back to your first purchase of BTC and match that sale against the first BTC that you purchased to "close" that portion of your position.

Since you bought the first BTC at $3,500, this would result in a "closed profit/loss" of $500 on that first BTC and would leave the 2 BTC you purchased at $3,800 as your open position. Your cost-basis on the remaining open position would update from $3,700 to $3,800, and your profit/loss on the 2 BTC still in your account would update to $400, assuming the market price of $4,000. The algorithm would allocate the open profit/loss of $900 you had before your sale to $500 in closed profit/loss and $400 in remaining open profit/loss.  

We plan to implement more advanced cost-basis functionality in coming months and will also be releasing overall portfolio profit/loss information in the very near future, as well as charts for profit/loss for your portfolio and each asset at some point after that. I'm excited to provide this first version to our users and look forward to hearing your feedback on our social channels and by email to our inbox. If you have any questions or want to discuss any feature or the prioritization of our roadmap, feel free to message me directly on twitter @cryptolymath.