Islandflow system reference

From print to alert

A compact anatomy map for the path a market print takes through ingest, the live tape, flow packet construction, smart-money profiling, classifier hits, and alerts.

Print to alert overview Ingest options.prints equities.prints Tape signal rows raw context Compute cluster join features FlowPacket members[] features{} SmartMoney profile_scores[] primary_direction ClassifierHit classifier_id confidence Alert score + severity evidence_refs[] ClickHouse history + API live fanout + replay cursors
ingest tape derived profile alert

The pipeline is two paths that meet again

Ingest publishes the live market row. The API can show that row immediately as tape, while compute consumes the signal stream and builds slower, richer derived events from the same traceable print evidence.

  1. 1
    Adapters publish raw market events.

    Options prints, option NBBO, equity prints, and equity quotes land on NATS subjects such as options.prints, options.nbbo, and equities.prints. Each event carries source_ts, ingest_ts, seq, and trace_id.

  2. 2
    Signal prints become the options tape head.

    The options ingest path enriches prints with contract metadata, NBBO side, notional, ETF classification, and signal_pass. Signal-qualified rows are published to options.prints.signal.

  3. 3
    Compute clusters print evidence into flow packets.

    Compute consumes signal prints and NBBO context, groups nearby activity, derives features, writes flow_packets, and publishes flow.packets.

  4. 4
    Parent events, hits, and alerts preserve the evidence chain.

    A flow packet can produce a SmartMoneyEvent, one or more ClassifierHitEvent rows, and an AlertEvent. The resulting alert keeps evidence_refs back to packet and print identifiers.

Prints are the smallest inspectable fact

A print is not yet a theory. It is a timed execution row plus enough enrichment to say whether it deserves live attention and whether it can support later inference.

OptionPrint

option_contract_idThe contract key, parsed into root, expiry, strike, and right when possible.
price + sizeThe execution terms used for premium and notional.
nbbo_sideWhere the trade printed versus bid, ask, midpoint, missing quote, or stale quote.
signal_passWhether the print survives the configured smart-money, balanced, or all mode filter.

EquityPrint

underlying_idThe equity symbol or internal underlying identifier.
price + sizeThe trade terms used for candles and equity context.
offExchangeFlagA direct flag for off-exchange prints before dark inference adds interpretation.
trace_idThe stable evidence handle used for joins, drawers, history, and replay.

Flow packets are parent evidence, not final conclusions

Compute creates a FlowPacket when activity is strong enough to inspect as a grouped unit. It stores member print ids, aggregate features, and join-quality metrics so later events can explain what they used.

Flow packet anatomy Print A trace_id: opt-101 Print B trace_id: opt-102 Print C trace_id: opt-103 FlowPacket members: [opt-101, opt-102, opt-103] features: total_premium, count, dte nbbo_aggressive_buy_ratio join_quality: coverage, age, spread ClickHouse flow_packets Live API channel: flow

Smart-money events turn packet features into profiles

A SmartMoneyEvent is the parent interpretation of a flow packet. It keeps packet ids and member print ids, then records profile probabilities, direction, abstention state, and any suppression reasons.

Profiles

Current profile ids include institutional_directional, retail_whale, event_driven, vol_seller, arbitrage, and hedge_reactive.

Direction

Direction is normalized as bullish, bearish, neutral, mixed, or unknown, with profile reasons kept beside the probability.

Suppression

Special print context, stale quotes, missing NBBO coverage, or cross-like executions can lower confidence or cause an abstained event rather than a confident call.

Classifier hits are named detections with reasons

Classifiers look at packet and smart-money context, then emit hit events with a classifier id, confidence, direction, and explanation strings. They are deliberately narrower than alerts.

Layer Primary input Important fields What the operator sees
FlowPacket Signal option prints and quote context members, features, join_quality Grouped flow row, packet drawer, linked member prints
SmartMoneyEvent One flow packet plus event calendar context when available profile_scores, primary_direction, suppressed_reasons Smart-money profile row and profile reasoning
ClassifierHitEvent Derived parent event and packet feature thresholds classifier_id, confidence, direction, explanations Classifier feed row and decorators on linked tape rows
AlertEvent Flow packet plus one or more classifier hits score, severity, hits, evidence_refs Alert row, severity strip, alert context drawer

Alerts package evidence for action

Alerts do not replace the underlying evidence. They score it, attach severity, and keep enough references for the UI and API to reconstruct the supporting packet and prints.

AlertEvent {
  source_ts
  ingest_ts
  seq
  trace_id
  score
  severity
  hits[]
  evidence_refs[]
  primary_profile_id?
  profile_scores?
}

Alert scoring combines packet premium, strongest classifier confidence, and hit count, then maps the score into low, medium, or high severity. The important operational detail is that the alert remains reversible: open it, inspect the hit, inspect the packet, then inspect the print evidence.

Traceability is the contract between live and replay

Every major row carries cursor-friendly time metadata and a trace handle. The live API uses NATS for fresh events, ClickHouse for snapshots and older history, and the same schemas for replay.

Live channels

The terminal subscribes to channels including options, flow, smart-money, classifier-hits, and alerts. Each channel can deliver snapshots, events, watermarks, and history cursors.

History tables

Derived rows are persisted as flow_packets, smart_money_events, classifier_hits, and alerts. Alert context lookup resolves evidence references across those tables and the option print store.