GreekGeek

How GreekGeek calculates its numbers

Every price, Greek and probability on the site comes from one model and a handful of inputs. This page lists each of them, where it comes from, and where the model falls short.

The model

GreekGeek uses the Black-Scholes-Merton model. It prices an option from six inputs by assuming the stock moves randomly with a steady level of volatility, and that dividends are paid out smoothly as a yearly yield. The prices of a call C and a put P are:

C = Se−qT N(d1) − Ke−rT N(d2)

Call

P = Ke−rT N(−d2) − Se−qT N(−d1)

Put

where

d1 = ln(S/K) + (r − q + σ2/2) Tσ T,    d2 = d1 − σ T

N is the standard normal cumulative distribution: the chance that a bell-curve draw lands below a given value. φ, used in the Greeks below, is the height of that bell curve.

Where each input comes from

S
Stock price. The latest price from Yahoo Finance, the same quote shown at the top of each ticker page.
K
Strike. Taken from the contract itself.
T
Time to expiry, in years. Measured to 4pm New York time on the expiry date, when US stock options stop trading, and divided by a 365-day year. On expiry day it never drops below one hour, so contracts can still be priced.
r
Risk-free rate. The yield on the 13-week US Treasury bill (Yahoo symbol ^IRX), checked every 10 minutes. If that quote is missing or implausible, 4.5% is used.
q
Dividend yield. The stock's yearly dividend as a share of its price, as reported by Yahoo. Zero for stocks that pay none.
σ
Volatility. The implied volatility of each contract, worked out as described in the next section.

Implied volatility

Volatility is the one input nobody quotes directly. GreekGeek works it backwards: it finds the value of σ that makes the model price equal the midpoint between the bid and the ask. The midpoint is used because the last trade can be hours old, while the bid and ask show the market right now.

The search uses Newton’s method, which steps toward the answer using vega as the slope, and falls back to halving the interval when a step would jump outside it. It looks between 0.5% and 500% and stops once the answer is settled to ten decimal places. A midpoint below the option’s intrinsic value, or above what the model allows, has no answer and is skipped.

When there is no usable midpoint (no bid, or an ask below the bid) or the search fails, the site falls back to Yahoo’s own implied volatility, but only if it lies between 1% and 500%. Yahoo also fills quiet strikes with placeholder values that sit almost exactly on 100%, 50%, 25%, 12.5% and so on down by halves. Those are thrown out. If neither source works, the contract is shown without Greeks rather than with made-up ones.

The Greeks and their units

The Greeks are the model’s sensitivities: how much the option price moves when one input moves and the rest stay put. The formulas below are for a call. Each is per share, so multiply by 100 for one contract, which covers 100 shares.

Formulas and units for each Greek, per share
GreekFormula (call)Reported as
Deltae−qT N(d1)Dollars per $1 move in the stock
Gammae−qT φ(d1)S σ TChange in delta per $1 move
Theta[−Se−qT φ(d1) σ2 T− rKe−rT N(d2) + qSe−qT N(d1)] ÷ 365Dollars per calendar day
VegaSe−qT φ(d1) T ÷ 100Dollars per 1 point of volatility
RhoKTe−rT N(d2) ÷ 100Dollars per 1 point of interest rates

For puts, delta is e−qT (N(d1) − 1) and gamma and vega are unchanged. Rho and theta swap N(d1) and N(d2) for N(−d1) and N(−d2), and those terms change sign. Theta counts calendar days, weekends included, because the clock in T does. Vega and rho are scaled to one percentage point, say 25% to 26%, rather than a full 100 points.

Probability and expected move

The chance an option finishes in the money is N(d2) for a call and N(−d2) for a put. It is the probability built into today’s prices under the model’s assumptions, not a forecast of what the stock will do.

The expected move is one standard deviation of the stock price by expiry, S σ T. The model expects the stock to finish inside that range about two times in three.

A worked example

Take a $100 stock, a $100 strike, 30 days to expiry, 25% implied volatility, a 4% rate and no dividend. These figures are calculated by the same code the rest of the site runs:

d₁
0.0817
d₂
0.0100
Call price
$3.02
Put price
$2.69
Delta
0.533
Gamma
0.0555
Theta
−0.0530
Vega
0.1140
Rho
0.0413
Chance in the money
50.4%
Expected move
±$7.17

So one contract costs about $302, loses about $5.30 a day to time decay, and gains about $11.40 for each point implied volatility rises.

Where the data comes from

Quotes, option chains, dividend yields and the T-bill rate come from Yahoo Finance. Yahoo’s data may be delayed by 15 minutes or more, and the site keeps each response for up to 1 minute to stay within Yahoo’s limits. Outside market hours, many contracts show no bid or ask, so their implied volatility comes from Yahoo or is missing.

Where the model falls short

Black-Scholes-Merton is a clean model of a messier market. Keep these gaps in mind.

Early exercise

The model prices European options, which can only be exercised at expiry. Most US stock options are American and can be exercised any day. That right is worth little for most calls, but it adds value to deep in-the-money puts and to calls just before a large dividend. For those, the true price can sit above the model’s.

Dividends paid in lumps

Real dividends arrive as single payments on set dates. The model spreads them evenly over the year as q. For short options that span an ex-dividend date, this can misprice calls and puts by roughly the size of the dividend.

Wide spreads

The midpoint is only a fair price when the bid and ask are close. On thinly traded strikes the spread can be a large part of the price, and the implied volatility and Greeks worked out from it are rough.

One volatility per contract

The model assumes a single, steady volatility. Real markets price each strike and expiry differently, which is why GreekGeek solves a separate implied volatility for every contract instead of using one number for the whole chain.