Strasmore Research
Learn am Matt ConnorBy Matt Connor

Implied Volatility vs Vega: Wetin Be the Difference?

IV na volatility input wey market dey charge; vega na option price move for one-point change. See how both work for real option contracts.

Implied volatility vs vega boil down to one difference wey option chain no ever spell out. Implied volatility, or IV, na an input: na the volatility number wey you solve for with pricing model after market don already set the option price. Vega na rate of change: na how many dollars option price go move for every one-point change for that input. IV tell you the volatility wey market dey charge. Vega tell you how much of that charge the position dey carry.

Implied volatility vs vega: one input and one rate

Option pricing model dey use some facts wey anybody fit look up: spot price, strike, time wey remain, and financing rate. E still use one fact wey nobody fit look up: how much the underlying go move between now and expiry. Give the model one volatility figure, and e go return a price.

Implied volatility dey work am backward. You start with the price wey market dey quote, then search for the volatility figure wey go make the model print exactly that price. That solved number na the IV for the chain, and how dem dey calculate implied volatility dey explain the search itself. E no be forecast. Na the volatility assumption wey dey inside today’s price, and implied volatility dey move whenever option prices move, even if the stock itself hardly move that day.

Vega dey come from the same model one step later. Keep every other thing fixed, raise the volatility input by one point, then record how far the model price move. That distance na vega. Take hypothetical contract wey get vega of 0.20 per share: one-point rise for IV go lift the model price by roughly 20 cents per share, about $20 for standard 100-share contract, while two points na about $40. IV na the price of volatility. Vega na the size of the ticket. Option vega dey explain the mechanics finish.

Wetin make option wey get longer expiry get more vega?

Volatility na uncertainty per unit of time, and longer contract dey collect more of am. Two contracts wey get the same underlying and identical IV fit carry very different vega, and the gap dey widen as expiry dey further away.

The panel below group AAPL contracts wey trade through July 2026 by days to expiry. E keep strikes within 5% of spot price, then e index each bucket average vega against the bucket wey get the nearest expiry. Per-contract daily IV and greeks come from global_markets.options_greeks. The data filter only include rows where volatility solve converge and the contract truly trade that day.

QuerySame underlying, same IV, vega dey rise: AAPL by days to expiry (July 2026)
The exact SQL behind every number
WITH ntm AS
(
    SELECT
        intDiv(days_to_expiry, 30) * 30 AS dte_floor,
        avg(toFloat64(vega))            AS vega_avg,
        avg(implied_volatility)         AS iv_avg,
        count()                         AS contract_days
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'AAPL'
      AND date >= '2026-07-01'
      AND date <  '2026-08-01'
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry BETWEEN 1 AND 545
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
    GROUP BY dte_floor
    HAVING count() >= 50
)
SELECT
    concat(toString(dte_floor), ' to ', toString(dte_floor + 29), ' days') AS dte_bucket,
    round(iv_avg * 100, 1)                                                 AS avg_iv_pct,
    round(vega_avg / first_value(vega_avg) OVER (ORDER BY dte_floor ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING), 2) AS vega_vs_front,
    toUInt32(contract_days)                                                AS contract_day_count
FROM ntm
ORDER BY dte_floor
Run this yourself

When we average across the month, the 0 to 29 days bucket price at IV of 33.2%, compared with 29.5% for the 510 to 539 days bucket. E close enough to call am the same volatility wey market dey charge. But the vega column for those same rows no nearly flat: the longest bucket carry 8.14 times the vega of the shortest one, across 14 buckets of the curve.

Na that multiple be the practical point. One point of IV na one point for both contracts. But the money wey that point move no be the same for both. Person wey hold the long-dated contract get several times the volatility exposure of person wey hold the front-month contract at the same quoted IV. That exposure still dey change shape as the contract dey age, and option greeks as time dey pass trace am.

Vega dey change with strike too?

E dey change, and the shape na hump. Vega dey peak near-the-money, then e dey fall for both directions. Far out-of-the-money contract no get much premium wey fit revalue, so when volatility assumption move, e move the price by smaller absolute amount.

The panel below keep expiry roughly fixed, between 20 and 45 days away. E then move across different strikes instead. Each strike bucket average vega dey indexed against the biggest bucket for the curve.

QueryWhere vega dey peak: AAPL vega and IV across strikes, 20 to 45 days out (July 2026)
The exact SQL behind every number
WITH mny AS
(
    SELECT
        floor((toFloat64(strike_price) / toFloat64(underlying_close) - 1) * 50) / 50 AS strike_offset,
        avg(toFloat64(vega))    AS vega_avg,
        avg(implied_volatility) AS iv_avg,
        count()                 AS contract_days
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'AAPL'
      AND date >= '2026-07-01'
      AND date <  '2026-08-01'
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry BETWEEN 20 AND 45
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.12
    GROUP BY strike_offset
    HAVING count() >= 30
)
SELECT
    concat(toString(toInt32(round(strike_offset * 100))), '% from spot') AS strike_vs_spot,
    round(iv_avg * 100, 1)                                              AS avg_iv_pct,
    round(vega_avg / max(vega_avg) OVER (), 2)                          AS vega_vs_peak,
    toUInt32(contract_days)                                             AS contract_day_count
FROM mny
ORDER BY strike_offset
Run this yourself

The -12% from spot bucket carry 0.46 of the peak bucket vega, while the 10% from spot bucket carry 0.52. The IV column dey shift across those same strikes too, 35.5% for one end of the curve and 29.3% for the other end. That tilt na volatility skew. Skew na property of the input. The hump na property of the sensitivity.

High implied volatility na the same thing as high vega?

No. IV na a level, and level only get meaning when you compare am with im own history. Na IV rank or IV percentile dey do that comparison. E place today’s IV inside the range wey the same name don trade for the past year. 30% IV fit dey near the bottom of one ticker range and near the top of another one. Whether high implied volatility good depend on which side of the contract you dey hold, while vega na how dem dey measure the size of that side.

The panel below dey track weekly average IV for three household names at similar point for the curve: 20 to 45 days to expiry, with strikes wey dey within 5% of spot, across the trailing year.

QueryOne input, three levels: weekly average IV for AAPL, NVDA and KO (20 to 45 days out)
The exact SQL behind every number
SELECT
    toString(toMonday(date))                                              AS week,
    formatDateTime(toMonday(date), '%b %e, %Y')                           AS week_label,
    round(avgIf(implied_volatility, underlying_symbol = 'AAPL') * 100, 1) AS aapl_iv_pct,
    round(avgIf(implied_volatility, underlying_symbol = 'NVDA') * 100, 1) AS nvda_iv_pct,
    round(avgIf(implied_volatility, underlying_symbol = 'KO') * 100, 1)   AS ko_iv_pct
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('AAPL', 'NVDA', 'KO')
  AND date >= '2025-08-01'
  AND date <  '2026-08-01'
  AND iv_converged = 1
  AND volume > 0
  AND days_to_expiry BETWEEN 20 AND 45
  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY week, week_label
HAVING countIf(underlying_symbol = 'AAPL') > 0
   AND countIf(underlying_symbol = 'NVDA') > 0
   AND countIf(underlying_symbol = 'KO') > 0
ORDER BY week
Run this yourself

The series get 53 weekly points, from the week of Jul 28, 2025 reach the week of Jul 27, 2026. For that final week, AAPL average 32%, NVDA 43.6% and KO 21.2%. Three names, three volatility levels, but none of those numbers tell you how much one-point move go worth for any particular position. Na vega dey answer that second question.

Na also why position fit short volatility and still dey close to vega neutral at the same time. Vega dey net across the legs. Sell 30-day option, buy smaller quantity of 90-day option, then size both until their vegas cancel. If IV rise one point parallel across the whole surface, the book go barely move, while the position remain short the front expiry and long the back one. That structure na calendar spread. Vega neutral describe the sensitivity, no be the market view.

IV rank answer whether volatility expensive. Vega answer how much of that bet dey inside the book. The third number wey the same input produce — the distance wey market dey price the stock to travel before expiry — na the expected move from implied volatility.

FAQ

Implied volatility na the same thing as vega?

No. Implied volatility na input wey option pricing model dey use. Dem solve am backward from the price wey market dey quote already. Vega na how sensitive the model be to that input: how much the price go change when IV move one point. One na level, the other na rate.

Higher implied volatility mean higher vega?

No be by itself. Time to expiry and how far the strike dey from the spot price na the main things wey determine vega. Long-dated at-the-money contract fit get vega several times bigger than front-week contract wey get the same IV. Na this the first panel above dey measure.

Vega of 0.20 mean wetin?

E mean say the model price of that contract fit move about $0.20 per share when implied volatility change by one point. For 100 share contract, na roughly $20. Vega itself na estimate wey dey change as spot, time and volatility change. So the $20 apply more to small moves, no be large ones.

Position fit short volatility and still be vega neutral at the same time?

Yes. Vega from different legs fit add together or cancel each other. So book wey short near expiry and long further expiry fit net to roughly zero vega, while e still get view on the front contract’s volatility. Parallel IV move across all expiries go barely affect am. But change for the shape of the term structure go affect am.

Where the IV and vega numbers for this page come from?

Every panel dey read per-contract daily greeks from global_markets.options_greeks. This data get implied volatility, delta, gamma, vega, theta and rho for every listed contract since August 2021. The panels only keep rows where the volatility solve converge and the contract trade for that session.

Data notes and coverage

Every panel filter rows where the implied volatility solve converge (iv_converged = 1) and the contract trade for that session (volume > 0). Each average na plain mean across contract days, with one row for each contract on each date. The vega columns publish as index, no be raw level. Each bucket divide by the reference bucket inside the same panel. This make the comparison independent of whether vega quote per share or per contract. The IV columns na raw values, converted from decimal to percent inside SQL.

QueryContract days wey dey behind the weekly IV series, by month
The exact SQL behind every number
SELECT
    toString(toStartOfMonth(date))                AS month,
    formatDateTime(toStartOfMonth(date), '%b %Y') AS month_label,
    countIf(underlying_symbol = 'AAPL')           AS aapl_contract_day_count,
    countIf(underlying_symbol = 'NVDA')           AS nvda_contract_day_count,
    countIf(underlying_symbol = 'KO')             AS ko_contract_day_count
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('AAPL', 'NVDA', 'KO')
  AND date >= '2025-08-01'
  AND date <  '2026-08-01'
  AND iv_converged = 1
  AND volume > 0
  AND days_to_expiry BETWEEN 20 AND 45
  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY month, month_label
ORDER BY month
Run this yourself

The weekly series dey rely on the counts above, across 12 months. Jul 2026, the last full month wey dey show, get 1111 AAPL contract days inside the 20 to 45 day window. Month wey get small count na month where fewer contracts dey support the average.


Every panel here get the exact SQL underneath am. Expand one to see how dem count each average. If you wan run the same IV and vega comparison for ticker wey you dey follow, ask for am in plain English on the Strasmore terminal.