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.

Import CSV

Upload a CSV export from your broker. Our AI maps columns automatically — works with any broker format, in any language.

Connect broker

Link your brokerage account for automatic daily syncing. We support 50+ brokers worldwide.

Add manually

Enter individual transactions by hand. Useful for one-off entries or corrections.

Quick start
Go to Transactions and click Import / Add to get started. You can combine all three methods — your data is automatically deduplicated.

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):

Field
Example
Notes
Date
2024-03-15
Any common date format works
Type
Buy / Sell
Or: Market buy, Compra, Kauf, etc.
Symbol or ISIN
AAPL / US0378331005
Ticker, ISIN, or product name
Quantity
10
Number of shares
Price
150.00
Price per share
Currency
USD
Transaction currency

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.

OKReady to import — no action needed
  • 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
WarningReview and possibly correct before importing

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
DuplicateAlready exists in your portfolio

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
ErrorMust fix or uncheck before importing

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
When in doubt, skip
Uncheck the row and add the transaction manually later. It is better to import fewer correct transactions than to fix errors after the fact.

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.
First sync may take a while
Some brokers take up to 48 hours to fully sync after the initial connection. If you do not see all your transactions right away, check back the next day.

Metrics glossary

Here is what every number on your dashboard means.

Portfolio composition

Holdings Value
Total market value of all your holdings at current prices, excluding cash.
Cost Basis
Cost basis of your current holdings — what you paid for the shares you still own.
Cash
Shown only when explicit cash movements are tracked. If the cash ledger is incomplete, the dashboard shows 'Cash not tracked' instead of an inferred balance.
Unrealized P&L
Current unrealized gains/losses on positions you still hold.
Realized P&L
Profit/loss from positions you have already sold.
Dividends
Dividend income received from your holdings.
Fees
Broker and transaction fees deducted from your returns.
Today
Change in portfolio value since previous market close.

Return metrics

Portfolio Return
Cash-flow adjusted return for a selected year. Adjusts for when you bought and sold, so it is the main number to use when asking how your portfolio did this year.
Holdings Price Return
Weighted price movement of the holdings shown in the price chart. Excludes cash-flow timing, realized P&L, dividends, fees, and cash, so it can differ from Portfolio Return.
IRR
Money-weighted return (annualized). Reflects your personal return based on when and how much you invested. IRR > TWR means you timed well; IRR < TWR means timing hurt you.
TWR
Time-weighted return (Modified Dietz approximation). Measures how well your picks performed, removing the effect of deposits and withdrawals. This is what funds report — comparable across investors regardless of timing.
Net Return
Return on net capital at risk (total buys minus total sells). Shows how much your money still in the market has grown. Useful when you've taken profits — it measures growth on what remains invested.

Portfolio return vs holdings price return

Portfolio 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.

Holdings price return

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?

IRR (money-weighted)

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.

TWR (time-weighted)

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.

Imported dividends

Dividend transactions from your CSV imports or broker connection. These reflect actual payouts you received and take priority when dates overlap.

Calculated dividends

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.

Example
If AMZN does a 1:20 split, a pre-split transaction of 5 shares at $2,500 becomes 100 shares at $125. The total investment ($12,500) stays the same.

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.

Base currency is permanent
Your base currency cannot be changed after signup. If you need to change it, please contact support.

Troubleshooting

Warning

"Some assets have no market data available"

The symbol or exchange for some holdings could not be matched with our market data provider. Go to Transactions, find the affected asset, and use Reassign to select the correct symbol and exchange. If the symbol is correct and data is still missing, contact us — the instrument may not be covered yet.
Error

"Transaction mismatch detected"

Sell quantities exceed buy quantities at some point in the transaction history. This usually means a buy transaction is missing (e.g. it was not included in your CSV or broker sync) or a sell was duplicated. Check the affected stock in the Transactions page and look for gaps.
Info

"Some positions are delisted or taken private"

This is expected for securities that are no longer traded. Your historical P&L is still calculated based on your transaction data. Current market value may show the last known price or fall back to your cost basis.
Info

"Market data not available for some exchanges"

Some smaller or regional exchanges are not covered by our data provider. Performance for these holdings is estimated using your cost basis. Contact us if you would like us to add coverage for a specific exchange.

What happens when I delete transactions?

Deletion is permanent. All derived data (cost basis, P&L, cash balance, returns) is recalculated automatically. If you delete a buy transaction, the cost basis for remaining shares will update accordingly.

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.
For the full legal version, see our Privacy Policy.

Your account

Manage your account, your data, and your subscription from the dashboard.

Profile
Update your alias, country, and investment style on the Profile page. Your sign-in email is managed by your auth provider (Google or magic link) and can't be changed in-app.
Subscription & billing
View your plan, update payment, or cancel anytime on the Billing page.
Export your data
Use the Export to CSV button in the transactions table on the Transactions page. The export includes the rows currently loaded in the table; clear filters first if you want all loaded rows.
Delete your account
Cancel any active subscription from Billing first, then permanently delete your account data from the Profile page (Danger zone, bottom of the page). This is irreversible, and billing records may be retained where required.

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.