{
  "generated_at_utc": "2026-11-07T04:41:08+00:00",
  "generated_at_ist": "2026-11-07 10:11:08 IST",
  "host": "vmd192389",
  "health": "ok",
  "problems": [],
  "today": {
    "date_ist": "2026-11-07",
    "phase": "Weekend",
    "session_running": false,
    "capture": null,
    "expected": false,
    "calendar": {
      "date": "2026-11-07",
      "kind": "weekend",
      "closed": true,
      "name": null,
      "nse_closed": false,
      "bse_closed": false,
      "special": null,
      "next_session": "2026-11-09",
      "covered": true
    }
  },
  "collection": {
    "last_success": {
      "date": "2026-11-06",
      "class": "trading",
      "archived": false,
      "raw_mib": 461.8,
      "journal_mib": 193.9,
      "records": 3176671,
      "total_mib": 662.9,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin",
        "ticks.journal"
      ],
      "closed_cleanly": true
    },
    "last_failure": null
  },
  "dhan": {
    "data_plan": "Active",
    "active": true,
    "valid_until_ist": "2026-11-29 00:00",
    "days_left": 21,
    "checked_at_ist": "2026-11-06 08:45:02"
  },
  "services": {
    "option-auto.timer": {
      "unit": "option-auto.timer",
      "active": true,
      "enabled": true,
      "state": "active",
      "next": "Mon 2026-11-09 04:05:00 CET",
      "next_ist": "2026-11-09 08:35 IST",
      "last_result": "success"
    },
    "option-auto-watchdog.timer": {
      "unit": "option-auto-watchdog.timer",
      "active": true,
      "enabled": true,
      "state": "active",
      "next": "Mon 2026-11-09 03:00:00 CET",
      "next_ist": "2026-11-09 07:30 IST",
      "last_result": "success"
    },
    "option-auto-replay.timer": {
      "unit": "option-auto-replay.timer",
      "active": true,
      "enabled": true,
      "state": "active",
      "next": "Mon 2026-11-09 12:00:00 CET",
      "next_ist": "2026-11-09 16:30 IST",
      "last_result": "success"
    },
    "option-auto-retention.timer": {
      "unit": "option-auto-retention.timer",
      "active": true,
      "enabled": true,
      "state": "active",
      "next": "Mon 2026-11-09 13:00:00 CET",
      "next_ist": "2026-11-09 17:30 IST",
      "last_result": "success"
    },
    "option-auto.service": {
      "unit": "option-auto.service",
      "active": false,
      "enabled": false,
      "state": "inactive",
      "next": null,
      "next_ist": null,
      "last_result": "success"
    },
    "option-auto-status.service": {
      "unit": "option-auto-status.service",
      "active": true,
      "enabled": true,
      "state": "active",
      "next": null,
      "next_ist": null,
      "last_result": "success"
    },
    "option-auto-replay.service": {
      "unit": "option-auto-replay.service",
      "active": false,
      "enabled": true,
      "state": "inactive",
      "next": null,
      "next_ist": null,
      "last_result": "success"
    },
    "option-auto-retention.service": {
      "unit": "option-auto-retention.service",
      "active": false,
      "enabled": true,
      "state": "inactive",
      "next": null,
      "next_ist": null,
      "last_result": "success"
    },
    "option-auto-boot.service": {
      "unit": "option-auto-boot.service",
      "active": false,
      "enabled": true,
      "state": "inactive",
      "next": null,
      "next_ist": null,
      "last_result": "success"
    }
  },
  "retention": {
    "last_run": {
      "ts": "2026-11-06T12:00:33Z",
      "trading_days": 38,
      "kept_raw": 5,
      "archived": 1,
      "reclaimed_mib": 310,
      "deleted": 0,
      "free_mib": 107746,
      "newest": "2026-11-05",
      "oldest_raw": "2026-10-30",
      "ok": true
    },
    "trading_days_held": 38,
    "raw_days_held": 6,
    "newest": "2026-11-06",
    "oldest_raw": "2026-10-30",
    "oldest_any": "2026-09-08"
  },
  "storage": {
    "free_mib": 107733,
    "total_mib": 147719,
    "used_mib": 39970,
    "data_mib": 8039,
    "floor_mib": 10240,
    "below_floor": false,
    "sessions_headroom": 229
  },
  "captures": [
    {
      "date": "2026-11-06",
      "class": "trading",
      "archived": false,
      "raw_mib": 461.8,
      "journal_mib": 193.9,
      "records": 3176671,
      "total_mib": 662.9,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin",
        "ticks.journal"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-11-05",
      "class": "trading",
      "archived": false,
      "raw_mib": 465.9,
      "journal_mib": 195.6,
      "records": 3204601,
      "total_mib": 667.8,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin",
        "ticks.journal"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-11-04",
      "class": "trading",
      "archived": false,
      "raw_mib": 478.8,
      "journal_mib": 200.8,
      "records": 3289617,
      "total_mib": 687.0,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin",
        "ticks.journal"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-11-03",
      "class": "trading",
      "archived": false,
      "raw_mib": 471.0,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 477.9,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-11-02",
      "class": "trading",
      "archived": false,
      "raw_mib": 471.4,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 479.1,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-10-30",
      "class": "trading",
      "archived": false,
      "raw_mib": 461.1,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 472.0,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-10-29",
      "class": "trading",
      "archived": true,
      "raw_mib": 141.5,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 150.0,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst",
        "verification.json",
        "verification.md"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-10-23",
      "class": "trading",
      "archived": true,
      "raw_mib": 135.1,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 143.4,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.torn-201326592",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-10-22",
      "class": "trading",
      "archived": true,
      "raw_mib": 150.3,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 156.1,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-10-21",
      "class": "trading",
      "archived": true,
      "raw_mib": 147.6,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 153.4,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-10-20",
      "class": "holiday",
      "archived": false,
      "raw_mib": 0.0,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 8.3,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin",
        "ticks.journal"
      ],
      "closed_cleanly": false
    },
    {
      "date": "2026-10-19",
      "class": "trading",
      "archived": true,
      "raw_mib": 112.0,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 119.8,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-10-16",
      "class": "trading",
      "archived": true,
      "raw_mib": 135.8,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 145.3,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-10-15",
      "class": "trading",
      "archived": true,
      "raw_mib": 143.7,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 152.1,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-10-14",
      "class": "trading",
      "archived": true,
      "raw_mib": 148.1,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 156.4,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-10-13",
      "class": "trading",
      "archived": true,
      "raw_mib": 134.3,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 142.6,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-10-12",
      "class": "trading",
      "archived": true,
      "raw_mib": 136.9,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 145.2,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-10-09",
      "class": "trading",
      "archived": true,
      "raw_mib": 133.3,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 143.7,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-10-08",
      "class": "trading",
      "archived": true,
      "raw_mib": 142.9,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 151.3,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-10-07",
      "class": "trading",
      "archived": true,
      "raw_mib": 145.1,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 150.8,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-10-06",
      "class": "trading",
      "archived": true,
      "raw_mib": 134.3,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 139.9,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-10-05",
      "class": "trading",
      "archived": true,
      "raw_mib": 139.8,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 145.3,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-10-02",
      "class": "holiday",
      "archived": true,
      "raw_mib": 0.0,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 9.6,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-10-01",
      "class": "trading",
      "archived": true,
      "raw_mib": 148.3,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 156.5,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-09-30",
      "class": "trading",
      "archived": true,
      "raw_mib": 144.0,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 152.1,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-09-29",
      "class": "trading",
      "archived": true,
      "raw_mib": 137.0,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 144.6,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-09-28",
      "class": "trading",
      "archived": true,
      "raw_mib": 128.8,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 136.8,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-09-25",
      "class": "trading",
      "archived": true,
      "raw_mib": 134.4,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 144.1,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-09-24",
      "class": "trading",
      "archived": true,
      "raw_mib": 148.7,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 157.1,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-09-23",
      "class": "trading",
      "archived": true,
      "raw_mib": 145.3,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 153.6,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-09-22",
      "class": "trading",
      "archived": true,
      "raw_mib": 136.1,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 144.3,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-09-21",
      "class": "trading",
      "archived": true,
      "raw_mib": 130.9,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 139.1,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-09-18",
      "class": "trading",
      "archived": true,
      "raw_mib": 131.5,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 139.8,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-09-17",
      "class": "trading",
      "archived": true,
      "raw_mib": 150.4,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 156.1,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-09-16",
      "class": "trading",
      "archived": true,
      "raw_mib": 144.2,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 149.9,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-09-15",
      "class": "trading",
      "archived": true,
      "raw_mib": 131.5,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 137.1,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-09-14",
      "class": "holiday",
      "archived": false,
      "raw_mib": 0.0,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 8.1,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin",
        "ticks.journal"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-09-11",
      "class": "trading",
      "archived": true,
      "raw_mib": 12.2,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 20.5,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-09-10",
      "class": "trading",
      "archived": true,
      "raw_mib": 145.0,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 152.6,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-09-09",
      "class": "trading",
      "archived": true,
      "raw_mib": 146.2,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 153.7,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst"
      ],
      "closed_cleanly": true
    },
    {
      "date": "2026-09-08",
      "class": "trading",
      "archived": true,
      "raw_mib": 130.7,
      "journal_mib": 0.0,
      "records": 0,
      "total_mib": 133.9,
      "files": [
        "history.json",
        "ladder.json",
        "legs_history.json",
        "raw.bin.zst",
        "verification.json",
        "verification.md"
      ],
      "closed_cleanly": true
    }
  ],
  "docs": {
    "present": [
      {
        "file": "PROJECT_CONTEXT.md",
        "mtime": "2026-09-28T10:30:10.966367+00:00"
      },
      {
        "file": "CLAUDE.md",
        "mtime": "2026-11-02T18:03:08.687686+00:00"
      },
      {
        "file": "CHANGELOG.md",
        "mtime": "2026-11-02T18:03:08.686686+00:00"
      },
      {
        "file": "docs/ops/OPERATIONS.md",
        "mtime": "2026-10-28T17:05:05.549134+00:00"
      },
      {
        "file": "docs/ops/DATA_GUIDE.md",
        "mtime": "2026-10-22T15:06:02.334629+00:00"
      },
      {
        "file": "docs/ops/TROUBLESHOOTING.md",
        "mtime": "2026-10-28T17:05:05.550134+00:00"
      },
      {
        "file": "docs/ops/DECISIONS.md",
        "mtime": "2026-09-07T18:25:37.013852+00:00"
      }
    ],
    "missing": [],
    "complete": true,
    "newest_doc_utc": "2026-11-02T18:03:08.687686+00:00",
    "newest_infra_file": "scripts/test_pipeline.py",
    "newest_infra_utc": "2026-11-02T18:03:08.695686+00:00",
    "possibly_stale": true
  },
  "todays_trade": {
    "date": "2026-11-06",
    "generated_at_ist": "2026-11-06 16:30:42 IST",
    "live_strategy": "noop \u2014 the live session records and trades nothing",
    "is_a_recommendation": false,
    "strategies": [
      "oi_cluster",
      "oi_cluster_a",
      "oi_unwind",
      "oi_unwind_a",
      "trend_reversal",
      "trend_reversal_a"
    ],
    "results": {
      "oi_cluster": {
        "ok": true,
        "display_name": "OI Cluster",
        "number": 3,
        "status": "trading",
        "trades": 3,
        "winners": 0,
        "net": "\u2212\u20b95,602.79",
        "net_paise": -560279,
        "file": "todays-trade/oi_cluster.json"
      },
      "oi_cluster_a": {
        "ok": true,
        "display_name": "OI Cluster A",
        "number": 5,
        "status": "trading",
        "trades": 6,
        "winners": 3,
        "net": "\u20b92,016.17",
        "net_paise": 201617,
        "file": "todays-trade/oi_cluster_a.json"
      },
      "oi_unwind": {
        "ok": true,
        "display_name": "OI Unwind",
        "number": 2,
        "status": "no_trade",
        "trades": 0,
        "winners": 0,
        "net": "\u20b90.00",
        "net_paise": 0,
        "file": "todays-trade/oi_unwind.json"
      },
      "oi_unwind_a": {
        "ok": true,
        "display_name": "OI Unwind A",
        "number": 4,
        "status": "no_trade",
        "trades": 0,
        "winners": 0,
        "net": "\u20b90.00",
        "net_paise": 0,
        "file": "todays-trade/oi_unwind_a.json"
      },
      "trend_reversal": {
        "ok": true,
        "display_name": "Trend Reversal",
        "number": 1,
        "status": "trading",
        "trades": 4,
        "winners": 4,
        "net": "\u20b951,093.38",
        "net_paise": 5109338,
        "file": "todays-trade/trend_reversal.json"
      },
      "trend_reversal_a": {
        "ok": true,
        "display_name": "Trend Reversal A",
        "number": 6,
        "status": "trading",
        "trades": 2,
        "winners": 2,
        "net": "\u20b940,072.60",
        "net_paise": 4007260,
        "file": "todays-trade/trend_reversal_a.json"
      }
    },
    "by_strategy": {
      "oi_cluster": {
        "date": "2026-11-06",
        "strategy": "oi_cluster",
        "display_name": "OI Cluster",
        "number": 3,
        "config": "strategies/oi-cluster.toml",
        "generated_at_ist": "2026-11-06 16:30:25 IST",
        "source": "replay of the day's capture through oi_cluster",
        "live_strategy": "noop \u2014 the live session records and trades nothing",
        "is_a_recommendation": false,
        "ok": true,
        "status": "trading",
        "run_dir": "runs/2026-11-06T09-15-00_replay-oi_cluster-2026-11-06",
        "trades": 3,
        "winners": 0,
        "positions": [
          {
            "n": 1,
            "name": "NIFTY 24,800 CE",
            "symbol": "NIFTY 09 NOV 24800 CALL",
            "underlying": "NIFTY",
            "side": "CE",
            "strike": 24800.0,
            "rung": 3,
            "ladder_rung": 6,
            "slot": 36,
            "lot_size": 65,
            "qty": 130,
            "lots": 2,
            "entry_time_ist": "12:21",
            "entry_price": 104.5,
            "entry_reason": "oi_cluster rung=3 spot=24670.75 ask=104.50 ready=2 low=35.45",
            "entry_paise": 10450,
            "exits": [
              {
                "kind": "final",
                "tag": "EXIT",
                "reason": "stop_3m_close",
                "words": "stop \u2014 a 3-minute candle closed below it",
                "time_ist": "13:06",
                "price": 92.85,
                "qty": 130,
                "lots": 2,
                "gross_paise": -151450,
                "gross": "\u2212\u20b91,514.50",
                "pct": -11.15,
                "held_minutes": 45,
                "held": "45m"
              }
            ],
            "exit_time_ist": "13:06",
            "exit_price": 92.85,
            "exit_reason": "stop_3m_close",
            "exit_words": "stop \u2014 a 3-minute candle closed below it",
            "held_minutes": 45,
            "held": "45m",
            "gross_paise": -151450,
            "gross": "\u2212\u20b91,514.50",
            "pct": -11.15,
            "won": false,
            "closed": true,
            "open_qty": 0,
            "open_lots": 0,
            "scaled": 0,
            "targets": []
          },
          {
            "n": 2,
            "name": "NIFTY 24,650 CE",
            "symbol": "NIFTY 09 NOV 24650 CALL",
            "underlying": "NIFTY",
            "side": "CE",
            "strike": 24650.0,
            "rung": 0,
            "ladder_rung": 3,
            "slot": 30,
            "lot_size": 65,
            "qty": 65,
            "lots": 1,
            "entry_time_ist": "12:21",
            "entry_price": 173.9,
            "entry_reason": "oi_cluster rung=0 spot=24670.75 ask=173.90 ready=2 low=61.45",
            "entry_paise": 17390,
            "exits": [
              {
                "kind": "final",
                "tag": "EXIT",
                "reason": "stop_3m_close",
                "words": "stop \u2014 a 3-minute candle closed below it",
                "time_ist": "13:06",
                "price": 156.85,
                "qty": 65,
                "lots": 1,
                "gross_paise": -110825,
                "gross": "\u2212\u20b91,108.25",
                "pct": -9.8,
                "held_minutes": 45,
                "held": "45m"
              }
            ],
            "exit_time_ist": "13:06",
            "exit_price": 156.85,
            "exit_reason": "stop_3m_close",
            "exit_words": "stop \u2014 a 3-minute candle closed below it",
            "held_minutes": 45,
            "held": "45m",
            "gross_paise": -110825,
            "gross": "\u2212\u20b91,108.25",
            "pct": -9.8,
            "won": false,
            "closed": true,
            "open_qty": 0,
            "open_lots": 0,
            "scaled": 0,
            "targets": []
          },
          {
            "n": 3,
            "name": "NIFTY 24,700 CE",
            "symbol": "NIFTY 09 NOV 24700 CALL",
            "underlying": "NIFTY",
            "side": "CE",
            "strike": 24700.0,
            "rung": 0,
            "ladder_rung": 4,
            "slot": 32,
            "lot_size": 65,
            "qty": 130,
            "lots": 2,
            "entry_time_ist": "12:28",
            "entry_price": 153.4,
            "entry_reason": "oi_cluster rung=0 spot=24690.75 ask=153.40 ready=2 low=51.55",
            "entry_paise": 15340,
            "exits": [
              {
                "kind": "final",
                "tag": "EXIT",
                "reason": "stop_3m_close",
                "words": "stop \u2014 a 3-minute candle closed below it",
                "time_ist": "13:06",
                "price": 132.3,
                "qty": 130,
                "lots": 2,
                "gross_paise": -274300,
                "gross": "\u2212\u20b92,743.00",
                "pct": -13.75,
                "held_minutes": 38,
                "held": "38m"
              }
            ],
            "exit_time_ist": "13:06",
            "exit_price": 132.3,
            "exit_reason": "stop_3m_close",
            "exit_words": "stop \u2014 a 3-minute candle closed below it",
            "held_minutes": 38,
            "held": "38m",
            "gross_paise": -274300,
            "gross": "\u2212\u20b92,743.00",
            "pct": -13.75,
            "won": false,
            "closed": true,
            "open_qty": 0,
            "open_lots": 0,
            "scaled": 0,
            "targets": []
          }
        ],
        "highlights": {
          "taken": 3,
          "blocked": {
            "after_cutoff": 6603,
            "premium_against": 1066,
            "outside_band": 394,
            "position_open": 40,
            "cluster_short": 18
          },
          "exits_by_reason": {
            "stop_3m_close": 3
          },
          "scaled_out": {},
          "weekday": "Fri",
          "cluster_checks": 8124,
          "cluster_ready_checks": 21,
          "cluster_falling_premium": 5465,
          "cluster_alone": 18,
          "cluster_min_ready": 2,
          "entries_by_underlying": {
            "NIFTY": 3,
            "SENSEX": 0
          },
          "max_open_at_once": 3,
          "legs_charted": 84,
          "legs_with_oi_sma": 32
        },
        "caveats": [],
        "turnover": "\u20b984,295.25",
        "charges_breakdown": {
          "brokerage": 14160,
          "stamp": 100,
          "stt": 5900,
          "txn": 3544
        },
        "fills": 6,
        "rejects": 0,
        "realised": "\u2212\u20b95,365.75",
        "charges": "\u20b9237.04",
        "unrealised": "\u20b90.00",
        "net": "\u2212\u20b95,602.79",
        "net_paise": -560279,
        "realised_paise": -536575,
        "charges_paise": 23704,
        "open_positions": [],
        "funnel_residuals_clean": true,
        "funnel_residuals": {
          "checks_unaccounted": 0,
          "entries_without_an_exit": 0,
          "lots_unaccounted": 0,
          "positions_left_open": 0
        },
        "message": "3 trade(s), net \u2212\u20b95,602.79. This is what oi_cluster would have done \u2014 the live session traded nothing."
      },
      "oi_cluster_a": {
        "date": "2026-11-06",
        "strategy": "oi_cluster_a",
        "display_name": "OI Cluster A",
        "number": 5,
        "config": "strategies/oi-cluster-a.toml",
        "generated_at_ist": "2026-11-06 16:30:14 IST",
        "source": "replay of the day's capture through oi_cluster_a",
        "live_strategy": "noop \u2014 the live session records and trades nothing",
        "is_a_recommendation": false,
        "ok": true,
        "status": "trading",
        "run_dir": "runs/2026-11-06T09-15-00_replay-oi_cluster_a-2026-11-06",
        "trades": 6,
        "winners": 3,
        "positions": [
          {
            "n": 1,
            "name": "NIFTY 24,800 CE",
            "symbol": "NIFTY 09 NOV 24800 CALL",
            "underlying": "NIFTY",
            "side": "CE",
            "strike": 24800.0,
            "rung": 2,
            "ladder_rung": 6,
            "slot": 36,
            "lot_size": 65,
            "qty": 130,
            "lots": 2,
            "entry_time_ist": "12:30",
            "entry_price": 108.5,
            "entry_reason": "oi_cluster_a rung=2 spot=24687.55 ask=108.50 ready=2 low=35.45",
            "entry_paise": 10850,
            "exits": [
              {
                "kind": "final",
                "tag": "EXIT",
                "reason": "stop_3m_close",
                "words": "stop \u2014 a 3-minute candle closed below it",
                "time_ist": "13:06",
                "price": 92.85,
                "qty": 130,
                "lots": 2,
                "gross_paise": -203450,
                "gross": "\u2212\u20b92,034.50",
                "pct": -14.42,
                "held_minutes": 36,
                "held": "36m"
              }
            ],
            "exit_time_ist": "13:06",
            "exit_price": 92.85,
            "exit_reason": "stop_3m_close",
            "exit_words": "stop \u2014 a 3-minute candle closed below it",
            "held_minutes": 36,
            "held": "36m",
            "gross_paise": -203450,
            "gross": "\u2212\u20b92,034.50",
            "pct": -14.42,
            "won": false,
            "closed": true,
            "open_qty": 0,
            "open_lots": 0,
            "scaled": 0,
            "targets": []
          },
          {
            "n": 2,
            "name": "NIFTY 24,700 CE",
            "symbol": "NIFTY 09 NOV 24700 CALL",
            "underlying": "NIFTY",
            "side": "CE",
            "strike": 24700.0,
            "rung": 0,
            "ladder_rung": 4,
            "slot": 32,
            "lot_size": 65,
            "qty": 130,
            "lots": 2,
            "entry_time_ist": "12:30",
            "entry_price": 153.0,
            "entry_reason": "oi_cluster_a rung=0 spot=24687.55 ask=153.00 ready=2 low=51.55",
            "entry_paise": 15300,
            "exits": [
              {
                "kind": "final",
                "tag": "EXIT",
                "reason": "stop_3m_close",
                "words": "stop \u2014 a 3-minute candle closed below it",
                "time_ist": "13:06",
                "price": 132.3,
                "qty": 130,
                "lots": 2,
                "gross_paise": -269100,
                "gross": "\u2212\u20b92,691.00",
                "pct": -13.53,
                "held_minutes": 36,
                "held": "36m"
              }
            ],
            "exit_time_ist": "13:06",
            "exit_price": 132.3,
            "exit_reason": "stop_3m_close",
            "exit_words": "stop \u2014 a 3-minute candle closed below it",
            "held_minutes": 36,
            "held": "36m",
            "gross_paise": -269100,
            "gross": "\u2212\u20b92,691.00",
            "pct": -13.53,
            "won": false,
            "closed": true,
            "open_qty": 0,
            "open_lots": 0,
            "scaled": 0,
            "targets": []
          },
          {
            "n": 3,
            "name": "NIFTY 24,900 CE",
            "symbol": "NIFTY 09 NOV 24900 CALL",
            "underlying": "NIFTY",
            "side": "CE",
            "strike": 24900.0,
            "rung": 4,
            "ladder_rung": 8,
            "slot": 40,
            "lot_size": 65,
            "qty": 260,
            "lots": 4,
            "entry_time_ist": "12:32",
            "entry_price": 75.0,
            "entry_reason": "oi_cluster_a rung=4 spot=24692.05 ask=75.00 ready=3 low=24.80",
            "entry_paise": 7500,
            "exits": [
              {
                "kind": "final",
                "tag": "EXIT",
                "reason": "stop_3m_close",
                "words": "stop \u2014 a 3-minute candle closed below it",
                "time_ist": "13:06",
                "price": 63.4,
                "qty": 260,
                "lots": 4,
                "gross_paise": -301600,
                "gross": "\u2212\u20b93,016.00",
                "pct": -15.47,
                "held_minutes": 34,
                "held": "34m"
              }
            ],
            "exit_time_ist": "13:06",
            "exit_price": 63.4,
            "exit_reason": "stop_3m_close",
            "exit_words": "stop \u2014 a 3-minute candle closed below it",
            "held_minutes": 34,
            "held": "34m",
            "gross_paise": -301600,
            "gross": "\u2212\u20b93,016.00",
            "pct": -15.47,
            "won": false,
            "closed": true,
            "open_qty": 0,
            "open_lots": 0,
            "scaled": 0,
            "targets": []
          },
          {
            "n": 4,
            "name": "NIFTY 25,000 CE",
            "symbol": "NIFTY 09 NOV 25000 CALL",
            "underlying": "NIFTY",
            "side": "CE",
            "strike": 25000.0,
            "rung": 4,
            "ladder_rung": 10,
            "slot": 44,
            "lot_size": 65,
            "qty": 260,
            "lots": 4,
            "entry_time_ist": "13:45",
            "entry_price": 72.15,
            "entry_reason": "oi_cluster_a rung=4 spot=24781.35 ask=72.15 ready=2 low=17.45",
            "entry_paise": 7215,
            "exits": [
              {
                "kind": "final",
                "tag": "EXIT",
                "reason": "target_20pct",
                "words": "target \u2014 up 20%, everything sold",
                "time_ist": "13:47",
                "price": 87.4,
                "qty": 260,
                "lots": 4,
                "gross_paise": 396500,
                "gross": "\u20b93,965.00",
                "pct": 21.14,
                "held_minutes": 2,
                "held": "2m"
              }
            ],
            "exit_time_ist": "13:47",
            "exit_price": 87.4,
            "exit_reason": "target_20pct",
            "exit_words": "target \u2014 up 20%, everything sold",
            "held_minutes": 2,
            "held": "2m",
            "gross_paise": 396500,
            "gross": "\u20b93,965.00",
            "pct": 21.14,
            "won": true,
            "closed": true,
            "open_qty": 0,
            "open_lots": 0,
            "scaled": 0,
            "targets": []
          },
          {
            "n": 5,
            "name": "NIFTY 24,850 CE",
            "symbol": "NIFTY 09 NOV 24850 CALL",
            "underlying": "NIFTY",
            "side": "CE",
            "strike": 24850.0,
            "rung": 0,
            "ladder_rung": 7,
            "slot": 38,
            "lot_size": 65,
            "qty": 65,
            "lots": 1,
            "entry_time_ist": "14:34",
            "entry_price": 171.8,
            "entry_reason": "oi_cluster_a rung=0 spot=24855.05 ask=171.80 ready=2 low=29.85",
            "entry_paise": 17180,
            "exits": [
              {
                "kind": "final",
                "tag": "EXIT",
                "reason": "target_20pct",
                "words": "target \u2014 up 20%, everything sold",
                "time_ist": "15:02",
                "price": 205.7,
                "qty": 65,
                "lots": 1,
                "gross_paise": 220350,
                "gross": "\u20b92,203.50",
                "pct": 19.73,
                "held_minutes": 28,
                "held": "28m"
              }
            ],
            "exit_time_ist": "15:02",
            "exit_price": 205.7,
            "exit_reason": "target_20pct",
            "exit_words": "target \u2014 up 20%, everything sold",
            "held_minutes": 28,
            "held": "28m",
            "gross_paise": 220350,
            "gross": "\u20b92,203.50",
            "pct": 19.73,
            "won": true,
            "closed": true,
            "open_qty": 0,
            "open_lots": 0,
            "scaled": 0,
            "targets": []
          },
          {
            "n": 6,
            "name": "NIFTY 24,950 CE",
            "symbol": "NIFTY 09 NOV 24950 CALL",
            "underlying": "NIFTY",
            "side": "CE",
            "strike": 24950.0,
            "rung": 1,
            "ladder_rung": 9,
            "slot": 42,
            "lot_size": 65,
            "qty": 130,
            "lots": 2,
            "entry_time_ist": "15:04",
            "entry_price": 150.1,
            "entry_reason": "oi_cluster_a rung=1 spot=24894.90 ask=150.10 ready=2 low=20.75",
            "entry_paise": 15010,
            "exits": [
              {
                "kind": "final",
                "tag": "EXIT",
                "reason": "target_20pct",
                "words": "target \u2014 up 20%, everything sold",
                "time_ist": "15:07",
                "price": 181.8,
                "qty": 130,
                "lots": 2,
                "gross_paise": 412100,
                "gross": "\u20b94,121.00",
                "pct": 21.12,
                "held_minutes": 3,
                "held": "3m"
              }
            ],
            "exit_time_ist": "15:07",
            "exit_price": 181.8,
            "exit_reason": "target_20pct",
            "exit_words": "target \u2014 up 20%, everything sold",
            "held_minutes": 3,
            "held": "3m",
            "gross_paise": 412100,
            "gross": "\u20b94,121.00",
            "pct": 21.12,
            "won": true,
            "closed": true,
            "open_qty": 0,
            "open_lots": 0,
            "scaled": 0,
            "targets": []
          }
        ],
        "highlights": {
          "taken": 6,
          "blocked": {
            "premium_against": 3058,
            "after_cutoff": 1658,
            "before_first_entry": 1511,
            "outside_band": 1149,
            "already_traded": 564,
            "position_open": 177,
            "cluster_short": 1
          },
          "exits_by_reason": {
            "stop_3m_close": 3,
            "target_20pct": 3
          },
          "scaled_out": {},
          "weekday": "Fri",
          "cluster_checks": 8124,
          "cluster_ready_checks": 7,
          "cluster_falling_premium": 5465,
          "cluster_alone": 1,
          "cluster_min_ready": 2,
          "entries_by_underlying": {
            "NIFTY": 6,
            "SENSEX": 0
          },
          "max_open_at_once": 3,
          "legs_charted": 84,
          "legs_with_oi_sma": 32
        },
        "caveats": [],
        "turnover": "\u20b9208,416.00",
        "charges_breakdown": {
          "brokerage": 28320,
          "stamp": 300,
          "stt": 15800,
          "txn": 8763
        },
        "fills": 12,
        "rejects": 0,
        "realised": "\u20b92,548.00",
        "charges": "\u20b9531.83",
        "unrealised": "\u20b90.00",
        "net": "\u20b92,016.17",
        "net_paise": 201617,
        "realised_paise": 254800,
        "charges_paise": 53183,
        "open_positions": [],
        "funnel_residuals_clean": true,
        "funnel_residuals": {
          "checks_unaccounted": 0,
          "entries_without_an_exit": 0,
          "lots_unaccounted": 0,
          "positions_left_open": 0
        },
        "message": "6 trade(s), net \u20b92,016.17. This is what oi_cluster_a would have done \u2014 the live session traded nothing."
      },
      "oi_unwind": {
        "date": "2026-11-06",
        "strategy": "oi_unwind",
        "display_name": "OI Unwind",
        "number": 2,
        "config": "strategies/oi-unwind.toml",
        "generated_at_ist": "2026-11-06 16:30:33 IST",
        "source": "replay of the day's capture through oi_unwind",
        "live_strategy": "noop \u2014 the live session records and trades nothing",
        "is_a_recommendation": false,
        "ok": true,
        "status": "no_trade",
        "run_dir": "runs/2026-11-06T09-15-00_replay-oi_unwind-2026-11-06",
        "trades": 0,
        "winners": 0,
        "positions": [],
        "highlights": {
          "taken": 0,
          "blocked": {
            "not_scheduled": 8123
          },
          "exits_by_reason": {},
          "scaled_out": {},
          "scheduled_underlying": null,
          "weekday": "Fri",
          "oi_signal": "state",
          "oi_triggers": 8123,
          "confirmed_by_step2": 0,
          "triggers_with_falling_premium": 5465,
          "legs_charted": 84,
          "legs_with_oi_sma": 32
        },
        "caveats": [],
        "turnover": "\u20b90.00",
        "charges_breakdown": {
          "brokerage": 0,
          "stamp": 0,
          "stt": 0,
          "txn": 0
        },
        "fills": 0,
        "rejects": 0,
        "realised": "\u20b90.00",
        "charges": "\u20b90.00",
        "unrealised": "\u20b90.00",
        "net": "\u20b90.00",
        "net_paise": 0,
        "realised_paise": 0,
        "charges_paise": 0,
        "open_positions": [],
        "funnel_residuals_clean": true,
        "funnel_residuals": {
          "entries_without_an_exit": 0,
          "lots_unaccounted": 0,
          "positions_left_open": 0
        },
        "message": "The strategy took no trade today. The funnel in 2026-11-06T09-15-00_replay-oi_unwind-2026-11-06/funnel.json attributes every non-entry."
      },
      "oi_unwind_a": {
        "date": "2026-11-06",
        "strategy": "oi_unwind_a",
        "display_name": "OI Unwind A",
        "number": 4,
        "config": "strategies/oi-unwind-a.toml",
        "generated_at_ist": "2026-11-06 16:30:29 IST",
        "source": "replay of the day's capture through oi_unwind_a",
        "live_strategy": "noop \u2014 the live session records and trades nothing",
        "is_a_recommendation": false,
        "ok": true,
        "status": "no_trade",
        "run_dir": "runs/2026-11-06T09-15-00_replay-oi_unwind_a-2026-11-06",
        "trades": 0,
        "winners": 0,
        "positions": [],
        "highlights": {
          "taken": 0,
          "blocked": {
            "not_scheduled": 8123
          },
          "exits_by_reason": {},
          "scaled_out": {},
          "scheduled_underlying": null,
          "weekday": "Fri",
          "oi_signal": "state",
          "oi_triggers": 8123,
          "confirmed_by_step2": 0,
          "triggers_with_falling_premium": 5465,
          "legs_charted": 84,
          "legs_with_oi_sma": 32
        },
        "caveats": [],
        "turnover": "\u20b90.00",
        "charges_breakdown": {
          "brokerage": 0,
          "stamp": 0,
          "stt": 0,
          "txn": 0
        },
        "fills": 0,
        "rejects": 0,
        "realised": "\u20b90.00",
        "charges": "\u20b90.00",
        "unrealised": "\u20b90.00",
        "net": "\u20b90.00",
        "net_paise": 0,
        "realised_paise": 0,
        "charges_paise": 0,
        "open_positions": [],
        "funnel_residuals_clean": true,
        "funnel_residuals": {
          "entries_without_an_exit": 0,
          "lots_unaccounted": 0,
          "positions_left_open": 0
        },
        "message": "The strategy took no trade today. The funnel in 2026-11-06T09-15-00_replay-oi_unwind_a-2026-11-06/funnel.json attributes every non-entry."
      },
      "trend_reversal": {
        "date": "2026-11-06",
        "strategy": "trend_reversal",
        "display_name": "Trend Reversal",
        "number": 1,
        "config": "strategies/trend-reversal.toml",
        "generated_at_ist": "2026-11-06 16:30:39 IST",
        "source": "replay of the day's capture through trend_reversal",
        "live_strategy": "noop \u2014 the live session records and trades nothing",
        "is_a_recommendation": false,
        "ok": true,
        "status": "trading",
        "run_dir": "runs/2026-11-06T09-15-00_replay-trend_reversal-2026-11-06",
        "trades": 4,
        "winners": 4,
        "positions": [
          {
            "n": 1,
            "name": "SENSEX 79,300 CE",
            "symbol": "SENSEX 12 NOV 79300 CALL",
            "underlying": "SENSEX",
            "side": "CE",
            "strike": 79300.0,
            "rung": 0,
            "ladder_rung": 1,
            "slot": 68,
            "lot_size": 20,
            "qty": 60,
            "lots": 3,
            "entry_time_ist": "09:26",
            "entry_price": 696.1,
            "entry_reason": "entry SENSEX CE rung=1 spot=79312.97 ask=696.10 qualifying=5 shadow=none",
            "entry_paise": 69610,
            "exits": [
              {
                "kind": "target",
                "tag": "+10%",
                "reason": "scale_out +10% lots=1 left=2",
                "words": "profit target +10%",
                "time_ist": "09:27",
                "price": 766.0,
                "qty": 20,
                "lots": 1,
                "gross_paise": 139800,
                "gross": "\u20b91,398.00",
                "pct": 10.04,
                "held_minutes": 1,
                "held": "1m"
              },
              {
                "kind": "target",
                "tag": "+20%",
                "reason": "scale_out +20% lots=1 left=1",
                "words": "profit target +20%",
                "time_ist": "09:35",
                "price": 838.45,
                "qty": 20,
                "lots": 1,
                "gross_paise": 284700,
                "gross": "\u20b92,847.00",
                "pct": 20.45,
                "held_minutes": 9,
                "held": "9m"
              },
              {
                "kind": "final",
                "tag": "EXIT",
                "reason": "ema_flip tf=2m",
                "words": "trend reversal \u2014 the premium EMA flipped",
                "time_ist": "11:00",
                "price": 922.5,
                "qty": 20,
                "lots": 1,
                "gross_paise": 452800,
                "gross": "\u20b94,528.00",
                "pct": 32.52,
                "held_minutes": 94,
                "held": "1h 34m"
              }
            ],
            "exit_time_ist": "11:00",
            "exit_price": 842.32,
            "exit_reason": "ema_flip tf=2m",
            "exit_words": "trend reversal \u2014 the premium EMA flipped",
            "held_minutes": 94,
            "held": "1h 34m",
            "gross_paise": 877300,
            "gross": "\u20b98,773.00",
            "pct": 21.01,
            "won": true,
            "closed": true,
            "open_qty": 0,
            "open_lots": 0,
            "scaled": 2,
            "targets": [
              "+10%",
              "+20%"
            ]
          },
          {
            "n": 2,
            "name": "NIFTY 24,500 CE",
            "symbol": "NIFTY 09 NOV 24500 CALL",
            "underlying": "NIFTY",
            "side": "CE",
            "strike": 24500.0,
            "rung": -2,
            "ladder_rung": 0,
            "slot": 24,
            "lot_size": 65,
            "qty": 195,
            "lots": 3,
            "entry_time_ist": "09:46",
            "entry_price": 200.9,
            "entry_reason": "entry NIFTY CE rung=0 spot=24592.80 ask=200.90 qualifying=1 shadow=none",
            "entry_paise": 20090,
            "exits": [
              {
                "kind": "target",
                "tag": "+10%",
                "reason": "scale_out +10% lots=1 left=2",
                "words": "profit target +10%",
                "time_ist": "09:48",
                "price": 224.7,
                "qty": 65,
                "lots": 1,
                "gross_paise": 154700,
                "gross": "\u20b91,547.00",
                "pct": 11.85,
                "held_minutes": 2,
                "held": "2m"
              },
              {
                "kind": "target",
                "tag": "+20%",
                "reason": "scale_out +20% lots=1 left=1",
                "words": "profit target +20%",
                "time_ist": "09:50",
                "price": 241.1,
                "qty": 65,
                "lots": 1,
                "gross_paise": 261300,
                "gross": "\u20b92,613.00",
                "pct": 20.01,
                "held_minutes": 4,
                "held": "4m"
              },
              {
                "kind": "final",
                "tag": "EXIT",
                "reason": "ema_flip tf=2m",
                "words": "trend reversal \u2014 the premium EMA flipped",
                "time_ist": "10:59",
                "price": 212.0,
                "qty": 65,
                "lots": 1,
                "gross_paise": 72150,
                "gross": "\u20b9721.50",
                "pct": 5.53,
                "held_minutes": 73,
                "held": "1h 13m"
              }
            ],
            "exit_time_ist": "10:59",
            "exit_price": 225.93,
            "exit_reason": "ema_flip tf=2m",
            "exit_words": "trend reversal \u2014 the premium EMA flipped",
            "held_minutes": 73,
            "held": "1h 13m",
            "gross_paise": 488150,
            "gross": "\u20b94,881.50",
            "pct": 12.46,
            "won": true,
            "closed": true,
            "open_qty": 0,
            "open_lots": 0,
            "scaled": 2,
            "targets": [
              "+10%",
              "+20%"
            ]
          },
          {
            "n": 3,
            "name": "NIFTY 24,650 CE",
            "symbol": "NIFTY 09 NOV 24650 CALL",
            "underlying": "NIFTY",
            "side": "CE",
            "strike": 24650.0,
            "rung": 0,
            "ladder_rung": 3,
            "slot": 30,
            "lot_size": 65,
            "qty": 195,
            "lots": 3,
            "entry_time_ist": "12:16",
            "entry_price": 166.6,
            "entry_reason": "entry NIFTY CE rung=3 spot=24657.30 ask=166.60 qualifying=5 shadow=none",
            "entry_paise": 16660,
            "exits": [
              {
                "kind": "target",
                "tag": "+10%",
                "reason": "scale_out +10% lots=1 left=2",
                "words": "profit target +10%",
                "time_ist": "12:26",
                "price": 184.2,
                "qty": 65,
                "lots": 1,
                "gross_paise": 114400,
                "gross": "\u20b91,144.00",
                "pct": 10.56,
                "held_minutes": 10,
                "held": "10m"
              },
              {
                "kind": "target",
                "tag": "+20%",
                "reason": "scale_out +20% lots=1 left=1",
                "words": "profit target +20%",
                "time_ist": "13:13",
                "price": 201.4,
                "qty": 65,
                "lots": 1,
                "gross_paise": 226200,
                "gross": "\u20b92,262.00",
                "pct": 20.89,
                "held_minutes": 57,
                "held": "57m"
              },
              {
                "kind": "final",
                "tag": "EXIT",
                "reason": "square_off_1519",
                "words": "forced square-off at 15:19",
                "time_ist": "15:19",
                "price": 401.7,
                "qty": 65,
                "lots": 1,
                "gross_paise": 1528150,
                "gross": "\u20b915,281.50",
                "pct": 141.12,
                "held_minutes": 183,
                "held": "3h 03m"
              }
            ],
            "exit_time_ist": "15:19",
            "exit_price": 262.43,
            "exit_reason": "square_off_1519",
            "exit_words": "forced square-off at 15:19",
            "held_minutes": 183,
            "held": "3h 03m",
            "gross_paise": 1868750,
            "gross": "\u20b918,687.50",
            "pct": 57.52,
            "won": true,
            "closed": true,
            "open_qty": 0,
            "open_lots": 0,
            "scaled": 2,
            "targets": [
              "+10%",
              "+20%"
            ]
          },
          {
            "n": 4,
            "name": "SENSEX 79,800 CE",
            "symbol": "SENSEX 12 NOV 79800 CALL",
            "underlying": "SENSEX",
            "side": "CE",
            "strike": 79800.0,
            "rung": -1,
            "ladder_rung": 6,
            "slot": 78,
            "lot_size": 20,
            "qty": 60,
            "lots": 3,
            "entry_time_ist": "12:16",
            "entry_price": 797.2,
            "entry_reason": "entry SENSEX CE rung=6 spot=79903.55 ask=797.20 qualifying=3 shadow=rung_band",
            "entry_paise": 79720,
            "exits": [
              {
                "kind": "target",
                "tag": "+10%",
                "reason": "scale_out +10% lots=1 left=2",
                "words": "profit target +10%",
                "time_ist": "13:12",
                "price": 879.2,
                "qty": 20,
                "lots": 1,
                "gross_paise": 164000,
                "gross": "\u20b91,640.00",
                "pct": 10.29,
                "held_minutes": 56,
                "held": "56m"
              },
              {
                "kind": "target",
                "tag": "+20%",
                "reason": "scale_out +20% lots=1 left=1",
                "words": "profit target +20%",
                "time_ist": "13:16",
                "price": 957.5,
                "qty": 20,
                "lots": 1,
                "gross_paise": 320600,
                "gross": "\u20b93,206.00",
                "pct": 20.11,
                "held_minutes": 60,
                "held": "1h 00m"
              },
              {
                "kind": "final",
                "tag": "EXIT",
                "reason": "square_off_1519",
                "words": "forced square-off at 15:19",
                "time_ist": "15:19",
                "price": 1535.1,
                "qty": 20,
                "lots": 1,
                "gross_paise": 1475800,
                "gross": "\u20b914,758.00",
                "pct": 92.56,
                "held_minutes": 183,
                "held": "3h 03m"
              }
            ],
            "exit_time_ist": "15:19",
            "exit_price": 1123.93,
            "exit_reason": "square_off_1519",
            "exit_words": "forced square-off at 15:19",
            "held_minutes": 183,
            "held": "3h 03m",
            "gross_paise": 1960400,
            "gross": "\u20b919,604.00",
            "pct": 40.99,
            "won": true,
            "closed": true,
            "open_qty": 0,
            "open_lots": 0,
            "scaled": 2,
            "targets": [
              "+10%",
              "+20%"
            ]
          }
        ],
        "highlights": {
          "taken": 4,
          "calls": 4,
          "puts": 0,
          "blocked": {
            "position_open": 284,
            "after_cutoff": 15,
            "stale_quote": 1
          },
          "exits_by_reason": {
            "ema_flip": 2,
            "square_off_1519": 2
          },
          "scaled_out": {
            "+10%": 4,
            "+20%": 4
          },
          "lots_per_entry": 3,
          "primed_legs": 84,
          "underlyings": [
            {
              "name": "NIFTY",
              "confirmed_minutes": 199,
              "first_confirm": "09:42",
              "candidate_minutes": 178,
              "first_candidate": "09:46",
              "legs_qualified": 817,
              "legs_scanned": 4179
            },
            {
              "name": "SENSEX",
              "confirmed_minutes": 183,
              "first_confirm": "09:25",
              "candidate_minutes": 126,
              "first_candidate": "09:25",
              "legs_qualified": 431,
              "legs_scanned": 3843
            }
          ]
        },
        "caveats": [],
        "turnover": "\u20b9374,467.00",
        "charges_breakdown": {
          "brokerage": 37760,
          "stamp": 500,
          "stt": 32000,
          "txn": 15002
        },
        "fills": 16,
        "rejects": 0,
        "realised": "\u20b951,946.00",
        "charges": "\u20b9852.62",
        "unrealised": "\u20b90.00",
        "net": "\u20b951,093.38",
        "net_paise": 5109338,
        "realised_paise": 5194600,
        "charges_paise": 85262,
        "open_positions": [],
        "funnel_residuals_clean": true,
        "funnel_residuals": {
          "entries_without_an_exit": 0,
          "entry_minutes": 0,
          "lots_unaccounted": 0,
          "note": "every figure in this block is a residual and must be zero",
          "part1_minutes": 0,
          "part2_leg_minutes": 0,
          "positions_left_open": 0
        },
        "message": "4 trade(s), net \u20b951,093.38. This is what trend_reversal would have done \u2014 the live session traded nothing."
      },
      "trend_reversal_a": {
        "date": "2026-11-06",
        "strategy": "trend_reversal_a",
        "display_name": "Trend Reversal A",
        "number": 6,
        "config": "strategies/trend-reversal-a.toml",
        "generated_at_ist": "2026-11-06 16:30:36 IST",
        "source": "replay of the day's capture through trend_reversal_a",
        "live_strategy": "noop \u2014 the live session records and trades nothing",
        "is_a_recommendation": false,
        "ok": true,
        "status": "trading",
        "run_dir": "runs/2026-11-06T09-15-00_replay-trend_reversal_a-2026-11-06",
        "trades": 2,
        "winners": 2,
        "positions": [
          {
            "n": 1,
            "name": "NIFTY 24,500 CE",
            "symbol": "NIFTY 09 NOV 24500 CALL",
            "underlying": "NIFTY",
            "side": "CE",
            "strike": 24500.0,
            "rung": 0,
            "ladder_rung": 0,
            "slot": 24,
            "lot_size": 65,
            "qty": 195,
            "lots": 3,
            "entry_time_ist": "09:32",
            "entry_price": 164.65,
            "entry_reason": "entry NIFTY CE rung=0 spot=24522.85 ask=164.65 qualifying=5 stop=off shadow=none",
            "entry_paise": 16465,
            "exits": [
              {
                "kind": "target",
                "tag": "+10%",
                "reason": "scale_out +10% lots=1 left=2",
                "words": "profit target +10%",
                "time_ist": "09:35",
                "price": 184.25,
                "qty": 65,
                "lots": 1,
                "gross_paise": 127400,
                "gross": "\u20b91,274.00",
                "pct": 11.9,
                "held_minutes": 3,
                "held": "3m"
              },
              {
                "kind": "target",
                "tag": "+20%",
                "reason": "scale_out +20% lots=1 left=1",
                "words": "profit target +20%",
                "time_ist": "09:45",
                "price": 197.6,
                "qty": 65,
                "lots": 1,
                "gross_paise": 214175,
                "gross": "\u20b92,141.75",
                "pct": 20.01,
                "held_minutes": 13,
                "held": "13m"
              },
              {
                "kind": "final",
                "tag": "EXIT",
                "reason": "square_off at=14:40",
                "words": "forced square-off at the strategy's close-out time",
                "time_ist": "14:40",
                "price": 431.6,
                "qty": 65,
                "lots": 1,
                "gross_paise": 1735175,
                "gross": "\u20b917,351.75",
                "pct": 162.13,
                "held_minutes": 308,
                "held": "5h 08m"
              }
            ],
            "exit_time_ist": "14:40",
            "exit_price": 271.15,
            "exit_reason": "square_off at=14:40",
            "exit_words": "forced square-off at the strategy's close-out time",
            "held_minutes": 308,
            "held": "5h 08m",
            "gross_paise": 2076750,
            "gross": "\u20b920,767.50",
            "pct": 64.68,
            "won": true,
            "closed": true,
            "open_qty": 0,
            "open_lots": 0,
            "scaled": 2,
            "targets": [
              "+10%",
              "+20%"
            ]
          },
          {
            "n": 2,
            "name": "SENSEX 79,500 CE",
            "symbol": "SENSEX 12 NOV 79500 CALL",
            "underlying": "SENSEX",
            "side": "CE",
            "strike": 79500.0,
            "rung": 0,
            "ladder_rung": 3,
            "slot": 72,
            "lot_size": 20,
            "qty": 60,
            "lots": 3,
            "entry_time_ist": "09:32",
            "entry_price": 688.25,
            "entry_reason": "entry SENSEX CE rung=3 spot=79474.95 ask=688.25 qualifying=5 stop=off shadow=none",
            "entry_paise": 68825,
            "exits": [
              {
                "kind": "target",
                "tag": "+10%",
                "reason": "scale_out +10% lots=1 left=2",
                "words": "profit target +10%",
                "time_ist": "09:35",
                "price": 758.5,
                "qty": 20,
                "lots": 1,
                "gross_paise": 140500,
                "gross": "\u20b91,405.00",
                "pct": 10.21,
                "held_minutes": 3,
                "held": "3m"
              },
              {
                "kind": "target",
                "tag": "+20%",
                "reason": "scale_out +20% lots=1 left=1",
                "words": "profit target +20%",
                "time_ist": "09:46",
                "price": 827.25,
                "qty": 20,
                "lots": 1,
                "gross_paise": 278000,
                "gross": "\u20b92,780.00",
                "pct": 20.2,
                "held_minutes": 14,
                "held": "14m"
              },
              {
                "kind": "final",
                "tag": "EXIT",
                "reason": "square_off at=14:40",
                "words": "forced square-off at the strategy's close-out time",
                "time_ist": "14:40",
                "price": 1466.1,
                "qty": 20,
                "lots": 1,
                "gross_paise": 1555700,
                "gross": "\u20b915,557.00",
                "pct": 113.02,
                "held_minutes": 308,
                "held": "5h 08m"
              }
            ],
            "exit_time_ist": "14:40",
            "exit_price": 1017.28,
            "exit_reason": "square_off at=14:40",
            "exit_words": "forced square-off at the strategy's close-out time",
            "held_minutes": 308,
            "held": "5h 08m",
            "gross_paise": 1974200,
            "gross": "\u20b919,742.00",
            "pct": 47.81,
            "won": true,
            "closed": true,
            "open_qty": 0,
            "open_lots": 0,
            "scaled": 2,
            "targets": [
              "+10%",
              "+20%"
            ]
          }
        ],
        "highlights": {
          "taken": 2,
          "calls": 2,
          "puts": 0,
          "blocked": {
            "position_open": 1904,
            "after_cutoff": 245
          },
          "exits_by_reason": {
            "square_off": 2
          },
          "scaled_out": {
            "+10%": 2,
            "+20%": 2
          },
          "lots_per_entry": 3,
          "primed_legs": 84,
          "stop_not_armed_at_entry": 0,
          "stop_chart": "off",
          "stop_supertrend": null,
          "same_side_wait_secs": 180,
          "square_off": "14:40",
          "tra_underlyings": [
            {
              "name": "NIFTY",
              "checks": 1511,
              "candidate_checks": 1348,
              "first_candidate": "09:32:00",
              "legs_qualified": 6087,
              "legs_scanned": 63462,
              "legs_blocked": {
                "bricks_against": 6747,
                "candles_against": 31839,
                "candles_cold": 2604
              }
            },
            {
              "name": "SENSEX",
              "checks": 1511,
              "candidate_checks": 804,
              "first_candidate": "09:32:00",
              "legs_qualified": 3218,
              "legs_scanned": 63420,
              "legs_blocked": {
                "bricks_against": 5410,
                "candles_against": 31153,
                "candles_cold": 2562
              }
            }
          ]
        },
        "caveats": [],
        "turnover": "\u20b9187,313.00",
        "charges_breakdown": {
          "brokerage": 18880,
          "stamp": 200,
          "stt": 17100,
          "txn": 7510
        },
        "fills": 8,
        "rejects": 0,
        "realised": "\u20b940,509.50",
        "charges": "\u20b9436.90",
        "unrealised": "\u20b90.00",
        "net": "\u20b940,072.60",
        "net_paise": 4007260,
        "realised_paise": 4050950,
        "charges_paise": 43690,
        "open_positions": [],
        "funnel_residuals_clean": true,
        "funnel_residuals": {
          "entries_without_an_exit": 0,
          "entry_checks": 0,
          "leg_checks": 0,
          "lots_unaccounted": 0,
          "note": "every figure in this block is a residual and must be zero",
          "positions_left_open": 0
        },
        "message": "2 trade(s), net \u20b940,072.60. This is what trend_reversal_a would have done \u2014 the live session traded nothing."
      }
    }
  },
  "recent_errors": [
    {
      "source": "watchdog.log",
      "line": "2026-10-28 11:00:21 IST  [health]  ALERT  died with no close-out (no summary.json). 0 MiB recorded; raw.bin still replays. A crash restarts and resumes by itself; after a deliberate stop, resume with: systemctl start option-auto.service"
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 11:15:02 IST  [health]  ALERT  died with no close-out (no summary.json). 0 MiB recorded; raw.bin still replays. A crash restarts and resumes by itself; after a deliberate stop, resume with: systemctl start option-auto.service"
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 11:30:03 IST  [health]  ALERT  died with no close-out (no summary.json). 0 MiB recorded; raw.bin still replays. A crash restarts and resumes by itself; after a deliberate stop, resume with: systemctl start option-auto.service"
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 11:45:20 IST  [health]  ALERT  died with no close-out (no summary.json). 0 MiB recorded; raw.bin still replays. A crash restarts and resumes by itself; after a deliberate stop, resume with: systemctl start option-auto.service"
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 12:00:20 IST  [health]  ALERT  died with no close-out (no summary.json). 0 MiB recorded; raw.bin still replays. A crash restarts and resumes by itself; after a deliberate stop, resume with: systemctl start option-auto.service"
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 12:15:20 IST  [health]  ALERT  died with no close-out (no summary.json). 0 MiB recorded; raw.bin still replays. A crash restarts and resumes by itself; after a deliberate stop, resume with: systemctl start option-auto.service"
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 12:30:03 IST  [health]  ALERT  died with no close-out (no summary.json). 0 MiB recorded; raw.bin still replays. A crash restarts and resumes by itself; after a deliberate stop, resume with: systemctl start option-auto.service"
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 12:45:13 IST  [health]  ALERT  died with no close-out (no summary.json). 0 MiB recorded; raw.bin still replays. A crash restarts and resumes by itself; after a deliberate stop, resume with: systemctl start option-auto.service"
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 13:00:03 IST  [health]  ALERT  died with no close-out (no summary.json). 0 MiB recorded; raw.bin still replays. A crash restarts and resumes by itself; after a deliberate stop, resume with: systemctl start option-auto.service"
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 13:15:01 IST  [health]  ALERT  died with no close-out (no summary.json). 0 MiB recorded; raw.bin still replays. A crash restarts and resumes by itself; after a deliberate stop, resume with: systemctl start option-auto.service"
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 13:30:02 IST  [health]  ALERT  died with no close-out (no summary.json). 0 MiB recorded; raw.bin still replays. A crash restarts and resumes by itself; after a deliberate stop, resume with: systemctl start option-auto.service"
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 13:45:02 IST  [health]  ALERT  died with no close-out (no summary.json). 0 MiB recorded; raw.bin still replays. A crash restarts and resumes by itself; after a deliberate stop, resume with: systemctl start option-auto.service"
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 14:00:21 IST  [health]  ALERT  died with no close-out (no summary.json). 0 MiB recorded; raw.bin still replays. A crash restarts and resumes by itself; after a deliberate stop, resume with: systemctl start option-auto.service"
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 14:15:20 IST  [health]  ALERT  died with no close-out (no summary.json). 0 MiB recorded; raw.bin still replays. A crash restarts and resumes by itself; after a deliberate stop, resume with: systemctl start option-auto.service"
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 14:30:02 IST  [health]  ALERT  died with no close-out (no summary.json). 0 MiB recorded; raw.bin still replays. A crash restarts and resumes by itself; after a deliberate stop, resume with: systemctl start option-auto.service"
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 14:45:20 IST  [health]  ALERT  died with no close-out (no summary.json). 0 MiB recorded; raw.bin still replays. A crash restarts and resumes by itself; after a deliberate stop, resume with: systemctl start option-auto.service"
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 15:00:19 IST  [health]  ALERT  died with no close-out (no summary.json). 0 MiB recorded; raw.bin still replays. A crash restarts and resumes by itself; after a deliberate stop, resume with: systemctl start option-auto.service"
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 15:15:18 IST  [health]  ALERT  died with no close-out (no summary.json). 0 MiB recorded; raw.bin still replays. A crash restarts and resumes by itself; after a deliberate stop, resume with: systemctl start option-auto.service"
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 15:30:02 IST  [health]  ALERT  died with no close-out (no summary.json). 0 MiB recorded; raw.bin still replays. A crash restarts and resumes by itself; after a deliberate stop, resume with: systemctl start option-auto.service"
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 16:00:01 IST  [close]  ALERT  no raw.bin for 2026-10-28 \u2014 nothing was recorded. Market holiday, or the session never started."
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 16:15:01 IST  [close]  ALERT  no raw.bin for 2026-10-28 \u2014 nothing was recorded. Market holiday, or the session never started."
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 16:30:02 IST  [close]  ALERT  no raw.bin for 2026-10-28 \u2014 nothing was recorded. Market holiday, or the session never started."
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 16:45:20 IST  [close]  ALERT  no raw.bin for 2026-10-28 \u2014 nothing was recorded. Market holiday, or the session never started."
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 17:00:02 IST  [close]  ALERT  no raw.bin for 2026-10-28 \u2014 nothing was recorded. Market holiday, or the session never started."
    },
    {
      "source": "watchdog.log",
      "line": "2026-10-28 17:15:02 IST  [close]  ALERT  no raw.bin for 2026-10-28 \u2014 nothing was recorded. Market holiday, or the session never started."
    }
  ]
}