Understand margin components

The utilised block in the margins response breaks down *why* your cash is blocked. Understanding each field matters once you trade F&O, where margin requirements dwarf equity delivery trading.

"utilised": {
  "span": 32500.0,        # SPAN margin — exchange-mandated, covers worst-case
                            # 1-day loss on a futures/short-options position
  "exposure": 8125.0,      # additional buffer margin on top of SPAN
  "option_premium": 0.0,   # premium paid for long option positions
  "debits": 40625.0,       # total blocked = span + exposure + premium + charges
  "m2m_realised": -450.0,  # booked profit/loss from squared-off positions today
  "m2m_unrealised": 1200.0,# mark-to-market on still-open positions
}

The two numbers that decide if your next order goes through

  1. SPAN + exposure — required to *open* a futures or short-options position. The broker computes this using the exchange's SPAN risk model; you can estimate it beforehand with the broker's margin calculator API (kite.order_margins() — covered alongside order placement in chapter 78) rather than guessing.
  2. m2m_unrealised — a losing open position reduces your *available* margin in real time, even before you close it. This is how accounts get margin calls: a position moves against you, available margin drops, and a *new* order that would have been fine an hour ago now gets rejected — or worse, the broker's risk management system (RMS) force-squares-off an existing position to protect itself.

Practical takeaway

Never size a new F&O position off available.cash alone. Call kite.order_margins() (chapter 78) to get the actual SPAN+exposure requirement for the specific instrument and quantity you intend to trade, and compare that against current available margin with headroom to spare — not exactly at the limit.

Next: 015 — Get holdings (demat, T+1+)