How to calculate crypto portfolio performance over time
Last updated: September 10, 2026
Key Takeaways
- You should calculate both if you care about the result for more than 5 minutes.
- Suppose your portfolio started at $10,000, you added $2,000 halfway through the year, and it ended at $13,500.
- Simple return says 35% if you ignore the deposit, which is wrong.
- A trader who added cash during a drawdown needs a different method than a long-term holder who never touched the account for 18 months.
Track the portfolio’s value at fixed points, account for every deposit and withdrawal, and pick a return method that fits how the money moved. Skip the cash flows, and a bad month can look great — or a solid year can look weak. For crypto portfolio performance over time, the right answer depends on whether you want to measure your own timing or the assets’ underlying growth. This is information, not financial advice; for your own tax, accounting, or investment situation, a qualified adviser should be consulted.
Who this is for, and what you need before you start

This section is for anyone who already holds more than one crypto asset and wants a real performance number, not just a current balance. It assumes you can export transaction history from your exchange or wallet, read a CSV, and identify the dates and values of buys, sells, deposits, withdrawals, swaps, staking rewards, and fees. Got only a phone screenshot and a fuzzy memory? Start there first.
I would not use the standard portfolio-return methods below if you are trying to do one of three things: prepare formal tax reporting, value illiquid tokens with no reliable market price, or combine on-chain assets with off-chain assets in a way that must be audited. Those cases often need an accountant, tax adviser, or portfolio reporting tool that can handle lot-level data. Crypto also brings extra wrinkles that ordinary stock portfolios do not: token migrations, wrapped assets, forks, airdrops, bridge transfers, and staking income. Some of those change the math; some just make the ledger ugly. Messy, frankly.
The core question is simple: “How much did my portfolio grow after removing the effect of the cash I put in and took out?” The answer depends on whether you want to measure your own decision-making or the actual dollar growth of the money in the account. Those are not the same. A trader who added cash during a drawdown needs a different method than a long-term holder who never touched the account for 18 months.
The standard tools here are money-weighted return and time-weighted return. Money-weighted return, often called internal rate of return (IRR), reflects the timing and size of your cash flows. Time-weighted return strips out those flows and shows how the assets performed period by period. A generic article often stops at “final value minus initial value,” which is useless the moment you add $500, withdraw $200, or earn staking rewards. Toss that shortcut. It breaks fast.
Which return number should I calculate for a crypto portfolio?
You should calculate both if you care about the result for more than 5 minutes. Time-weighted return tells you how the portfolio manager, strategy, or asset mix performed. Money-weighted return tells you how your actual dollars performed given your timing. For a self-directed crypto account, I usually treat time-weighted return as the cleaner performance measure and IRR as the more personal one, but a qualified accountant or adviser should confirm which metric fits your reporting needs.
Why does the difference matter? Because crypto often has irregular flows. A portfolio that fell 20% before a large deposit and then recovered can look very different under each method. Time-weighted return removes the effect of that deposit; IRR does not. If you added cash after a crash, IRR can look better than the underlying asset performance. If you pulled cash out before a rebound, IRR can look worse. Neither is wrong. They answer different questions.
A third number, simple return, is just:
(Ending value − Beginning value) ÷ Beginning value
That is fine only when there are no cash flows in the period. Once you add or remove assets, simple return stops describing portfolio performance and starts describing a messy account balance change. If your portfolio has one buy and no further activity, simple return can still be a rough starting point. If there are monthly deposits, trading fees, staking income, or transfers between wallets, it is the wrong tool.
One more distinction matters in crypto: market value versus cost basis. Market value is what the portfolio is worth at a point in time. Cost basis is what you paid for it, including fees as applicable under your local rules. Performance over time should use market value snapshots and cash flows, not cost basis, unless you are specifically trying to track unrealized gain. That is a different question.
If you want one sentence to anchor the rest of the article, use this: performance = changes in value after adjusting for external money moving in and out. That is the whole game.
How do you calculate crypto portfolio performance step by step?

You calculate it by building a dated cash-flow ledger, valuing the portfolio at consistent intervals, and applying either time-weighted return or IRR. The exact method matters less than the discipline of the input data. A neat formula fed by sloppy records still gives a sloppy answer.
| Method | Best for | What it tells you | Setup |
|---|---|---|---|
| Simple return | No cash flows | Change in value from start to end | Low |
| Time-weighted return | Strategy comparison | Asset performance after cash-flow effects are removed | Medium |
| Money-weighted return / IRR | Personal account results | Return on your actual timing of deposits and withdrawals | Medium |
- Set the measurement period. Choose a start date and end date that both have priced balances, such as 1 January to 31 December, or the day you first funded the account to today. Check that every asset in the portfolio has a value on both dates. One missing price at either end can throw the whole setup off, so a qualified professional may need to help with the valuation.
- List every external cash flow. Record each deposit, withdrawal, fiat on-ramp, off-ramp, and wallet-to-wallet transfer that changes the portfolio’s total value. Include the date, asset, and amount. Double-counting internal transfers is a classic mistake; if you moved 2 ETH from one wallet you control to another, that is not a gain or loss. A problem shows up when the same transfer is entered as both outflow and inflow, so check the ledger carefully or ask a professional if the trail is unclear.
- Mark every in-portfolio event that changes value but is not a cash flow. Add staking rewards, airdrops, forks, and realized trading fees if they are charged from the portfolio. Verify whether your local tax or accounting treatment treats them as income, capital events, or something else; a qualified tax professional should confirm the classification because rules vary by jurisdiction. Ignore one reward, and the valuation can jump like a trapdoor opened under your feet.
- Take value snapshots at regular points. Use daily, weekly, or monthly snapshots; monthly is often enough for a personal view, while daily is better for active trading. Each snapshot should use the same pricing source and timestamp, such as end-of-day UTC. Mix noon prices with midnight prices, and the numbers start lying to you. A problem shows up when the same asset is valued on inconsistent timestamps, which can distort crypto portfolio performance.
- Compute simple subperiod returns if you want a time-weighted result. For each period between cash flows, calculate (ending value − beginning value − external flows) ÷ beginning value. Verify that external flows enter at the correct time boundary. A problem shows up when a deposit made on day 20 is treated as if it was present on day 1, so the return can be overstated without a proper timing adjustment.
- Chain the subperiod returns together. Multiply each subperiod growth factor, then subtract 1 at the end. For example, if one month returns 5% and the next returns −2%, the combined result is not 3%; it is 1.05 × 0.98 − 1. Verify that you are multiplying factors, not adding percentages. Add percentages instead, and long spans go sideways. A problem shows up when long periods are understated or overstated by simple addition.
- Calculate IRR if you want a money-weighted result. Put negative numbers for contributions and positive numbers for withdrawals, then solve for the discount rate that makes the net present value equal zero. Spreadsheet functions like XIRR use actual dates, which is useful when flows are irregular. Verify that the sign convention is consistent. Same sign everywhere? The formula spits out nonsense. A problem shows up when every cash flow has the same sign and the formula returns nonsense.
- Separate performance from valuation noise. If a token has very low volume or a thin order book, use a cautious pricing source and note the source in the ledger. Verify that the value is tradeable at that price, not just quoted somewhere on a screen. A problem shows up when a thinly traded asset is marked to an unrealistic price and inflates performance.
A practical example helps. Suppose your portfolio started at $10,000, you added $2,000 halfway through the year, and it ended at $13,500. Simple return says 35% if you ignore the deposit, which is wrong. A time-weighted method would measure the portfolio’s return in each subperiod around that deposit. An IRR would tell you the annualized return on your actual cash timing. Both numbers are useful, but they are not interchangeable.
If you use a spreadsheet, keep the ledger separate from the calculation sheet. One tab for raw transactions, one for daily or monthly valuations, one for the return formula. That makes errors easier to spot. A single cell mistake can quietly distort a year of results.
What should you include in the calculation, and what should you leave out?
Include anything that changes your ownership value, and leave out anything that only moves assets within the portfolio. That boundary is where most crypto tracking goes wrong.
Include fiat deposits and withdrawals, crypto purchases and sales, staking rewards, airdrops, fees that leave the portfolio, and realized proceeds from trades. If you receive a token split, migration, or fork, record the before-and-after holdings so the ledger matches reality. If you bridge from one chain to another and still control the same economic asset, treat it as an internal movement unless the bridge changes what you own in a way that affects fair value; because tax and accounting treatment can differ, confirm the classification with a qualified professional and, if needed, a source such as your local revenue authority or accountant.
Exclude wallet-to-wallet transfers under your control, unless one wallet is no longer part of the portfolio. Exclude unrealized gains and losses as separate cash flows; those belong in valuation snapshots. Exclude tax payments themselves from performance unless you are measuring after-tax wealth. That distinction matters because a pre-tax return can look very different from an after-tax one, and tax rules differ by country and change often.
Fees need special care. Trading fees are usually part of the transaction economics. If the fee is charged in the same asset, the trade record should reflect the net amount received. If the fee is paid in another asset or fiat, record it as an outflow. Ignore fees, and high-turnover portfolios look prettier than they are.
One common trap is staking income. A lot of people treat it as both a reward and a price gain, but that classification should be checked with a tax professional because local rules may treat staking differently. It is neither. It is a separate inflow if it lands in the portfolio, and then it can later rise or fall in price. Another trap is stablecoin holdings. They are not risk-free just because the number on the screen looks steady. A stablecoin portfolio can still change in value if the peg moves or redemption conditions change.
The cleaner your boundary, the cleaner your performance number. If you cannot decide whether a transaction is internal or external, ask a tax professional or accountant who works with digital assets. That is a 30-minute question worth solving before you trust the output.
The mistakes people actually make, and what they cost
The biggest mistake is treating portfolio growth as the same thing as market performance. That mistake can make a mediocre strategy look brilliant or hide a strong one behind a large deposit. The correct alternative is to separate return from cash flows and use time-weighted return or IRR.
Another common error is mixing price sources. If Monday’s holdings are valued from one exchange and Tuesday’s from another with a different spread, the portfolio can appear to jump for no real reason. The consequence is fake volatility. The fix is to use one consistent pricing source and one timestamp rule, such as end-of-day UTC.
A third error is double-counting transfers. People often log a transfer out of Wallet A and then also count the same amount as a new deposit into Wallet B, while both wallets are part of the same portfolio. The result is a phantom loss and a phantom gain. The fix is to define the portfolio boundary first, then mark only movements across that boundary as external.
A fourth error is ignoring illiquid tokens. Thinly traded coins can show a quoted price that looks real but cannot be cashed out at scale. That inflates the portfolio value and makes performance numbers too optimistic. The right alternative is to use conservative valuation and, if needed, flag the asset separately rather than letting it distort the whole portfolio.
A fifth error is using a calendar period that cuts through a large cash flow without adjusting for it. A monthly report that includes a deposit on the last day of the month can be misleading if the full deposit is treated as if it was invested for all 30 days. The fix is subperiod calculation or a daily method.
A sixth error is forgetting that crypto events can be nonstandard. A token redenomination, chain split, or migration can change unit counts without changing economic value. The wrong move is to treat every change in token count as performance. The right move is to mark the event, preserve the value chain, and then resume normal return calculation.
When does the standard approach stop working?
The standard approach stops working when your records, assets, or tax situation no longer fit a clean return calculation. In those cases, the issue is not the formula; it is the data model.
Multiple wallets with overlapping ownership: This means your portfolio boundary is unclear — map every wallet and exchange account first, then classify transfers before calculating returns.
Illiquid tokens with no dependable market price: This means mark-to-market performance is shaky — value those holdings separately and avoid using the entire portfolio’s return as if the price were solid.
Large staking, lending, or yield activity: This means income and return are mixed — separate reward income from price performance, because the assets can generate cash flows while also changing price.
Token migrations, redenominations, or forks: This means unit counts changed without a simple buy or sell — treat the event as a continuity problem and rebuild the position history before trusting any return figure.
Frequent day trading or leverage: This means monthly snapshots are too coarse — use daily data, and if the account includes borrowed funds or derivatives, consider professional reporting because the margin mechanics complicate return math.
Tax reporting requirements: This means performance and taxable gain are not the same question — keep a separate ledger for tax lots, cost basis, and disposal rules, since country-specific rules differ and change over time.
Missing transaction history: This means your result is not reliable enough to present as fact, so use conservative assumptions and consult a qualified professional before relying on the number.