Client Portfolios
Track client books by household, portfolio and account — holdings, performance, exposure and reporting, all derived from the transactions you enter.
Client Portfolios is the advisor-facing side of portfolio tracking: you hold many clients, each client holds portfolios, each portfolio holds accounts, and the accounts hold the transactions. Everything else on the screen — valuation, performance, exposure, risk — is derived from those transactions, so the only thing you ever maintain is the transaction history.
How the hierarchy works
| Level | What it represents | What it carries |
|---|---|---|
| Household | A client relationship — a person, a couple, a family, an institution. | A rolled-up report across everything beneath it. |
| Portfolio | One mandate or strategy for that client. | Benchmark, base currency, cost method, risk-free rate, fees. |
| Account | A custodian account — IRA, Taxable, Joint. | A cash balance, and the transactions booked to it. |
| Transaction | One buy or one sell. | Symbol, date, quantity, price. |
Setting one up
- Create the household — Client Portfolios > Add household. Name it as you would file it; you can rename it at any time.
- Add a portfolio under it — this is where the benchmark and cost method are set. Both can be changed later, and both change what the report shows immediately.
- Add the accounts — one per custodian account. If you only ever hold one, a single account named after the custodian is fine.
- Set the cash balance on each account. Cash is carried as a position so portfolio weights are honest — a book that is 30% cash should not show its equities at 100%.
- Enter the transactions — by hand for a handful, or by CSV import for a real book.
Entering a transaction
Each transaction is a single leg: buy or sell, one symbol, a date, a quantity and a price. Click the symbol field and the global symbol search opens — search by ticker or company name and pick the exact listing, which is what binds the transaction to the right instrument on the right exchange.
Importing from CSV
The import wizard is three steps: pick the header row, map your columns to ours, then verify what it found before anything is written.
- Your file never leaves the browser until you commit. Parsing, delimiter sniffing and the preview all happen locally.
- Symbols resolve by ticker or by ISIN, so a custodian export keyed on ISIN imports without a lookup pass.
- Accounts are created on demand — an account name in the file that does not exist yet is added rather than rejected.
- Unmatched symbols are reported back, not dropped. The rows import with the symbol unresolved and are listed so you can fix them, which is why a total can look light immediately after an import.
Cost basis: FIFO, LIFO or Average
Set per portfolio, in its settings. It decides which lots a sale consumes, and therefore both your realised P/L and the cost basis of what remains.
| Method | A sale consumes | Typically used for |
|---|---|---|
| FIFO | The oldest lots first. | The default, and what most custodians report. |
| LIFO | The newest lots first. | Books managed for short-term lot selection. |
| Average | A blended average cost across all lots. | Funds and long accumulations where lot identity does not matter. |
Changing the method re-derives every downstream number from the raw transactions — nothing is cached, so the change is immediate and reversible.
Reading the report
| Tab | What it answers |
|---|---|
| Summary | What is held right now: positions, weights, market value, unrealised P/L, allocation. |
| Profit / Loss | Per position and per lot — cost, price, 1-day move, total return, CAGR, dividends over the last twelve months. |
| Performance | Time-weighted return over time, against the benchmark you set. |
| Stats | Trailing returns, monthly return heatmap, and the summary ratios. |
| Risk | Drawdown, rolling volatility, and stress behaviour. |
| Exposure | What you are actually exposed to once funds are looked through. |
| Holdings Matrix | Which of your funds hold the same underlying security, and at what combined weight. |
| Scatter | Holdings plotted on any two measures, bubble size by market value. |
| Data | The underlying series, for export. |
Time-weighted return, and why it is not your P/L
Performance is time-weighted: it measures the manager's result by removing the effect of deposits and withdrawals. A portfolio that returned 8% while the client added cash all year still reports 8%. Profit/Loss, by contrast, reports money — what the position cost and what it is worth. The two answer different questions and will not agree; that is correct, not a discrepancy.
Scoping the view
- Household — every portfolio beneath the client, aggregated.
- Portfolio — the default.
- Account — one sleeve. Weights renormalise inside the account, so an account that is 5% of the household still shows its own holdings out of 100%.
The Profit / Loss grid
This is the working surface, and it is built to be shaped.
- Column picker — show only the columns you review. Ticker is always kept: it is the frozen first column the grid scrolls against.
- Saved views — store a column set, grouping, summaries and the lots toggle under a name. Views are per user and do not leak between Client, My and Model portfolios.
- Lots — expand a position to see the individual tax lots behind its average cost.
- Download — CSV export follows the columns you have visible, not the full set.
Exposure and fund look-through
A portfolio of ETFs has no sectors of its own — the sectors belong to what the funds hold. Exposure looks through each fund to its constituents and reports the portfolio as if you held them directly, across Security, Instrument Type, Asset Allocation, Equity Sectors (by sector or industry), Region and Country.
Fees, benchmark and risk-free rate
Set per portfolio in its settings: an annual fee percentage with a collection period, the benchmark that Performance is measured against, and the risk-free rate used by the ratios on the Stats tab. Changing the benchmark re-derives the comparison without touching your transactions.
When numbers take a moment
Current holdings, weights and P/L are derived live on every load. The time-series half — performance, drawdown, trailing returns, monthly grid — is computed by a background engine and re-queued whenever you change the book. The report says when a rebuild is running and picks up the result on its own.
Producing something for the client
Create Report hands the portfolio — or the whole household — to the Report Builder, where you lay out a PDF from the same numbers.
Questions we get
I deleted a household. Did its portfolios go with it?
Why is SPY showing as "Fund / ETF" instead of a sector?
My sector weights do not add up against the benchmark.
A symbol from my import is missing.
Can two advisors work on the same client?
Was this article helpful?