Part 5 · 2 chapters · ~20 min
Trading UIs
The trust layer over the FSD course's trading mechanics: an order confirmation that stays live and honest while the price moves, order types restated as consequences, authorisation bound to what is known, fills explained against estimates, and price fidelity: what kind of price, how delayed, how old, what the chart really shows, and the promises written where the number is.
14
The order confirmation
The FSD course M9 built the trading screen's mechanics: the latency budget, the book, order entry with risk pre-checks, idempotent submission, degraded modes. This part is the trust layer on top: what the user must understand before they tap, how the screen stays honest while the price moves, and what they are told after.
what the confirmation shows
- The content: instrument, side, quantity, the price or limit, the estimated total with the fee as a rule and a number, the tick age of the quote, the order type's consequences ("fills now at the best available price, which may differ" versus "fills only at ₦12,450.00 or better; may not fill; open until end of day"), and "this cannot be cancelled once filled". Every number labelled estimated or firm.
- The quote stays live with its age shown; a move beyond a tolerance re-arms the button (a second's grey and one pulse on the changed number) so no price is confirmed unseen; stale beyond N seconds disables with "quote expired: refresh".
- Notional and buying power: the total against part 4's available (buying power here); the binding limit inline ("up to 30 shares at this price"); leverage, if offered, as the maximum loss in money, never a multiplier alone.
- Authorisation (part 1) above a threshold, bound to what is known: quantity and side for a market order, plus the limit price for a limit order. The idempotency key (part 3) is minted when the confirmation opens and survives a re-arm; a changed quantity or side re-mints.
- After the tap: M9's order state machine as the pending state; the fill price with its difference from the estimate shown ("₦2.00 above: the price moved between quote and fill"); a rejection in the venue's words; the contract note as the receipt, reachable from the orders list and the statement.
THE ORDER CONFIRMATION
what the user must see before money moves at a price that will not wait
swipe the figure sideways, or tap expand for full screen
1/6
the content
The content: "Buy 10 shares of ABC at market. Estimated ₦12,450.00 per share (quote 0.8 s old). Estimated total ₦124,500.00 + fee ₦186.75 = ₦124,686.75. A market order fills at the best available price, which may differ. This cannot be cancelled once filled." Every number labelled estimated where it is; the one firm number (the fee rate) stated as a rule.
15
Latency, fidelity and the price on screen
a price is a claim with a provenance
- What kind: last trade (may be hours old on an illiquid instrument), mid (nobody trades at it), bid and ask (what the user will actually get), indicative (not firm until requested). The screen says which, in words a user understands: "last ₦12,450 · buy at ₦12,455 · sell at ₦12,445".
- Delay: delayed data is labelled on the price, not in a footer; the confirmation never quotes it (it fetches a firm quote); a chart from delayed data says so in its corner.
- Age: always on the confirmation; on a watchlist as an indicator that turns amber past a threshold and red when stale or disconnected (M9's degraded modes). A price with no age is assumed current, and that assumption is the complaint.
- Charts: candles aggregate real trades and are honest; a smoothed line lies about volatility; gaps are gaps, not interpolated lines; the forming candle is marked; the y-axis choice (from zero or not) is labelled. The FSD course M4 on reduction: aggregate, never interpolate.
- Fills versus quotes: the user saw ₦12,450 and was filled at ₦12,452 and believes they were cheated. The confirmation said estimated with an age; the fill shows the difference and why; the contract note has the venue and time. Slippage explained at the fill prevents the most common retail trading complaint.
- The promises, written down: which prices are real-time and which delayed per instrument; what "estimated" means; the maximum quote age on a confirmation; what the chart shows. Product rules and regulatory disclosures, rendered where the number is, in the same words every time.
degraded states, for trust
- M9's five modes (feed lag, feed stall, disconnected, halt, client overload) each have a trust reading: the user must never be able to act on a number the screen cannot vouch for. Entry disables with a reason; the last known price carries its time; a halt says what the venue allows; reconnection resnapshots before anything is re-enabled. The honesty of the screen under failure is what the user remembers.
the exercise
Open your product's trade confirmation and leave it for two minutes. If the button is still armed and the price has not moved on screen, you are confirming a price that no longer exists.
LATENCY, FIDELITY AND THE PRICE ON SCREEN
what a quoted price means, how old it is, and what the UI promises about it
swipe the figure sideways, or tap expand for full screen
1/6
what a price is
What a price is: last trade (the most recent print: may be seconds or hours old on an illiquid instrument), mid (halfway between bid and ask: nobody trades at it), bid and ask (what a buyer or seller will get now), indicative (an estimate from a market maker, not firm until requested). The screen says which, in a label a user understands: "last ₦12,450 · buy at ₦12,455 · sell at ₦12,445".