Skip to main content

Portfolio

All positions with live value and one-click actions (/portfolio). Main workflow: manage many positions and their resting orders without opening each market.

Content

  • Summary strip: liquidation value of all positions, unrealised P&L, cash, exposure, open orders.
  • Positions, grouped by event (default), league, expiry or venue, or ungrouped.
  • Per position: market and outcome, live score, size, average price, best bid, liquidation value, unrealised P&L, resting-order count, actions.
  • Resolved positions: status and a link to claim on polymarket.com. There is no in-app redeem.
  • Activity tab: P&L chart and the fill and trade history.

Values

The browser displays these values and does no money arithmetic.

Row actions

Every action is one click, visible on the row (not hover-only): Exit, Join and Add show live prices, so they are content as much as controls. Each has a fixed width so live label changes never shift it. All are price buttons except the cancel button. Cursor tags state the full effect, e.g. Exit: Sell 120 sh down to 39¢ · est. $49.20.

Desktop (content 1376 px)

Columns

  • Group header 32 px: group name, live score for event groups, summed liq value and P&L, order count, and a group-level [x] N (cancel all orders in the group).
  • Market / outcome takes the free width and truncates only when the row is full; sizes, prices, values and P&L never truncate (their slots reserve the widest value).
  • Group by: Event (default), League, Expiry (Today, This week, Later), Venue, None. Saved in layouts.
  • Sorting: click a column header (Game / ends, size, liq value, P&L). Row reorders from live values are deferred while the list is in use.
  • Resolved positions sit in a Resolved group at the bottom, hidden unless Show resolved is on; the count shows next to the toggle. The Actions cell shows Won / Lost and Claim on polymarket.com [external-link] for winners (a link, opens a new tab).

Expanded row (inline ladder)

The expanded area sits in the row’s own space, split by one vertical divider: no nested box.
  • 360 px tall, inset 32 px from the left. Ladder on the left (focusable panel), and the market’s open orders on the right (orders.md rows, with steppers).
  • Several rows can be expanded at once. Expansion state is kept per session.
  • Motion: height appears in one frame, then the contents fade in (motion.md).

Keys

↑ ↓ select, E exit, J join, A add, C cancel market orders, Enter expand (interactions.md).

Activity tab

  • P&L chart (Data API P&L series), 200 px tall, ranges 1D 1W 1M All, line in --foreground, zero line --border.
  • History table (36 px rows): time, market / outcome, type (Fill, Trade, Resolution), side, price, size, value, fee. Filters: date range, market text, side. Newest first, virtualised, paged by date.

Mobile

  • Cards 358 px, 12 px padding (a position card is a separate, actionable thing). The action row buttons are 44 px tall and two-line like every mobile price button (caption label, then price): Exit / 39¢, Join / 43¢, Add $25 / 43¢. Exit, Join and Add share the width; the cancel [x] N button is 56 px. All four sit 4 px apart.
  • There is no stake bar on this tab, so the Add button carries the active stake in its label (principle 4). The stake is changed from the Live or Watchlist stake bar or the ladder sheet.
  • Tap the card body: ladder sheet for that outcome. Long-press: action sheet (Open market, Set alert…, Cancel orders).
  • Resolved cards show Won / Lost and the Claim on polymarket.com [external-link] link instead of the action row.