Positions & purchase lots
The Positions page lists every holding in the active environment with quantity, market value, and profit-or-loss (color-blind-safe teal/rose, always paired with ▲/▼ markers). Expand a row for the lot detail. A Cashrow is pinned to the foot of the table: it’s your uninvested cash balance (what’s left after your holdings), shown with its share of the account. Cash isn’t a stock or coin you bought, so it has no cost or profit-or-loss, just a balance and a weight.
Purchase lots
Each buy creates a lot: its own quantity, cost basis (what you paid for those shares), and purchase date. A position you’ve added to over time is really a stack of lots, and the expanded row shows each one with its own cost basis, so you can see exactly what you paid for each tranche rather than a single blended average.
Lot flags
The expanded view surfaces two factual flags. A position sitting at an unrealized loss is marked TLH (tax-loss-harvesting eligible): selling it would lock in a loss you can use against taxable gains; this is a whole-position marker, not something attached to individual lots. And each lot’s wash-sale window reads review when that lot was acquired within 30 days (before or after) a loss-realizing sale of the same symbol, otherwise clear. Both are informational signals, not tax advice, and neither triggers a trade on its own.
Where the numbers come from
Positions read live from your broker, including each holding’s market value and unrealized profit-or-loss. The expandable purchase lots are reconstructed (oldest first) from your synced fill history, so per-lot cost basis is exact rather than averaged. If the live position and the reconstructed lots ever disagree, that’s exactly what reconciliation exists to catch.