{
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "$id": "https://firmtape.com/contracts/public/events/alerts/cvd_line.schema.json",
 "title": "cvd_line",
 "description": "Sent when a CVD line fires: inside one bar of the line's width (15 seconds by default), SPX options printed as calls minus those printed as puts reached the line's value; a volume line (`alert.measure` `total`, `calls` or `puts`) counts that volume instead.",
 "allOf": [
  {
   "$ref": "envelope.schema.json"
  }
 ],
 "properties": {
  "type": {
   "const": "cvd_line",
   "description": "`cvd_line`."
  },
  "direction": {
   "enum": [
    "above",
    "below"
   ],
   "description": "`above` for a positive line (calls, or a volume line), `below` for a negative one (puts)."
  },
  "level": {
   "type": "object",
   "description": "`kind` is `cvd`; `value` the line's value, in contracts (or delta-contracts, see `alert.unit`)."
  },
  "cvd": {
   "type": "object",
   "description": "The bar that fired it: `run` the calls minus puts (a volume line: its volume) printed in the bar up to the firing second, `window_s` the bar's width, `bar_start` its first second, ET."
  },
  "alert": {
   "type": "object",
   "description": "The line that fired: `value`, `win`, `scope` (`z0` 0DTE, `nx` the next expiries, `all`), `unit` (`ct` contracts, `delta` |delta|-weighted), `measure` (`net` calls minus puts, `total` calls plus puts, `calls`, `puts`), `mode`."
  }
 },
 "x-when": [
  "At the first second the bar's running calls minus puts (or, for a volume line, its volume) reaches the line, read every 5 seconds from the per-second tape.",
  "At most once a bar; a repeating line can fire again in a later bar."
 ],
 "x-features": [
  "alert-lines",
  "webhooks"
 ],
 "examples": [
  {
   "version": 1,
   "id": "evt_9b1e4d2c7a0f3e6b5d8c1a2f",
   "type": "cvd_line",
   "symbol": "SPX",
   "price": 6748.25,
   "book": "volume",
   "ts": "2026-10-15T15:51:22-04:00",
   "day": "2026-10-15",
   "levels": {
    "flip": 6731.08,
    "call_wall": 6750,
    "put_wall": 6700,
    "put_support": 6700
   },
   "level": {
    "kind": "cvd",
    "value": 2000
   },
   "direction": "above",
   "text": "SPX CVD +2,105 in a 15s bar (line +2,000), your CVD line",
   "cvd": {
    "run": 2105,
    "window_s": 15,
    "bar_start": "15:51:15"
   },
   "alert": {
    "id": "al_1c2d3e4f5a6b",
    "kind": "delta",
    "value": 2000,
    "win": 15,
    "scope": "z0",
    "unit": "ct",
    "measure": "net",
    "mode": "repeat"
   }
  }
 ],
 "x-source": "alerts",
 "x-product": "live",
 "x-plan": "live",
 "x-version": 1,
 "x-since": "2026-10-19",
 "x-switch-on": "Right-click the CVD band (Layers, Indicators, CVD) and pick Alert at CVD or Alert at volume; a webhook address on Account, Level alerts.",
 "required": [
  "alert",
  "cvd"
 ]
}