A portfolio tracking spreadsheet template is a structured way to log what you own, what you paid, and what it's worth now. The hard part isn't building the template — it's choosing the columns that keep your numbers honest when you trade across multiple venues. The layout below works for a Kraken account plus a hardware wallet without turning into a second job.
Why a spreadsheet still beats most apps
Portfolio apps connect to exchanges and wallets automatically. That convenience is also why they sometimes show you wrong totals: an API sync lags, a deposit gets counted twice, or a delisted token quietly drops out. A manual sheet forces you to reconcile against what you actually hold.
| Method | Strength | Weak spot |
|---|---|---|
| Exchange dashboard | Real-time, zero setup | Only shows that one exchange |
| Portfolio app | Pulls multiple sources | API syncs can lag or duplicate |
| Spreadsheet | Full control, custom cost basis | You maintain it by hand |
If you hold assets in three or four places, a spreadsheet gives you one honest view. Updating it takes about ten minutes a month.
The columns that actually matter
Most templates fail because they track price but not cost basis. Price changes every minute. Cost basis determines your real gain, so it has to live in the sheet.
Build these fields first:
- Asset ticker
- Quantity held
- Date acquired
- Cost per unit at purchase
- Total cost (quantity × cost per unit)
- Current price
- Current value
- Unrealized gain/loss
Then add two optional columns: location (Kraken, Ledger, and so on) and notes. The location column matters more than people expect — it's how you notice that 40% of your stack sits on one exchange.
A mini-scenario: the $600 mistake
Say you bought 0.01 BTC on Kraken at $60,000. That's $600. Six months later it's worth $900, so your sheet shows a $300 gain. Clean.
Now imagine you moved that BTC to a hardware wallet and forgot to update the location column. Your sheet still says "Kraken." A withdrawal delay hits, and you panic because you think your coins are stuck on an exchange when they're actually in cold storage. The math was right. The context was wrong. That's why the location column isn't decoration.
Handling cost basis when you buy in chunks
Buying the same asset at different prices is normal. Your sheet needs to handle it without averaging away the detail.
Use one row per purchase
Don't merge three BTC buys into one line. Keep each purchase as its own row with its own cost. When you eventually sell, you'll want to know which lot you're selling — tax rules in many jurisdictions care about exactly that.
Let the sheet do the averaging
Add a summary block below your rows that calculates total quantity and total cost across all lots. Divide one by the other and you get your average cost per unit. That's the number you compare against current price.
Keeping it current without burning out
A sheet you update daily is a sheet you'll abandon in three weeks. Design for low effort.
Update prices weekly, not hourly
Pick a fixed day. Sunday evening works for a lot of people. Pull current prices, paste them in, done. Day-to-day noise doesn't change your strategy.
Log trades the day they happen
The one thing you shouldn't batch is new transactions. A trade you forget to log becomes a mystery row six months later. Add the row while the confirmation email is still in your inbox.
What to leave out
Templates that try to do everything end up doing nothing well. Skip these unless you have a specific reason to include them:
- Tax lot optimization (use dedicated software)
- Real-time price feeds (overkill for most people)
- Staking reward tracking at the cent level (round to a reasonable figure)
A lean sheet you actually maintain beats a perfect one you open twice.
Frequently asked questions
Do I need a separate spreadsheet for each exchange?
No, and you probably shouldn't. One sheet with a location column gives you a consolidated view, which is the whole point. Separate sheets just recreate the fragmentation you're trying to escape. If you want per-exchange breakdowns, use a pivot table or a filter instead.
How do I track assets I moved off Kraken?
Update the location column and note the date of the transfer. The quantity and cost basis don't change when you move coins — only where they sit. Some people add a transfer history tab if they move assets often, but for most holdings a simple location update is enough.
Is a spreadsheet accurate enough for tax reporting?
It can be, if you log every transaction and keep the cost basis per lot. The risk is human error — a missed trade or a wrong figure compounds over time. Many people use a spreadsheet for tracking and dedicated tax software for filing, then reconcile the two at year end.
What's the simplest version that still works?
Five columns: asset, quantity, cost per unit, current price, and location. That covers most of what you need. Add columns only when you hit a question the sheet can't answer. Starting minimal keeps you updating it, which matters more than any feature.
Open your sheet right now and add the location column if it's missing. That single field prevents the most common tracking error.