One or many portfolios
You can run multiple portfolios — e.g., a real account, a paper-trading account, a model-portfolio sandbox. Each holds independent positions. A switcher in the chrome bar swaps between them; one is marked as your default and is used when no portfolio is explicitly selected.
Create / rename / delete / set-default actions live in the portfolio header. Deleting a portfolio removes its positions; it doesn't touch your watchlist.
Adding a position
Two paths:
- From any bond row — the
+ Portfolioaction on the screener row, the bond detail page, or the drawer opens a modal pre-filled with the bond. Choose a portfolio, enter quantity (face value) and optional cost basis. - From the portfolio page — the inline + button opens the same modal with the bond field empty; search and select.
Fields:
| Field | What it captures |
|---|---|
| Quantity | Notional / face value. A 5,000,000 entry means $5M face value of the bond — that's the quantity. Not the number of bonds. |
| Cost basis | Average price you paid, expressed per 100 face value. e.g., 98.75 means you paid 98.75% of par. |
| Acquired date | When the position was opened. Used for tenor and P&L display. |
| Source | Optional free-text — broker, account name, anything you want to tag the lot with. |
Editing & closing positions
On the holdings table, click any row to open the position rail on the right. From there:
- Buy more — add nominal at a fill price. Cost basis is updated to reflect the new lot.
- Trim — reduce nominal. Optional sell price gives you a Realized P&L preview before you commit.
- Close — delete the position outright (red confirm).
- Detail — jump to the bond detail page.
All three position-action buttons open in-place modals — you never leave the portfolio page mid-action.
P&L
For each position you see Market value, Cost, and Unrealized P&L. The hero strip rolls these up across all positions in the active portfolio (or across all portfolios when "All" is selected).
P&L is computed in your display currency (top-right currency switcher). Cross-currency portfolios use the same FX as everywhere else in the app — see Account & quotas.
Aggregations & views
The portfolio page surfaces several roll-ups:
- Avg yield — market-value-weighted YTM across positions with a known yield.
- Avg duration — market-value-weighted modified duration. Perpetuals are excluded (they'd swing the average by ~150y).
- Sector mix — share of market value per sector. Pie or bar visualization.
- Maturity curve — distribution across 0–2y / 2–3y / 3–5y / 5–7y / 7–10y / 10y+ buckets. Perpetuals excluded.
- Cashflow — projected coupon payments over the next 12 months.
- Composition — tabbed view: Sector / Rating / Maturity breakdowns.
Limits & alerts (rules)
Set thresholds on the portfolio that trigger a visual flag when crossed. Examples: "alert me when High Yield exposure exceeds 25% of market value", "flag if duration goes below 4y or above 8y". Rules are surfaced inline on the portfolio page — they don't email you (yet).
Watchlist
Bonds you want to track without committing capital. Toggled via the ★ icon anywhere a bond appears. Watchlist entries:
- Show up on the dashboard's watchlist panel.
- Feed the personalization engine — they nudge Your Fit and For You recommendations toward the bond's shape, just at a lower weight than a real position.
- Support per-bond notes — short text on why you're watching it.
Watchlist is separate from any portfolio. Bonds can be on the watchlist AND held in a portfolio.
How portfolio drives the rest of the app
Your positions are the input to three downstream surfaces:
- Your Fit — anchors on your portfolio's average notch, duration, and sector mix. See Your Fit.
- For You — ranks bonds by similarity to the shape of your portfolio. See For You.
- Paywall — any bond you hold bypasses the monthly price-view cap. See Account & quotas.