Blog · Tutorial

Build a DCA calculator in Google Sheets

Track every recurring buy, pull the price for each date automatically, and watch your average cost and profit/loss update live — for crypto or stocks.

Quick answer: list each buy (date + amount), pull the price per date with =cryptotrackproPrice("BTC", date), divide amount by price for units, then total invested ÷ total units = your average cost. Current value uses the live =cryptotrackpro("BTC-USD"). Free, no API key — install CryptoTrackPro.

Dollar-cost averaging (DCA) — investing a fixed amount on a regular schedule — is the simplest strategy there is, but tracking it by hand is a chore: you have to look up the price on every buy date. A spreadsheet does it for you. Here's a DCA calculator you can build in a few minutes that pulls each historical price automatically and shows your true average cost and live returns.

Step 1 — log each buy

Four columns: Date · Invested · Price on date · Units bought. Put each recurring purchase on its own row (date in column A, the amount you invested in column B).

Step 2 — pull the price for each date automatically

This is the part that usually takes forever by hand. In the Price column, reference the date cell:

=cryptotrackproPrice("BTC", A2)

That returns Bitcoin's closing price on the date in A2. Drag it down and every buy is priced automatically — no CoinMarketCap tab, no manual lookups. Then units bought in column D:

=B2/C2

Step 3 — average cost, holdings & live P&L

Total invested=SUM(B2:B100)
Total units held=SUM(D2:D100)
Average cost / coin=TotalInvested/TotalUnits
Current value=TotalUnits*cryptotrackpro("BTC-USD")
Profit / loss=CurrentValue-TotalInvested
Return %=CurrentValue/TotalInvested-1

The average-cost line is the number DCA is all about — it's what you'd have paid per coin on average. Because the current value uses the live price, your profit/loss updates every time the market moves.

Works for stocks too

DCA into an index fund or a stock? Same layout — just price the current value with =cryptotrackproRWA("SPY") or =cryptotrackproRWA("AAPL"). You can even DCA into crypto and stocks in the same sheet.

Build your DCA tracker free

50 lookups a day on the free plan. No API key, no card.

Install CryptoTrackPro free

FAQ

How do I get the price on a past date?

=cryptotrackproPrice("BTC","2024-01-15") returns the closing price on that date. Point it at a date cell to price a whole column of buys.

Is it free?

Yes — 50 lookups a day on the free plan. A long DCA history with many rows may want Base or Pro.

Written by the CryptoTrackPro team. We build market-data tools for Google Sheets, used by hundreds of investors and analysts worldwide. Prices come from CoinMarketCap and established on-chain issuers — not guesswork. More about us →

Back to the blog