All posts
Tutorials· 14 min read·

The Cost Basis Tracker: How to Actually Know What You Paid

Most investors can't tell you their true weighted-average cost across multiple buys. The Cost Basis Tracker gives you a precise number that changes how you read your position.

By The Editorial Team

After a few months of DCA, almost everyone loses track. You remember that one buy near the top, and you vaguely recall a great fill during a dip, but if someone asks "what's your average cost on BTC?" — most people guess. The honest answer is usually a number rounded to the nearest thousand, pulled from memory, and wrong.

This matters more than it sounds. Your average cost is the dividing line between "I'm up" and "I'm down." It's the number that anchors every decision about whether to keep buying, hold, or take some off the table. And in a tax year, it's the number underlying every gain or loss you'll eventually report. Guessing here is fine when you have two buys. It stops being fine somewhere around buy number five.

The Cost Basis Tracker is a simple worksheet for fixing this. You log each purchase as it happens, and it computes the one number that actually summarises your position: the dollar-weighted average price you've paid per unit. Once you see that number, you'll find yourself thinking about your portfolio differently — not as "the price I felt good about" but as "the price math says I'm at."

What cost basis actually means

Cost basis is the dollar-weighted average price per unit you paid across all of your buys. The phrase that does the work in that sentence is "dollar-weighted." It is not the simple average of the prices you bought at. It is weighted by how much money you spent at each price.

This distinction is the entire story. When you DCA a fixed dollar amount, a cheap month buys more units than an expensive month — so the cheap month has more influence on your average. The average bends toward the prices where you accumulated the most units, not the prices you happened to see on the screen.

If you ignore the weighting, you'll consistently overestimate your average cost and underestimate how well DCA has actually worked for you.

A two-line worked example

The cleanest way to see it is with two purchases.

  • Buy 1: You spend $1,000 when BTC is at $50,000. You receive $1,000 / $50,000 = 0.02 BTC.
  • Buy 2: You spend $1,000 when BTC is at $25,000. You receive $1,000 / $25,000 = 0.04 BTC.

Across both buys, you've spent $2,000 and you own 0.06 BTC. Your weighted-average cost is $2,000 / 0.06 = $33,333 per BTC.

Now look at the simple average of your two buy prices: ($50,000 + $25,000) / 2 = $37,500. That number is over $4,000 higher than your actual cost basis.

The weighted average is lower because the cheaper buy gave you twice as many units as the expensive one, so it counts twice as much. That gap — the difference between the naive average and the true weighted average — is exactly the "magic" of DCA that gets talked about. It's not magic. It's just arithmetic that most people skip past.

What the calculator does

The Cost Basis Tracker at /calculator/cost-basis is built around this single calculation, but designed to be lived in over months.

Inputs:

  • Asset name — a label only. Type "BTC" or "ETH" or "AAPL" or "my coffee bean futures" — the tracker doesn't validate it. It's just there so the worksheet remembers what you're looking at.
  • Current price — what one unit is worth right now. This drives the unrealized P&L and current value columns. Update it before each check-in.
  • Purchase entries — one row per buy. Each row has three fields: the date (for your reference), the amount you spent in dollars, and the price per unit at the time of purchase. From those two numbers the tracker derives the units you bought.

Outputs:

  • A summary block: average cost basis, total units, total invested, current value, unrealized P&L in dollars and percent.
  • A per-entry table showing the units bought, the price paid, and the P&L on that specific lot at the current price.

The date is recorded but it does not feed into the math. The average cost is computed without any notion of time — every dollar you've spent counts equally regardless of when you spent it. That matters when we get to taxes later.

Build the intuition: watch the average move

Reading about weighted averages is one thing. Watching the line move as you add purchases is what makes it stick. The sim below is an editable ledger — add a buy and the average-cost line redraws.

Try this: start with a few small, evenly-spaced buys around the current price. Then add a single large buy at a much higher price and watch the average-cost line jump up. Now add a smaller buy at a much lower price and watch it ease back down — but not as far as the small buy would suggest, because it's a smaller buy.

The asymmetry is the lesson. Bigger buys at extreme prices pull your average around more than smaller buys at the same prices. Your average cost is a record of where your money went, not where your attention went.

· Interactive · Cost-basis stack
3 lots
Spent ($)Buy price ($)Units
0.011905
0.008065
0.005263
Current market price
Avg cost / unit
$59447.29
Total spent
$1,500
Position value
$2,019
Unrealised P&L
$519
+34.6%

Once that shape is in your head, looking at your real ledger gets easier. You'll know at a glance whether your next $100 will move the needle or barely register.

Reading the summary

Four numbers do most of the work.

  • Average cost basis — your weighted-average buy price. This is the number you compare against the current price to know if you're up or down on the position as a whole.
  • Total units — how many units you actually own. Crypto positions are usually fractional and easy to misread; the tracker gives you the exact accumulated number.
  • Total invested — the sum of every dollar you've put in. This is your at-risk capital. It's also the denominator for percentage return.
  • Unrealized P&L — (current price − average cost) × total units. The dollar amount your position would gain or lose if you sold everything right now at the current price. The percentage tells you how that compares to what you put in.

These four numbers together answer the only questions that actually matter day to day: what did I pay, what is it worth, and how is the trade going?

Why "unrealized" matters

The word "unrealized" is doing important work in "unrealized P&L." You haven't sold. The gain or loss exists on a screen, not in your bank account. Markets can give you a +60% number on Monday and a +20% number on Friday without you having done anything wrong — that fluctuation is the cost of holding a volatile asset.

What unrealized P&L is good for is reading the health of the position. A small unrealized loss after two months of DCA is normal volatility. A 50% unrealized loss after three years of DCA into a major asset is a signal worth thinking about — maybe a buying opportunity, maybe a sign your thesis needs revisiting.

What unrealized P&L is not good for is celebrating, panicking, or planning your retirement around. Until you sell, the number is provisional.

Cost basis is not tax basis (mostly)

This is the section where the worksheet stops being purely about your arithmetic and starts brushing up against the IRS's. The short version: the average the tracker computes is not necessarily the basis you'll report on your taxes.

In the US, there are a few common conventions for figuring out what your "basis" is when you sell:

  • Specific lot identification. You pick which specific lots you sold. This gives you the most control — you can sell your highest-cost lots first to minimise gains or harvest losses, or your lowest-cost lots if you want to lock in long-term gains. Most modern brokers and exchanges support specific-lot ID.
  • FIFO (first-in, first-out). You sell your oldest lots first. This is the default in many brokers and on most crypto exchanges. It tends to result in the lowest basis (and therefore the highest gains) for assets that have appreciated.
  • Average cost. Historically reserved for mutual funds, where each share is fungible and tracking individual lots gets unwieldy. Some brokers also offer average cost for stocks and crypto. This is the only convention where the number from this tracker is the number you'd report.

The Cost Basis Tracker computes the average. That's the right number for understanding your position. It is not automatically the right number for tax filing, especially if you're using FIFO or specific lot ID at your broker.

!
This is not tax advice

The tracker is a personal worksheet. For tax reporting, use the 1099-B (or equivalent) provided by your broker or exchange — that's the document the IRS expects to match. If you have multi-year, multi-exchange, or complex tax situations, talk to a CPA. The math here is correct; the conventions vary by jurisdiction and account type.

Tax-loss harvesting in plain English

Tax-loss harvesting is one place where knowing your per-lot basis genuinely pays off. The idea is simple: if you sell a lot at a loss, you've "realised" that loss for tax purposes, and you can use it to offset gains you've realised elsewhere. In the US, realised losses can offset realised gains dollar for dollar, with limited net losses deductible against ordinary income each year.

Your highest-cost-basis lots are your loss-harvest candidates when the asset is down. If BTC is at $40,000 and one of your lots was bought at $65,000, that lot is sitting on a $25,000-per-coin unrealised loss. Sell it, and the loss becomes realised — useful against gains from other sold positions. (Note that crypto isn't covered by the wash-sale rule in the US as of writing, but stocks and ETFs are; rebuying the same security within 30 days of a sale at a loss disallows the loss for tax purposes.)

The Cost Basis Tracker's per-entry table is what makes this visible. At a glance, you can see which lots are deeply red and which are green. Without that view, you're just looking at a portfolio average — which hides the harvest opportunities entirely.

Where the tracker is useful

A few situations where a worksheet like this earns its keep:

  • A crypto wallet that's accumulated buys across multiple exchanges over a few years. Different exchanges, different statement formats, no single source of truth. The tracker is a place to consolidate them.
  • A taxable brokerage account where the broker statement shows 1099-B numbers but not a clean weighted basis. Especially for buy-and-hold investors with reinvested dividends, the actual basis can drift far from what you remember paying.
  • Pre-DCA bag-holders trying to figure out break-even. If you went all-in once and have been slowly adding ever since, the tracker tells you where you actually stand instead of where the original buy says you do.
  • Anyone running a side-pocket conviction trade. A small allocation outside your main retirement accounts, tracked manually, where you want to know exactly what's happening.

Where the tracker is not enough

It is a single-asset worksheet, intentionally simple. It is not a portfolio-management tool. Things it does not handle:

  • Multiple assets in one view. For that, a Google Sheet or dedicated portfolio tracker is the right tool. Most people end up with a sheet eventually.
  • Multi-currency basis. If you bought in GBP and want USD basis, you'll need to convert each entry yourself.
  • Wallet-to-wallet transfers. Moving crypto between your own wallets isn't a buy or a sell — it doesn't change your basis. But many people accidentally log transfers as new buys.
  • Forks, airdrops, staking rewards. These complicate basis in ways that depend heavily on jurisdiction and what the broker reports. Don't try to model them here.
  • Fees baked into the price. If your exchange charges a 0.1% taker fee on each buy, technically that fee adjusts your basis. For most retail-sized DCA, it's small enough to ignore; for larger purchases it isn't.

The tracker covers the 80% case: a single asset, a stream of buys over time, an honest weighted average. For anything more, layer additional tools on top.

A maintenance workflow that actually sticks

The single most common failure mode for any tracker is that people set it up, use it for a month, and abandon it. The workflow below takes about a minute per month and survives that pattern.

  1. Log each buy when it happens. Right after you execute a buy — whether automatic or manual — open the tracker and add a row. Date, amount in dollars, price per unit. Sixty seconds. Doing it in the moment is dramatically easier than reconstructing six months of transactions from an exchange CSV.
  2. Update the current price before each check-in. Whenever you want to look at the position, refresh the current price field first so the unrealised P&L is meaningful. Don't anchor on a stale number.
  3. Snapshot the sheet annually for tax season. At year end, export or screenshot your purchase history. If you ever need to reconstruct basis for a tax return or audit, you'll have a contemporaneous record alongside your broker's documents.

That's it. No daily ritual, no rebalancing schedule. The point is to keep the ledger accurate enough that the answer to "what's my average?" stops being a guess.

Common mistakes

A few patterns I've seen repeatedly that erode the value of the tracker:

  • Inconsistent treatment of fees. Including the exchange fee in one entry's "amount spent" but not another's. Pick one convention — usually "amount including fees" — and apply it to every row.
  • Forgetting the "free" coin. Referral bonuses, sign-up promotions, staking rewards. They're not free for tax purposes (usually income at receipt), and if you treat them as cost-basis-zero buys, the average comes out misleadingly low.
  • Recording the wrong date. Not because the date is in the math, but because next year, when you're trying to match buys to a broker statement, the dates are how you find the matching transaction. Get them right at entry time.
  • Mixing currencies. Two buys in USD and one in GBP, all sitting in one sheet at face value. If you can't avoid multi-currency buys, convert everything to a single base currency at the rate on the day of purchase.
  • Not updating after a sale. When you sell a portion of your position, the units and basis of the remaining position depend on which lots you sold under. The tracker is a buys-only worksheet; sales need to be handled separately.

None of these are fatal, but each one quietly degrades the accuracy of the average you're computing. The tracker is only as honest as the inputs.

Bring the number into focus

If you've been DCA-ing for more than a few months and haven't actually checked your weighted-average cost — that's the first move. Open the Cost Basis Tracker, add your buys, and look at the number. Most people are surprised: the number is usually better than they remembered, because they were anchoring on a high-water-mark buy that didn't actually represent where most of their money went.

From there, the rest of the site connects. If you want to run a forward-looking simulation of how a DCA plan might perform from here, the crypto DCA calculator backtests any monthly schedule against historical prices. If you want the philosophical case for why all of this — averaging, tracking, holding — is the boring strategy that wins, the method page lays it out.

The cost basis is not a magic number. It's just the truth about what you paid. Knowing it precisely is what separates investors who can hold through a 40% drawdown from investors who panic at any drawdown — because the people who panic don't actually know where they stand.

Partner Offer

Save 20% on Binance Trading Fees

Lifetime discount on every spot, futures, and margin trade. Use our exclusive referral code at signup.

INSTANT20
Sign Up Now

Affiliate link — we may earn a commission at no extra cost to you.

Keep reading

Crypto·13 min

Bitcoin Halving Cycles and DCA: What Four Cycles Actually Tell Us

Commodities·11 min

DCA Into Gold and Silver: A Realistic Guide to Commodities

Tutorials·13 min

Compound Interest, Explained: How the Calculator Turns Time Into Money