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
- 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. 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.