Profile trade views combine messages, events, and positions.
Messages
Messages are source texture. They preserve what a trader said, when they said it, and attachments or links when available.
Use messages for:
- original reasoning
- sentiment and conviction
- source text or media
- hydrating a Source Message ID referenced by an event
Messages are not a second trade ledger. They should not be used to reconstruct positions manually.
Events
Events are structured trade actions:
- open
- increase
- decrease
- close
Events connect a trader, asset, direction, timestamp, optional price, related position, and optional source message.
Positions
Positions group related events into one trade record. Position reads are the right surface for:
- open and closed position history
1D, 7D, and 30D time-based performance
- position IDs referenced by event rows
Open-position reads are the right surface for current mark-to-market state.
Positions lasting at most 60 seconds and their structured events are omitted from product trade views. Independent source messages and narrative summaries remain available under their existing access rules.
Profile chart and event drawers
On profile pages, chart markers and event drawers are source-backed when source material exists. Some events may be retrospective, assumed, or auto-generated; these classifications explain how the position history was reconstructed.
When a return is unavailable, treat it as missing data, not zero. A time-based return can be unavailable because the position is too young, a forward price is missing, the entry price is missing, or a calculation failed.
Hydration pattern
Use this pattern when moving from a profile event to more context:
- Start with the event.
- Use
positionId to hydrate position details and time-based performance.
- Use
messageId to hydrate source text or attachments when available.
- Use trader and asset discovery to render names, symbols, avatars, and logos.
Last modified on October 22, 2026