Help & docs
How data flows in, what each metric means, and how to fix things when they break.
Getting started
Trackyourportfolio brings every investment you own into one place with real-time performance metrics. There are three ways to get your data in — and you can mix all of them. Imports are deduplicated automatically.
Upload a CSV export from your broker. Our AI maps columns automatically — works with any broker format, in any language.
Link your brokerage account for automatic daily syncing. We support 50+ brokers worldwide.
Enter individual transactions by hand. Useful for one-off entries or corrections.
CSV import
How it works
When you upload a CSV, our AI reads the file and automatically maps columns to the right fields — regardless of language, column names, or broker-specific formatting. You then review every transaction before committing.
Minimum required data
Your CSV should contain at least these fields per transaction (column names can vary):
Optional but helpful fields
Total amount, fees/commissions, exchange rate, exchange/market, ISIN (if symbol is ambiguous).
Tips for messy CSVs
- Remove summary rows, totals, or header text above the actual data
- Ensure one transaction per row (some brokers split buys across multiple lines)
- If your broker uses semicolons or tabs as delimiters, that is fine — we auto-detect
- European number format (commas as decimal separators) is supported
Review before committing
After processing, you will see a review table with all transactions. Each row is tagged with a status. You can edit any field inline, toggle rows on/off, and filter by status. Always review before clicking Commit.
- Fully mapped: all required fields parsed (date, type, symbol, quantity, price, currency)
- Instrument matched: linked to a known ticker and exchange
- Default behavior: checked by default — will be imported when you click Commit
Checked by default (will be imported). Verify the flagged issue and edit if needed:
- Total amount mismatch: the CSV total does not match quantity × price — the calculated value is used instead. Check if the price or quantity is wrong
- Negative fees adjusted to 0: the fee column contained a negative number — fees are set to 0. Usually safe to ignore
- Stock split adjustment: a stock split was detected and applied but could not be fully verified. Check that the adjusted quantity and price look correct
- Ambiguous symbol: e.g. "SAP" matched to a different exchange than expected — click the symbol to search and reassign to the correct instrument
Unchecked by default (will NOT be imported). A matching transaction already exists in your portfolio.
- Safe to skip: this usually means you are re-importing a CSV that partially overlaps with existing data
- Intentional duplicate?: if you genuinely made two identical transactions on the same day, check the row to force import it
Unchecked by default. Fix the issue inline or leave unchecked to skip:
- Unknown instrument: symbol or ISIN not found — click to search and assign the correct instrument, or uncheck the row to skip
- Symbol and ISIN both empty: the AI could not extract an instrument identifier from this row — edit to add a symbol, or uncheck
- Invalid or empty date: date could not be parsed — edit to a valid date format (e.g. 2024-03-15)
- Invalid transaction type: type not recognized as BUY, SELL, DIVIDEND, CASH_IN, or CASH_OUT — edit the type or uncheck
- Currency is empty: no currency could be determined — edit to set the correct currency code (e.g. USD, EUR)
- Invalid quantity or price: must be a positive number for BUY/SELL — edit to correct the value
- Negative position: a SELL of X units would leave you with negative shares — usually means a prior BUY is missing. Import the buys first, then re-import this file
- Split pair detected: this looks like an internal broker adjustment for a stock split, not a real transaction — automatically unchecked. Safe to leave as-is
If the import fails
Nothing is saved until you click Commit, so failures during processing leave no partial data. The most common cause is an unusual file structure — clean the CSV (remove summary rows and headers above the data, ensure one transaction per row) and re-upload. For very large files, split by year and import each part separately.
Broker connections
Connect your brokerage account to automatically sync transactions. We support 50+ brokers worldwide through our integration partner SnapTrade.
How it works
- You authenticate directly with your broker through a secure window — we never see or store your broker credentials
- Transactions sync automatically every day
- You can also trigger a manual sync anytime from the Connections page
- New transactions are automatically deduplicated — no double entries
What gets imported
Buys, sells, dividends (gross amount), contributions, withdrawals, and broker fees.
What gets skipped
Option expirations, stock split entries (handled separately by our system), tax withholdings on dividends, and internal account transfers. These are either not relevant for portfolio tracking or are processed through other mechanisms.
Sync options
- Incremental sync — fetches only new transactions since the last sync. This is what the daily auto-sync does.
- Full sync — re-fetches your entire transaction history. Useful if you suspect missing data. Does not create duplicates.
Metrics glossary
Here is what every number on your dashboard means.
Portfolio composition
Return metrics
Portfolio return vs holdings price return
Use this for your real selected-year performance. It removes the effect of deposits and withdrawals by accounting for when money was put to work.
Use this to understand market movement in the chart. It shows how the visible holdings moved in price, not your full cash-flow-adjusted portfolio result.
IRR vs TWR — when to use which?
Use this to measure your personal return. It accounts for when you added or withdrew money. If you invested a large sum right before a rally, your IRR will be higher than TWR.
Use this to measure how well your stock picks performed, regardless of cash flow timing. This is the standard metric funds report and what you would use to compare against an index like the S&P 500.
How cost basis works
We use the weighted average cost method. When you buy shares at different prices, the cost basis per share is the average price across all your purchases. When you sell, the difference between the sell price and this average cost becomes your realized P&L.
Dividends
Dividends in your portfolio come from two sources, automatically combined and deduplicated.
Dividend transactions from your CSV imports or broker connection. These reflect actual payouts you received and take priority when dates overlap.
Estimated from market data based on declared dividends and how many shares you held on the ex-date. Always shown as gross (pre-tax) amounts.
When both sources report the same payout, the imported amount takes priority so nothing is double-counted.
Gross vs net
Calculated dividends are always gross (before withholding tax). Imported dividends may be net or gross depending on your broker. If you notice discrepancies, check whether your broker exports gross or net dividend amounts.
Stock splits
When a company performs a stock split, historical transaction quantities and prices need to be adjusted for your performance metrics to be accurate. Splits are detected and applied automatically during CSV import and broker sync — the system figures out whether your broker already adjusted the data or not, and only adjusts when needed. After a split, your total investment value stays the same; only quantity and price per share change. Some complex scenarios (multiple overlapping splits, very old transactions, or unusual ratios) may be filtered for safety — if your position quantities or cost basis look incorrect after a split, contact us and we will review it manually.
Currency & FX
All portfolio values and returns are shown in your base currency, which you selected when you first signed up.
How currency conversion works
- Historical transactions — your cost basis uses the FX rate at the time of each trade, so it reflects the actual exchange rate you got.
- Current market values — converted using live FX rates that update throughout the trading day.
- Daily P&L — both price changes and FX rate movements affect your daily return.
Sub-unit currencies
Some exchanges quote prices in sub-units — e.g. GBX (pence) instead of GBP, ILA (agorot) instead of ILS, or ZAC (cents) instead of ZAR. This is handled automatically — the system normalizes prices and FX rates so your portfolio values are always correct in your base currency.
Troubleshooting
"Some assets have no market data available"
"Transaction mismatch detected"
"Some positions are delisted or taken private"
"Market data not available for some exchanges"
What happens when I delete transactions?
Transaction sources
Each transaction is tagged with its source:
- csv_importimported from a CSV file
- api_importsynced from a connected broker
- manualadded by hand
Privacy & data
We treat your portfolio data the way we would want our own treated. Here is what that means in practice.
- Broker credentials are never seen or stored by us. Connections go through SnapTrade's secure connection portal — you authenticate directly with your broker, and we receive only transaction and holdings data (no usernames, passwords, or PINs).
- Your data lives on managed, encrypted infrastructure. We store everything in a managed Postgres database (Supabase) that encrypts data at rest. Sensitive integration tokens (like SnapTrade secrets) get an additional layer of AES-256 application-level encryption on top.
- All connections are encrypted in transit. Traffic between your browser and our servers is HTTPS/TLS, as are calls to every third-party service we use.
- We don't sell your data. Your portfolio is yours. We don't share it with advertisers, brokers, or any third party for marketing purposes.
- You stay in control. You can export your transactions or request account deletion at any time; billing records may be retained where required. See "Your account" below.
Your account
Manage your account, your data, and your subscription from the dashboard.
Get help
Stuck on something, or just want to share feedback? We read every email and usually reply within one business day.
How we're funded
Trackyourportfolio is funded entirely by Premium subscriptions — not by selling data, ads, or order flow. That keeps our incentives aligned with yours: build a tool that helps you understand your real returns.