# Why implied volatility and Greeks differ between platforms

Same option, same moment, two IVs and two deltas. The model, the quote, the clock, the rate and the dividend each platform chose, and how to find which.

*https://stockmarketstack.com/guides/why-implied-volatility-differs · background to Options Data & Flow Analytics*

**Answer:** Because implied volatility is not in the market data. OPRA carries option quotes and trades and no volatility or Greek, so every platform solves for IV itself. Each picks a model, European Black-Scholes or an American-exercise tree. Each picks which price to invert, a rate, a dividend assumption, a stock price taken at some instant, and a way to count time to expiry. IV rank adds a lookback window that also differs.

Pull up the same option on two platforms and the implied volatility is often a point or two apart,
sometimes ten on a contract expiring today. The deltas disagree with it. A common first guess is
stale data. More often, both platforms computed a correct number from different inputs.

Implied volatility is not in the market data. The options feed carries prices. Every IV and every
Greek on every platform was calculated by that platform, and the choices behind it are rarely shown
next to the number.

## How it works

The consolidated US options feed is OPRA. Its
[binary specification](https://cdn.opraplan.com/documents/OPRA_Pillar_Output_Specification.pdf),
version 6.4b of 25 August 2026, defines quotes, trades, open interest and end-of-day summaries. No
field in it is an implied volatility or a calculated Greek. The only delta is a negotiated term on
certain FLEX trades. There is no underlying stock price on the quote or trade messages either. The
spec's only underlying-price field is in the end-of-day summary. The stock price comes from a
separate equity feed, on a separate clock.

So every IV is solved backwards. Take a pricing model, fill in the stock price, strike, time to
expiry, interest rate and dividends, and search for the volatility at which the model's value
equals the option's price. The Greeks are then the model's sensitivities at that volatility. Every
input is a choice:

1. **The model.** A closed-form European formula, or an American-exercise method.
2. **The price.** Bid, ask, mid or last trade.
3. **The stock price.** Which feed, and taken at which instant relative to the option quote.
4. **The clock.** Calendar time or trading time, whole days or minutes.
5. **The rate and the dividend.** Which published rate, and which dividend forecast.

The [implied volatility](https://stockmarketstack.com/glossary/implied-volatility) and [greeks](https://stockmarketstack.com/glossary/greeks) glossary
entries define the terms. This page is about the size of each choice, with numbers.

The examples below use the textbook Black-Scholes formula and invented quotes, with a 4% rate and
no dividend unless stated. They are illustrations computed for this page, not any platform's
output.

## The model: European formula or early exercise

US single-stock options are American. Cboe's
[equity options specifications](https://www.cboe.com/exchange-traded-stock/equity-options-spec/)
say they "generally may be exercised on any business day up to and including on the expiration
date". SPX index options are European. Cboe's
[SPX specifications](https://www.cboe.com/tradable_products/sp_500/spx_options/specifications/)
say they "generally may be exercised only on the expiration date". Black-Scholes prices the
European kind. For an American option it ignores the right to exercise early. That right is worth
most on in-the-money puts and on calls just before a dividend.

Libraries offer both, and more than two. [QuantLib](https://stockmarketstack.com/tools/quantlib)'s vanilla engines include an
analytic European engine, binomial trees, finite differences, and approximations for American
options such as Barone-Adesi–Whaley and Bjerksund–Stensland. A vendor's documentation shows the
choice in practice. [ThetaData](https://stockmarketstack.com/tools/thetadata)'s Greeks article says it "uses the Black Scholes
for all Greeks calculations". It also offers separate binomial endpoints on a Leisen-Reimer tree
that "allows early exercise at every node", and solves IV on that tree for puts and for calls with a
dividend supplied. Its own warning follows: "On contracts solved on the tree, implied_vol will not
match the Black-Scholes endpoints for the same contract."

How much? Take a put struck at 110 on a 100-dollar stock, 60 days to expiry, priced at 10.60.
Black-Scholes, treating it as European, gives an IV of 26.8%. A 1,000-step American binomial tree
gives 24.9%. Same contract, same price, two points apart, and every Greek moves with it.

## The price: bid, ask, mid or last

A quote is two prices, and each gives its own IV. Cboe's
[volatility index methodology](https://cdn.cboe.com/resources/indices/Cboe_Volatility_Index_Mathematics_Methodology.pdf),
version 5.0 of 26 February 2026, commits to one. Its option prices "reflect the midpoint of each
candidate constituent option series' bid / ask quotes", and series with null quotes or a bid above
the ask are excluded. [ORATS](https://stockmarketstack.com/tools/orats) publishes `callMidIv` and `putMidIv`, "mid implied
volatility", alongside `smvVol`, which it calls its "final implied Volatility", a smoothed value.
A platform that shows the IV of the last trade is using a price that may be hours old.

The spread sets the size. A call on a 100-dollar stock, struck at 100, quoted 0.90 bid and 1.10 ask
on a Friday at 3 p.m. for a Monday 4 p.m. expiry, has an IV of 24.3% at the bid, 27.0% at the mid
and 29.8% at the ask, counting time in calendar minutes. On a wide market in a thin contract, the
gap between bid IV and ask IV can exceed any other difference on this page.

## The clock: how long until expiry

Volatility is quoted per year, and implied volatility scales with the square root of the time
input. So the way a platform counts time changes IV in proportion. There are four common choices.

- **Calendar minutes.** Cboe's methodology measures time "in calendar years", dividing minutes to
  expiration by 525,600, the minutes in a 365-day year.
- **Trading time.** Only the hours the market is open count, as a fraction of a 252-day year.
- **Whole days.** One number of days to expiration, with the intraday fraction dropped.
- **A rule for the last day.** ThetaData documents that for contracts with fewer than 7 days left,
  days to expiration come from the quote timestamp, and longer ones use a whole number. Its legacy
  calculation "applies a fixed DTE of 0.15 on same-day expiration".

The Friday call above, at its 1.00 mid, is 27.0% counting calendar minutes and 36.7% counting
trading time. Over the weekend, calendar time runs and trading time does not.

On the expiry day the conventions part completely. The same call with two hours to go, at 0.25 mid,
has an IV of 41.4% counting calendar minutes, 17.8% counting trading hours, 30.8% with a fixed
0.15 days and 11.7% if the remaining time is rounded up to one day. Same option, same quote, four
numbers between 12% and 41%. This is why IV on options expiring today looks broken from one
platform to the next.

## The stock price and its timestamp

The underlying price comes from another feed. ThetaData says it uses "the exact underlying tick
(price) at the time of the option tick". A platform that pairs an option quote with a stock price
cached a second earlier, or with the last trade rather than the midpoint of the stock's quote,
solves a different problem. For a 30-day at-the-money call priced at 2.50, a stock price of 100.00
gives an IV of 20.4% and a price of 100.20 gives 19.5%. On an active stock, twenty cents can pass
between two quotes a second apart.

Delta moves for the same reason, before any change in IV, because delta is a function of the stock
price. The
[options data guide](https://stockmarketstack.com/guides/why-options-data-costs-more) covers why the two feeds are separate
purchases.

## The rate and the dividend

A rate is needed to discount the strike, and there is more than one rate to choose. Cboe derives
its rate from Treasury constant-maturity yields, interpolated with a cubic spline and converted from
bond-equivalent to continuously compounded. ThetaData uses SOFR by default and notes that "SOFR is
reported 1 day after the report date", so today's calculation uses yesterday's rate. The New York
Fed [publishes SOFR](https://www.newyorkfed.org/markets/reference-rates/sofr) each business day at
about 8 a.m. Eastern. Even one Treasury bill is quoted two ways on the Treasury's
[daily bill rates](https://home.treasury.gov/resource-center/data-chart-center/interest-rates/TextView?type=daily_treasury_bill_rates),
as a bank discount on a 360-day year and as a coupon equivalent on a 365- or 366-day year. On a
short-dated option the rate barely matters. On a one-year at-the-money call priced at 9.00, a rate
of 4.0% gives 17.6% and 4.5% gives 16.9%.

Dividends are a forecast, and platforms forecast differently. ThetaData "currently ignores
dividends" unless the user supplies one. ORATS uses an annual figure "from the next year of
expected dividends" and also publishes a `residualRate`, defined as "implied interest rate data":
a rate read out of option prices rather than taken from a published series. Cboe's
methodology avoids the forecast altogether: it infers a forward price from the call and put at the
strike where their prices are closest. For a 45-day at-the-money call priced at 3.00, assuming no
dividend gives 19.7% and assuming a 3% yield gives 21.1%.

## IV rank and IV percentile: same names, different windows

IV rank and IV percentile are statistics on a history of implied volatility, so they inherit every
choice above and add two more: which IV series, and which window.

[tastylive](https://www.tastylive.com/definitions/iv-rank-iv-percentile) defines IV rank as where
current IV sits between the 52-week low and high, and IV percentile as the share of days in the
last 52 weeks with lower IV, computed by dividing that count "by 252 trading days". ORATS publishes
`ivRank1m` and `ivRank1y`, with the formula "(Current IV - 1 month Low IV) / (1 month Max - 1 month
Min)" for the first, and `ivPct1m` and `ivPct1y` for percentile. A one-month rank and a one-year rank
of the same stock on the same day can be at opposite ends of the scale.

The series underneath differs too. ORATS's `iv30d` is a "30 calendar day interpolated implied
volatility". Another platform may rank the IV of the nearest expiry, or of one at-the-money
contract. An IV rank series also inherits every discontinuity in the IV history beneath it. Splicing
two providers' histories, or one provider's history across a methodology change, creates a jump the
rank will treat as real.

## What you can do about it

**Ask for the five inputs, and read them from the documentation.** Model and exercise style, which
price is inverted, the stock price and its timestamp, the time convention, and the rate and dividend
source. A platform that documents them can be reconciled. One that does not cannot, and its IV is
comparable only with itself.

**Reproduce one contract yourself.** Take the platform's displayed IV, the stock price it shows, its
rate if published, and the strike and expiry. Feed them into one model, for example
[QuantLib](https://stockmarketstack.com/tools/quantlib)'s European engine and then an American one, and see which reproduces
the platform's option price. Then change one input at a time. The input that closes the gap is the
explanation, usually within a few minutes.

**Compare like with like before comparing platforms.** Mid IV with mid IV, at the same moment,
same time convention. Many apparent disagreements disappear once the bid-ask choice and the
calendar-or-trading-time choice match. On contracts expiring within a day, do not compare IVs
across platforms at all unless both document their time convention.

**Treat IV rank as platform-specific.** Write down the window and the IV series next to any IV rank
you record. Do not carry a threshold from one platform to another, and do not compute a rank over a
history spliced from two providers.

**When it has to be consistent, buy the methodology rather than the number.** A vendor that
publishes its rate, dividend and smoothing choices, as [ORATS](https://stockmarketstack.com/tools/orats) does in its field
definitions, gives you a series you can compare across years. The broader field, from chains to
flow, is in [options analytics](https://stockmarketstack.com/categories/options-analytics), and
[how to get an options chain](https://stockmarketstack.com/how-to/get-an-options-chain) covers what the free tiers return.

## Tools this bears on

- [ORATS](https://stockmarketstack.com/tools/orats.md) — Smoothed options greeks and IV surfaces over REST, end-of-day back to 2007.
- [ThetaData](https://stockmarketstack.com/tools/thetadata.md) — Every OPRA quote and trade, with greeks computed per tick, from $40 a month.
- [QuantLib](https://stockmarketstack.com/tools/quantlib.md) — The open-source derivatives pricing library banks actually use, reachable from Python.

## FAQ

### Why is implied volatility different on two brokers for the same option?

Because neither broker received an implied volatility from the exchange. The options feed carries quotes and trades only, so each platform solves for the volatility that makes its own pricing model match a price it chose. Different model, different quote side, different rate, different dividend forecast or a stock price taken a moment earlier, and the same option shows two IVs. Both can be computed correctly.

### Why is the delta different between platforms?

Delta is computed from the same model at the volatility that model just solved for, so every difference in the IV carries straight into delta, and a different model changes delta even at the same volatility. For a deep in-the-money American put, a European formula and an early-exercise tree give noticeably different deltas. A stock price sampled at a different instant moves delta directly.

### Why is implied volatility so strange on options expiring today?

Because time to expiry is close to zero, and conventions for measuring it differ most there. Counting calendar minutes, trading hours, whole days or a fixed fraction of a day gives the same two-hour-old option very different time values, and implied volatility scales with the square root of that time. One data vendor documents a fixed time value of 0.15 days for same-day expiries in its older calculation.

### Is IV rank the same thing on every platform?

No. IV rank places today's implied volatility between the highest and lowest values of a lookback window, and IV percentile counts how many past days were lower. tastylive defines both over 52 weeks. ORATS publishes one-month and one-year versions of each. Both are also computed on each platform's own implied volatility series, so two IV ranks can differ even with the same window.

### Which implied volatility is the correct one?

None of them is correct in a sense the market can confirm. Implied volatility is the output of a model given chosen inputs. A figure is checkable when its inputs are published, and two figures are comparable when their inputs match. For a single option, put the platform's IV and its underlying price, rate, dividend and time into one model of your own and see which input explains the gap.

## Sources

1. [OPRA Binary Data Recipient Interface Specification, version 6.4b](https://cdn.opraplan.com/documents/OPRA_Pillar_Output_Specification.pdf) — Options Price Reporting Authority, 2026-08-25
2. [Cboe Volatility Index Mathematics Methodology, version 5.0](https://cdn.cboe.com/resources/indices/Cboe_Volatility_Index_Mathematics_Methodology.pdf) — Cboe Global Indices, 2026-02-26
3. [Equity Options Product Specifications](https://www.cboe.com/exchange-traded-stock/equity-options-spec/) — Cboe Global Markets, read 2026-10-08
4. [SPX Options Product Specifications](https://www.cboe.com/tradable_products/sp_500/spx_options/specifications/) — Cboe Global Markets, read 2026-10-08
5. [Option Greeks](https://thetadata.net/docs/Articles/Data-And-Requests/Option-Greeks.html) — ThetaData, read 2026-10-08
6. [API data definitions](https://orats.com/docs/definitions) — ORATS, read 2026-10-08
7. [IV Rank and IV Percentile definitions](https://www.tastylive.com/definitions/iv-rank-iv-percentile) — tastylive, read 2026-10-08
8. [Daily Treasury Bill Rates](https://home.treasury.gov/resource-center/data-chart-center/interest-rates/TextView?type=daily_treasury_bill_rates) — U.S. Department of the Treasury, read 2026-10-08
9. [Secured Overnight Financing Rate Data](https://www.newyorkfed.org/markets/reference-rates/sofr) — Federal Reserve Bank of New York, read 2026-10-08
10. [QuantLib reference, vanilla option engines](https://www.quantlib.org/reference/group__vanillaengines.html) — QuantLib, read 2026-10-08

*Last updated 2026-10-08. A reference page, corrected in place — not a dated post.*
