Strasmore Research
Learn Matt ConnorBy Matt Connor

Is High Implied Volatility Good? IV in Context

High implied volatility is not good or bad by itself. See what an 80 percent IV reading means against the market, a stock's own range, and realized moves.

Implied volatility (IV) is the annualized move an option's price implies for the stock underneath it. A high reading is neither good nor bad on its own. It is a price, and a price only carries meaning next to a comparison: the rest of the options market, and the name's own history. This page takes the readings people search for, 80% and 30% and 20%, and measures each against those yardsticks on one pinned session, July 28, 2026.

Is 80% implied volatility high?

Against the traded options market on a single session, 80% sits in the upper fifth of names and well short of the ceiling. The panel below sorts every screened US underlying with a liquid near-the-money chain into volatility bands.

QueryWhere near-the-money implied volatility sat across the traded options market (July 28, 2026)
The exact SQL behind every number
WITH per_name AS (
    SELECT underlying_symbol AS u,
           100 * quantileExact(0.5)(implied_volatility) AS iv_pct
    FROM global_markets.options_greeks
    WHERE date = '2026-07-28'
      AND iv_converged AND implied_volatility BETWEEN 0.02 AND 5
      AND abs(strike_price / underlying_close - 1) <= 0.05
      AND expiration_date BETWEEN date + 20 AND date + 60
      AND underlying_symbol != 'SPCX'
    GROUP BY u
    HAVING sum(volume) >= 500 AND count() >= 10
),
banded AS (
    SELECT multiIf(iv_pct < 20, 'under 20%', iv_pct < 30, '20 to 30%', iv_pct < 40, '30 to 40%',
                   iv_pct < 60, '40 to 60%', iv_pct < 80, '60 to 80%', '80% and up') AS iv_band,
           min(iv_pct) AS lo,
           count() AS underlyings
    FROM per_name
    GROUP BY iv_band
)
SELECT iv_band,
       underlyings,
       round(100 * underlyings / (SELECT count() FROM per_name), 1) AS share_pct,
       round(100 * sum(underlyings) OVER (ORDER BY lo DESC) / (SELECT count() FROM per_name), 1) AS share_at_or_above_pct
FROM banded
ORDER BY lo
Run this yourself

Of the screened underlyings, 19.1% carried near-the-money implied volatility of 80% or higher, 75 names in total. The widest band, 40 to 60%, held 22.7% of the list. Only 7.4% of names printed under 20%, 29 of them.

Two readings follow from that shape. An 80% quote is unusual without being exotic, roughly a one-in-five name on this screen. And a 20% quote, the kind that looks unremarkable to anyone used to stock charts, is rarer on the traded options tape than an 80% quote. The screen covers underlyings with an actively traded chain, which tilts the distribution upward: quiet stocks carry quiet option volume and drop out of the count. A 30% reading, another common search, lands in the 30 to 40% band alongside 19.4% of the list, near the middle of the traded universe.

That answers the market-wide question. It leaves the question a trader is usually asking, which is whether 80% is high for this stock.

The same IV number is not the same on two tickers

Fix the session and vary the ticker, and the number moves across a wide span of familiar names.

QueryAt-the-money implied volatility, eleven familiar tickers (July 28, 2026)
The exact SQL behind every number
SELECT underlying_symbol AS symbol,
       round(100 * quantileExact(0.5)(implied_volatility), 1) AS atm_iv_pct
FROM global_markets.options_greeks
WHERE date = '2026-07-28'
  AND underlying_symbol IN ('KO','JNJ','SPY','QQQ','AAPL','MSFT','NVDA','TSLA','PLTR','COIN','MSTR')
  AND iv_converged AND implied_volatility BETWEEN 0.02 AND 5
  AND abs(strike_price / underlying_close - 1) <= 0.05
  AND expiration_date BETWEEN date + 20 AND date + 60
GROUP BY symbol
ORDER BY atm_iv_pct DESC
Run this yourself

MSTR printed 80.2% while SPY printed 15.3%, a gap of more than four times across one screen of household tickers. A broad index fund averages its members' individual moves together, and its options price a far narrower distribution than any single member's chain does. The mechanics are covered in full on the implied volatility explainer.

The practical consequence is that a bare IV number cannot be graded. A 40% quote would be an ordinary Tuesday on one of these tickers and an extreme on another. Grading needs a reference range, and the natural range is the name's own.

IV rank puts the reading inside the stock's own range

IV rank scores where today's implied volatility sits between the lowest and highest readings of the past 52 weeks: 0 at the range floor, 100 at the range ceiling. The arithmetic is current IV minus the 52-week low, divided by the 52-week high minus the low. IV percentile answers the same question by counting instead, the share of sessions in the window that closed below today's reading.

QueryThe same reading against each name's own 52-week implied volatility range (July 28, 2026)
The exact SQL behind every number
WITH per_session AS (
    SELECT underlying_symbol AS u,
           date AS d,
           100 * quantileExact(0.5)(implied_volatility) AS iv_pct
    FROM global_markets.options_greeks
    WHERE date BETWEEN '2025-07-28' AND '2026-07-28'
      AND underlying_symbol IN ('KO','JNJ','SPY','QQQ','AAPL','MSFT','NVDA','TSLA','PLTR','COIN','MSTR')
      AND iv_converged AND implied_volatility BETWEEN 0.02 AND 5
      AND abs(strike_price / underlying_close - 1) <= 0.05
      AND expiration_date BETWEEN date + 20 AND date + 60
    GROUP BY u, d
    HAVING count() >= 10
)
SELECT u AS ticker,
       round(anyIf(iv_pct, d = '2026-07-28'), 1) AS iv_now_pct,
       round(min(iv_pct), 1) AS iv_52w_low_pct,
       round(max(iv_pct), 1) AS iv_52w_high_pct,
       round(100 * (anyIf(iv_pct, d = '2026-07-28') - min(iv_pct)) / (max(iv_pct) - min(iv_pct)), 1) AS iv_rank
FROM per_session
GROUP BY ticker
HAVING countIf(d = '2026-07-28') = 1 AND count() >= 200
ORDER BY iv_rank DESC
Run this yourself

Read two rows of that panel together. MSTR carried the highest implied volatility on the screen at 80.2%, and its IV rank came to 38.8, under the midpoint of its own 52-week range, which ran from 50.2% to 127.6%. KO sat at 20.9%, roughly a quarter of that level, with an IV rank of 68.7.

Measured against itself, the calm consumer name was priced for more movement than the volatile one. That is the argument for IV rank in a single pair of rows. The absolute number places the stock against the market; the rank places the stock against its own past year. The live version of this screen across the full tape is the highest IV rank stocks board, and the absolute-level version is the highest implied volatility stocks board.

One caveat on the rank arithmetic. A single violent session inside the 52 weeks sets a ceiling the range-based rank never forgets, and a name whose window contains such a session scores low for months afterward. IV percentile treats that session as one tick among 252. The two numbers disagree most on names with one spike in an otherwise quiet year.

Implied volatility beside realized volatility

The last comparison is the most direct: what the options market priced, next to what the stock actually did. Realized volatility annualizes the standard deviation of a stock's daily returns over a past window. Here it covers the 30 sessions ending July 28, 2026, beside the implied volatility quoted on that date.

QueryImplied volatility beside the movement each stock actually delivered over the prior 30 sessions
The exact SQL behind every number
WITH daily AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMax(close, window_start) AS px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('KO','JNJ','SPY','QQQ','AAPL','MSFT','NVDA','TSLA','PLTR','COIN','MSTR')
      AND toDate(toTimeZone(window_start, 'America/New_York')) BETWEEN toDate('2026-05-20') AND toDate('2026-07-28')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY ticker, d
),
rets AS (
    SELECT ticker, d,
           log(px / any(px) OVER (PARTITION BY ticker ORDER BY d ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING)) AS r
    FROM daily
),
realized AS (
    SELECT ticker, 100 * stddevSamp(r) * sqrt(252) AS rv
    FROM rets
    WHERE r IS NOT NULL AND d > toDate('2026-06-12')
    GROUP BY ticker
    HAVING count() >= 20
),
implied AS (
    SELECT underlying_symbol AS ticker,
           100 * quantileExact(0.5)(implied_volatility) AS iv
    FROM global_markets.options_greeks
    WHERE date = '2026-07-28'
      AND underlying_symbol IN ('KO','JNJ','SPY','QQQ','AAPL','MSFT','NVDA','TSLA','PLTR','COIN','MSTR')
      AND iv_converged AND implied_volatility BETWEEN 0.02 AND 5
      AND abs(strike_price / underlying_close - 1) <= 0.05
      AND expiration_date BETWEEN date + 20 AND date + 60
    GROUP BY ticker
)
SELECT implied.ticker AS ticker,
       round(implied.iv, 1) AS implied_vol_pct,
       round(realized.rv, 1) AS realized_vol_30d_pct,
       round(implied.iv - realized.rv, 1) AS iv_minus_realized
FROM implied INNER JOIN realized ON implied.ticker = realized.ticker
ORDER BY iv_minus_realized DESC
Run this yourself

The spread ran from 15 points on COIN down to -20.4 points on TSLA. Options priced above trailing realized movement on part of the list and under it on the rest, which is the ordinary state of this measurement rather than an anomaly.

The row worth pausing on is MSTR. Its implied volatility of 80.2% was the highest absolute reading in the panel, and the stock had delivered 86.3% over the prior 30 sessions. An 80% quote on a stock moving at that pace is a different object from an 80% quote on a stock that has been drifting sideways. Implied volatility looks forward over an option's remaining life while realized volatility looks back over a fixed window, and the two never have to agree.

What a high reading changes at the contract level

High implied volatility raises the premium on every strike in the chain. The buyer pays more for the same contract; the seller collects more for writing it. Vega measures that sensitivity: the dollar change in an option's price per one point of implied volatility. As an illustrative example, a contract carrying a vega of 0.10 gains about $10 per contract when IV rises a point and gives back about the same when IV falls a point. The vega page works through the sizing.

Scheduled events sit behind many elevated readings. Implied volatility climbs into an earnings date and drops sharply once the number is public, the pattern known as IV crush. A buyer holding through that drop can watch a position lose value while the stock moves the anticipated direction, since the volatility premium paid for the event has already expired. None of this makes a high reading good or bad. It makes the reading a cost on one side of the contract and a receipt on the other.

FAQ

Is 80% implied volatility high?

Across US underlyings with actively traded option chains on July 28, 2026, 19.1% carried near-the-money implied volatility of 80% or more. It is a high absolute reading and a common one on the traded tape. Whether it is high for a particular stock depends on that name's own 52-week range, which is what IV rank measures.

Is 30% IV high?

On the same session a 30% reading fell in the 30 to 40% band, which held 19.4% of screened names, close to the middle of the distribution. On a broad index fund the same 30% would sit near the top of a typical year. On a high-volatility single stock it would sit near the floor.

What does 20% implied volatility mean?

It means the options market is pricing an annualized move of about 20% in the underlying, which converts to roughly 2.8% over a month as a rough approximation (20 divided by the square root of 12). Only 7.4% of the screened underlyings printed under 20% on July 28, 2026.

Is high implied volatility good or bad?

Neither on its own. It is the price of optionality, and it lands differently on each side of the contract: expensive for the buyer, richer premium for the seller, larger dollar swings for both. The comparisons that give the number meaning are the market-wide distribution, the name's own 52-week range, and the movement the stock has recently delivered.

What is the difference between IV rank and IV percentile?

IV rank places today's reading between the 52-week low and high, so a single extreme session fixes the ceiling for a year. IV percentile counts the share of sessions in that window that closed below today's reading, giving one spike the weight of one session. The two can differ sharply on a name with a single outlier week.


Every figure above is a stored query over the options tape for July 28, 2026. Open the SQL beneath any panel, or run the same screens on the Strasmore terminal.