Tools

How to Import Your Revolut Trading History into Pulse

Revolut keeps its trading statement separate from the bank statement, and the two look nothing alike — the first trap is exporting the wrong one. The bank statement knows your card spending; the Invest account statement knows your trades, and that's the one a portfolio import needs.

Step 1 — export from Revolut

  1. In the app open the Invest tab.
  2. More → Documents → Stocks → Account statement.
  3. Choose Excel as the format (it opens as a clean table you can save as CSV), pick the period, and Get statement.

Robo-advisor, crypto and commodities each have their own statements — repeat per product if you use them.

Step 2 — what's in the file

The current trading statement has eight columns:

Revolut columnWhat it holds
DateA full timestamp (recent statements use ISO format; older ones just a date)
TickerThe symbol — there is no ISIN column, so ambiguous tickers may need a manual check
TypeBUY - MARKET, SELL - LIMIT, DIVIDEND, CASH TOP-UP, CASH WITHDRAWAL, CUSTODY FEE, STOCK SPLIT
QuantityShares, fractional supported, positive
Price per shareIn the trade currency (usually USD)
Total AmountThe cash amount — magnitude only; direction comes from Type
CurrencyThe currency of those amounts
FX RateThe rate between your base currency and the trade currency at that moment

Revolut has changed this format more than once over the years — if your statement's columns differ from the table above, the mapping logic still holds, just match by meaning.

Step 3 — map it onto the Pulse template

Download Pulse's import template:

Pulse columnFrom Revolut
dateThe date part of Date
deal_typeFrom Type: BUY - …BUY · SELL - …SELL · DIVIDENDDIVIDEND · CASH TOP-UP/CASH WITHDRAWALCASH
ticker_symbolTicker (empty on dividend and cash rows — put the stock in the comment)
amountQuantity (empty on cash rows)
priceTotal Amount converted to your base currency via FX Rate, sign fixed: buys and withdrawals negative; sells, dividends and top-ups positive
transaction_feeUsually 0 — Revolut folds trade fees into Total Amount. Skip CUSTODY FEE rows on import (a negative cash row would count against your invested capital, which a fee is not)
asset_typeSTOCK (or ETF) for trades, CASH for the rest
commentAnything that helps you review — the Type value is a good default

Since most Revolut trades settle in USD while you probably track in EUR, the currency step matters: multiply Total Amount by the row's FX Rate (or divide — check one row against what actually left your account, the direction of Revolut's rate has varied between statement versions) so price lands in your base currency.

Example:

2026-03-14,BUY,AAPL,2,"-322.40",0,STOCK,BUY - MARKET · 350.10 USD @ 0.9209

STOCK SPLIT rows have no clean template equivalent — skip them on import and adjust the position by hand if a split ever leaves your share count wrong.

Step 4 — upload

Transactions → Import in Pulse, drop the file, and read the preview — with the FX conversion done by hand, compare one or two converted rows against your actual account history before confirming.

Bring the whole portfolio acrossImporting keeps your positions, cash and returns up to date automatically. Portfolio tracking is the paid part of Pulse — the backtester and screeners stay free.See what tracking costs