{
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "$id": "https://firmtape.com/contracts/public/events/alerts/flow_cross.schema.json",
 "title": "flow_cross",
 "description": "Sent when a FLOW cross line fires: the order flow imbalance of SPX options near the money, summed since the open, had the calls' side cross the puts' (calls minus puts changed sign). An event, not a signal: FLOW describes pressure as it happens, and a cross is not a forecast.",
 "allOf": [
  {
   "$ref": "envelope.schema.json"
  }
 ],
 "properties": {
  "type": {
   "const": "flow_cross",
   "description": "`flow_cross`."
  },
  "direction": {
   "enum": [
    "above",
    "below"
   ],
   "description": "`above`: the calls' flow crossed above the puts'; `below`: the reverse."
  },
  "level": {
   "type": "object",
   "description": "`kind` is `flow`; `value` is 0, the zero the net crossed."
  },
  "flow": {
   "type": "object",
   "description": "`net` the calls' minus the puts' order flow since the open at the firing second, in contracts of quoted size; `at` that second, ET."
  },
  "alert": {
   "type": "object",
   "description": "The line that fired: `scope` (`z0` 0DTE, `nx` the next expiries, `all`), `mode`."
  }
 },
 "x-when": [
  "At the first second the net since the open reaches or passes zero, read every 5 seconds from the per-second tape.",
  "Armed again only once the net stands at least 20% of the day's largest net so far from zero, and never less than 1,000 contracts, so it does not chatter around zero."
 ],
 "x-features": [
  "alert-lines",
  "webhooks"
 ],
 "examples": [
  {
   "version": 1,
   "id": "evt_4c7d1e9a2b3f6a0d8e5c1b7a",
   "type": "flow_cross",
   "symbol": "SPX",
   "price": 6748.25,
   "book": "volume",
   "ts": "2026-11-06T10:52:46-05:00",
   "day": "2026-11-06",
   "levels": {
    "flip": 6731.08,
    "call_wall": 6750,
    "put_wall": 6700,
    "put_support": 6700
   },
   "level": {
    "kind": "flow",
    "value": 0
   },
   "direction": "above",
   "text": "SPX FLOW: calls crossed above puts (net +1,349 since the open, 0DTE), your FLOW cross line · 10:52:46 ET",
   "flow": {
    "net": 1349,
    "at": "10:52:46"
   },
   "alert": {
    "id": "al_7d8e9f0a1b2c",
    "kind": "flow",
    "scope": "z0",
    "mode": "repeat"
   }
  }
 ],
 "x-source": "alerts",
 "x-product": "live",
 "x-plan": "live",
 "x-version": 1,
 "x-since": "2026-11-06",
 "x-switch-on": "Right-click the CVD band with FLOW on (Layers, Indicators, CVD) and pick Alert when calls and puts flow cross; a webhook address on Account, Level alerts.",
 "required": [
  "alert",
  "flow"
 ]
}