Every number in this implied-volatility walkthrough reproduces exactly; the 16-line script it ships has no failure branch, so a price outside its 0-to-100-percent bracket makes it print a wrong answer and exit cleanly
Watch on TikTok
A 117.98 s vertical clip, 1080x1920 at 9:16, SDR, in a QuickTime/MP4 container (mov,mp4,m4a,3gp,3g2,mj2) carrying HEVC Main video (hvc1, 30/1 fps, 3,539 frames, 168,890 bps) and HE-AACv2 audio (mp4a, 44.1 kHz stereo, 64,088 bps, 2,544 frames), 3,534,301 bytes at an overall 239,654 bps, format id bytevc1_1080p_239652-1; posted at epoch 1792842196, which is 2026-10-24T11:43:16+00:00, by quantfinancetogo (uploader id 7683513173584036886, channel nickname "QuantFinanceToGo"), credited to Originalton by QuantFinanceToGo, with a 1,638-character description that pre-discloses every illustration in the clip; at the capture time of the metadata file, 2026-10-26 00:13:07 local, the counters read 34,700 views, 2,509 likes, 32 comments, 222 reposts and 1,371 saves. I read 19 of the 59 extracted frames at 2 s spacing: 001, 003, 004, 006, 009, 012, 016, 021, 026, 030, 033, 037, 041, 043, 045, 049, 053, 057 and 059, which is frame_NNN at roughly (NNN-1) x 2 seconds. The transcript is 384 words across 43 Whisper segments. The deck is one static layout: an orange QUANT FINANCE FROM SCRATCH header with PART 31 at the right, the title Implied Volatility, the subtitle reading the formula backwards, an episode strip from 18 to 31 with 31 boxed, a chart card, a section label, a mock editor titled impliedvol.py, and the footer formula values from our run · education only · not financial advice. Frame 001 is the preview card: C(S, K, r, t, σ) = $12 with a σ = ? chip, a 3D surface axed strike K by expiry T by implied vol with a red protection corner, a call-price curve annotated market $12, and the caption surface: illustration, not market data; search: our test run. Frame 003 overlays a KEY IDEA / Implied Volatility card. Frame 006 shows C = S N(d₁) − K e⁻ʳᵗ N(d₂) and d₁ = (ln(S/K) + (r + σ²/2) t) / (σ √t) above five tiles, S $100, K $100, r 5 %, t 1 year each labelled look up, and σ ? labelled unknown. Frame 012 plots simulated price paths under the fifth input: σ with the callouts nobody can look it up and σ = 30 %? and the caption past path and future paths simulated (seeds 31 and 3131); the spread of the future is unknown. Frame 016 draws crossing supply and demand lines meeting at $12.00 over number of options traded. Frame 021 shows C(100, 100, 0.05, 1, σ) = 12 with the chip σ = 24.1 % on the price curve and the caption the call price rises with σ, so each price gives exactly one σ. Frame 030 starts the search table at 1 50.0 % $21.79 too high; frame 033 completes all ten rows ending 10 24.12 % $12.00 fits under the banner a $12 call: implied vol 24.1 %. Frame 037 draws implied vol against strike from 60 to 140, falling monotonically from about 36 % to about 21 %, marked our call 24.1 % and strike 130: 21.2 %, captioned illustration in the shape typical for index options, not market data; anchored at our run. Frame 041 adds implied vol, strike 100 against expiry T in years, rising across 0 to 2 years with the label 0.7 years: 23.6 %. Frame 043 is the 3D surface titled the implied volatility surface, flanked by smile: one expiry and one strike over time. Frames 045 and 049 compare a one-standard-deviation cone at implied 24.1 % against a dashed cone at historical 18.4 %, with no options? use historical. Frame 053 strikes through part 30: σ → formula → price and replaces it with in practice: price → formula → σ = 24.1 %, and frames 057 and 059 close on option price $12 → formula backwards → σ = 24.1 %. No terminal, shell prompt, stdout pane or python impliedvol.py invocation appears in any frame I read; the editor chrome reads python · running in frames 001 and 003, and the ten-row table is a rendered chart panel, not captured program output. The spoken argument is that four Black-Scholes inputs are observable and the fifth is not, so traders set the option price through supply and demand, and the formula gets inverted numerically to recover the volatility that reproduces that price. The last Whisper segment, Catch a few seconds., is timestamped 116.36 s to 141.40 s against 118.02 s of audio and carries an avg_logprob of -2.835 while every preceding segment sits at -0.169; it runs 23.4 s past the end of the audio and I treat it as hallucinated and quote none of it. Every other segment ends at or before 116.36 s and is genuine.
The ten-row search table on screen reproduces exactly when the script is run
Frame 033 at roughly 64 s shows the complete bisection trace as step / try σ / price: 1 at 50.0 % giving $21.79 too high, 2 at 25.0 % giving $12.34 too high, 3 at 12.5 % giving $7.68 too low, 4 at 18.75 % giving $9.98 too low, 5 at 21.88 % giving $11.16 too low, 6 at 23.44 % giving $11.75 too low, 7 at 24.22 % giving $12.04 too high, 8 at 23.83 % giving $11.89 too low, 9 at 24.02 % giving $11.97 too low, and 10 at 24.12 % giving $12.00 fits.
I transcribed the 16 lines verbatim from frames 001, 033 and 037 and ran them unmodified:
from math import erf, exp, log
N = lambda x: .5 + erf(x / 2 ** .5) / 2 # normal
S, K, r, t = 100, 100, .05, 1 # four known inputs
def call(s): # Black and Scholes, volatility s
v = s * t ** .5
d1 = (log(S / K) + (r + s * s / 2) * t) / v
return S * N(d1) - K * exp(-r * t) * N(d1 - v)
market = 12 # the price paid on the market
lo, hi = 0, 1 # volatility between 0 and 100 %
for step in range(1, 60): # bisection search
s = (lo + hi) / 2; c = call(s) # the middle
print(step, round(s, 5), round(c, 4))
if abs(c - market) < .005: break # it fits
if c > market: hi = s # too expensive
else: lo = s # too cheap
print('implied volatility', round(s, 4))
The run prints 1 0.5 21.7926, 2 0.25 12.336, 3 0.125 7.6838, 4 0.1875 9.9824, 5 0.21875 11.1557, 6 0.23438 11.7452, 7 0.24219 12.0405, 8 0.23828 11.8928, 9 0.24023 11.9666, 10 0.24121 12.0036, then implied volatility 0.2412. Every row matches the panel to the displayed precision, including the sign of each too high and too low verdict. The code is correct Black-Scholes: line 2 implements the standard normal CDF as 0.5 + erf(x/√2)/2, line 5 computes σ√t, line 6 computes d₁, and line 7 passes d1 - v as d₂, which is the identity shown in frame 026 as d₂ = d₁ − σ √t.
Solving to full precision with a 200-step bisection on the same function gives 0.24111689. The spoken figure at 100.08 s, "a call costing $12 implies a volatility of 24.1%", is correct to the stated decimal. The script's printed 0.2412 is 0.0000831 above the true root, inside the 2⁻¹⁰ = 0.000977 bound that ten bisection steps on [0, 1] guarantee. The attribution is right too: the formula is Fischer Black and Myron S. Scholes, "The Pricing of Options and Corporate Liabilities", Journal of Political Economy volume 81, issue 3, May-June 1973, pages 637-654.
The script silently returns a wrong answer when the price falls outside its own bracket
Line 9 hard-codes lo, hi = 0, 1, and the inline comment says # volatility between 0 and 100 %. Line 10 caps the loop at range(1, 60). There is no else clause on the loop and no check that the loop broke. If the tolerance on line 13 is never met, control falls out of the loop and line 16 prints whatever s happens to hold.
I ran the transcribed script against three prices outside the bracket. With the other four inputs unchanged, the Black-Scholes no-arbitrage lower bound for this call is S − Ke⁻ʳᵗ = 100 − 95.122942 = 4.877058, and the price at the bracket's upper end of σ = 100 % is 39.8402. At market = 4.0, which is below the lower bound and therefore has no solution at any volatility, the loop runs all 59 iterations and prints implied volatility 0.0. At market = 2.0 it does the same. At market = 44.0, which requires a volatility above 100 %, the loop runs out and prints implied volatility 1.0. In all three cases the program exits with status 0 and no warning.
This matters for anyone copying the snippet. A real options chain routinely contains quotes that violate the static bounds because of stale marks, crossed books or wide spreads, and single-name equity options frequently trade above 100 % implied volatility. The fix is small: widen the upper bracket, and raise an exception rather than printing when the loop ends without breaking. SciPy's brentq already enforces that pattern by requiring that "f(a) and f(b) must have opposite signs", so it refuses to start on a non-bracketing interval instead of quietly converging to a bracket endpoint.
The video does not claim robustness, and at 94.00 s it says only that "a computer tries values step-by-step until the price fits", which describes the happy path accurately. The gap is between that description and the behaviour the code exhibits when a reader points it at real quotes.
"After 10 steps the price fits to half a cent" holds for this run and is not a property of ten bisection steps
The description states: "After 10 steps the price fits to half a cent, and the implied volatility is 24.1 %." The half-cent figure is the literal break condition on line 13, if abs(c - market) < .005. At step 10 the price is 12.003555, so the residual is 0.003555 dollars, or 0.36 cents, and the break fires. That part is exact.
The generalisation does not follow. After ten bisection steps on an initial bracket of width 1, the midpoint is within 2⁻¹⁰ = 0.000977 of the root in volatility terms. The vega of this option at the solution is 37.81 dollars per unit of volatility, or 0.378 dollars per volatility point. Multiplying the guaranteed volatility bound by vega gives a worst-case price residual after ten steps of about 3.7 cents, roughly seven times the stated half cent. This run landed at 0.36 cents because the root sits near a dyadic midpoint of the starting interval. Changing only the market price to 30 dollars, the same script takes 12 steps and reports 0.7219. Anyone who reads "10 steps gives half a cent" as a rule and sizes an iteration budget from it will under-converge on other strikes.
The curve drawn across strikes is a skew, and the on-screen label calls it a smile
Frame 037 at roughly 72 s plots implied volatility against strike from 60 to 140 for a fixed one-year expiry. The curve falls monotonically from left to right, from about 36 % at strike 60 to about 21 % at strike 140, with the annotation strike 130: 21.2 % and a red protection band over the low strikes. Frame 043 at roughly 84 s puts a label reading smile: one expiry beside the same cross-section on the 3D surface, and the description repeats the word, calling the illustration "the smile, the expiry curve and the 3D surface".
The shape drawn carries a different name. Wikipedia's implied-volatility article states that the upturned-at-both-ends graph is where "the more familiar term 'volatility smile' is used", and that equity options display a downward slope, "described as a 'volatility skew' or 'half frown'", with "smirk" reserved for a skewed smile. The curve in frame 037 has no upturn at either end, so skew or smirk is the accurate label for it.
The underlying claim at 70.28 s is correct: "Options that protect against big swings, like a sharp fall, are in high demand, so they cost more and imply a higher volatility." The timing of that effect is specific and documented. Rubinstein (1994), followed by Jackwerth and Rubinstein (1996), established that S&P 500 index implied volatilities were approximately flat across strikes before October 1987 and steeply skewed afterwards; the Wikipedia volatility-smile article records the same point as "Equity options traded in American markets did not show a significant volatility smile before the Crash of 1987 but began showing one afterwards", attributed to "investor reassessments of the probabilities of fat-tail". The video presents the skew as a standing market feature without that date, which is a compression rather than an error, and the on-screen caption illustration in the shape typical for index options, not market data honestly discloses that the curve carries no observations.
The deck leaves one further point implicit. A non-flat implied-volatility surface is direct evidence that the model generating it is wrong. Black-Scholes assumes a single constant volatility, so if that assumption held, the surface in frame 043 would be a flat plane. The surface is the model's own residual, re-expressed in volatility units.
The second axis carries the same conditionality. Frame 041 plots implied vol, strike 100 against expiry T in years, rising from roughly 21 % near zero to roughly 25.5 % at two years, with one readable marker at 0.7 years: 23.6 % and the one-year point anchored at the run's 24.1 %. The voiceover at 76.40 s says "the market holds a whole range of expectations for the future volatility, one for each strike and each expiry date", which is correct. The direction of the slope is not fixed. Implied volatility mean-reverts strongly, so the term structure slopes up when short-dated variance sits below its long-run level, which is the normal state in quiet markets, and inverts when a shock pushes short-dated volatility above that level. The clip gives no visual hint that the curve can invert.
Bisection is the right teaching choice and the wrong production choice
The video's method is defensible for the purpose. Bisection needs only that the function change sign across the bracket and that it be continuous, it cannot overshoot, and it halves the interval every step whatever the function looks like. The video also states at 90.48 s the property that makes the inverse well defined: "the price always rises with the volatility". That is the positivity of vega, which the implied-volatility literature states as "The function f is monotonically increasing in σ, meaning that a higher value for volatility results in a higher theoretical value of the option." The caption on frame 021, the call price rises with σ, so each price gives exactly one σ, is the same statement. The claim at 88.18 s, "The volatility sits inside the formula in several places, so you cannot solve for it by hand", is right in the strict sense: sigma appears in d₁, in d₂ and in the normal CDF applied to both, and "In general, it is not possible to give a closed form formula for implied volatility in terms of call price."
What practitioners run is faster. SciPy's brentq "combines root bracketing, interval bisection, and inverse quadratic interpolation" and is described as "a safe version of the secant method that uses inverse quadratic extrapolation", with "convergence is guaranteed for functions computable within [a,b]", a default xtol of 2e-12 and a default maxiter of 100. That keeps bisection's safety while converging superlinearly. SciPy's newton is faster still per step but carries an explicit warning that "the stopping criterion used here is the step size and there is no guarantee that a root has been found", and "Consequently, the result should be verified"; it also falls back to the secant method when no derivative is supplied. The specialised answer for this exact problem is Peter Jäckel's "Let's Be Rational", wrapped for Python as lets_be_rational and used by py_vollib, which the project README describes as implying Black's volatility "with as little as two iterations to maximum attainable precision on standard (64 bit floating point) hardware for all possible inputs". Two iterations to full double precision against ten iterations to one basis point of volatility is the gap between the teaching version and the production version. The video never claims the script is production code.
The closing claim understates what implied volatility measures
The clip ends at 110.26 s with "An options price, run backwards through the formula, tells you how much the market expects the stock to swing until expiry", and frame 057 renders it as expected swing until expiry. Frames 045 and 049 draw the point as a one-standard-deviation cone at implied 24.1 % beside a narrower dashed cone at historical 18.4 %.
Implied volatility is an expectation under the risk-neutral measure, and that expectation sits systematically above the physical one. Carr and Wu, "Variance Risk Premiums", Review of Financial Studies volume 22, issue 3, 2009, pages 1311-1341, propose "to use the difference between the realized variance and this synthetic variance swap rate to quantify the variance risk premium", and they find that premium negative for all five stock indexes and most of the 35 individual stocks they study. A negative variance risk premium means the option-implied figure runs above subsequent realised variance on average, so the gap the video draws between 24.1 % implied and 18.4 % historical points in the direction the literature documents. The description's hedge, "Implied volatility shows how the market prices the expected swing, and the real swing can turn out larger or smaller", frames the difference as symmetric noise. The documented bias is one-directional.
The clip also leaves a related point unstated. The volatility index most readers associate with "the market's expectation" is computed differently: the modern VIX methodology is a model-free variance-swap replication across a strip of out-of-the-money strikes and does not invert Black-Scholes at all. I could not fetch the CBOE methodology document (HTTP 403), so I flag this as a pointer rather than a sourced claim and do not cite it below.
Key Takeaways
- Verified: All ten rows of the bisection table in frame 033 reproduce exactly when the 16 transcribed lines are run, from
1 50.0 % $21.79 too highthrough10 24.12 % $12.00 fits. The spoken 24.1 % for a $12 call on S=100, K=100, r=5 %, t=1 is correct; a high-precision solve gives 0.24111689. - Verified: The transcribed code is correct Black-Scholes. The normal CDF, σ√t, d₁ and the
d1 - vform of d₂ all match the formula on screen in frames 006 and 026. - Correction: The script has no non-convergence branch. At
market = 4.0, below the no-arbitrage lower bound of 4.877058, it runs all 59 iterations and printsimplied volatility 0.0; atmarket = 44.0, above the $39.84 price at the 100 % bracket end, it printsimplied volatility 1.0. Both exit cleanly with no error. - Partial correction: The description's "After 10 steps the price fits to half a cent" is the literal break condition and true of this run at 0.36 cents, but ten bisection steps on [0, 1] only bound the price to about 3.7 cents given a vega of 37.81 per unit of volatility. Moving the market price to $30 makes the same script take 12 steps.
- Correction: The curve in frame 037 falls monotonically across strikes and is labelled
smile: one expiryin frame 043. The standard name for a monotone downward cross-section is volatility skew or smirk; "smile" names the U-shape that turns up at both ends, which the drawn curve does not do. - Clarification: The skew the video presents as a standing market feature dates from a specific event. Rubinstein (1994) documented S&P 500 implied volatilities as roughly flat across strikes before the October 1987 crash and steeply skewed after it. The term-structure panel in frame 041 is equally conditional: it slopes upward only, and implied volatility inverts in stress because it mean-reverts from above.
- Partial correction: "How much the market expects the stock to swing until expiry" at 110.26 s describes a risk-neutral expectation. Carr and Wu (2009) find the variance risk premium negative across five indexes and most of 35 single names, so the implied figure runs above subsequent realised variance on average rather than being an unbiased forecast.
- Context: Production implied-volatility solvers do not use bisection. SciPy's
brentqguarantees convergence on a bracketing interval with inverse quadratic interpolation, and Peter Jäckel's "Let's Be Rational", wrapped aslets_be_rationalforpy_vollib, reaches maximum attainable 64-bit precision in as few as two iterations. - Context: The description discloses every illustration up front, and three on-screen captions repeat the disclosure verbatim:
surface: illustration, not market data,illustration in the shape typical for index options, not market data; anchored at our run, andpast path and future paths simulated (seeds 31 and 3131). No chart claims to carry market observations. No terminal, shell prompt or stdout pane appears in any of the 19 frames I read; the step table is a rendered chart panel that reformats the script'sprintoutput as percentages and dollars. - Unverified: The CBOE VIX methodology document returned HTTP 403, so the point that VIX uses model-free variance-swap replication rather than Black-Scholes inversion is a pointer and not sourced here. The Nobel Foundation's 1997 press release also returned HTTP 403 and the Hull, Derman and Suo volatility-surface paper returned HTTP 404; neither is cited.
- Unverified: The final Whisper segment, timestamped 116.36 s to 141.40 s against 118.02 s of audio with an avg_logprob of -2.835 while every other segment sits at -0.169, is hallucinated past the end of the audio and is quoted nowhere in this document.
Resources
- The Pricing of Options and Corporate Liabilities, RePEc/IDEAS record, Journal of Political Economy, May-June 1973 establishes the exact citation for the formula the video inverts: Fischer Black and Myron S. Scholes, volume 81, issue 3, pages 637-654.
- Variance Risk Premiums, RePEc/IDEAS record, Review of Financial Studies 22(3), 2009 establishes the Carr and Wu abstract and page range behind the variance risk premium that biases implied volatility above realised volatility.
- scipy.optimize.brentq documentation, SciPy establishes the bracketing requirement, the guaranteed-convergence claim, the bisection-plus-inverse-quadratic-interpolation description, and the defaults
xtol=2e-12andmaxiter=100. - scipy.optimize.newton documentation, SciPy establishes the warning that the step-size stopping criterion gives no guarantee a root was found and the result should be verified.
- vollib/lets_be_rational, GitHub establishes the "as little as two iterations to maximum attainable precision on standard (64 bit floating point) hardware for all possible inputs" claim for Peter Jäckel's algorithm.
- Implied volatility, Wikipedia establishes the monotonicity of the Black-Scholes price in sigma, the non-existence of a closed-form inverse, and the skew-versus-smile naming.
- Volatility smile, Wikipedia establishes that American equity options showed no significant smile before the Crash of 1987 and began showing one afterwards, and that a non-flat surface exposes the constant-volatility assumption.
- The 1997 Nobel Prize in Economics, Federal Reserve Bank of San Francisco Economic Letter, February 1998 establishes that Robert C. Merton and Myron S. Scholes took the 1997 prize and that Fischer Black, who died in 1995, is credited alongside them.
Published October 24, 2026. Writeup generated from a favorited TikTok.