Methodology
Exactly how every number and every curve on this site is produced — and precisely where each stops being reliable.
The engine
One file, volcharts.js, contains every piece of mathematics on this site: the standard normal distribution, Black–Scholes–Merton pricing, vega, theta, delta and gamma, an implied-volatility solver, the realised-volatility estimators, and the SVG generators that draw all 73 diagram types. The build script imports it to pre-render the diagrams into the HTML; the browser loads the identical file to run the calculators. There is no second implementation and therefore no way for a calculator to disagree with a page.
The pricing model
Black–Scholes–Merton for a European option, with a risk-free rate of 6.5% as an Indian rupee proxy and a dividend yield of zero. NIFTY and BANKNIFTY index options are European and cash-settled, so the exercise style is correct and the zero dividend yield is appropriate for a price index. Single-stock options in India are American-style and physically settled; this model does not capture either, and the pages that discuss single stocks say so.
How implied volatility is solved
By bisection on the interval from 0.01% to 500% volatility, to a tolerance of 1e-8, never by Newton–Raphson. Newton divides by vega, and vega collapses toward zero for deep out-of-the-money options and for options close to expiry, at which point Newton diverges or returns nonsense. Bisection cannot: the Black–Scholes price is strictly increasing in volatility, so a sign change always brackets exactly one root. It is slower, and at these sizes that is irrelevant. Where a quoted premium lies outside the range the model can produce — below intrinsic value, or above the price at 500% volatility — the solver returns no answer rather than a wrong one, and the calculator says so.
Conventions, and one deliberate inconsistency
- Volatility is annualised using 252 trading days, because a market that is closed does not move. Historical volatility is the sample standard deviation (n−1 denominator) of daily log returns, multiplied by √252.
- Time to expiry inside a pricing formula is in years measured as calendar days ÷ 365, because interest accrues on weekends.
- Those two conventions are inconsistent with each other, deliberately, and they are what every desk uses. It is also the single most common reason a reader's spreadsheet disagrees with our arithmetic by a percent or two.
- Vega is per one percentage point of implied volatility. Theta is per calendar day. Both are per unit of the underlying.
- Expected move uses calendar days ÷ 365, not trading days, because the option expires on a calendar date.
- Lot sizes: NIFTY 75, BANKNIFTY 30 at the time of writing. NSE revises these periodically, and no arithmetic on this site depends on them being current.
- All figures exclude brokerage, STT, exchange transaction charges, stamp duty, SEBI turnover fees and GST.
The illustrative series
Charts that show volatility over time are generated from a seeded pseudo-random generator: mulberry32 for uniforms, Box–Muller for normals, geometric Brownian motion for prices, and an Ornstein–Uhlenbeck process for volatility paths. The seed is fixed, so the build is byte-reproducible — the same data always emits the same SVG. Using a mean-reverting process for volatility is not decoration: clustering and mean reversion are the two stylised facts the regime pages describe, so the pictures are consequences of the model rather than drawings of what we wish were true. These series are teaching scenarios. They are not historical data, they are not backtests, and they are not forecasts.
Where this model is wrong
Black–Scholes assumes volatility is constant across strike and time, that the underlying moves continuously without jumps, that hedging is continuous and costless, and that returns are lognormal. Every one of those is false, and this site is in large part a catalogue of the consequences. Volatility is not constant across strike — that is the smile and the skew. It is not constant across time — that is the term structure. The market gaps, so hedging is discrete and the residual is real risk. And returns have fat tails, so the model systematically understates the probability of the moves that matter most. Our Greek curves are directionally right and quantitatively approximate. They understate the danger of short-gamma positions near expiry.
Worked examples
NIFTY and BANKNIFTY examples use realistic round numbers — typically a spot of 24,000 and an at-the-money implied volatility near 13% — to show how a reading is interpreted. They are teaching scenarios, not live quotes, not backtests and not trade calls. No example on this site claims a strategy made money, and no page reports any strategy's historical win rate, because a win rate quoted without the distribution of losses is a misleading number, and short-volatility strategies have exactly the loss distribution that makes it misleading.
Reproducibility
The site is generated by a dependency-free Node script from plain data files. Given the same data it emits byte-identical HTML and SVG. Nothing is fetched at runtime. The build fails, rather than warns, if any page violates its content invariants — fewer than twenty FAQs, a missing formula variable definition, a broken internal link, or a banned superlative. See Sources.
Last updated 10 July 2026.