Super Sale WeekClaude Skills — 20% OFF
Tips

How to Analyze Your Crypto Exchange CSV Export With AI (Step-by-Step)

Powerdrill Team·
How to Analyze Your Crypto Exchange CSV Export With AI (Step-by-Step)

To analyze a crypto exchange CSV export, first work out what each row represents — most exports mix trades, deposits, withdrawals, fees, and rewards in one file. Then normalise the timestamps and the fee currency, decide on a cost-basis rule, and only after that calculate realised and unrealised positions. An AI data agent can do the normalising and the maths from the raw file, which is where most spreadsheet attempts stall.

Almost every guide about crypto and AI is about the market: price trends, sentiment, which coin is moving. Far fewer deal with the file you can actually download — your own transaction history, which is the only data that tells you how you did.

This guide covers what is in that file, the manual route, and the faster one.

A note before we start: everything below is descriptive analysis of your own records. It is not investment advice, and it is not tax advice. Cost-basis rules differ by jurisdiction, and a tax professional should sign off on anything you file.

What is actually in a crypto exchange CSV export

Exports vary by exchange, but the same problems show up in nearly all of them.

Multiple record types in one file. Trades, deposits, withdrawals, fees, staking rewards, referral credits, and internal transfers often share a single sheet, distinguished only by a type column. Sum the amount column without filtering and the total is meaningless.

Two-sided trades. One trade is frequently two rows — what left your account and what arrived — linked by an order ID. Treat them as independent rows and you will double-count volume.

Fees in a third currency. A trade can be priced in USDT, settled in BTC, and charged a fee in the exchange's own token. Three currencies, one row, no conversion supplied.

Timestamps in UTC. Almost always UTC, almost never your local time, and often to the second. If you group by day without converting, your daily buckets are shifted.

No running position. Exports give you events, not balances. Holdings, average cost, and realised gains all have to be derived.

Partial fills. A single order can appear as several rows at slightly different prices, which matters the moment you calculate an average entry.

That list is why "just open it in a spreadsheet" turns into an afternoon.

The manual route in a spreadsheet

Separate the record types first

Filter by the type column and split trades, transfers, fees, and rewards into separate tabs before doing anything else. Every later calculation depends on this, and it is the step people skip.

Normalise currency and time

Convert every fee to one reporting currency, using the rate at the time of the transaction rather than today's rate. Convert UTC timestamps to the timezone you actually think in. Both are tedious, and both are wrong-in-silence if you get them wrong: nothing errors, the totals just drift.

Pick a cost-basis rule and apply it consistently

FIFO, LIFO, or average cost produce materially different realised gains from identical transactions. Pick one, write it down, and apply it to every asset. Mixing rules between assets is the single most common way these spreadsheets end up indefensible.

Derive the position

Build a running balance per asset, then an average cost per asset, then realised gains per disposal. In a spreadsheet this is a stack of helper columns that breaks whenever a new asset appears.

Excel and Sheets can do all of this. The reason it takes hours is not difficulty, it is bookkeeping.

How to analyze your exchange export with Powerdrill Bloom

The shortcut is to describe the rules once and let the analysis run from the raw file, rather than building the helper columns yourself.

Step 1: Upload the export

Download the transaction history from your exchange as CSV and drop it into a workspace. Powerdrill Bloom reads Excel, CSV, TSV, and PDF, and auto-cleans on ingest, so mixed types, inconsistent decimals, and text-formatted timestamps get resolved rather than quietly breaking a calculation.

Uploading a crypto exchange CSV export for analysis in Powerdrill Bloom

If you trade on more than one exchange, upload all of the exports together. Cross-exchange is exactly the case a spreadsheet handles worst, because every venue names its columns differently.

Step 2: State the rules, then ask the question

Give the rules up front, in natural language, then ask what you actually want to know:

"This is my exchange transaction history. Treat rows where type is TRADE as trades and exclude deposits, withdrawals, and internal transfers from volume. Convert all fees to USD at the transaction date. Use FIFO for cost basis. Then show me realised gain by asset, total fees paid by month, and my average entry price for each asset I still hold."

Being explicit about the rules is what makes the output defensible. Ask "how did I do" without them and you get an answer built on assumptions you never saw.

Step 3: Export the charts, table, or deck

Take the position table as a file, take the charts, or turn the whole canvas into a presentation-ready deck in one click and export it to PowerPoint or Notion — useful if you are reporting to a fund, a partner, or an accountant rather than just yourself.

Exporting the position table, charts, or deck

What you can actually learn from it

Question What it needs Why a spreadsheet struggles
Realised gain by asset Cost-basis rule + disposal matching Helper columns per asset, rebuilt when a new one appears
Total fees, and as a share of volume Fee normalisation across currencies Fees arrive in a third currency with no rate supplied
Average entry price per holding Partial fills merged per order Fills sit on separate rows at different prices
Which month cost you the most in fees Timezone-correct grouping UTC timestamps bucket into the wrong local day
Whether activity clusters around volatility Joining your trades to price history Requires a second dataset

That last row is the one people underestimate. Fee drag is often the largest single finding in a personal export, and it is invisible until someone sums it.

Best practices

Reconcile against the exchange's own totals first

Before interpreting anything, check your computed deposit and withdrawal totals against the balances the exchange reports. A mismatch means a record type got misclassified, and every downstream number inherits that error.

Write your cost-basis rule into the file

Put the rule in a header cell or a notes tab. Six months later you will not remember whether that spreadsheet was FIFO or average cost, and the two do not reconcile.

Never let a blank fee mean zero

A missing fee value and a genuinely zero fee are different, and treating them alike understates your true cost. Flag blanks explicitly rather than filling them.

Keep the raw export untouched

Do all work on a copy. Exchanges frequently limit how far back you can re-export, and an overwritten original is not always recoverable.

Separate your own performance from market movement

Your portfolio being up in a month when the whole market rose says little about your decisions. If you want the market side of the picture, analyzing crypto market data with AI covers that, and the AI crypto analyst page covers the market-facing tooling.

Common mistakes to avoid

  1. Summing the amount column. With deposits, trades, and rewards in one file, that total means nothing. Filter by type first.
  2. Counting both sides of a trade as volume. Two rows, one trade. Deduplicate by order ID before aggregating.
  3. Using today's exchange rate for historical fees. Fees have to be converted at the transaction date, or your cost figures drift with the market.
  4. Mixing cost-basis rules between assets. FIFO on one coin and average cost on another produces a number you cannot defend to anyone.
  5. Ignoring partial fills. An order filled in six pieces at six prices has one average entry, not six independent trades.
  6. Treating the output as tax-ready. It is a starting point for a conversation with a professional, not a filing.

Conclusion

Your exchange export is the only crypto dataset that describes your decisions rather than the market's. It is also awkward enough — mixed record types, three currencies per row, UTC timestamps, no running balance — that most people never get past opening it.

State the rules explicitly, reconcile against the exchange's own totals, and keep the raw file untouched. If you would rather skip the helper columns, Powerdrill Bloom will run it from the raw export and chart the result, with 1,000 daily refreshed credits on the free plan. The CSV AI assistant page shows the general workflow on any CSV.

Frequently asked questions

How do I analyze my crypto transaction history?

Split the crypto exchange CSV export by record type, normalise fees to one currency at the transaction date, convert UTC timestamps to your own timezone, then choose a cost-basis rule before calculating anything. Only after those four steps do realised gains, average entry prices, and fee totals mean what you think they mean.

Why don't my exchange export totals match my balance?

Usually because deposits, withdrawals, internal transfers, or rewards were counted as trades, or because both sides of each trade were summed as separate events. Reconcile your computed deposit and withdrawal totals against the exchange's reported balances before trusting anything downstream.

What is cost basis and why does it change my numbers?

Cost basis is the purchase price attributed to the units you sold. FIFO assigns your earliest purchases, LIFO your most recent, and average cost blends them. The same transactions produce materially different realised gains under each rule, which is why the rule has to be chosen and stated up front.

Can AI calculate my crypto taxes?

No. An AI data agent can compute realised gains under a rule you specify and summarise fees and holdings, which is useful preparation. Tax treatment varies by jurisdiction and changes, so the output should go to a qualified professional rather than into a filing.

Can I analyze exports from several exchanges at once?

Yes, and it is the case worth automating, because each venue names and orders its columns differently. Upload all the exports together and state the mapping in your instruction — that reconciliation is precisely what makes the cross-exchange view painful to build by hand.