Crypto prices in Google Sheets: write a fetcher or use an add-on?
Custom Apps Script can fit a tightly defined feed, but a dedicated add-on may save setup and upkeep when a sheet needs regular market prices.
A clean ledger starts with venue records, separates trade facts from price lookups, and exports a reviewed CSV—not a tax answer by itself.
Tax preparation gets harder when trades sit across several exchanges, wallets and file formats. Google Sheets can serve as a staging ledger: normalize the records, check missing values, add price context, then export a clean CSV for tax software. It will not reconcile every wallet or decide which tax rules apply. Those jobs still need careful review.
CryptoTrackPro fits one part of that workflow. Its Google Sheets add-on supports historical price lookups, alongside live crypto prices from CoinMarketCap. A live formula such as =cryptotrackpro("BTC-USD") is useful for a current portfolio view, but it is not a record of what a trade was worth when it happened. Keep the venue’s execution price and timestamp as primary evidence.
Export transaction histories from each venue and preserve the untouched files. Make a working tab with one row per event, then map each venue’s columns into a common set. Useful fields include:
Do not treat every wallet movement as a sale. Transfers between wallets you control may need to be distinguished from disposals, and a swap can involve both an asset leaving and another arriving. Preserve the source event and record your classification separately. When a venue reports a trade as two rows, document how you pair them rather than silently deleting one.
Use a separate set of columns for any historical price lookup: lookup asset, lookup time, returned price, currency and review status. CryptoTrackPro supports historical price lookups, including tax-oriented use, but the available time granularity and coverage for a particular asset should be checked before you rely on a result. Do not invent a lookup formula or assume a returned daily price is the exact execution-time price.
For a USD valuation, the basic arithmetic is quantity multiplied by a USD price. If the historical lookup provides the relevant USD price at an appropriate time, a Sheets formula can calculate a reference value from those two cells. Keep that result distinct from the venue’s recorded proceeds or cost. If a trade was quoted in a currency other than USD, you also need a documented conversion method and rate; a crypto price alone does not perform that conversion.
Fees need their own treatment. A fee charged in a token is not the same as a fee charged in fiat, and its value may require separate price context. Keep the fee asset and quantity intact so you or a tax preparer can apply the right method. A spreadsheet’s arithmetic does not determine tax treatment, cost-basis method or reporting obligations.
CryptoTrackPro’s live-price formulas can help with current portfolio monitoring, but tax records should not depend on a changing live cell. Once you have reviewed a historical lookup, preserve the reviewed value and the lookup time in your working record, and retain the original transaction export. Keep a note of any manual correction and why it was made.
The add-on’s free plan includes 50 price calls per day; Base includes 500 per day, and Pro has unlimited daily price calls. Those limits matter if you are testing many assets or building a large workbook. Do not turn every transaction row into a live formula by default. Decide which transactions need a historical lookup, test a small sample first, and check that the returned values match your intended asset and time.
Keep the normalized ledger separate from your analysis tabs. Before exporting, filter out notes and blank rows, standardize dates and decimal separators, confirm that quantities and prices are numeric, and remove formulas from the export copy if the receiving software expects fixed values. Include stable identifiers and source references when the destination accepts them.
Export the clean transaction tab as CSV, then compare the exported row count and a sample of totals with the sheet. Tax software often expects its own column names and event labels, so check its import specification and map fields before uploading. A CSV is a transport format, not proof that the data is complete or correctly classified.
The practical division of labor is simple: venue files establish what happened; the sheet makes records consistent and reviewable; CryptoTrackPro can supply historical price context where its coverage and timing fit; tax software applies its import rules and supports the filing workflow. That separation makes errors easier to find than a workbook that treats live market prices as transaction history.
Custom Apps Script can fit a tightly defined feed, but a dedicated add-on may save setup and upkeep when a sheet needs regular market prices.
Crypto and tokenized assets can share a Google Sheet, but refresh limits and asset definitions need planning before the workbook grows.
Refresh frequency is a workflow choice, not a promise of tick-by-tick prices. Match your sheet’s update cycle and daily call limit to how often you trade.