Freetrade portfolio tracker: benchmark your Freetrade portfolio against the S&P 500
We read a Freetrade activity export and turn each row into an order, a dividend, an interest payment or a movement of cash. The layout we recognise states the price per share in your account currency, so a purchase on a US market is already expressed in the currency you funded. Type labels in that file are written in a machine style rather than in prose, which is easy to read and easy to lose if the file is edited by hand.
What the file contains
Every row carries a timestamp, a title naming the instrument, a type, a ticker where one exists, a quantity, a price per share and a total amount, with the account currency stated alongside. Orders, funding and income therefore share one list, and nothing has to be stitched together from two downloads.
The price being expressed in your account currency is worth noticing. It means the conversion has already happened and the figure you see is what the share cost you in pounds. That removes one step and hides another, because the rate used is inside that number rather than beside it.
The type field separates the events. An order builds a position, a top-up and a withdrawal are funding, a dividend is income, and interest belongs to the cash rather than to the holdings.
The columns we look for in this export are Title, Type, Timestamp, Ticker, Quantity, Price per Share in Account Currency, Total Amount and Account Currency.
How the import works for Freetrade
Freetrade is recognised through a column profile: we know the header names its export uses. That profile follows the documented format rather than a large set of real files, so if a header has been renamed you point at the column once and we save the mapping.
We do not print a click path here, because menu names move between releases and a wrong one costs you more time than no one at all. Look for the transaction history or the account statement of your Freetrade account and take the machine-readable version of it over the PDF.
Take the entire history rather than the current tax year. A file that starts later leaves older holdings without a purchase behind them, and what you paid cannot be recovered from a file that begins after the fact.
Where an account holds shares priced on a foreign market, remember that the totals in your file have already been converted, so a comparison against a figure quoted in dollars will not match to the penny and is not meant to. If a column is named differently from the layout we know, the upload falls through to the mapper and you point at it once.
What to watch for with Freetrade files
Machine-style type labels. Values such as top_up appear exactly as written rather than in prose. They are stable and readable, and a spreadsheet that reformats them takes the meaning along with the formatting.
Everything already converted. The per-share price and the dividend amount reach the file in your account currency, so the rate used is folded into them rather than shown next to them. A cost basis works fine; a reconciliation against a dollar figure will not tie out exactly.
Orders placed for an amount. Buying for a fixed sum leaves a quantity with several decimals behind the point. Those decimals are what keeps a share count in agreement with the app, so they survive the import untouched.
Titles rather than identifiers. Holdings are named by title and ticker in the layout we know. That is enough almost always and needs a second look when a symbol exists on more than one market.
What you see after the upload
Your file becomes a verdict first: your time-weighted return next to the S&P 500 and the Nasdaq 100 over the same period, with your own deposits replayed into the index so both sides carry the same timing. Under it sit your positions with their cost basis, the dividends you received and the income your holdings are expected to pay, your allocation across positions and currencies, and a year report you can keep for your records.
Because every order carries its account currency, the yearly report can be read in pounds or in whichever currency you set, without a second conversion being invented on top.
You can look at all of that on the demo portfolio before you upload anything of your own. The first two weeks are free and no card is asked for.
Frequently asked questions
Which export do I need? The activity or transaction export that covers your whole history, in CSV or spreadsheet form. A list of current holdings cannot produce a return, because it has no purchase dates and no prices paid in it. If the export is capped per period, take one file per year and upload them together.
My totals differ from a figure I saw quoted in dollars. Why? Because the file has already been converted into your account currency, at the rates that applied when each event happened. A dollar figure from another source uses a different rate, often today's, so the two will not agree to the penny. Neither is wrong; they answer the question in different units.
Are dividends part of the file? Yes, as their own rows with their own type label, and they arrive converted into your account currency like everything else. That means the total you received is known and the gross payment before conversion is not visible in the file. Income is still totalled per holding and per year.
Does an unfamiliar column break the upload? No. When the headers do not match the layout we know, the file goes to the column mapper instead of being refused, and you say which column holds the date, the quantity, the price and the amount. That takes a minute once, and the answer is reused for every later file with the same headers.
Related: All brokers · Base currency · Cost basis · Dividend · FX (foreign exchange) rate · BullBenchmark vs a spreadsheet