SESSIONS AND DEGRADED STATES
Crypto perps run 24/7. Equity, metal, and energy perps don't — they follow the schedule of the underlying market, and your 30-day challenge clock has to respect that or the -4% daily and -8% total drawdown rules become unfair the moment NYSE closes. Dexter splits market state into five postures: live, reduced, close-only, session-closed, halted. The first three are the engine's response to venue stress; session-closed is a scheduled, healthy state with a published reopen; halted is the engine's response to a price path it cannot defend. Below is exactly which posture is fired by which condition, how each affects your equity mark, your evaluation clock, and your payout pipeline.
| Posture | What it means inside Dexter |
|---|---|
| Live | Normal two-sided trading; primary Hermes/Pyth and HTTP cross-check both passing every gate; equity marks tick-by-tick |
| Reduced | Tighter caps, wider spread, lower max leverage; both source paths still live but stress (volatility, depth, latency) has crossed the soft band |
| Close-only | Reduce-only orders accepted; no new exposure; engaged when single-path liveness override is active or depth has collapsed |
| Session-closed | Scheduled off-session for the underlying market (equity/metal/energy perps); equity holds at the last valid session close; daily drawdown rule resumes at next session open |
| Halted | No execution at all; price path cannot be defended (no acceptable source set, or recovery lag still active); equity frozen at the last valid mark until the market promotes back |
#Session closure is not oracle failure
NYSE closes at 16:00 ET. LBMA gold fixing happens twice a day. Brent crude has weekend gaps. Folding any of that into a generic "oracle is unhealthy" label would punish funded traders who have done nothing wrong — their equity would be marked against stale references, the -4% daily rule would fire on phantom prints, and a passed evaluation could blow up between 17:00 ET on Friday and 09:30 ET on Monday because of a feed condition that has nothing to do with the price layer.
Dexter therefore models session-closed as its own posture with its own behavior. The market is intentionally not trading. Open positions are held at the last valid session-close mark. Drawdown checks pause, then resume at the next session open against the new opening mark — meaning a -4% daily rule is checked close-to-close on session markets, not over the closed gap. Funding does not accrue during session-closed windows on equity perps. The session calendar is published per market in the symbol picker and stamped into the runtime so users, the rule engine, and the cashier see the same schedule.
A session-closed market is a healthy market. A halted market is the engine telling you it cannot defend a price right now. The whole point of separating the two postures is that the difference must be visible — both to you and to a reviewer reading runtime state weeks later.
#How degraded states are handled
Degraded postures fire when the price path itself is the problem — freshness slips beyond the per-market staleness cap, Hermes and the HTTP mux disagree past the deviation band, depth at the front of the book collapses, the spread guard widens past its ceiling, or the max-move continuity check rejects a tick. Severity determines the destination: a single weakened input pushes the market to reduced; loss of one source path pushes it to close-only; no acceptable source set at all pushes it to halted.
Recovery is deliberately not symmetric. One fresh tick from a recovered publisher does not promote a halted market back to live, because that would let users trade into the seam between "the feed printed something" and "the feed is stable enough to mark equity against." Each posture has a per-market stabilization period that must pass with continuous clean ticks before the market promotes one step. A halted market promotes to close-only first, then reduced, then live — never directly back to live. The same recovery lag applies after a degraded window closes on a session-based market, after the underlying session reopens.
While a market is in reduced or close-only, the rule engine stamps the window onto the funded account's evaluation timeline so the -4% daily and -8% total checks are not triggered by stale or thinned-out prints. The 30-day clock is not extended — degraded windows inside your evaluation period remain dead trading time you cannot recover — but a false breach caused by a posture event will not end the attempt.
underlying session closes
-> market posture = session-closed
-> equity held at last session-close mark
-> drawdown rule pauses until next session open
price path weakens
-> live -> reduced (single guard breached)
-> reduced -> close-only (one source path lost)
-> close-only -> halted (no acceptable source set)
conditions recover
-> halted -> close-only after stabilization window
-> close-only -> reduced after stabilization window
-> reduced -> live after stabilization window
#Why visible degradation matters
Every posture is surfaced on the symbol page, the order ticket, the rule-engine HUD, and the cashier — with the same vocabulary in each surface. A funded trader looking at a session-closed equity perp sees the next session open. A trader on a reduced BTC market sees the relaxed leverage cap and the wider posted spread. A trader holding through a halted state sees the last valid mark frozen on their PnL line, not a phantom number trending against them. Identical posture labels also flow into the published settlement context, so the post-incident reviewer can answer not only "what was the mark" but "what posture was the market in" at any sealed root.
A venue that conflates scheduled closure with broken pricing eventually communicates both badly, and the funded-trader contract loses its meaning the moment a -4% breach can fire from an off-session print. Separating the five postures is not stylistic — it is what makes Dexter's drawdown rules, payout pipeline, and source-posture commitments defensible together.