Fetching statement from IBKR — report generation can take 10–60 seconds.
NAV
{{ formatMoney(portfolio.summary.total_account_value_base) }}
Securities + cash
Securities
{{ formatMoney(portfolio.summary.total_value_base) }}
Cash
{{ formatMoney(portfolio.summary.total_cash_base) }}
{{ cashBreakdown() }}
Positions
{{ portfolio.summary.position_count }}
PnL Since Inception
{{ pnlSince().delta >= 0 ? '+' : '' }}{{ formatMoney(pnlSince().delta) }}
n/a
Surplus {{ pnlSince().surplus >= 0 ? '+' : '' }}{{ formatMoney(pnlSince().surplus) }}
({{ pnlSince().surplusPct >= 0 ? '+' : '' }}{{ pnlSince().surplusPct.toFixed(1) }}%, net 3.5%/yr)
NAV Breakdown
{{ formatCompact(portfolio.summary.total_account_value_base) }}
NAV
- {{ seg.label }} {{ seg.pct.toFixed(1) }}%
| Symbol{{ sortArrow('symbol') }} | Qty{{ sortArrow('quantity') }} | Avg Cost{{ sortArrow('avg_cost') }} | Price{{ sortArrow('mark_price') }} | Value{{ sortArrow('value_in_base') }} | Unrl. P&L{{ sortArrow('calc_unrealized_pnl') }} | % NAV{{ sortArrow('percent_of_nav') }} |
|---|---|---|---|---|---|---|
| {{ p.symbol }} {{ p.description }} | {{ formatNum(p.quantity) }} | {{ p.avg_cost == null ? 'n/a' : formatNum(p.avg_cost) }} | {{ formatNum(p.mark_price) }} | {{ formatMoney(p.value_in_base) }} | {{ p.calc_unrealized_pnl == null ? 'n/a' : formatMoney(p.calc_unrealized_pnl) }} {{ unrealizedPct(p) >= 0 ? '+' : '' }}{{ unrealizedPct(p).toFixed(1) }}% | {{ p.percent_of_nav.toFixed(2) }}% |
| No positions match "{{ filter }}" | ||||||
Top Winners
{{ topWinners().length }} of {{ positiveRealized().length }}
- {{ i + 1 }} {{ r.symbol }} {{ r.currency }} +{{ formatMoney(r.realized_pnl_base) }}
No closed winning trades yet.
Top Losers
{{ topLosers().length }} of {{ negativeRealized().length }}
- {{ i + 1 }} {{ r.symbol }} {{ r.currency }} {{ formatMoney(r.realized_pnl_base) }}
No closed losing trades yet.