A spreadsheet to track your crypto is free, it is yours, and it works. Until the day the same coin sits on three platforms, a swap has no obvious purchase price, and the value column has not been refreshed in six weeks.
- A tracking sheet is not a trade journal: it answers what your holdings are worth, not how you traded.
- Six columns are enough, and adding more is the surest way to stop filling it in.
- What breaks every spreadsheet: the same coin held on two platforms, counted twice or half forgotten.
- Refreshing prices is the real cost: it is what people stop doing, and a stale portfolio is worth less than no portfolio.
The spreadsheet is the first instinct, and it is a good one. It costs nothing, it asks nobody for access to your accounts, and you control every cell. This article gives the minimal structure that survives, then names the three places where it eventually gives way. Not to sell you something by line three, but so you know what to expect.
What a tracking sheet needs, and nothing more
The temptation is to put everything in. That is exactly what dooms the file: the more columns to fill, the higher the cost of every entry, and a spreadsheet nobody fills in is worth nothing. Six columns answer the only question you are really asking, which is what your holdings are worth and what they cost you.
| Column | What it holds | Why it is essential |
|---|---|---|
| Asset | BTC, ETH, SOL… | The grouping key. One row per asset AND per platform, never one row per purchase |
| Quantity | Units held | What you actually own, decimals included |
| Platform | Exchange, wallet, cold storage | Without it you cannot know where your capital sits, nor reconcile a balance |
| Unit cost basis | What one unit cost you, on average | The one column that turns a value into a result |
| Current price | The market price now | The column that goes stale, and therefore must be refreshed |
| Value | Quantity × price | Computed, never typed |
Everything else follows from those six. Unrealised P&L is value minus total cost. A row's weight is its value over the total. Percentage performance is P&L over cost. If you catch yourself typing a value a formula could produce, that is the sign the file is about to drift away from reality.
One optional column earns its place more than you would think: the date the row was last checked. It plays no part in the maths; it tells you how much to trust the total on screen.
Trap 1: the same coin on two platforms
This is the flaw in almost every shared spreadsheet. You hold ether on an exchange and ether on a hardware wallet. Two rows, then. From there, two errors become possible, usually both at once.
- Double-counted weight. Each row computes its share of the total on its own. Ether shows up twice, at 12% and 9%, and nowhere do you read that you are in fact 21% exposed to a single asset.
- Cost basis cut in half. Each row carries its own average cost. Neither tells you what your whole position cost, which is the only thing that matters when you decide to sell.
- The transfer that invents a gain. You move crypto from the exchange to cold storage. Create a new row at today's price instead of carrying the original cost basis, and your sheet reports a gain that never happened, erasing the position's real performance.
The spreadsheet fix exists and is well known: one holdings sheet per platform, and a summary sheet aggregating by asset with a SUMIF. Total cost sums, total quantity sums, and consolidated cost basis is the ratio of the two. It works. It simply requires never forgetting to carry a new row through to the summary, and that is where discipline wears out. A free crypto portfolio tracker that consolidates by asset on its own settles this without asking anything of anyone.
Trap 2: cost basis after a swap
As long as you buy with cash, cost basis is obvious: amount paid divided by quantity received. The difficulty starts when you swap one crypto for another. You convert SOL into ETH: what is the cost basis of the ETH you just received?
The answer serious tools settle on is the market value of what you gave up, at the moment you gave it up. Your new ETH cost you whatever your SOL was worth at that instant. This is not a theoretical nicety: carry the SOL's historical cost basis across instead, and you drag along a number that no longer corresponds to anything, making every later performance figure wrong.
Fractional buys are simpler but just as easy to get wrong. Three purchases of the same coin at three prices do not make three rows: they make one row whose cost basis is the quantity-weighted average, never the average of the three prices. That calculation is detailed in our article on crypto cost basis.
Trap 3: prices, which stop being updated
The most ordinary one, and the one that kills the file. A spreadsheet does not know the price of bitcoin. Either you type it in, or you fetch it from outside. Both routes have a flaw, and neither is comfortable over time.
| Method | What it costs | Where it breaks |
|---|---|---|
| Typing it in | A few minutes on every visit | You do it for two weeks, then never again. The total silently goes wrong |
| Built-in price function | Nothing upfront | Partial crypto coverage, values that come back empty, and nothing flags the failure |
| External API call | A key to manage, quotas, code in the file | The file is no longer shareable or portable, and it breaks when the API changes |
What the three share: when the update fails, nothing tells you. The cell keeps its old value, the total still looks plausible, and you make a decision on a three-week-old number. That is the difference in kind between a spreadsheet and a tracking tool: the first shows what it was given, the second knows how to date what it shows.
When a spreadsheet is enough, and when it stops being
There is no universal answer, but there is a fairly clear threshold. The spreadsheet stays the right tool as long as you hold few rows, on one or two platforms, and look at your portfolio occasionally. The same holds for trades: a trade journal Excel template carries you until the row count wins. It stops being right when one of three things happens.
- You hold the same asset in more than two places and can no longer state your total exposure to it from memory.
- You have started swapping cryptos, so your cost basis depends on maths you will not redo by hand.
- You open the file and your first thought is that you need to update the prices, rather than a question about your portfolio.
If that is where you are, the next step is not necessarily to pay for anything. Tradoshi's crypto portfolio tracker does exactly this work, free and on every plan: you enter your positions by hand, cold storage included, and prices, per-asset consolidation and cost basis are computed for you. An asset held on two platforms appears once, quantities add up, and the cost is that of the whole position. Trap 1 solved by design rather than by discipline.
One point worth stating: this tracker needs no trading statement. You have nothing to import and no account to connect in order to use it, unlike the rest of the application.
Do not confuse portfolio tracking with a trading journal
The two look alike from a distance and answer opposite questions. Portfolio tracking looks at what you hold: its value, its cost, its split. A trading journal looks at what you did: your entries, exits, discipline and edge.
A buy-and-hold investor only needs the first. An active trader needs both, and often errs by cramming everything into one tab. If you place trades, the journal side has its own demands, covered in our crypto trading journal guide: 24/7 markets, perpetual funding, maker and taker fees.
Frequently asked questions
Is a spreadsheet enough to track a crypto portfolio?
Yes, as long as you have few rows, one or two platforms, and accept updating prices yourself. It stops being enough when the same asset is spread across several places, or when you swap cryptos, because cost basis becomes maths nobody redoes by hand.
How do I compute cost basis after several purchases?
As a quantity-weighted average: total paid divided by total quantity received. Never the arithmetic mean of the purchase prices, which is wrong as soon as the amounts differ.
One row per purchase or one row per asset?
One row per asset and per platform, whose cost basis is updated on each new purchase. One row per purchase bloats the file and makes each asset's weight unreadable, which is precisely the information you came for.
Does Tradoshi replace my spreadsheet?
It does the same job without the maintenance: prices, consolidation of an asset held on several platforms, and cost basis are computed. Manual entry stays available and deliberate, for cold storage and platforms no interface reads. It is free on every plan.
Does this article help me file my crypto taxes?
No, and that is deliberate. Filing is a tax matter, with its own calculation rules and its own forms. Portfolio tracking and a tax return do not serve the same purpose and are not computed the same way.