Sapinover Research · Market Structure

24-Hour Markets: FIX, DTCC and TradingSessionID(336)

A global user guide to the overnight session: how DTCC leverages FIX messaging for trade capture, why one tag decides the clearing date, and how the trading leg and DVP settlement consume the same fields differently.

Published October 2026 Status Independent explainer Scope US equities, 23×5
↓ Download the PDF guide

01The new US trading day

The SEC has approved exchange proposals (Nasdaq, NYSE Arca, 24X) extending equity trading to roughly 23 hours a day, five days a week, from Sunday 9pm ET to Friday 8pm ET. Several ATSs already operate through the night. The SIPs, NSCC and DTC have announced extended operating hours to match, with a one-hour technical pause from 8–9pm ET, Monday through Thursday, on the exchanges.

Times (ET)SessionNotes
4:00am – 9:30amPre-marketPart of the day session
9:30am – 4:00pmRegular hoursCore liquidity; open and close auctions
4:00pm – 8:00pmAfter-hours / post-market8pm ET is the end of the trade date
8:00pm – 9:00pmMaintenance pauseExchanges halt; ATSs keep trading
9:00pm – 4:00amNight sessionTrades carry the next business date; reduced order types
The organizing fact

At 8:00pm ET the business date rolls while the calendar date does not roll until midnight. Every ambiguity in this guide flows from that four-hour wedge between clock time and business time, and from the one-hour window where exchanges are dark but ATSs are live.

02One trading day, three vocabularies

Three systems describe the same 24 hours. DTCC uses four flat strings. The FIX session model uses a two-dimensional scheme: a session identifier, TradingSessionID(336), plus a phase within it, TradingSessionSubID(625). Laying them on one timeline makes the mismatch visible.

8pm 4am 9:30am 4pm 8pm DTCC 336 OVNPREREGPST FIX 336 6 = After-hours1 = Day FIX 625 3 Continuous*1 Pre-trading2 / 3 / 45 Post-trading * Exchanges show 625 = 7 (Quiescent) during the 8–9pm pause; ATSs keep matching, so 625 = 3.
Figure 1. One US trade date, 8pm ET to 8pm ET, in DTCC values and FIX values.

Two things to notice. First, DTCC’s day has four segments where FIX 336 has two: the resolution DTCC needs lives in tag 625 on the FIX side. Second, the segment boundaries do not line up with any single FIX field. PRE, REG and PST are all phases of one FIX Day session, while OVN spans a window in which FIX would distinguish a quiescent exchange phase from continuous ATS trading. There is no one-to-one mapping on 336 alone; a faithful translation needs 336 and 625 together, or a time-and-venue rule.

03What DTCC is and why it matters

The Depository Trust & Clearing Corporation is the post-trade utility for the US capital markets, the holding company for two SEC-regulated subsidiaries that between them stand behind essentially every US equity trade.

Why DTCC speaks FIX. DTCC adopted FIX message syntax as an input and output format for UTC. The business rationale is adoption cost: every submitting firm already runs FIX infrastructure for the trading leg, so reusing the wire format lowers the integration barrier. The consequence, and the source of the problem this guide exists to explain, is that DTCC populates standard FIX tag numbers with its own value sets and its own processing semantics, defined in DTCC’s UTC record layouts rather than in the FIX specification. The messages look like FIX. The dictionary is DTCC’s.

04The trade lifecycle: where FIX lives, where DTCC takes over

On the trading leg, FIX is the lingua franca: orders (35=D), executions (35=8), session status (35=h). Once a trade is matched and locked in, the record crosses into DTCC’s domain through UTC. From that point the governing documents are NSCC’s rules and record layouts, not the FIX specification.

TRADING LEG: FIX PROTOCOL Asset managerNewOrderSingle 35=D Broker-dealerroutes, reports 35=8 Venue or ATSmatches; sets 336, 75 locked-in trade, FIX-syntax UTC input CLEARING AND SETTLEMENT LEG: DTCC DTC settlementDVP book entry CNS nettingone net per date NSCC UTC intake336 drives 715
Figure 2. Lifecycle from order to DVP settlement. Blue is the FIX trading leg; amber is DTCC.

The structural point: on the trading leg, session tags are descriptive metadata about an execution. The moment the record crosses into UTC, tag 336 becomes a processing instruction. NSCC sits last in the chain and cannot reliably reconstruct the session from execution timestamps it did not generate, so it delegates the determination to the submitter, makes the field mandatory for overnight participants, and rejects invalid values rather than defaulting silently.

05Tag primer: 336 and 625 as FIX defines them

In the FIX specification, sessions and phases are a two-level model. TradingSessionID(336) names the session; TradingSessionSubID(625) names the phase within it. Venues publish start and end times via TradingSessionList(35=BJ) and signal transitions with TradingSessionStatus(35=h).

Session336 valueTypical 625 phasesComment
Day1 = Day1, 2, 3, 4, 5, 7Main session during local business hours
Evening5 = Evening2, 3, 4, 7Only where a third session has its own trade-date or clearing boundary
Night6 = After-hours1, 2, 3, 4, 5, 7Session during local night-time hours

In the US 23×5 structure the 4–8pm window is a phase of the Day session (336=1, 625=5), not an Evening session, because the US trade-date boundary falls at 8pm and the post-market window carries the same trade date and clearing date as the day. The overnight window is the Night session (336=6). 625 is optional in the standard. This guide recommends populating it anyway: a consumer cannot distinguish an unpopulated 625 from a venue that does not support it.

06DTCC’s 336: same tag number, different dictionary

DTCC defines its own TradingSessionID(336) values in the UTC Common Trade FIX Input Format, covering four brackets: pre-market, regular, post-market and overnight (rendered here as PRE, REG, PST, OVN). These are authored in DTCC documentation, outside FIX governance, and extend beyond the FIX enumeration. Key operating facts, per DTCC’s published Universal Trade Capture 24×5 documentation:

Why does a session label carry this much weight? Because at NSCC the session determines the clearing date, and the clearing date determines everything else.

Trade submitted to UTC 9:05pm ET, Thursday 336 = PST (post-market) ClearingBusinessDate(715) = Thursday settles T+1 = Friday 336 = OVN (overnight) ClearingBusinessDate(715) = Friday settles next business day Same print, same clock time. The tag, not the timestamp, picks the branch. Netting bucket, NSCC trade guarantee and Clearing Fund margin all follow the chosen date.
Figure 3. The 336 fork: one print at 9:05pm Thursday, two different economic outcomes.

Three consequences hang off that fork. Netting: CNS builds one net position per member per security per clearing date, so the date decides which net the trade lands in and what the member delivers or receives. Guarantee: NSCC’s trade guarantee attaches by processing cycle, so the date determines when CCP protection begins. Margin: Clearing Fund requirements are computed from open positions per date. A misreported session is not a reporting blemish; it moves real money and real risk. Nothing downstream can repair a wrong 336: by the time a misclassified trade sits in the wrong CNS net, the correction path is a cancel and resubmit against a clearing day that may already be balanced.

07One tag, two jobs

The same pair of fields is consumed completely differently on each side of the boundary. This asymmetry is the root of the mapping problem.

Trading leg FIX enums: 336 + 625 together Order eligibilitywhich session an order may work Session status 35=hphase changes signaled via 625 Validity windowswith EffectiveTime(168), ExpireTime(126) Clearing leg DTCC strings: 336 only, 625 ignored Clearing dateOVN assigns the next 715 Netting and guaranteeCNS bucket keyed by date ID uniquenessTradeReportID(571) restarts per date
Figure 4. The trading leg reads session and phase together; the clearing leg reads 336 alone.

Read the two columns against each other. The trading side is a two-dimensional model: session identity and phase within it, enumerated in the FIX standard, with timing defined by each venue. The clearing side is one-dimensional: four flat strings, phase discarded. Forward translation from FIX to DTCC loses information harmlessly. Reverse translation is impossible without reference data, because PST alone cannot tell you whether the venue was in continuous trading or an auction. Any bridge must therefore be defined in the lossy direction only.

08The mapping and the bridge

As of publication there is no agreed one-to-one mapping between DTCC’s values and the FIX enumerations; establishing one is joint work between DTCC and the FIX 24-Hour Markets Working Group. The comparison below reflects DTCC’s published description of its model. The composite column is a proposed convention, not a ratified standard.

Times (ET)DTCC 336FIX 336FIX 625Composite → DTCC
4:00–9:30amPRE1 (Day)1 (Pre-trading)1 + 1 → PRE
9:30am auctionREG1 (Day)2 (Opening auction)1 + 2 → REG
9:30am–4:00pmREG1 (Day)3 (Continuous)1 + 3 → REG
4:00pm auctionREG1 (Day)4 (Closing auction)1 + 4 → REG
4:00–8:00pmPST1 (Day)5 (Post-trading)1 + 5 → PST
8:00–9:00pmOVN6 (After-hours)3 on ATSs; 7 describes exchange state only6 + 3 → OVN
9:00pm–4:00amOVN6 (After-hours)3 (Continuous)6 + 3 → OVN

The NSCC overnight session begins at 8:00pm ET and does not recognize the exchange maintenance pause, because ATSs trade through it. Note a composite-key subtlety: mapping the 4–8pm window to 625=5 (Post-trading) is a labeling convention; matching there is continuous, so if a venue legitimately reports 1 + 3 in that window the composite becomes ambiguous. This is the strongest argument for anchoring the translation in a published time-and-venue rule rather than in 625 values.

FIX DIALECT DTCC UTC DIALECT Venue or ATS336, 625, 75 Sending entitypicks the session UTC inputPRE REG PST OVN NSCCreads 336 only Translate336+625 to DTCC string Validatebad value, trade reject Reconcilekey on 715 + 571
Figure 5. The dialect boundary and the three bridge functions every submitter must implement.
Bridge optionWhat changesCost
1. Edge translation, nowSending entities map FIX session context to DTCC strings; the mapping table is published as a non-normative convention. DTCC unchanged.Every firm builds its own map; correctness depends on 625 or on a time-and-venue rule.
2. DTCC dual-acceptUTC input accepts a FIX-standard form during modernization, with a one-to-one mapping on 336 alone.Needs DTCC roadmap commitment; forcing a 1:1 on 336 alone strains FIX session semantics.
3. FIX gap analysisA native clearing-bucket concept enters the standard (new field or enumeration extension), so 336 keeps venue semantics worldwide.Slowest; needs a working group proposal and DTCC buy-in.

A sensible sequencing: option 1 immediately, option 3 as the standards deliverable, option 2 as DTCC’s migration path. Adding the literal PRE/REG/PST/OVN strings to the FIX 336 enumeration is not recommended: it would bake one market’s session-and-phase conflation into the global standard.

09From tag to DVP: how 336 reaches settlement

The tag itself never touches settlement. Its effect does, through a chain of derivations. DVP, delivery versus payment, is DTC’s settlement mechanism making the securities movement and the money movement conditional on each other, eliminating principal risk. The settlement date on which that simultaneous exchange happens is T+1 of the clearing date, and the clearing date is whatever 336 said it was.

336 sessionsubmitter supplied 715 clearing datederived at NSCC CNS netone net per date DVP at DTCT+1 of 715
Figure 6. The derivation chain. It runs one way; nothing downstream repairs a wrong 336.

For completeness on the settlement mechanics: CNS nets each member’s obligations into a single receive or deliver per security per settlement date, with NSCC as counterparty. Securities move by book entry at DTC; money settles net at end of day across the DTCC cash settlement process. Institutional allocations confirmed through affirmation platforms settle DVP at DTC against the same date discipline. Every one of those steps keys off the clearing date that the session tag selected at submission time.

10Worked example

StepWhat happens
1. ExecutionAn ATS matches a buy at 9:05pm ET on Thursday 3 September 2026. The venue’s published convention places the execution in the overnight session.
2. Trading-leg FIXExecutionReport(35=8) carries TradeDate(75) = 4 Sep (next business date per the 8pm roll), TransactTime(60) = the actual UTC timestamp, and session context 336=6, 625=3.
3. UTC submissionThe sending entity submits to NSCC UTC with DTCC’s 336 = OVN and a TradeReportID(571) sequence belonging to the 4 Sep processing date (restarting at 1 after the Good Night message).
4. ClearingNSCC assigns ClearingBusinessDate(715) = Friday 4 Sep and places the trade in Friday’s CNS net. The trade guarantee and margin attach on Friday’s cycle.
5. SettlementT+1 of Friday 4 Sep would be Monday 7 Sep, but that is Labor Day, so DVP settlement at DTC occurs Tuesday 8 September. Holiday calendars apply to business dates, which is why systems must never infer dates from timestamps.
CounterfactualHad the submitter sent 336 = PST in error, the trade would clear on Thursday’s date, land in the wrong CNS net, and carry a 571 that collides with Thursday’s sequence, a reject or a reconciliation break, with cancel-and-resubmit as the only cure.

11Tag glossary for 24-hour trading

TagNameRole in 24-hour trading
336TradingSessionIDFIX: names the session (1 Day, 5 Evening, 6 After-hours). DTCC: custom strings (pre-market, regular, post-market, overnight) that drive clearing-date assignment at NSCC. Required for overnight submitters; invalid values reject.
625TradingSessionSubIDFIX: phase within a session (1 Pre-trading, 2 Opening auction, 3 Continuous, 4 Closing auction, 5 Post-trading, 7 Quiescent). Not consumed by NSCC. Recommended populated on the trading leg.
75TradeDateLogical business date assigned by the venue. Never inferred from timestamps. After 8pm ET it runs ahead of the calendar date until midnight.
715ClearingBusinessDateBusiness date assigned by the clearing organization. Usually equals 75 for cash equities; stated separately because they can diverge. In UTCO output from June 2026; carries a date but no time, an acknowledged standardization gap.
571TradeReportIDUnique trade identifier on UTC submissions. Restarts at 1 each processing date; uniqueness across the two concurrent dates depends on pairing with 715.
60 / 52TransactTime / SendingTimeActual event timestamps in UTC time. Identify when, never which business date.
168 / 126EffectiveTime / ExpireTimeUTC timestamps bounding order validity. Preferred over ExpireDate(432) and TimeInForce(59)=0 (Day) in continuous sessions, where “day” is ambiguous.
59TimeInForcePrefer 6=GTD with ExpireTime(126), or A=Good for Time with ExposureDuration(1629). Avoid 0=Day unless the venue publishes an unambiguous business-day definition.
62ValidUntilTimeExplicit UTC validity for IOIs and quotes, replacing implicit “valid until the close” conventions that break across midnight.

12Takeaways