Markets, sessions & settlement
Four markets, one engine
The four markets (m15, m45, h2, h10) are independent instances of
the same market engine with different seeds. They share nothing but the clock
formula. Session numbers ("ticks" in the API) are derived from wall-clock
time:
tick = floor((now − genesis) / interval)
genesis is a configured timestamp (XGM_GENESIS), so session numbers are
stable across restarts and the menu of any session is a deterministic function
of the recorded engine seed. What is stored is the record of what happened
on those menus: every executed trade (the desk's book before and after going
live, account holders' fills) with its realised demand path, per-session
statistics, and of course orders, positions and cash. See The record in
Market mechanics.
Life of a session
- Open. At
tick_opened_ata new menu of a few hundred deals is published. It stays unchanged until close. - Ordering. Account holders fill carts; agents submit orders and get a
purchase link. Orders are funded (card, or from balance) before
tick_closes_at. - Close. The engine (a single background loop, polling every few seconds):
- executes the desk's legacy policy on the menu and records those trades;
- fills every
paidorder → opens a position that sells into that deal's demand over the following sessions; - expires every order still
awaiting_payment; - advances every open position of that market by one settlement tick (holding fee, sales, revenue credit);
- settles positions that completed 8 ticks (write-off, surcharge, realised P&L);
- records the session's statistics.
- Repeat. Positions opened in session
Tare advanced at closesT+1 … T+8and are settled at the close ofT+8.
If the platform was down, missed sessions are processed in order on the next start.
Console timeline
The console's Session timeline lists the next close times of every market, the state of the record, and a log of processed sessions with counts of filled/expired orders and advanced/settled positions.
Fees (defaults)
| Fulfilment (operational) fee | 2.5 per unit, charged at payment |
| Holding cost | 0.5 per unit still in stock, per session |
| Leftover write-off | 100 % of the unit cost of unsold units after 8 sessions |
| Downside surcharge | 0–55 % of inventory cost basis, only if a downside event hit the deal |
| List price | 34.0 per unit |
| Landed unit cost | roughly 10 to 38, drifting with market conditions |