{
  "root": {
    "status": 200,
    "data": {
      "success": true,
      "message": "CV6 AI Trading OS Running Successfully"
    }
  },
  "register": {
    "status": 400,
    "data": {
      "detail": "Email already registered"
    }
  },
  "login": {
    "status": 200,
    "data": {
      "success": true,
      "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJwc2FzaTE0NEBnbWFpbC5jb20iLCJ1c2VyX2lkIjozLCJleHAiOjE3ODI4Mjc5Mjh9.Ui87jnDkX_pR9sjTswJ3VvBaIeGykKZOrEcfjMoY8BA",
      "token_type": "bearer"
    }
  },
  "jwt_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJwc2FzaTE0NEB...",
  "paper_account_no_auth": {
    "status": 403,
    "data": {
      "detail": "Not authenticated"
    }
  },
  "auth_guard_no_token": {
    "endpoint": "/paper/account",
    "status": 403,
    "expected": 403,
    "pass": true
  },
  "dashboard_no_auth": {
    "status": 403,
    "data": {
      "detail": "Not authenticated"
    }
  },
  "auth_guard_dashboard": {
    "status": 403,
    "expected": 403,
    "pass": true
  },
  "paper_account_initial": {
    "status": 200,
    "data": {
      "total_capital": 100000.0,
      "available_capital": 101140.0,
      "invested_amount": 0,
      "realized_pnl": 1140.0,
      "unrealized_pnl": 0,
      "total_pnl": 1140.0,
      "open_positions": [],
      "trade_count": 8,
      "win_count": 8,
      "loss_count": 0,
      "win_rate": 100.0
    }
  },
  "trades": {
    "total": 100,
    "success": 100,
    "fail": 0,
    "log": [
      {
        "num": 1,
        "action": "BUY",
        "symbol": "NIFTY",
        "qty": 1,
        "price": 24350.0,
        "success": true,
        "msg": "Paper BUY executed: 1 NIFTY @ \u20b924350.0"
      },
      {
        "num": 2,
        "action": "SELL",
        "symbol": "NIFTY",
        "qty": 1,
        "price": 24423.05,
        "success": true,
        "msg": "Paper SELL executed: 1 NIFTY @ \u20b924423.05"
      },
      {
        "num": 3,
        "action": "BUY",
        "symbol": "BANKNIFTY",
        "qty": 1,
        "price": 52152.1,
        "success": true,
        "msg": "Paper BUY executed: 1 BANKNIFTY @ \u20b952152.1"
      },
      {
        "num": 4,
        "action": "SELL",
        "symbol": "BANKNIFTY",
        "qty": 1,
        "price": 52308.56,
        "success": true,
        "msg": "Paper SELL executed: 1 BANKNIFTY @ \u20b952308.56"
      },
      {
        "num": 5,
        "action": "BUY",
        "symbol": "RELIANCE",
        "qty": 2,
        "price": 2945.88,
        "success": true,
        "msg": "Paper BUY executed: 2 RELIANCE @ \u20b92945.88"
      },
      {
        "num": 6,
        "action": "SELL",
        "symbol": "RELIANCE",
        "qty": 2,
        "price": 2954.72,
        "success": true,
        "msg": "Paper SELL executed: 2 RELIANCE @ \u20b92954.72"
      },
      {
        "num": 7,
        "action": "BUY",
        "symbol": "TCS",
        "qty": 2,
        "price": 3831.46,
        "success": true,
        "msg": "Paper BUY executed: 2 TCS @ \u20b93831.46"
      },
      {
        "num": 8,
        "action": "SELL",
        "symbol": "TCS",
        "qty": 2,
        "price": 3842.95,
        "success": true,
        "msg": "Paper SELL executed: 2 TCS @ \u20b93842.95"
      },
      {
        "num": 9,
        "action": "BUY",
        "symbol": "INFY",
        "qty": 3,
        "price": 1546.16,
        "success": true,
        "msg": "Paper BUY executed: 3 INFY @ \u20b91546.16"
      },
      {
        "num": 10,
        "action": "SELL",
        "symbol": "INFY",
        "qty": 3,
        "price": 1550.8,
        "success": true,
        "msg": "Paper SELL executed: 3 INFY @ \u20b91550.8"
      },
      {
        "num": 11,
        "action": "BUY",
        "symbol": "HDFCBANK",
        "qty": 3,
        "price": 1680.0,
        "success": true,
        "msg": "Paper BUY executed: 3 HDFCBANK @ \u20b91680.0"
      },
      {
        "num": 12,
        "action": "SELL",
        "symbol": "HDFCBANK",
        "qty": 3,
        "price": 1685.04,
        "success": true,
        "msg": "Paper SELL executed: 3 HDFCBANK @ \u20b91685.04"
      },
      {
        "num": 13,
        "action": "BUY",
        "symbol": "ICICIBANK",
        "qty": 5,
        "price": 960.96,
        "success": true,
        "msg": "Paper BUY executed: 5 ICICIBANK @ \u20b9960.96"
      },
      {
        "num": 14,
        "action": "SELL",
        "symbol": "ICICIBANK",
        "qty": 5,
        "price": 963.84,
        "success": true,
        "msg": "Paper SELL executed: 5 ICICIBANK @ \u20b9963.84"
      },
      {
        "num": 15,
        "action": "BUY",
        "symbol": "SBIN",
        "qty": 5,
        "price": 821.64,
        "success": true,
        "msg": "Paper BUY executed: 5 SBIN @ \u20b9821.64"
      },
      {
        "num": 16,
        "action": "SELL",
        "symbol": "SBIN",
        "qty": 5,
        "price": 824.1,
        "success": true,
        "msg": "Paper SELL executed: 5 SBIN @ \u20b9824.1"
      },
      {
        "num": 17,
        "action": "BUY",
        "symbol": "NIFTY",
        "qty": 1,
        "price": 24423.05,
        "success": true,
        "msg": "Paper BUY executed: 1 NIFTY @ \u20b924423.05"
      },
      {
        "num": 18,
        "action": "SELL",
        "symbol": "NIFTY",
        "qty": 1,
        "price": 24496.32,
        "success": true,
        "msg": "Paper SELL executed: 1 NIFTY @ \u20b924496.32"
      },
      {
        "num": 19,
        "action": "BUY",
        "symbol": "BANKNIFTY",
        "qty": 1,
        "price": 52308.4,
        "success": true,
        "msg": "Paper BUY executed: 1 BANKNIFTY @ \u20b952308.4"
      },
      {
        "num": 20,
        "action": "SELL",
        "symbol": "BANKNIFTY",
        "qty": 1,
        "price": 52465.33,
        "success": true,
        "msg": "Paper SELL executed: 1 BANKNIFTY @ \u20b952465.33"
      },
      {
        "num": 21,
        "action": "BUY",
        "symbol": "RELIANCE",
        "qty": 2,
        "price": 2940.0,
        "success": true,
        "msg": "Paper BUY executed: 2 RELIANCE @ \u20b92940.0"
      },
      {
        "num": 22,
        "action": "SELL",
        "symbol": "RELIANCE",
        "qty": 2,
        "price": 2948.82,
        "success": true,
        "msg": "Paper SELL executed: 2 RELIANCE @ \u20b92948.82"
      },
      {
        "num": 23,
        "action": "BUY",
        "symbol": "TCS",
        "qty": 2,
        "price": 3823.82,
        "success": true,
        "msg": "Paper BUY executed: 2 TCS @ \u20b93823.82"
      },
      {
        "num": 24,
        "action": "SELL",
        "symbol": "TCS",
        "qty": 2,
        "price": 3835.29,
        "success": true,
        "msg": "Paper SELL executed: 2 TCS @ \u20b93835.29"
      },
      {
        "num": 25,
        "action": "BUY",
        "symbol": "INFY",
        "qty": 3,
        "price": 1543.08,
        "success": true,
        "msg": "Paper BUY executed: 3 INFY @ \u20b91543.08"
      },
      {
        "num": 26,
        "action": "SELL",
        "symbol": "INFY",
        "qty": 3,
        "price": 1547.71,
        "success": true,
        "msg": "Paper SELL executed: 3 INFY @ \u20b91547.71"
      },
      {
        "num": 27,
        "action": "BUY",
        "symbol": "HDFCBANK",
        "qty": 3,
        "price": 1685.04,
        "success": true,
        "msg": "Paper BUY executed: 3 HDFCBANK @ \u20b91685.04"
      },
      {
        "num": 28,
        "action": "SELL",
        "symbol": "HDFCBANK",
        "qty": 3,
        "price": 1690.1,
        "success": true,
        "msg": "Paper SELL executed: 3 HDFCBANK @ \u20b91690.1"
      },
      {
        "num": 29,
        "action": "BUY",
        "symbol": "ICICIBANK",
        "qty": 5,
        "price": 963.84,
        "success": true,
        "msg": "Paper BUY executed: 5 ICICIBANK @ \u20b9963.84"
      },
      {
        "num": 30,
        "action": "SELL",
        "symbol": "ICICIBANK",
        "qty": 5,
        "price": 966.73,
        "success": true,
        "msg": "Paper SELL executed: 5 ICICIBANK @ \u20b9966.73"
      },
      {
        "num": 31,
        "action": "BUY",
        "symbol": "SBIN",
        "qty": 5,
        "price": 820.0,
        "success": true,
        "msg": "Paper BUY executed: 5 SBIN @ \u20b9820.0"
      },
      {
        "num": 32,
        "action": "SELL",
        "symbol": "SBIN",
        "qty": 5,
        "price": 822.46,
        "success": true,
        "msg": "Paper SELL executed: 5 SBIN @ \u20b9822.46"
      },
      {
        "num": 33,
        "action": "BUY",
        "symbol": "NIFTY",
        "qty": 1,
        "price": 24374.35,
        "success": true,
        "msg": "Paper BUY executed: 1 NIFTY @ \u20b924374.35"
      },
      {
        "num": 34,
        "action": "SELL",
        "symbol": "NIFTY",
        "qty": 1,
        "price": 24447.47,
        "success": true,
        "msg": "Paper SELL executed: 1 NIFTY @ \u20b924447.47"
      },
      {
        "num": 35,
        "action": "BUY",
        "symbol": "BANKNIFTY",
        "qty": 1,
        "price": 52204.2,
        "success": true,
        "msg": "Paper BUY executed: 1 BANKNIFTY @ \u20b952204.2"
      },
      {
        "num": 36,
        "action": "SELL",
        "symbol": "BANKNIFTY",
        "qty": 1,
        "price": 52360.81,
        "success": true,
        "msg": "Paper SELL executed: 1 BANKNIFTY @ \u20b952360.81"
      },
      {
        "num": 37,
        "action": "BUY",
        "symbol": "RELIANCE",
        "qty": 2,
        "price": 2948.82,
        "success": true,
        "msg": "Paper BUY executed: 2 RELIANCE @ \u20b92948.82"
      },
      {
        "num": 38,
        "action": "SELL",
        "symbol": "RELIANCE",
        "qty": 2,
        "price": 2957.67,
        "success": true,
        "msg": "Paper SELL executed: 2 RELIANCE @ \u20b92957.67"
      },
      {
        "num": 39,
        "action": "BUY",
        "symbol": "TCS",
        "qty": 2,
        "price": 3835.28,
        "success": true,
        "msg": "Paper BUY executed: 2 TCS @ \u20b93835.28"
      },
      {
        "num": 40,
        "action": "SELL",
        "symbol": "TCS",
        "qty": 2,
        "price": 3846.79,
        "success": true,
        "msg": "Paper SELL executed: 2 TCS @ \u20b93846.79"
      },
      {
        "num": 41,
        "action": "BUY",
        "symbol": "INFY",
        "qty": 3,
        "price": 1540.0,
        "success": true,
        "msg": "Paper BUY executed: 3 INFY @ \u20b91540.0"
      },
      {
        "num": 42,
        "action": "SELL",
        "symbol": "INFY",
        "qty": 3,
        "price": 1544.62,
        "success": true,
        "msg": "Paper SELL executed: 3 INFY @ \u20b91544.62"
      },
      {
        "num": 43,
        "action": "BUY",
        "symbol": "HDFCBANK",
        "qty": 3,
        "price": 1681.68,
        "success": true,
        "msg": "Paper BUY executed: 3 HDFCBANK @ \u20b91681.68"
      },
      {
        "num": 44,
        "action": "SELL",
        "symbol": "HDFCBANK",
        "qty": 3,
        "price": 1686.73,
        "success": true,
        "msg": "Paper SELL executed: 3 HDFCBANK @ \u20b91686.73"
      },
      {
        "num": 45,
        "action": "BUY",
        "symbol": "ICICIBANK",
        "qty": 5,
        "price": 961.92,
        "success": true,
        "msg": "Paper BUY executed: 5 ICICIBANK @ \u20b9961.92"
      },
      {
        "num": 46,
        "action": "SELL",
        "symbol": "ICICIBANK",
        "qty": 5,
        "price": 964.81,
        "success": true,
        "msg": "Paper SELL executed: 5 ICICIBANK @ \u20b9964.81"
      },
      {
        "num": 47,
        "action": "BUY",
        "symbol": "SBIN",
        "qty": 5,
        "price": 822.46,
        "success": true,
        "msg": "Paper BUY executed: 5 SBIN @ \u20b9822.46"
      },
      {
        "num": 48,
        "action": "SELL",
        "symbol": "SBIN",
        "qty": 5,
        "price": 824.93,
        "success": true,
        "msg": "Paper SELL executed: 5 SBIN @ \u20b9824.93"
      },
      {
        "num": 49,
        "action": "BUY",
        "symbol": "NIFTY",
        "qty": 1,
        "price": 24447.4,
        "success": true,
        "msg": "Paper BUY executed: 1 NIFTY @ \u20b924447.4"
      },
      {
        "num": 50,
        "action": "SELL",
        "symbol": "NIFTY",
        "qty": 1,
        "price": 24520.74,
        "success": true,
        "msg": "Paper SELL executed: 1 NIFTY @ \u20b924520.74"
      },
      {
        "num": 51,
        "action": "BUY",
        "symbol": "BANKNIFTY",
        "qty": 1,
        "price": 52100.0,
        "success": true,
        "msg": "Paper BUY executed: 1 BANKNIFTY @ \u20b952100.0"
      },
      {
        "num": 52,
        "action": "SELL",
        "symbol": "BANKNIFTY",
        "qty": 1,
        "price": 52256.3,
        "success": true,
        "msg": "Paper SELL executed: 1 BANKNIFTY @ \u20b952256.3"
      },
      {
        "num": 53,
        "action": "BUY",
        "symbol": "RELIANCE",
        "qty": 2,
        "price": 2942.94,
        "success": true,
        "msg": "Paper BUY executed: 2 RELIANCE @ \u20b92942.94"
      },
      {
        "num": 54,
        "action": "SELL",
        "symbol": "RELIANCE",
        "qty": 2,
        "price": 2951.77,
        "success": true,
        "msg": "Paper SELL executed: 2 RELIANCE @ \u20b92951.77"
      },
      {
        "num": 55,
        "action": "BUY",
        "symbol": "TCS",
        "qty": 2,
        "price": 3827.64,
        "success": true,
        "msg": "Paper BUY executed: 2 TCS @ \u20b93827.64"
      },
      {
        "num": 56,
        "action": "SELL",
        "symbol": "TCS",
        "qty": 2,
        "price": 3839.12,
        "success": true,
        "msg": "Paper SELL executed: 2 TCS @ \u20b93839.12"
      },
      {
        "num": 57,
        "action": "BUY",
        "symbol": "INFY",
        "qty": 3,
        "price": 1544.62,
        "success": true,
        "msg": "Paper BUY executed: 3 INFY @ \u20b91544.62"
      },
      {
        "num": 58,
        "action": "SELL",
        "symbol": "INFY",
        "qty": 3,
        "price": 1549.25,
        "success": true,
        "msg": "Paper SELL executed: 3 INFY @ \u20b91549.25"
      },
      {
        "num": 59,
        "action": "BUY",
        "symbol": "HDFCBANK",
        "qty": 3,
        "price": 1686.72,
        "success": true,
        "msg": "Paper BUY executed: 3 HDFCBANK @ \u20b91686.72"
      },
      {
        "num": 60,
        "action": "SELL",
        "symbol": "HDFCBANK",
        "qty": 3,
        "price": 1691.78,
        "success": true,
        "msg": "Paper SELL executed: 3 HDFCBANK @ \u20b91691.78"
      },
      {
        "num": 61,
        "action": "BUY",
        "symbol": "ICICIBANK",
        "qty": 5,
        "price": 960.0,
        "success": true,
        "msg": "Paper BUY executed: 5 ICICIBANK @ \u20b9960.0"
      },
      {
        "num": 62,
        "action": "SELL",
        "symbol": "ICICIBANK",
        "qty": 5,
        "price": 962.88,
        "success": true,
        "msg": "Paper SELL executed: 5 ICICIBANK @ \u20b9962.88"
      },
      {
        "num": 63,
        "action": "BUY",
        "symbol": "SBIN",
        "qty": 5,
        "price": 820.82,
        "success": true,
        "msg": "Paper BUY executed: 5 SBIN @ \u20b9820.82"
      },
      {
        "num": 64,
        "action": "SELL",
        "symbol": "SBIN",
        "qty": 5,
        "price": 823.28,
        "success": true,
        "msg": "Paper SELL executed: 5 SBIN @ \u20b9823.28"
      },
      {
        "num": 65,
        "action": "BUY",
        "symbol": "NIFTY",
        "qty": 1,
        "price": 24398.7,
        "success": true,
        "msg": "Paper BUY executed: 1 NIFTY @ \u20b924398.7"
      },
      {
        "num": 66,
        "action": "SELL",
        "symbol": "NIFTY",
        "qty": 1,
        "price": 24471.9,
        "success": true,
        "msg": "Paper SELL executed: 1 NIFTY @ \u20b924471.9"
      },
      {
        "num": 67,
        "action": "BUY",
        "symbol": "BANKNIFTY",
        "qty": 1,
        "price": 52256.3,
        "success": true,
        "msg": "Paper BUY executed: 1 BANKNIFTY @ \u20b952256.3"
      },
      {
        "num": 68,
        "action": "SELL",
        "symbol": "BANKNIFTY",
        "qty": 1,
        "price": 52413.07,
        "success": true,
        "msg": "Paper SELL executed: 1 BANKNIFTY @ \u20b952413.07"
      },
      {
        "num": 69,
        "action": "BUY",
        "symbol": "RELIANCE",
        "qty": 2,
        "price": 2951.76,
        "success": true,
        "msg": "Paper BUY executed: 2 RELIANCE @ \u20b92951.76"
      },
      {
        "num": 70,
        "action": "SELL",
        "symbol": "RELIANCE",
        "qty": 2,
        "price": 2960.62,
        "success": true,
        "msg": "Paper SELL executed: 2 RELIANCE @ \u20b92960.62"
      },
      {
        "num": 71,
        "action": "BUY",
        "symbol": "TCS",
        "qty": 2,
        "price": 3820.0,
        "success": true,
        "msg": "Paper BUY executed: 2 TCS @ \u20b93820.0"
      },
      {
        "num": 72,
        "action": "SELL",
        "symbol": "TCS",
        "qty": 2,
        "price": 3831.46,
        "success": true,
        "msg": "Paper SELL executed: 2 TCS @ \u20b93831.46"
      },
      {
        "num": 73,
        "action": "BUY",
        "symbol": "INFY",
        "qty": 3,
        "price": 1541.54,
        "success": true,
        "msg": "Paper BUY executed: 3 INFY @ \u20b91541.54"
      },
      {
        "num": 74,
        "action": "SELL",
        "symbol": "INFY",
        "qty": 3,
        "price": 1546.16,
        "success": true,
        "msg": "Paper SELL executed: 3 INFY @ \u20b91546.16"
      },
      {
        "num": 75,
        "action": "BUY",
        "symbol": "HDFCBANK",
        "qty": 3,
        "price": 1683.36,
        "success": true,
        "msg": "Paper BUY executed: 3 HDFCBANK @ \u20b91683.36"
      },
      {
        "num": 76,
        "action": "SELL",
        "symbol": "HDFCBANK",
        "qty": 3,
        "price": 1688.41,
        "success": true,
        "msg": "Paper SELL executed: 3 HDFCBANK @ \u20b91688.41"
      },
      {
        "num": 77,
        "action": "BUY",
        "symbol": "ICICIBANK",
        "qty": 5,
        "price": 962.88,
        "success": true,
        "msg": "Paper BUY executed: 5 ICICIBANK @ \u20b9962.88"
      },
      {
        "num": 78,
        "action": "SELL",
        "symbol": "ICICIBANK",
        "qty": 5,
        "price": 965.77,
        "success": true,
        "msg": "Paper SELL executed: 5 ICICIBANK @ \u20b9965.77"
      },
      {
        "num": 79,
        "action": "BUY",
        "symbol": "SBIN",
        "qty": 5,
        "price": 823.28,
        "success": true,
        "msg": "Paper BUY executed: 5 SBIN @ \u20b9823.28"
      },
      {
        "num": 80,
        "action": "SELL",
        "symbol": "SBIN",
        "qty": 5,
        "price": 825.75,
        "success": true,
        "msg": "Paper SELL executed: 5 SBIN @ \u20b9825.75"
      },
      {
        "num": 81,
        "action": "BUY",
        "symbol": "NIFTY",
        "qty": 1,
        "price": 24350.0,
        "success": true,
        "msg": "Paper BUY executed: 1 NIFTY @ \u20b924350.0"
      },
      {
        "num": 82,
        "action": "SELL",
        "symbol": "NIFTY",
        "qty": 1,
        "price": 24423.05,
        "success": true,
        "msg": "Paper SELL executed: 1 NIFTY @ \u20b924423.05"
      },
      {
        "num": 83,
        "action": "BUY",
        "symbol": "BANKNIFTY",
        "qty": 1,
        "price": 52152.1,
        "success": true,
        "msg": "Paper BUY executed: 1 BANKNIFTY @ \u20b952152.1"
      },
      {
        "num": 84,
        "action": "SELL",
        "symbol": "BANKNIFTY",
        "qty": 1,
        "price": 52308.56,
        "success": true,
        "msg": "Paper SELL executed: 1 BANKNIFTY @ \u20b952308.56"
      },
      {
        "num": 85,
        "action": "BUY",
        "symbol": "RELIANCE",
        "qty": 2,
        "price": 2945.88,
        "success": true,
        "msg": "Paper BUY executed: 2 RELIANCE @ \u20b92945.88"
      },
      {
        "num": 86,
        "action": "SELL",
        "symbol": "RELIANCE",
        "qty": 2,
        "price": 2954.72,
        "success": true,
        "msg": "Paper SELL executed: 2 RELIANCE @ \u20b92954.72"
      },
      {
        "num": 87,
        "action": "BUY",
        "symbol": "TCS",
        "qty": 2,
        "price": 3831.46,
        "success": true,
        "msg": "Paper BUY executed: 2 TCS @ \u20b93831.46"
      },
      {
        "num": 88,
        "action": "SELL",
        "symbol": "TCS",
        "qty": 2,
        "price": 3842.95,
        "success": true,
        "msg": "Paper SELL executed: 2 TCS @ \u20b93842.95"
      },
      {
        "num": 89,
        "action": "BUY",
        "symbol": "INFY",
        "qty": 3,
        "price": 1546.16,
        "success": true,
        "msg": "Paper BUY executed: 3 INFY @ \u20b91546.16"
      },
      {
        "num": 90,
        "action": "SELL",
        "symbol": "INFY",
        "qty": 3,
        "price": 1550.8,
        "success": true,
        "msg": "Paper SELL executed: 3 INFY @ \u20b91550.8"
      },
      {
        "num": 91,
        "action": "BUY",
        "symbol": "HDFCBANK",
        "qty": 3,
        "price": 1680.0,
        "success": true,
        "msg": "Paper BUY executed: 3 HDFCBANK @ \u20b91680.0"
      },
      {
        "num": 92,
        "action": "SELL",
        "symbol": "HDFCBANK",
        "qty": 3,
        "price": 1685.04,
        "success": true,
        "msg": "Paper SELL executed: 3 HDFCBANK @ \u20b91685.04"
      },
      {
        "num": 93,
        "action": "BUY",
        "symbol": "ICICIBANK",
        "qty": 5,
        "price": 960.96,
        "success": true,
        "msg": "Paper BUY executed: 5 ICICIBANK @ \u20b9960.96"
      },
      {
        "num": 94,
        "action": "SELL",
        "symbol": "ICICIBANK",
        "qty": 5,
        "price": 963.84,
        "success": true,
        "msg": "Paper SELL executed: 5 ICICIBANK @ \u20b9963.84"
      },
      {
        "num": 95,
        "action": "BUY",
        "symbol": "SBIN",
        "qty": 5,
        "price": 821.64,
        "success": true,
        "msg": "Paper BUY executed: 5 SBIN @ \u20b9821.64"
      },
      {
        "num": 96,
        "action": "SELL",
        "symbol": "SBIN",
        "qty": 5,
        "price": 824.1,
        "success": true,
        "msg": "Paper SELL executed: 5 SBIN @ \u20b9824.1"
      },
      {
        "num": 97,
        "action": "BUY",
        "symbol": "NIFTY",
        "qty": 1,
        "price": 24423.05,
        "success": true,
        "msg": "Paper BUY executed: 1 NIFTY @ \u20b924423.05"
      },
      {
        "num": 98,
        "action": "SELL",
        "symbol": "NIFTY",
        "qty": 1,
        "price": 24496.32,
        "success": true,
        "msg": "Paper SELL executed: 1 NIFTY @ \u20b924496.32"
      },
      {
        "num": 99,
        "action": "BUY",
        "symbol": "BANKNIFTY",
        "qty": 1,
        "price": 52308.4,
        "success": true,
        "msg": "Paper BUY executed: 1 BANKNIFTY @ \u20b952308.4"
      },
      {
        "num": 100,
        "action": "SELL",
        "symbol": "BANKNIFTY",
        "qty": 1,
        "price": 52465.33,
        "success": true,
        "msg": "Paper SELL executed: 1 BANKNIFTY @ \u20b952465.33"
      }
    ]
  },
  "paper_account_final": {
    "status": 200,
    "data": {
      "total_capital": 100000.0,
      "available_capital": 103327.33,
      "invested_amount": 0,
      "realized_pnl": 3327.33,
      "unrealized_pnl": 0,
      "total_pnl": 3327.33,
      "open_positions": [],
      "trade_count": 58,
      "win_count": 58,
      "loss_count": 0,
      "win_rate": 100.0
    }
  },
  "paper_history": {
    "status": 200,
    "data": {
      "trades": [
        {
          "symbol": "BANKNIFTY",
          "side": "BUY\u2192SELL",
          "qty": 1,
          "entry": 52308.4,
          "exit": 52465.33,
          "pnl": 156.93,
          "time": "2026-06-30 18:28:55"
        },
        {
          "symbol": "NIFTY",
          "side": "BUY\u2192SELL",
          "qty": 1,
          "entry": 24423.05,
          "exit": 24496.32,
          "pnl": 73.27,
          "time": "2026-06-30 18:28:54"
        },
        {
          "symbol": "SBIN",
          "side": "BUY\u2192SELL",
          "qty": 5,
          "entry": 821.64,
          "exit": 824.1,
          "pnl": 12.3,
          "time": "2026-06-30 18:28:54"
        },
        {
          "symbol": "ICICIBANK",
          "side": "BUY\u2192SELL",
          "qty": 5,
          "entry": 960.96,
          "exit": 963.84,
          "pnl": 14.4,
          "time": "2026-06-30 18:28:54"
        },
        {
          "symbol": "HDFCBANK",
          "side": "BUY\u2192SELL",
          "qty": 3,
          "entry": 1680.0,
          "exit": 1685.04,
          "pnl": 15.12,
          "time": "2026-06-30 18:28:54"
        },
        {
          "symbol": "INFY",
          "side": "BUY\u2192SELL",
          "qty": 3,
          "entry": 1546.16,
          "exit": 1550.8,
          "pnl": 13.92,
          "time": "2026-06-30 18:28:54"
        },
        {
          "symbol": "TCS",
          "side": "BUY\u2192SELL",
          "qty": 2,
          "entry": 3831.46,
          "exit": 3842.95,
          "pnl": 22.98,
          "time": "2026-06-30 18:28:54"
        },
        {
          "symbol": "RELIANCE",
          "side": "BUY\u2192SELL",
          "qty": 2,
          "entry": 2945.88,
          "exit": 2954.72,
          "pnl": 17.68,
          "time": "2026-06-30 18:28:54"
        },
        {
          "symbol": "BANKNIFTY",
          "side": "BUY\u2192SELL",
          "qty": 1,
          "entry": 52152.1,
          "exit": 52308.56,
          "pnl": 156.46,
          "time": "2026-06-30 18:28:54"
        },
        {
          "symbol": "NIFTY",
          "side": "BUY\u2192SELL",
          "qty": 1,
          "entry": 24350.0,
          "exit": 24423.05,
          "pnl": 73.05,
          "time": "2026-06-30 18:28:53"
        },
        {
          "symbol": "SBIN",
          "side": "BUY\u2192SELL",
          "qty": 5,
          "entry": 823.28,
          "exit": 825.75,
          "pnl": 12.35,
          "time": "2026-06-30 18:28:53"
        },
        {
          "symbol": "ICICIBANK",
          "side": "BUY\u2192SELL",
          "qty": 5,
          "entry": 962.88,
          "exit": 965.77,
          "pnl": 14.45,
          "time": "2026-06-30 18:28:53"
        },
        {
          "symbol": "HDFCBANK",
          "side": "BUY\u2192SELL",
          "qty": 3,
          "entry": 1683.36,
          "exit": 1688.41,
          "pnl": 15.15,
          "time": "2026-06-30 18:28:53"
        },
        {
          "symbol": "INFY",
          "side": "BUY\u2192SELL",
          "qty": 3,
          "entry": 1541.54,
          "exit": 1546.16,
          "pnl": 13.86,
          "time": "2026-06-30 18:28:53"
        },
        {
          "symbol": "TCS",
          "side": "BUY\u2192SELL",
          "qty": 2,
          "entry": 3820.0,
          "exit": 3831.46,
          "pnl": 22.92,
          "time": "2026-06-30 18:28:53"
        },
        {
          "symbol": "RELIANCE",
          "side": "BUY\u2192SELL",
          "qty": 2,
          "entry": 2951.76,
          "exit": 2960.62,
          "pnl": 17.72,
          "time": "2026-06-30 18:28:53"
        },
        {
          "symbol": "BANKNIFTY",
          "side": "BUY\u2192SELL",
          "qty": 1,
          "entry": 52256.3,
          "exit": 52413.07,
          "pnl": 156.77,
          "time": "2026-06-30 18:28:53"
        },
        {
          "symbol": "NIFTY",
          "side": "BUY\u2192SELL",
          "qty": 1,
          "entry": 24398.7,
          "exit": 24471.9,
          "pnl": 73.2,
          "time": "2026-06-30 18:28:52"
        },
        {
          "symbol": "SBIN",
          "side": "BUY\u2192SELL",
          "qty": 5,
          "entry": 820.82,
          "exit": 823.28,
          "pnl": 12.3,
          "time": "2026-06-30 18:28:52"
        },
        {
          "symbol": "ICICIBANK",
          "side": "BUY\u2192SELL",
          "qty": 5,
          "entry": 960.0,
          "exit": 962.88,
          "pnl": 14.4,
          "time": "2026-06-30 18:28:52"
        },
        {
          "symbol": "HDFCBANK",
          "side": "BUY\u2192SELL",
          "qty": 3,
          "entry": 1686.72,
          "exit": 1691.78,
          "pnl": 15.18,
          "time": "2026-06-30 18:28:52"
        },
        {
          "symbol": "INFY",
          "side": "BUY\u2192SELL",
          "qty": 3,
          "entry": 1544.62,
          "exit": 1549.25,
          "pnl": 13.89,
          "time": "2026-06-30 18:28:52"
        },
        {
          "symbol": "TCS",
          "side": "BUY\u2192SELL",
          "qty": 2,
          "entry": 3827.64,
          "exit": 3839.12,
          "pnl": 22.96,
          "time": "2026-06-30 18:28:52"
        },
        {
          "symbol": "RELIANCE",
          "side": "BUY\u2192SELL",
          "qty": 2,
          "entry": 2942.94,
          "exit": 2951.77,
          "pnl": 17.66,
          "time": "2026-06-30 18:28:52"
        },
        {
          "symbol": "BANKNIFTY",
          "side": "BUY\u2192SELL",
          "qty": 1,
          "entry": 52100.0,
          "exit": 52256.3,
          "pnl": 156.3,
          "time": "2026-06-30 18:28:52"
        },
        {
          "symbol": "NIFTY",
          "side": "BUY\u2192SELL",
          "qty": 1,
          "entry": 24447.4,
          "exit": 24520.74,
          "pnl": 73.34,
          "time": "2026-06-30 18:28:51"
        },
        {
          "symbol": "SBIN",
          "side": "BUY\u2192SELL",
          "qty": 5,
          "entry": 822.46,
          "exit": 824.93,
          "pnl": 12.35,
          "time": "2026-06-30 18:28:51"
        },
        {
          "symbol": "ICICIBANK",
          "side": "BUY\u2192SELL",
          "qty": 5,
          "entry": 961.92,
          "exit": 964.81,
          "pnl": 14.45,
          "time": "2026-06-30 18:28:51"
        },
        {
          "symbol": "HDFCBANK",
          "side": "BUY\u2192SELL",
          "qty": 3,
          "entry": 1681.68,
          "exit": 1686.73,
          "pnl": 15.15,
          "time": "2026-06-30 18:28:51"
        },
        {
          "symbol": "INFY",
          "side": "BUY\u2192SELL",
          "qty": 3,
          "entry": 1540.0,
          "exit": 1544.62,
          "pnl": 13.86,
          "time": "2026-06-30 18:28:51"
        },
        {
          "symbol": "TCS",
          "side": "BUY\u2192SELL",
          "qty": 2,
          "entry": 3835.28,
          "exit": 3846.79,
          "pnl": 23.02,
          "time": "2026-06-30 18:28:51"
        },
        {
          "symbol": "RELIANCE",
          "side": "BUY\u2192SELL",
          "qty": 2,
          "entry": 2948.82,
          "exit": 2957.67,
          "pnl": 17.7,
          "time": "2026-06-30 18:28:51"
        },
        {
          "symbol": "BANKNIFTY",
          "side": "BUY\u2192SELL",
          "qty": 1,
          "entry": 52204.2,
          "exit": 52360.81,
          "pnl": 156.61,
          "time": "2026-06-30 18:28:51"
        },
        {
          "symbol": "NIFTY",
          "side": "BUY\u2192SELL",
          "qty": 1,
          "entry": 24374.35,
          "exit": 24447.47,
          "pnl": 73.12,
          "time": "2026-06-30 18:28:50"
        },
        {
          "symbol": "SBIN",
          "side": "BUY\u2192SELL",
          "qty": 5,
          "entry": 820.0,
          "exit": 822.46,
          "pnl": 12.3,
          "time": "2026-06-30 18:28:50"
        },
        {
          "symbol": "ICICIBANK",
          "side": "BUY\u2192SELL",
          "qty": 5,
          "entry": 963.84,
          "exit": 966.73,
          "pnl": 14.45,
          "time": "2026-06-30 18:28:50"
        },
        {
          "symbol": "HDFCBANK",
          "side": "BUY\u2192SELL",
          "qty": 3,
          "entry": 1685.04,
          "exit": 1690.1,
          "pnl": 15.18,
          "time": "2026-06-30 18:28:50"
        },
        {
          "symbol": "INFY",
          "side": "BUY\u2192SELL",
          "qty": 3,
          "entry": 1543.08,
          "exit": 1547.71,
          "pnl": 13.89,
          "time": "2026-06-30 18:28:50"
        },
        {
          "symbol": "TCS",
          "side": "BUY\u2192SELL",
          "qty": 2,
          "entry": 3823.82,
          "exit": 3835.29,
          "pnl": 22.94,
          "time": "2026-06-30 18:28:50"
        },
        {
          "symbol": "RELIANCE",
          "side": "BUY\u2192SELL",
          "qty": 2,
          "entry": 2940.0,
          "exit": 2948.82,
          "pnl": 17.64,
          "time": "2026-06-30 18:28:50"
        },
        {
          "symbol": "BANKNIFTY",
          "side": "BUY\u2192SELL",
          "qty": 1,
          "entry": 52308.4,
          "exit": 52465.33,
          "pnl": 156.93,
          "time": "2026-06-30 18:28:50"
        },
        {
          "symbol": "NIFTY",
          "side": "BUY\u2192SELL",
          "qty": 1,
          "entry": 24423.05,
          "exit": 24496.32,
          "pnl": 73.27,
          "time": "2026-06-30 18:28:49"
        },
        {
          "symbol": "SBIN",
          "side": "BUY\u2192SELL",
          "qty": 5,
          "entry": 821.64,
          "exit": 824.1,
          "pnl": 12.3,
          "time": "2026-06-30 18:28:49"
        },
        {
          "symbol": "ICICIBANK",
          "side": "BUY\u2192SELL",
          "qty": 5,
          "entry": 960.96,
          "exit": 963.84,
          "pnl": 14.4,
          "time": "2026-06-30 18:28:49"
        },
        {
          "symbol": "HDFCBANK",
          "side": "BUY\u2192SELL",
          "qty": 3,
          "entry": 1680.0,
          "exit": 1685.04,
          "pnl": 15.12,
          "time": "2026-06-30 18:28:49"
        },
        {
          "symbol": "INFY",
          "side": "BUY\u2192SELL",
          "qty": 3,
          "entry": 1546.16,
          "exit": 1550.8,
          "pnl": 13.92,
          "time": "2026-06-30 18:28:49"
        },
        {
          "symbol": "TCS",
          "side": "BUY\u2192SELL",
          "qty": 2,
          "entry": 3831.46,
          "exit": 3842.95,
          "pnl": 22.98,
          "time": "2026-06-30 18:28:49"
        },
        {
          "symbol": "RELIANCE",
          "side": "BUY\u2192SELL",
          "qty": 2,
          "entry": 2945.88,
          "exit": 2954.72,
          "pnl": 17.68,
          "time": "2026-06-30 18:28:49"
        },
        {
          "symbol": "BANKNIFTY",
          "side": "BUY\u2192SELL",
          "qty": 1,
          "entry": 52152.1,
          "exit": 52308.56,
          "pnl": 156.46,
          "time": "2026-06-30 18:28:49"
        },
        {
          "symbol": "NIFTY",
          "side": "BUY\u2192SELL",
          "qty": 1,
          "entry": 24350.0,
          "exit": 24423.05,
          "pnl": 73.05,
          "time": "2026-06-30 18:28:48"
        },
        {
          "symbol": "BANKNIFTY",
          "side": "BUY\u2192SELL",
          "qty": 1,
          "entry": 52050.0,
          "exit": 52200.0,
          "pnl": 150.0,
          "time": "2026-06-30 18:18:40"
        },
        {
          "symbol": "NIFTY",
          "side": "BUY\u2192SELL",
          "qty": 2,
          "entry": 24320.0,
          "exit": 24390.0,
          "pnl": 140.0,
          "time": "2026-06-30 18:18:39"
        },
        {
          "symbol": "INFY",
          "side": "BUY\u2192SELL",
          "qty": 5,
          "entry": 1548.0,
          "exit": 1560.0,
          "pnl": 60.0,
          "time": "2026-06-30 18:18:38"
        },
        {
          "symbol": "RELIANCE",
          "side": "BUY\u2192SELL",
          "qty": 5,
          "entry": 2960.0,
          "exit": 2990.0,
          "pnl": 150.0,
          "time": "2026-06-30 18:18:37"
        },
        {
          "symbol": "BANKNIFTY",
          "side": "BUY\u2192SELL",
          "qty": 1,
          "entry": 52100.0,
          "exit": 52400.0,
          "pnl": 300.0,
          "time": "2026-06-30 18:18:37"
        },
        {
          "symbol": "NIFTY",
          "side": "BUY\u2192SELL",
          "qty": 1,
          "entry": 24380.0,
          "exit": 24450.0,
          "pnl": 70.0,
          "time": "2026-06-30 18:18:36"
        },
        {
          "symbol": "TCS",
          "side": "BUY\u2192SELL",
          "qty": 5,
          "entry": 3820.0,
          "exit": 3860.0,
          "pnl": 200.0,
          "time": "2026-06-30 18:18:33"
        },
        {
          "symbol": "NIFTY",
          "side": "BUY\u2192SELL",
          "qty": 1,
          "entry": 24350.0,
          "exit": 24420.0,
          "pnl": 70.0,
          "time": "2026-06-30 18:18:33"
        }
      ]
    }
  },
  "dashboard": {
    "status": 200,
    "data": {
      "success": true,
      "generated_at": 1782824335.229517,
      "portfolio": [],
      "funds": {
        "available_cash": 0.0,
        "used_margin": 0.0,
        "total_funds": 0.0,
        "collateral": 0.0,
        "broker": ""
      },
      "pnl": {
        "realized_pnl": 0.0,
        "unrealized_pnl": 0.0,
        "total_pnl": 0.0,
        "total_charges": 0.0,
        "net_pnl": 0.0,
        "winning_trades": 0,
        "losing_trades": 0,
        "win_rate_pct": 0.0
      },
      "risk": {
        "current_exposure": 0.0,
        "margin_utilization_pct": 0.0,
        "open_risk": 0.0,
        "daily_loss_limit": 5000.0,
        "daily_loss_used": 0.0,
        "risk_status": "OK"
      },
      "open_positions": [],
      "orders": [],
      "ai_status": {
        "enabled": true,
        "active_models": [
          "gpt",
          "claude",
          "deepseek",
          "gemini",
          "llama"
        ],
        "last_signal": "",
        "last_confidence": 0.0,
        "last_symbol": "",
        "consensus_available": true
      },
      "broker_status": [
        {
          "name": "none",
          "connected": false,
          "latency_ms": 0.0,
          "last_ping": null,
          "error": "No brokers registered"
        }
      ],
      "market_status": {
        "is_open": false,
        "session": "POST_CLOSE",
        "exchange": "NSE",
        "open_time": "09:15",
        "close_time": "15:30"
      },
      "system_health": {
        "cpu_pct": 0.0,
        "memory_pct": 0.0,
        "disk_pct": 0.0,
        "uptime_seconds": 37001.0,
        "websocket_clients": 0,
        "active_streams": 0,
        "db_ok": true,
        "status": "HEALTHY"
      }
    }
  },
  "mismatch_pnl": {
    "issue": "Dashboard pnl does not read from paper engine",
    "paper_value": 3327.33,
    "dashboard_value": 0.0,
    "root_cause": "dashboard_service.py reads from broker API (Angel One), not PaperEngine",
    "fix": "dashboard_router.py /dashboard/ should include paper engine snapshot when broker not connected"
  },
  "dashboard_positions": {
    "status": 200,
    "data": {
      "success": true,
      "open_positions": []
    }
  },
  "dashboard_orders": {
    "status": 200,
    "data": {
      "success": true,
      "orders": []
    }
  },
  "dashboard_portfolio": {
    "status": 200,
    "data": {
      "success": true,
      "portfolio": []
    }
  },
  "dashboard_pnl": {
    "status": 200,
    "data": {
      "realized_pnl": 0.0,
      "unrealized_pnl": 0.0,
      "total_pnl": 0.0,
      "total_charges": 0.0,
      "net_pnl": 0.0,
      "winning_trades": 0,
      "losing_trades": 0,
      "win_rate_pct": 0.0
    }
  },
  "dashboard_risk": {
    "status": 200,
    "data": {
      "current_exposure": 0.0,
      "margin_utilization_pct": 0.0,
      "open_risk": 0.0,
      "daily_loss_limit": 5000.0,
      "daily_loss_used": 0.0,
      "risk_status": "OK"
    }
  },
  "dashboard_signals": {
    "status": 404,
    "data": {
      "detail": "Not Found"
    }
  },
  "dashboard_market-overview": {
    "status": 404,
    "data": {
      "detail": "Not Found"
    }
  },
  "dashboard_performance": {
    "status": 404,
    "data": {
      "detail": "Not Found"
    }
  },
  "dashboard_alerts": {
    "status": 404,
    "data": {
      "detail": "Not Found"
    }
  },
  "dashboard_summary": {
    "status": 404,
    "data": {
      "detail": "Not Found"
    }
  },
  "portfolio": {
    "status": 404,
    "data": {
      "detail": "Not Found"
    }
  },
  "portfolio_holdings": {
    "status": 404,
    "data": {
      "detail": "Not Found"
    }
  },
  "execution_orders": {
    "status": 422,
    "data": {
      "detail": [
        {
          "type": "missing",
          "loc": [
            "query",
            "broker"
          ],
          "msg": "Field required",
          "input": null
        }
      ]
    }
  },
  "execution_positions": {
    "status": 404,
    "data": {
      "detail": "Not Found"
    }
  },
  "market_history": {
    "status": 200,
    "data": {
      "symbol": "NIFTY",
      "tf": "5m",
      "candles": [
        {
          "time": 1782788335,
          "open": 20680.0,
          "high": 20716.93,
          "low": 20657.68,
          "close": 20703.16,
          "volume": 10602
        },
        {
          "time": 1782788635,
          "open": 20703.16,
          "high": 20770.01,
          "low": 20695.59,
          "close": 20747.97,
          "volume": 6154
        },
        {
          "time": 1782788935,
          "open": 20747.97,
          "high": 20792.66,
          "low": 20723.94,
          "close": 20780.97,
          "volume": 9291
        },
        {
          "time": 1782789235,
          "open": 20780.97,
          "high": 20801.63,
          "low": 20757.54,
          "close": 20787.66,
          "volume": 34414
        },
        {
          "time": 1782789535,
          "open": 20787.66,
          "high": 20826.31,
          "low": 20782.3,
          "close": 20823.72,
          "volume": 31898
        },
        {
          "time": 1782789835,
          "open": 20823.72,
          "high": 20859.07,
          "low": 20807.44,
          "close": 20850.89,
          "volume": 27764
        },
        {
          "time": 1782790135,
          "open": 20850.89,
          "high": 20861.65,
          "low": 20797.49,
          "close": 20808.82,
          "volume": 39591
        },
        {
          "time": 1782790435,
          "open": 20808.82,
          "high": 20851.22,
          "low": 20771.3,
          "close": 20847.99,
          "volume": 23787
        },
        {
          "time": 1782790735,
          "open": 20847.99,
          "high": 20904.71,
          "low": 20815.3,
          "close": 20880.61,
          "volume": 26815
        },
        {
          "time": 1782791035,
          "open": 20880.61,
          "high": 20921.89,
          "low": 20860.93,
          "close": 20890.36,
          "volume": 39889
        },
        {
          "time": 1782791335,
          "open": 20890.36,
          "high": 20961.49,
          "low": 20849.34,
          "close": 20946.6,
          "volume": 16117
        },
        {
          "time": 1782791635,
          "open": 20946.6,
          "high": 20990.84,
          "low": 20931.26,
          "close": 20979.98,
          "volume": 29588
        },
        {
          "time": 1782791935,
          "open": 20979.98,
          "high": 20989.82,
          "low": 20930.94,
          "close": 20955.56,
          "volume": 9819
        },
        {
          "time": 1782792235,
          "open": 20955.56,
          "high": 20961.71,
          "low": 20942.89,
          "close": 20953.05,
          "volume": 46011
        },
        {
          "time": 1782792535,
          "open": 20953.05,
          "high": 20953.52,
          "low": 20891.56,
          "close": 20916.89,
          "volume": 18822
        },
        {
          "time": 1782792835,
          "open": 20916.89,
          "high": 20961.63,
          "low": 20899.54,
          "close": 20936.33,
          "volume": 46572
        },
        {
          "time": 1782793135,
          "open": 20936.33,
          "high": 21000.56,
          "low": 20931.02,
          "close": 20997.24,
          "volume": 14270
        },
        {
          "time": 1782793435,
          "open": 20997.24,
          "high": 21027.13,
          "low": 20939.84,
          "close": 20941.43,
          "volume": 44058
        },
        {
          "time": 1782793735,
          "open": 20941.43,
          "high": 20987.61,
          "low": 20920.73,
          "close": 20952.01,
          "volume": 30095
        },
        {
          "time": 1782794035,
          "open": 20952.01,
          "high": 20968.18,
          "low": 20904.57,
          "close": 20924.48,
          "volume": 12812
        },
        {
          "time": 1782794335,
          "open": 20924.48,
          "high": 20928.61,
          "low": 20879.69,
          "close": 20886.48,
          "volume": 43396
        },
        {
          "time": 1782794635,
          "open": 20886.48,
          "high": 20892.72,
          "low": 20821.99,
          "close": 20842.81,
          "volume": 19321
        },
        {
          "time": 1782794935,
          "open": 20842.81,
          "high": 20898.69,
          "low": 20820.66,
          "close": 20898.11,
          "volume": 41744
        },
        {
          "time": 1782795235,
          "open": 20898.11,
          "high": 20904.95,
          "low": 20810.54,
          "close": 20848.0,
          "volume": 10348
        },
        {
          "time": 1782795535,
          "open": 20848.0,
          "high": 20884.02,
          "low": 20776.43,
          "close": 20817.75,
          "volume": 13077
        },
        {
          "time": 1782795835,
          "open": 20817.75,
          "high": 20863.43,
          "low": 20794.05,
          "close": 20822.92,
          "volume": 48564
        },
        {
          "time": 1782796135,
          "open": 20822.92,
          "high": 20864.06,
          "low": 20783.58,
          "close": 20820.52,
          "volume": 42326
        },
        {
          "time": 1782796435,
          "open": 20820.52,
          "high": 20843.02,
          "low": 20751.95,
          "close": 20779.07,
          "volume": 25433
        },
        {
          "time": 1782796735,
          "open": 20779.07,
          "high": 20851.26,
          "low": 20753.5,
          "close": 20832.12,
          "volume": 25105
        },
        {
          "time": 1782797035,
          "open": 20832.12,
          "high": 20842.74,
          "low": 20740.18,
          "close": 20779.75,
          "volume": 14280
        },
        {
          "time": 1782797335,
          "open": 20779.75,
          "high": 20827.28,
          "low": 20754.87,
          "close": 20792.03,
          "volume": 22892
        },
        {
          "time": 1782797635,
          "open": 20792.03,
          "high": 20829.17,
          "low": 20767.22,
          "close": 20775.81,
          "volume": 9003
        },
        {
          "time": 1782797935,
          "open": 20775.81,
          "high": 20842.01,
          "low": 20767.53,
          "close": 20805.54,
          "volume": 23005
        },
        {
          "time": 1782798235,
          "open": 20805.54,
          "high": 20819.28,
          "low": 20765.24,
          "close": 20783.02,
          "volume": 16438
        },
        {
          "time": 1782798535,
          "open": 20783.02,
          "high": 20797.47,
          "low": 20765.87,
          "close": 20793.67,
          "volume": 27252
        },
        {
          "time": 1782798835,
          "open": 20793.67,
          "high": 20827.86,
          "low": 20756.95,
          "close": 20758.11,
          "volume": 39868
        },
        {
          "time": 1782799135,
          "open": 20758.11,
          "high": 20815.34,
          "low": 20720.63,
          "close": 20777.6,
          "volume": 18666
        },
        {
          "time": 1782799435,
          "open": 20777.6,
          "high": 20817.96,
          "low": 20715.39,
          "close": 20737.76,
          "volume": 40997
        },
        {
          "time": 1782799735,
          "open": 20737.76,
          "high": 20802.32,
          "low": 20699.06,
          "close": 20761.85,
          "volume": 40280
        },
        {
          "time": 1782800035,
          "open": 20761.85,
          "high": 20796.89,
          "low": 20723.43,
          "close": 20731.72,
          "volume": 44185
        },
        {
          "time": 1782800335,
          "open": 20731.72,
          "high": 20741.21,
          "low": 20719.93,
          "close": 20720.99,
          "volume": 29145
        },
        {
          "time": 1782800635,
          "open": 20720.99,
          "high": 20732.49,
          "low": 20676.93,
          "close": 20695.8,
          "volume": 37339
        },
        {
          "time": 1782800935,
          "open": 20695.8,
          "high": 20728.24,
          "low": 20660.73,
          "close": 20693.79,
          "volume": 36308
        },
        {
          "time": 1782801235,
          "open": 20693.79,
          "high": 20753.77,
          "low": 20674.61,
          "close": 20748.43,
          "volume": 40351
        },
        {
          "time": 1782801535,
          "open": 20748.43,
          "high": 20756.12,
          "low": 20708.11,
          "close": 20719.64,
          "volume": 25628
        },
        {
          "time": 1782801835,
          "open": 20719.64,
          "high": 20777.26,
          "low": 20692.59,
          "close": 20738.72,
          "volume": 25955
        },
        {
          "time": 1782802135,
          "open": 20738.72,
          "high": 20757.83,
          "low": 20715.44,
          "close": 20734.02,
          "volume": 44224
        },
        {
          "time": 1782802435,
          "open": 20734.02,
          "high": 20784.66,
          "low": 20708.53,
          "close": 20771.46,
          "volume": 24993
        },
        {
          "time": 1782802735,
          "open": 20771.46,
          "high": 20778.73,
          "low": 20736.87,
          "close": 20763.97,
          "volume": 26400
        },
        {
          "time": 1782803035,
          "open": 20763.97,
          "high": 20814.59,
          "low": 20730.41,
          "close": 20802.71,
          "volume": 21900
        },
        {
          "time": 1782803335,
          "open": 20802.71,
          "high": 20805.45,
          "low": 20764.7,
          "close": 20779.65,
          "volume": 38982
        },
        {
          "time": 1782803635,
          "open": 20779.65,
          "high": 20854.13,
          "low": 20759.17,
          "close": 20816.62,
          "volume": 6909
        },
        {
          "time": 1782803935,
          "open": 20816.62,
          "high": 20844.69,
          "low": 20789.87,
          "close": 20829.84,
          "volume": 12757
        },
        {
          "time": 1782804235,
          "open": 20829.84,
          "high": 20909.69,
          "low": 20818.0,
          "close": 20875.59,
          "volume": 13208
        },
        {
          "time": 1782804535,
          "open": 20875.59,
          "high": 20896.59,
          "low": 20843.68,
          "close": 20885.07,
          "volume": 47144
        },
        {
          "time": 1782804835,
          "open": 20885.07,
          "high": 20885.78,
          "low": 20845.94,
          "close": 20859.84,
          "volume": 14615
        },
        {
          "time": 1782805135,
          "open": 20859.84,
          "high": 20876.54,
          "low": 20818.02,
          "close": 20829.67,
          "volume": 42257
        },
        {
          "time": 1782805435,
          "open": 20829.67,
          "high": 20864.85,
          "low": 20772.01,
          "close": 20793.87,
          "volume": 17318
        },
        {
          "time": 1782805735,
          "open": 20793.87,
          "high": 20886.28,
          "low": 20765.15,
          "close": 20853.39,
          "volume": 29449
        },
        {
          "time": 1782806035,
          "open": 20853.39,
          "high": 20926.79,
          "low": 20833.51,
          "close": 20889.36,
          "volume": 34008
        },
        {
          "time": 1782806335,
          "open": 20889.36,
          "high": 20890.15,
          "low": 20851.84,
          "close": 20881.32,
          "volume": 10038
        },
        {
          "time": 1782806635,
          "open": 20881.32,
          "high": 20953.19,
          "low": 20850.05,
          "close": 20932.43,
          "volume": 6993
        },
        {
          "time": 1782806935,
          "open": 20932.43,
          "high": 20948.26,
          "low": 20908.76,
          "close": 20947.32,
          "volume": 18671
        },
        {
          "time": 1782807235,
          "open": 20947.32,
          "high": 20949.66,
          "low": 20910.75,
          "close": 20933.85,
          "volume": 39392
        },
        {
          "time": 1782807535,
          "open": 20933.85,
          "high": 20956.83,
          "low": 20905.3,
          "close": 20945.69,
          "volume": 7720
        },
        {
          "time": 1782807835,
          "open": 20945.69,
          "high": 20994.11,
          "low": 20916.25,
          "close": 20960.78,
          "volume": 49975
        },
        {
          "time": 1782808135,
          "open": 20960.78,
          "high": 20993.43,
          "low": 20929.95,
          "close": 20930.07,
          "volume": 35312
        },
        {
          "time": 1782808435,
          "open": 20930.07,
          "high": 20935.55,
          "low": 20922.48,
          "close": 20928.81,
          "volume": 12104
        },
        {
          "time": 1782808735,
          "open": 20928.81,
          "high": 20966.29,
          "low": 20906.29,
          "close": 20961.48,
          "volume": 17973
        },
        {
          "time": 1782809035,
          "open": 20961.48,
          "high": 20986.91,
          "low": 20912.35,
          "close": 20932.37,
          "volume": 12464
        },
        {
          "time": 1782809335,
          "open": 20932.37,
          "high": 20989.86,
          "low": 20894.57,
          "close": 20969.6,
          "volume": 9870
        },
        {
          "time": 1782809635,
          "open": 20969.6,
          "high": 21001.92,
          "low": 20911.69,
          "close": 20952.12,
          "volume": 38433
        },
        {
          "time": 1782809935,
          "open": 20952.12,
          "high": 21009.17,
          "low": 20943.26,
          "close": 20994.27,
          "volume": 12113
        },
        {
          "time": 1782810235,
          "open": 20994.27,
          "high": 21080.27,
          "low": 20957.98,
          "close": 21044.06,
          "volume": 15178
        },
        {
          "time": 1782810535,
          "open": 21044.06,
          "high": 21070.28,
          "low": 20984.09,
          "close": 21020.28,
          "volume": 19363
        },
        {
          "time": 1782810835,
          "open": 21020.28,
          "high": 21062.35,
          "low": 20981.57,
          "close": 21043.73,
          "volume": 46867
        },
        {
          "time": 1782811135,
          "open": 21043.73,
          "high": 21052.27,
          "low": 20973.94,
          "close": 20996.82,
          "volume": 33795
        },
        {
          "time": 1782811435,
          "open": 20996.82,
          "high": 21073.87,
          "low": 20960.44,
          "close": 21043.36,
          "volume": 47411
        },
        {
          "time": 1782811735,
          "open": 21043.36,
          "high": 21081.81,
          "low": 20999.84,
          "close": 21001.21,
          "volume": 21686
        },
        {
          "time": 1782812035,
          "open": 21001.21,
          "high": 21038.08,
          "low": 20916.18,
          "close": 20950.08,
          "volume": 5422
        },
        {
          "time": 1782812335,
          "open": 20950.08,
          "high": 20983.63,
          "low": 20917.35,
          "close": 20924.43,
          "volume": 15447
        },
        {
          "time": 1782812635,
          "open": 20924.43,
          "high": 20996.4,
          "low": 20912.53,
          "close": 20984.67,
          "volume": 49617
        },
        {
          "time": 1782812935,
          "open": 20984.67,
          "high": 21046.11,
          "low": 20980.76,
          "close": 21014.42,
          "volume": 41467
        },
        {
          "time": 1782813235,
          "open": 21014.42,
          "high": 21017.53,
          "low": 20987.18,
          "close": 20989.3,
          "volume": 7853
        },
        {
          "time": 1782813535,
          "open": 20989.3,
          "high": 21034.72,
          "low": 20987.39,
          "close": 20998.46,
          "volume": 21625
        },
        {
          "time": 1782813835,
          "open": 20998.46,
          "high": 21000.22,
          "low": 20924.19,
          "close": 20949.16,
          "volume": 40493
        },
        {
          "time": 1782814135,
          "open": 20949.16,
          "high": 20993.19,
          "low": 20926.19,
          "close": 20985.51,
          "volume": 11004
        },
        {
          "time": 1782814435,
          "open": 20985.51,
          "high": 21016.22,
          "low": 20953.52,
          "close": 21015.32,
          "volume": 9962
        },
        {
          "time": 1782814735,
          "open": 21015.32,
          "high": 21062.12,
          "low": 20996.55,
          "close": 21054.24,
          "volume": 9924
        },
        {
          "time": 1782815035,
          "open": 21054.24,
          "high": 21125.54,
          "low": 21053.69,
          "close": 21113.29,
          "volume": 28798
        },
        {
          "time": 1782815335,
          "open": 21113.29,
          "high": 21149.2,
          "low": 21039.23,
          "close": 21068.19,
          "volume": 25072
        },
        {
          "time": 1782815635,
          "open": 21068.19,
          "high": 21076.52,
          "low": 20983.81,
          "close": 21018.27,
          "volume": 39547
        },
        {
          "time": 1782815935,
          "open": 21018.27,
          "high": 21086.68,
          "low": 20992.46,
          "close": 21076.99,
          "volume": 5953
        },
        {
          "time": 1782816235,
          "open": 21076.99,
          "high": 21143.49,
          "low": 21035.04,
          "close": 21126.46,
          "volume": 40741
        },
        {
          "time": 1782816535,
          "open": 21126.46,
          "high": 21188.71,
          "low": 21122.77,
          "close": 21161.54,
          "volume": 37598
        },
        {
          "time": 1782816835,
          "open": 21161.54,
          "high": 21192.05,
          "low": 21109.93,
          "close": 21144.96,
          "volume": 13997
        },
        {
          "time": 1782817135,
          "open": 21144.96,
          "high": 21171.14,
          "low": 21124.1,
          "close": 21144.29,
          "volume": 24775
        },
        {
          "time": 1782817435,
          "open": 21144.29,
          "high": 21211.78,
          "low": 21110.31,
          "close": 21174.89,
          "volume": 7120
        },
        {
          "time": 1782817735,
          "open": 21174.89,
          "high": 21198.73,
          "low": 21133.13,
          "close": 21134.59,
          "volume": 45216
        },
        {
          "time": 1782818035,
          "open": 21134.59,
          "high": 21142.75,
          "low": 21042.81,
          "close": 21079.02,
          "volume": 17697
        },
        {
          "time": 1782818335,
          "open": 21079.02,
          "high": 21083.99,
          "low": 21040.08,
          "close": 21081.61,
          "volume": 49961
        },
        {
          "time": 1782818635,
          "open": 21081.61,
          "high": 21083.66,
          "low": 21051.79,
          "close": 21054.25,
          "volume": 37879
        },
        {
          "time": 1782818935,
          "open": 21054.25,
          "high": 21120.03,
          "low": 21045.27,
          "close": 21095.26,
          "volume": 14145
        },
        {
          "time": 1782819235,
          "open": 21095.26,
          "high": 21100.23,
          "low": 21058.72,
          "close": 21078.58,
          "volume": 27099
        },
        {
          "time": 1782819535,
          "open": 21078.58,
          "high": 21104.84,
          "low": 21054.01,
          "close": 21072.68,
          "volume": 44894
        },
        {
          "time": 1782819835,
          "open": 21072.68,
          "high": 21100.77,
          "low": 21057.93,
          "close": 21086.14,
          "volume": 29398
        },
        {
          "time": 1782820135,
          "open": 21086.14,
          "high": 21106.35,
          "low": 21066.46,
          "close": 21084.38,
          "volume": 42026
        },
        {
          "time": 1782820435,
          "open": 21084.38,
          "high": 21154.14,
          "low": 21081.52,
          "close": 21135.16,
          "volume": 23712
        },
        {
          "time": 1782820735,
          "open": 21135.16,
          "high": 21216.77,
          "low": 21103.49,
          "close": 21191.9,
          "volume": 31092
        },
        {
          "time": 1782821035,
          "open": 21191.9,
          "high": 21221.26,
          "low": 21171.62,
          "close": 21175.6,
          "volume": 24274
        },
        {
          "time": 1782821335,
          "open": 21175.6,
          "high": 21249.9,
          "low": 21145.8,
          "close": 21231.64,
          "volume": 24469
        },
        {
          "time": 1782821635,
          "open": 21231.64,
          "high": 21312.46,
          "low": 21191.81,
          "close": 21269.98,
          "volume": 27530
        },
        {
          "time": 1782821935,
          "open": 21269.98,
          "high": 21279.78,
          "low": 21216.53,
          "close": 21242.06,
          "volume": 17131
        },
        {
          "time": 1782822235,
          "open": 21242.06,
          "high": 21280.15,
          "low": 21191.48,
          "close": 21211.1,
          "volume": 41169
        },
        {
          "time": 1782822535,
          "open": 21211.1,
          "high": 21219.11,
          "low": 21173.47,
          "close": 21214.55,
          "volume": 39300
        },
        {
          "time": 1782822835,
          "open": 21214.55,
          "high": 21278.68,
          "low": 21185.51,
          "close": 21275.08,
          "volume": 35755
        },
        {
          "time": 1782823135,
          "open": 21275.08,
          "high": 21343.64,
          "low": 21267.58,
          "close": 21319.83,
          "volume": 11650
        },
        {
          "time": 1782823435,
          "open": 21319.83,
          "high": 21348.19,
          "low": 21294.6,
          "close": 21298.85,
          "volume": 20291
        },
        {
          "time": 1782823735,
          "open": 21298.85,
          "high": 21325.71,
          "low": 21270.58,
          "close": 21303.73,
          "volume": 14287
        },
        {
          "time": 1782824035,
          "open": 21303.73,
          "high": 21347.09,
          "low": 21303.18,
          "close": 21345.42,
          "volume": 24163
        }
      ]
    }
  },
  "market_quote": {
    "status": 404,
    "data": {
      "detail": "Not Found"
    }
  },
  "signal": {
    "status": 405,
    "data": {
      "detail": "Method Not Allowed"
    }
  },
  "risk": {
    "status": 405,
    "data": {
      "detail": "Method Not Allowed"
    }
  },
  "ai_consensus": {
    "status": 200,
    "data": {
      "success": true,
      "result": {
        "signal": "BUY",
        "confidence": 0.0,
        "reason": "Consensus: BUY",
        "models": [
          {
            "model": "deepseek",
            "signal": "HOLD",
            "confidence": 0.0,
            "reason": "DeepSeek unavailable",
            "latency_ms": 0.0,
            "error": "Error code: 401 - {'error': {'message': 'Authentication Fails, Your api key: ****_key is invalid', 'type': 'authentication_error', 'param': None, 'code': 'invalid_request_error'}}"
          },
          {
            "model": "gpt",
            "signal": "HOLD",
            "confidence": 0.0,
            "reason": "GPT unavailable",
            "latency_ms": 0.0,
            "error": "Error code: 401 - {'error': {'message': 'Incorrect API key provided: your_ope*******_key. You can find your API key at https://platform.openai.com/account/api-keys.', 'type': 'invalid_request_error', 'param': None, 'code': 'invalid_api_key'}}"
          },
          {
            "model": "gemini",
            "signal": "HOLD",
            "confidence": 0.0,
            "reason": "Gemini unavailable",
            "latency_ms": 0.0,
            "error": "No module named 'google'"
          },
          {
            "model": "claude",
            "signal": "HOLD",
            "confidence": 0.0,
            "reason": "Claude unavailable",
            "latency_ms": 0.0,
            "error": "Error code: 401 - {'type': 'error', 'error': {'type': 'authentication_error', 'message': 'invalid x-api-key'}, 'request_id': 'req_011CcZV4Gzbbc6WBWsLCk7n4'}"
          },
          {
            "model": "llama",
            "signal": "HOLD",
            "confidence": 0.0,
            "reason": "Llama unavailable",
            "latency_ms": 0.0,
            "error": "Error code: 401 - {'error': {'message': 'Invalid API Key', 'type': 'invalid_request_error', 'code': 'invalid_api_key'}}"
          }
        ],
        "symbol": "NIFTY",
        "timestamp": 1782824338.8965237
      },
      "consensus": "BUY",
      "confidence": 0.0,
      "reason": "Consensus: BUY",
      "signals": [
        {
          "model": "deepseek",
          "signal": "HOLD",
          "confidence": 0.0,
          "error": "Error code: 401 - {'error': {'message': 'Authentication Fails, Your api key: ****_key is invalid', 'type': 'authentication_error', 'param': None, 'code': 'invalid_request_error'}}"
        },
        {
          "model": "gpt",
          "signal": "HOLD",
          "confidence": 0.0,
          "error": "Error code: 401 - {'error': {'message': 'Incorrect API key provided: your_ope*******_key. You can find your API key at https://platform.openai.com/account/api-keys.', 'type': 'invalid_request_error', 'param': None, 'code': 'invalid_api_key'}}"
        },
        {
          "model": "gemini",
          "signal": "HOLD",
          "confidence": 0.0,
          "error": "No module named 'google'"
        },
        {
          "model": "claude",
          "signal": "HOLD",
          "confidence": 0.0,
          "error": "Error code: 401 - {'type': 'error', 'error': {'type': 'authentication_error', 'message': 'invalid x-api-key'}, 'request_id': 'req_011CcZV4Gzbbc6WBWsLCk7n4'}"
        },
        {
          "model": "llama",
          "signal": "HOLD",
          "confidence": 0.0,
          "error": "Error code: 401 - {'error': {'message': 'Invalid API Key', 'type': 'invalid_request_error', 'code': 'invalid_api_key'}}"
        }
      ],
      "symbol": "NIFTY"
    }
  },
  "strategy_list": {
    "status": 404,
    "data": {
      "detail": "Not Found"
    }
  },
  "history_all": {
    "status": 200,
    "data": {
      "success": true,
      "total": 0,
      "limit": 100,
      "offset": 0,
      "trades": []
    }
  },
  "websocket_endpoint": {
    "status": 404,
    "note": "WebSocket upgrade needed for full test"
  },
  "backtest_ema": {
    "status": 200,
    "data": {
      "symbol": "NIFTY",
      "strategy": "EMA",
      "total_trades": 4,
      "winning_trades": 1,
      "losing_trades": 3,
      "win_rate": 25.0,
      "win_rate_pct": 25.0,
      "net_profit": -543.73,
      "net_pnl": -543.73,
      "total_pnl": -543.73,
      "return_pct": -0.54,
      "max_drawdown": 0.64,
      "sharpe_ratio": -0.87,
      "cagr": -1.31,
      "initial_capital": 100000.0,
      "final_capital": 99456.27,
      "trades_list": [
        {
          "date": "2026-01-03",
          "side": "LONG",
          "entry": 23492.93,
          "exit": 23290.69,
          "qty": 1,
          "pnl": -202.24,
          "pnl_pct": -0.86
        },
        {
          "date": "2026-01-18",
          "side": "LONG",
          "entry": 23616.32,
          "exit": 23214.95,
          "qty": 1,
          "pnl": -401.37,
          "pnl_pct": -1.7
        },
        {
          "date": "2026-02-22",
          "side": "LONG",
          "entry": 23447.32,
          "exit": 23552.83,
          "qty": 1,
          "pnl": 105.52,
          "pnl_pct": 0.45
        },
        {
          "date": "2026-05-24",
          "side": "LONG",
          "entry": 22631.06,
          "exit": 22585.42,
          "qty": 1,
          "pnl": -45.64,
          "pnl_pct": -0.2
        }
      ]
    }
  },
  "indicator_rsi": {
    "status": 404,
    "data": {
      "detail": "Not Found"
    }
  },
  "mismatches": [
    {
      "id": "MM-01",
      "field": "realized_pnl / total_pnl / win_count",
      "page": "Dashboard",
      "paper_value": 3327.33,
      "dashboard_value": 0.0,
      "root_cause": "dashboard_service.py fetches PnL from broker API (Angel One), which is disconnected. Paper engine PnL is stored in PaperEngine._account (in-memory singleton) but dashboard_router never reads from it.",
      "affected_files": [
        "app/dashboard/dashboard_service.py",
        "app/dashboard/dashboard_router.py"
      ],
      "fix": "In dashboard_router.py GET /dashboard/, add paper engine account to response when broker is offline: merge paper_engine.get_account() into the pnl section."
    }
  ],
  "summary": {
    "total_trades_attempted": 100,
    "trades_success": 100,
    "trades_fail": 0,
    "paper_final": {
      "total_capital": 100000.0,
      "available_capital": 103327.33,
      "invested_amount": 0,
      "realized_pnl": 3327.33,
      "unrealized_pnl": 0,
      "total_pnl": 3327.33,
      "open_positions": [],
      "trade_count": 58,
      "win_count": 58,
      "loss_count": 0,
      "win_rate": 100.0
    },
    "dashboard_pnl": {
      "realized_pnl": 0.0,
      "unrealized_pnl": 0.0,
      "total_pnl": 0.0,
      "total_charges": 0.0,
      "net_pnl": 0.0,
      "winning_trades": 0,
      "losing_trades": 0,
      "win_rate_pct": 0.0
    },
    "mismatches_found": 1,
    "test_time": "2026-06-30T18:28:59.010383"
  }
}