Convert Any Tradelog With AI
Your broker export doesn't match the Portseido format? You don't have to reformat it by hand.
Copy the prompt below into ChatGPT, Claude, Gemini, or any AI assistant, attach your file, and it will return a CSV you can paste straight into the Portseido Google Sheet template.
This works for:
- Broker exports in an unsupported layout
- PDF or image statements — screenshots of your broker app
- Statements in any language
- European number formats, where
1.234,56means one thousand two hundred thirty-four - Non-Gregorian calendar years
- Files that identify assets by ISIN, WKN, or CUSIP instead of a ticker
- Hand-kept spreadsheets and notes
How to use it
- Copy the prompt below.
- Paste it into your AI assistant, then attach or paste your transaction history.
- Read the assumptions section the AI returns — check any row it flagged.
- Paste the CSV into the Portseido Google Sheet template, or save it as a
.csvand upload it. - Verify in Portseido — check your holdings and cash balance against your broker before you rely on the numbers.
!!! warning "Always review the output" AI can misread a number, misdate a row, or invent a ticker that doesn't exist. Treat the result as a first draft, not a finished import. Spot-check at least the first and last few rows and your total invested amount.
The prompt
You are converting my investment transaction history into the CSV format used by
Portseido, a portfolio tracker. I will attach or paste my raw transaction data.
# OUTPUT
Return one CSV code block with exactly these 8 columns, in this order, including
the header row: Date,Ticker,Action,Shares,Price,Commission,Currency,Note
- Date as YYYY-MM-DD. If my file uses a non-Gregorian calendar, convert it.
- Ticker is the asset symbol.
- US-listed stocks and ETFs: the plain ticker (AAPL, MSFT, SPY, QQQ).
- Everything else: TICKER.MARKET, e.g.
AAPL.TO Toronto
VUSA.L London
ADYEN.AS Amsterdam
MC.PA Paris
SAP.DE Frankfurt
9988.HK Hong Kong
SCB.BK Thailand
- Crypto: BTC-USD, ETH-USD (pair against the currency).
- Never invent a ticker. Check them on https://portseido.com/assets-search/.
- Action must be one of Buy, Sell, Deposit, Withdraw, Dividend,
Stock dividend, Taxes, Fees, Interest income, Interest expense, Transfer in,
Transfer out.
- Shares always positive. Price is per share, excluding commission —
if only a total is given, calculate it and show the working in Note.
- Price
Price per share or unit, in the currency named in the Currency column.
- If my file gives only a total amount, calculate Price = Total / Shares and
keep at least 4 decimal places.
- Exclude commission from Price; commission goes in its own column.
- Leave empty for Deposit and Withdraw.
- Currency - use ISO code (USD, EUR, GBP, JPY, CHF, CAD, AUD, SGD, THB, ...)
Number format: Convert comma decimals to point decimals.
Executed transactions only — skip anything cancelled or pending. Sort oldest first. List any assumptions you made and any ticker you are unsure of below the CSV.
Troubleshooting
| Problem | Fix |
|---|---|
| A ticker is rejected on import | Look it up on the Asset Search page and correct the suffix. If it isn't listed, add it as a custom asset. |
| Your file only has ISINs | The AI should not translate these from memory. Search the ISIN on the Asset Search page to find the ticker, then ask the AI to substitute it. |
| Cost basis looks off | Check that fees went into Commission and not into Price. See Calculating Cost Basis. |
| Amounts are off by a factor of 1000 | The decimal convention was misread. Tell the AI explicitly whether your file uses 1,234.56 or 1.234,56 and ask it to redo the conversion. |
| The AI dropped rows | Ask it to re-check against the original and list every row it excluded with a reason. Long files are safer converted in batches. |
Full field reference
For the complete specification of every field and action, see Adding Trades.