Strike Desk The Model The Audit
The the account holder Tradebook Audit

Zerodha contract notes · FY2023 – FY2027 to date · second pass

What four years of trades say that a P&L statement cannot

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.

Account a private trading account 1,054 trading days243,018 trades 8,826 positions1 Apr 2022 → 17 Aug 2026
RECONCILED

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.

Net P&L
₹5.39 cr
after all charges
Winning days
72.3%
realised basis
Sharpe
4.26
annualised
Max drawdown
₹34.9 L
6.4% of final equity
Costs
4.2%
₹23.8 L of gross

Corrections to the first version of this analysis

  • Daily P&L was originally built from the cash line — premium received on positions still open, which is not profit. On 4 Mar 2026 that showed ₹23.4 L; only ₹11.2 L was earned. Everything daily is now on a realised basis. The four-year total is unaffected.
  • Retracted: “the top 100 days are 106% of profit, the other 90% of days lose money.” On the corrected basis the top 100 days are 60.8%. The book is far broader than that claim implied.
  • Retracted: “complacency after winning days.” Corrected, the day after a win and the day after a loss have identical medians (₹50,010 vs ₹53,707) and identical win rates (72%). There is no effect.

The account

realised equity, cumulative

20232024 20252026
Realised P&L after costs. A profitable, disciplined book — the findings below are about making a good process better, not fixing a broken one.

Findings

ranked by money at stake

1₹4.4 cr
Decidable before the trade

Two thirds of the premium he sells earns almost nothing

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 atPositionsPremium soldActually keptWin rate
Far OTM — under 0.05% of strike4,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.

2₹1.14 cr
Structural risk

The book is short the market, and a rally is what breaks 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.

+57Lfall>1.5%37d · 76% win+100Lfall0.75-1.5%108d · 79% win+163Lfall0.25-0.75%205d · 84% win+197Lflat±0.25%304d · 77% win+139Lrise0.25-0.75%242d · 70% win-45Lrise0.75-1.5%116d · 52% win-68Lrise>1.5%38d · 34% win
Realised P&L by the size of the day's NIFTY move, with day count and win rate. Every bucket earns except the two on the right.

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 gapDaysTotal P&LAverageWin rate
Gap down over 1%28₹55.8 L₹1.99 L86%
Flat open734₹4.73 cr₹64,50178%
Gap up over 1%30−₹45.0 L−₹1.50 L37%

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.

3₹55 L
Decidable before the trade

The biggest trades are the only losing trades

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

+14D189%+37D284%+46D380%+59D479%+74D578%+95D674%+134D778%+117D876%+64D966%-74D1057%
Campaign P&L in ₹ lakh by size decile, win rate beneath each bar.

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.

4Do not act
Contradicts the raw numbers

The loss-making option buys are insurance, not mistakes

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 positionsCountP&LWin rate
Paired with a short — the hedge wing998−₹65.1 L17.1%
Standalone directional buys40+₹36.9 L45.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.

The days that mattered, and why

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.

DateP&LNIFTYWhat 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.

What to build

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.

  1. Pre-trade check — built, working todayDescribe the order you are about to place; it finds every comparable trade in your own 8,826 and reports what happened. Run against the 3 Feb 2026 trade before it was placed, it returns: median ₹11,658, worst −₹17.93 lakh, and a loss ladder showing a 50× move costs ₹17.2 lakh against ₹35,100 collected. The trade lost ₹17.9 lakh.
  2. Morning exposure brief — built, with live greeksBefore the open, on the live book: its net delta, theta and vega in rupees (Black-Scholes, India VIX as implied vol), what a 1% and 2% overnight gap does to it valued with time included (the part no stop-loss can reach), whether today is a scheduled event, and the win rate in today's VIX regime. Run on the book he carried into 3 Feb 2026, it flags — the night before — that the book was short delta despite being 82% short puts (the near-expiry short call dominated), that a 2% gap up costs ₹9.1 lakh, and that the positions expire tomorrow. NIFTY gapped 2.5% on the trade pact; that book lost ₹16.5 lakh. Greeks come from the open-source vollib library (MIT, no network) — no paid data feed required.
  3. Size governorOne number, checked at order time: campaign premium against the P85 cap. Worth ₹55 lakh over four years, and it needs no forecast of anything.
  4. Rule tester — builtAny proposed rule replayed against the real history before money is risked. It has already killed three plausible ideas that would have cost ₹77 lakh, ₹2.4 crore and ₹1.9 crore respectively.

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 )

What this cannot tell you

  • It only sees trades that were taken. Nothing here can price the trade that was considered and skipped, which may be where the real skill lives.
  • The counterfactuals assume everything else stays the same. Capping size frees margin that might have been deployed elsewhere; scaling is linear and ignores slippage at larger sizes.
  • Four years is roughly 1,684 independent decisions, not 243,018. The size and moneyness findings are strong because they hold across years, indices and expiry buckets; treat any single-year effect as noise.
  • Base rates are not forecasts. The pre-trade check reports what happened in similar past trades. It cannot know that today is the day the trade pact lands.
  • 52 contracts (0.9%) never netted to zero — short options left to expire, treated as expiring worthless, matching the settlement rows the broker booked.
  • Monthly expiry dates are approximated as the last Thursday of the month, missing the 2025 exchange changes. Affects days-to-expiry buckets, never P&L.

Three traps found in the data itself

TrapWhat it didScale
Blank rows inside the trade blockTruncated the day at the first gap1,797 trades lost
Futures booked at full notionalInvented a ₹1.9 crore profit day10 days, ₹1.87 cr swing
Expiry settlements stamped 00:00:00Sorted to the front of the day, inverting long/short612 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.