Zerodha contract notes · FY2023 – FY2027 to date · second pass
Every contract note in the account was parsed, reconciled against the broker's own figures, rebuilt into positions, and then joined to what the market actually did on each of those 1,050 days. Four findings survived testing. Two earlier ones did not, and are retracted below.
Rebuilt daily P&L was checked against the broker's pay-in/pay-out obligation on all 1,058 contract notes, then again against the net-amount line. Both routes agree to ₹0.00 across the full period.
realised equity, cumulative
ranked by money at stake
Measuring every short option by how far out of the money it was sold — premium as a percentage of the strike, so NIFTY and SENSEX are comparable — produces the sharpest gradient in the whole book.
| Sold at | Positions | Premium sold | Actually kept | Win rate |
|---|---|---|---|---|
| Far OTM — under 0.05% of strike | 4,313 | ₹29.3 cr | ₹4.49 cr — 15.3% | 74% |
| Nearer the money — over 0.05% | 3,246 | ₹59.3 cr | ₹1.32 cr — 2.2% | 53% |
67% of all premium sold produces 23% of the profit, at a win rate barely better than a coin toss. The gradient holds inside every days-to-expiry bucket and inside NIFTY, SENSEX and BANKNIFTY separately, so it is neither an expiry-day effect nor an artefact of SENSEX options costing more in rupees.
Selling closer to the money feels like earning more premium. Over four years it collected twice the premium and kept a third as much of it.
Joining daily P&L to what NIFTY actually did reveals a single, stable exposure. 67.5% of all premium he sells is calls — every year, peaking at 85% in FY25. The account is structurally short delta.
The 154 days on which NIFTY rose more than 0.75% — 15% of the sample — cost ₹1.14 crore. Every other market condition made money, including sharp falls, which are his best days of all. Down days average ₹84,164; up days average ₹22,461.
| Overnight gap | Days | Total P&L | Average | Win rate |
|---|---|---|---|---|
| Gap down over 1% | 28 | ₹55.8 L | ₹1.99 L | 86% |
| Flat open | 734 | ₹4.73 cr | ₹64,501 | 78% |
| Gap up over 1% | 30 | −₹45.0 L | −₹1.50 L | 37% |
The damage arrives overnight. On a gap-up day the loss is set before the market opens, which means no stop-loss and no intraday skill can reach it. This is a position-sizing and strike-selection problem, not an execution problem.
Grouping positions into 1,684 campaigns (one index, one expiry, one entry day — so a spread is never split from its hedge) and sorting by size: nine of ten deciles make money, the largest loses ₹73.7 lakh. Win rate erodes from 89% to 57%.
Not one bad year: the top 5% of campaigns lost money in four of five years. Capping campaign size at his own 85th percentile — still taking every trade, just smaller — would have added ₹55 lakh (+10.1%) and halved the worst campaign loss from ₹19.2 lakh to ₹7.7 lakh. It is not free: in FY25, when the big bets worked, the cap would have cost ₹12.8 lakh.
Sorted naively, buying options looks like a disaster: 1,038 long positions, an 18.2% win rate, ₹28.2 lakh lost. But 96% are opened the same day, same index and same expiry as a short position, and 87% sit further out of the money than the short strike. They are the protective wing of a credit spread.
| Long option positions | Count | P&L | Win rate |
|---|---|---|---|
| Paired with a short — the hedge wing | 998 | −₹65.1 L | 17.1% |
| Standalone directional buys | 40 | +₹36.9 L | 45.0% |
Their ₹65 lakh cost is about 11% of gross short profits — the premium paid to stop a bad day becoming an unlimited one. Cutting them would have been the single most dangerous recommendation available. The 40 standalone buys, meanwhile, made money: they are what produced his best days of March 2026.
news joined to the tradebook
Every large day in this account is a market event, not a trading decision. The pattern is the same one Finding 2 describes: he is paid for falls and punished by rallies.
| Date | P&L | NIFTY | What happened |
|---|---|---|---|
| 28 Mar 2024 | −₹22.1 L | +0.92% | His worst day, and the market barely moved. Monthly expiry: short calls at 22300–22500 while NIFTY ran intraday to 22,516. Sold at ₹16.8, bought back at ₹41.4. A short-gamma squeeze, not a market crash. |
| 3 Feb 2026 | −₹16.5 L | +2.55% | India–US trade pact confirmed, tariffs cut from 50% to 18%. Gapped up 4.86%. He was short the 25500 call, sold at ₹5, bought back at ₹260 — a 52× move on ₹35,100 of premium collected. |
| 8 Apr 2026 | −₹11.5 L | +3.78% | RBI policy day. Repo held at 5.25%; SENSEX posted its biggest single-day gain in six years and VIX fell 20%. A scheduled event, known weeks ahead. |
| 12 May 2025 | −₹7.2 L | +3.82% | India–Pakistan ceasefire agreed on the Saturday, plus a US–China tariff deal. Biggest single-day gain in four years. The move happened over a weekend — nothing could be done at the open. |
| 16 Mar 2026 | +₹12.2 L | +1.11% | Mid-selloff volatility, VIX above 21. Made on long options — a standalone directional bet, not the usual short book. |
| 4 & 9 Mar 2026 | +₹21.0 L | −1.55%, −1.73% | Sustained FII selling, industrial production at a three-month low, NIFTY breaking its 200-day average to a seven-month low. VIX jumped 23% and 18%. His two best days of the year, again long options. |
| 17 & 23 Jan 2024 | +₹13.8 L | −2.09%, −1.77% | A sharp two-week drawdown in the index. The short book performed exactly as designed. |
Three of the four worst days were rallies, and one of those was a scheduled RBI meeting. The tail risk in this account has a shape, a direction, and in some cases a date in the diary.
from findings to decisions
Nothing here predicts the market, and nothing needs to. Three of the four findings are entirely inside their own control and decidable at the moment of the order — how big, how far out, how balanced — and the fourth, the event calendar, is published in advance. That is what a decision tool should act on.
vollib
library (MIT, no network) — no paid data feed required.The pitch to a sceptical trader is not “the computer knows the market.” It is “this is your own experience, 8,826 trades of it, made answerable in two seconds at the moment you need it.”
$ python3 morning_brief.py --asof 2026-02-02 # the night before the trade pact
BOOK GREEKS delta -Rs 20,561 per +1% move (hurt by a rally)
theta +Rs 26,402 per day vega -Rs 3,754 per +1 VIX point
GAP SCENARIOS +2% gap -> NIFTY 25,590 -> effect -Rs 9.11 L <-- gap-up risk
CALENDAR !! 3 positions EXPIRE tomorrow
READ CAUTION - a 2% gap up costs -Rs 9.11 L. Size accordingly.
( NIFTY gapped +2.5% on the India-US trade pact; the book lost Rs 16.5 L )
| Trap | What it did | Scale |
|---|---|---|
| Blank rows inside the trade block | Truncated the day at the first gap | 1,797 trades lost |
| Futures booked at full notional | Invented a ₹1.9 crore profit day | 10 days, ₹1.87 cr swing |
| Expiry settlements stamped 00:00:00 | Sorted to the front of the day, inverting long/short | 612 positions, ₹1.06 cr |
The third is why Finding 4 exists. Before the fix, buying options looked profitable. After it, catastrophic. Only the hedge test showed what it actually was.