Derivatives and turnover: methods
Code: pipeline/tipsheet/compute/derivatives.py, pipeline/tipsheet/publish/derivatives.py. Tests: pipeline/tests/test_derivatives.py.
What we measure
How much trading happens in Indian equities, and how much of it is in derivatives rather than shares.
- Cash-market turnover. The value of shares traded on NSE’s equity cash segment each month, and the average per session.
- F&O notional turnover by product. Index futures, index options, stock futures and stock options (plus India VIX futures, which barely trade). For options, notional turnover values every contract at strike price times lot size. It is a measure of exposure traded, not of money that changed hands.
- Option premium turnover. The premium actually paid for options, by index and stock options.
- Options share of premium-basis turnover. NSE also reports a “premium-basis” F&O total: futures turnover plus option premium. The options share is option premium divided by that total.
- Premium-to-cash ratio. NSE’s premium-basis F&O turnover divided by cash-market turnover.
- Option-premium-to-cash ratio. Option premium alone divided by cash-market turnover. Futures make up 63-98% of the premium-basis total over 2015-2026, so the plain premium-to-cash ratio mostly tracks futures. The option-only ratio is the better gauge of speculative option trading. We publish both and quote both in stat bundles.
- Turnover to market cap, annualised. Average daily cash turnover times 250 sessions, divided by NSE’s month-end market capitalisation, in per cent. It says how many times a year the market’s value changes hands.
- Put/call ratios. NSE’s daily put/call ratios for index options, stock options and all F&O. The monthly figure is the mean of the month’s daily values.
All money is in Rs crore. Ratios are plain multiples unless the column name ends in _pct.
Source
NSE’s “Business growth” historical APIs, collected by the Data bank as nse_business_growth_history (segments cm for the equity cash market and fo for equity derivatives). We read monthly and daily rows. The Data bank stores both NSE’s displayed value and a value normalised to rupees; we use the normalised value and divide by 10 million.
Start dates and why
| Series | Starts | Why |
|---|---|---|
| Cash turnover, average daily turnover, market cap, turnover/market cap | Apr 1999 | NSE serves no cm monthly rows before then. |
| Cash turnover, daily | 30 Mar 2011 | NSE’s cm daily API starts there. |
| F&O notional turnover, put/call ratios | Apr 2009 | NSE serves no equity-derivatives history before Apr 2009 on these APIs, although F&O trading began in 2000. Earlier months were probed and came back empty. |
| Option premium, premium-basis total and every ratio built on them | Apr 2015 | NSE published option premium only from Apr 2015. Before that its premium-basis total equals futures turnover alone, so we withhold it rather than show a false jump. |
Every bundle carries these in meta.starts and meta.start_rule.
Known source defects and how we handle them
- Missing cm daily sessions. NSE’s cm daily series omits sessions that its monthly rows count: 1 and 15 Apr 2011; 5, 9, 10 and 27 May 2011; 22 Nov 2021; and 7, 8, 9, 11 and 14 Aug 2023. Monthly cash totals therefore always come from the monthly rows, never from summed days. Daily ratios are blank on missing sessions.
- 13 Jun 2025 cm daily is column-shifted. The trade count equals the securities count (2,992) and the turnover column holds another field. We drop any cm daily row whose trade count is not larger than the number of securities traded, and we also list this session explicitly. The result is the same whether or not the Data bank has already removed the row.
- NSE’s own average daily cash turnover is wrong in two months. For Apr 2017 NSE divides by 22 sessions instead of 18 (its own trading-day count), which understates the average by 22%; Jun 2017 is 5% low. We recompute the average as monthly turnover divided by trading days.
- Demat securities traded, Jan-Mar 2025. NSE’s monthly column repeats the trade count. We do not use this field.
- Put/call ratio -99. NSE’s “not available” marker (seen once, F&O total on the 7 Nov 2018 Muhurat session). It is dropped, never averaged.
Checks on the real data (1 Oct 2026 snapshot)
- F&O monthly rows against summed daily rows: identical in every month from Apr 2009 to Sep 2026 for notional turnover, premium-basis turnover and index-option premium (largest difference 0.000%). For example Apr 2009: 11,43,362 crore both ways over 17 sessions; Sep 2026: 47,47,29,354 crore over 21 sessions.
- Cash monthly against summed daily: matches to 0.00001% in complete months. It differs only where NSE’s daily series is missing sessions (Apr 2011 -11.7%, May 2011 -17.0%, Nov 2021 -5.6%, Aug 2023 -21.6%), in Mar 2011 (daily data starts on the month’s last day) and in Jun 2025 (-4.4%, the dropped 13 Jun session).
- Premium-basis identity: futures turnover plus option premium equals NSE’s premium-basis total in every month from Apr 2015.
Caveats
- The latest month can be month-to-date. Bundles carry
latest_month_complete. Ratios are fair mid-month; levels are not. - Notional option turnover is huge and moves with option moneyness and expiry structure, not with risk taken. Read it alongside premium.
- The premium-to-cash ratio fell from about 3 in 2015-16 to about 1.4-1.5 in 2026 while option speculation rose, because futures turnover shrank relative to cash. That is why we also publish the option-only ratio, which rose from under 0.1 to a peak of 1.31 in Mar 2023 and was 0.45 in Sep 2026.
- Single-session ratios swing with expiry days. The daily bundle adds 20-session versions (
*_20d) built from 20-session sums of both sides. - Turnover to market cap uses 250 sessions a year as the annualising constant and month-end market cap. Using average market cap over the month would change it slightly in volatile months.
- NSE only. BSE’s derivatives turnover (large again since 2023) is not included, so these are NSE figures, not all-India totals.
- Monthly rows are dated by the month’s last trading session; before 2009, when no daily rows exist, by the calendar month end.