Strasmore Research
Matuto Matt ConnorNi Matt Connor · data as of August 6, 2026 · refreshed weekly

IV Rank vs IV Percentile: Mga Formula

IV rank at IV percentile: dalawang formula, isang halimbawang puwedeng i-check nang mano-mano, at kung kailan malaki ang agwat ng resulta sa parehong ticker.

Ang pagkakaiba ng IV rank at IV percentile ay nakabatay sa dalawang kalkulasyon gamit ang parehong data. Sinusukat ng IV rank kung nasaan ang implied volatility ngayon sa loob ng 52 week range nito, mula sa pinakamababang reading hanggang sa pinakamataas. Binibilang naman ng IV percentile ang bahagi ng mga trading day sa lookback window na nagsara sa antas na mas mababa kaysa sa reading ngayon. Sa parehong ticker at parehong hapon, maaaring makakuha ito ng score na 18 sa isa at 70 sa isa pa.

Ang dalawang formula, nakasulat nang buo

IV rank = (kasalukuyang IV minus ang 52 week low IV) / (ang 52 week high IV minus ang 52 week low IV) x 100

IV percentile = (mga trading day sa window na mas mababa ang IV kaysa sa IV ngayon) / (kabuuang trading day sa window) x 100

Pareho silang nasa pagitan ng 0 at 100. Pareho rin silang nangangailangan ng dalawang input: isang daily implied volatility series para sa stock, at isang lookback window na karaniwang 252 trading days. Ang implied volatility mismo ay annualized estimate ng option market kung gaano kalaki ang maaaring galaw ng stock, na kinukuha mula sa live option prices. Saklaw ito mula sa simula ng kung ano ang sinusukat ng implied volatility.

Ang pagkakaiba ng dalawa ay kung gaano kalaking bahagi ng window ang sinusuri ng bawat isa. Tinitingnan ng IV rank ang eksaktong dalawang araw sa 252: ang pinakamataas at pinakamababa. Ang lahat ng nasa pagitan ay hindi isinasaalang-alang. Samantala, pantay na tinitingnan ng IV percentile ang bawat araw at hindi nito tinatanong kung gaano kalayo ang pagitan ng mga reading. Ang isa ay posisyon sa loob ng isang range. Ang isa naman ay bilang ng mga araw.

Isang halimbawang maaaring i-check nang mano-mano

Gamitin natin ang isang kathang-isip na ten-day IV series, na may isang reading bawat session: 22, 24, 21, 60, 26, 25, 23, 27, 24, at ngayong araw na 28. Ang low ay 21 at ang high ay 60.

IV rank: (28 - 21) / (60 - 21) x 100 = 7 / 39 x 100 = 17.9.

Pito sa sampung reading—22, 24, 21, 26, 25, 23 at 24—ang mas mababa sa 28. Kaya ang IV percentile ay 7 / 10 x 100 = 70.0.

Ang IV rank na 17.9 ay nagpapahiwatig na mura ang volatility. Ang IV percentile na 70 ay nangangahulugang mas mababa sa kasalukuyang antas ang volatility sa karamihan ng mga araw sa loob ng window. Parehong tama ang dalawang paglalarawan sa iisang sampung numero.

Ngayon, baguhin ang isang value. Palitan ang 60 ng 30 at panatilihin ang iba pang siyam na reading. Magiging (28 - 21) / (30 - 21) x 100 = 77.8 ang IV rank. Hindi magbabago ang IV percentile: mananatili itong 70.0. Ang isang session na nagtakda ng high ay may bigat na 60 points sa IV rank, ngunit wala itong epekto sa IV percentile.

Iyan ang structural weak spot ng IV rank. Ang isang spike sa window—gaya ng earnings gap o isang one-day scare—ay nagpapalaki nang husto sa denominator at itinutulak ang rank malapit sa floor sa susunod na twelve months. Nangyayari ito kahit matagal nang wala ang spike sa option chain. Kapag malaki ang diperensiya ng dalawang score, karaniwan itong senyales na may outlier sa loob ng window. Mas tumpak na inilalarawan ng percentile kung saan aktuwal na gumugol ng oras ang volatility. Mas kapaki-pakinabang ang IV rank kapag smooth ang range at higit sa isang session ang kumakatawan sa bawat extreme. Wala sa dalawang numero ang nagsasabi kung saang direksiyon kikilos ang merkado.

Ano ang hitsura ng isang aktuwal na IV series

Narito ang raw material na ginagamit ng dalawang formula. Bumubuo ang panel sa ibaba ng daily at-the-money implied volatility reading para sa AAPL mula sa mga kontratang 20 hanggang 45 araw bago ang expiry at nasa loob ng 5% mula sa presyo ng share. Pagkatapos, ina-average nito ang mga reading ayon sa linggo.

QueryATM implied volatility ng AAPL, weekly, trailing 52 weeks
Ang eksaktong SQL sa likod ng bawat numero
WITH daily AS
(
    SELECT
        date,
        avg(toFloat64(implied_volatility)) * 100 AS atm_iv
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'AAPL'
      AND date >= today() - 371
      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 date
)
SELECT
    toString(toMonday(date))                    AS week,
    formatDateTime(toMonday(date), '%b %e, %Y') AS week_label,
    round(avg(atm_iv), 2)                       AS aapl_atm_iv_pct,
    round(min(atm_iv), 2)                       AS week_low_iv_pct,
    round(max(atm_iv), 2)                       AS week_high_iv_pct
FROM daily
GROUP BY toMonday(date)
ORDER BY toMonday(date)
Run this yourself

May 54 weekly points ang series, mula sa linggo ng Jul 28, 2025, na may average na 30.03%, hanggang sa linggo ng Aug 3, 2026 na nasa 27.7%. Ang hugis ng linyang ito ang nagpapasya kung magtutugma ang rank at percentile. Kung may isang mataas at nakahiwalay na spike, magkakaroon ng malaking pagkakaiba sa pagitan ng mga ito. Kung gumagalaw ang linya sa loob ng stable na range, mananatiling malapit ang mga ito. Sinusubaybayan ng aming implied volatility ng AAPL page ang stock na ito sa paglipas ng panahon. Para sa tanong tungkol sa absolute level na walang kalakip na historical data, tingnan ang mataas ba ang 30% IV.

IV rank kumpara sa IV percentile sa walong ticker

Pareho ang formulas at lookback, at walong liquid na pangalan ang sinuri sa isang session. Ang column na gap ay ang absolute distance sa pagitan ng dalawang score.

QueryIV rank kumpara sa IV percentile, walong liquid names, 52-week lookback
Ang eksaktong SQL sa likod ng bawat numero
WITH daily AS
(
    SELECT
        underlying_symbol                        AS symbol,
        date,
        avg(toFloat64(implied_volatility)) * 100 AS atm_iv
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'TSLA', 'SPY', 'QQQ', 'KO')
      AND date >= today() - 371
      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 symbol, date
),
latest AS
(
    SELECT
        symbol,
        argMax(atm_iv, date) AS iv_now,
        max(date)            AS as_of
    FROM daily
    GROUP BY symbol
)
SELECT
    d.symbol AS symbol,
    round(100 * (l.iv_now - min(d.atm_iv)) / nullIf(max(d.atm_iv) - min(d.atm_iv), 0), 1) AS iv_rank,
    round(100 * countIf(d.atm_iv < l.iv_now) / count(), 1)                                AS iv_percentile,
    round(abs(iv_rank - iv_percentile), 1)                                                AS gap,
    formatDateTime(any(l.as_of), '%b %e, %Y')                                             AS as_of_label
FROM daily AS d
INNER JOIN latest AS l ON l.symbol = d.symbol
GROUP BY d.symbol, l.iv_now
ORDER BY gap DESC
Run this yourself

Noong Aug 3, 2026, ang pinakamalaking pagkakaiba sa table ay 35.6 points, sa AAPL, kung saan ang IV rank ay 32.4 kumpara sa IV percentile na 68. Sa kabilang dulo ng table, nasa loob ng 6.5 points ang pagkakaiba ng dalawa para sa TSLA. Magbabalik ng ibang listahan ang screen na nakabatay sa isang numero kumpara sa screen na nakabatay sa isa pa. Ito ang praktikal na dahilan kung bakit mahalagang malaman kung alin ang ipinapakita ng iyong platform. Inaayos ng screen na mga stock na may pinakamataas na IV rank ang market batay sa una sa dalawang score.

Mga range input sa likod ng bawat rank sa table

Ilagay ang mga column na current, low, at high sa rank formula, at lalabas ang rank column sa itaas.

QueryKasalukuyan, 52-week low at 52-week high na ATM IV para sa bawat name
Ang eksaktong SQL sa likod ng bawat numero
WITH daily AS
(
    SELECT
        underlying_symbol                        AS symbol,
        date,
        avg(toFloat64(implied_volatility)) * 100 AS atm_iv
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'TSLA', 'SPY', 'QQQ', 'KO')
      AND date >= today() - 371
      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 symbol, date
),
latest AS
(
    SELECT
        symbol,
        argMax(atm_iv, date) AS iv_now,
        max(date)            AS as_of
    FROM daily
    GROUP BY symbol
)
SELECT
    d.symbol                                  AS symbol,
    round(l.iv_now, 2)                        AS current_iv_pct,
    round(min(d.atm_iv), 2)                   AS low_52w_iv_pct,
    round(max(d.atm_iv), 2)                   AS high_52w_iv_pct,
    count()                                   AS observations,
    formatDateTime(any(l.as_of), '%b %e, %Y') AS as_of_label
FROM daily AS d
INNER JOIN latest AS l ON l.symbol = d.symbol
GROUP BY d.symbol, l.iv_now
ORDER BY current_iv_pct DESC
Run this yourself

Bakit magkaiba ang value na iniuulat ng dalawang platform para sa parehong ticker

Walang ambiguity sa alinmang formula. Ang inputs ang nagkakaiba. Bihirang ilathala ng mga vendor kung aling IV series ang ginagamit nila, at ang karaniwang pagpipilian ay nasa magkasalungat na dulo ng chain: isang 30 day constant maturity IV na ini-interpolate sa pagitan ng dalawang expiry sa magkabilang panig ng 30 days, o ang at-the-money contract ng front month, na mas mabilis magbago. Sa halip, ina-average ng ilang platform ang buong chain. Ipinapakita ng panel na ito ang isang stock gamit ang tatlong definition ng IV input sa parehong 52 weeks.

QueryIsang stock, isang session, tatlong definition ng IV input
Ang eksaktong SQL sa likod ng bawat numero
WITH contracts AS
(
    SELECT
        date,
        days_to_expiry,
        abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) AS moneyness,
        toFloat64(implied_volatility) * 100                            AS iv_pct
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'AAPL'
      AND date >= today() - 371
      AND iv_converged = 1
      AND volume > 0
),
defs AS
(
    SELECT
        spec.1 AS iv_series,
        spec.2 AS min_dte,
        spec.3 AS max_dte,
        spec.4 AS max_moneyness
    FROM
    (
        SELECT arrayJoin([
            ('Near 30 day ATM', 20, 45, 0.05),
            ('Front month ATM', 1, 19, 0.05),
            ('Wide net, any expiry', 1, 400, 0.30)
        ]) AS spec
    )
),
daily AS
(
    SELECT
        s.iv_series AS iv_series,
        c.date      AS date,
        avg(c.iv_pct) AS atm_iv
    FROM contracts AS c
    CROSS JOIN defs AS s
    WHERE c.days_to_expiry BETWEEN s.min_dte AND s.max_dte
      AND c.moneyness < s.max_moneyness
    GROUP BY iv_series, date
),
latest AS
(
    SELECT
        iv_series,
        argMax(atm_iv, date) AS iv_now
    FROM daily
    GROUP BY iv_series
)
SELECT
    d.iv_series             AS iv_series,
    round(l.iv_now, 2)      AS current_iv_pct,
    round(min(d.atm_iv), 2) AS low_52w_iv_pct,
    round(max(d.atm_iv), 2) AS high_52w_iv_pct,
    round(100 * (l.iv_now - min(d.atm_iv)) / nullIf(max(d.atm_iv) - min(d.atm_iv), 0), 1) AS iv_rank,
    round(100 * countIf(d.atm_iv < l.iv_now) / count(), 1)                                AS iv_percentile
FROM daily AS d
INNER JOIN latest AS l ON l.iv_series = d.iv_series
GROUP BY d.iv_series, l.iv_now
ORDER BY current_iv_pct DESC
Run this yourself

Sa pinakahuling session, ang Wide net, any expiry ay nagpi-print ng 37.6% habang ang Near 30 day ATM ay nagpi-print ng 27.7%, at umaabot ang kanilang IV ranks sa 23.1 at 32.4. Parehong stock, parehong session, parehong formula, pero magkaiba ang definition ng input.

Ang ikalawang salik ay ang haba ng lookback. Ang 52 weeks ang karaniwang setting, at maraming platform ang nag-aalok din ng 30, 60 o 90 day settings.

QueryAng parehong session na sincore gamit ang limang magkakaibang lookback window
Ang eksaktong SQL sa likod ng bawat numero
WITH daily AS
(
    SELECT
        date,
        avg(toFloat64(implied_volatility)) * 100 AS atm_iv
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'AAPL'
      AND date >= today() - 800
      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 date
),
latest AS
(
    SELECT
        argMax(atm_iv, date) AS iv_now,
        max(date)            AS as_of
    FROM daily
),
windows AS
(
    SELECT
        spec.1 AS lookback_label,
        spec.2 AS lookback_days
    FROM
    (
        SELECT arrayJoin([
            ('1 month', 30),
            ('3 months', 90),
            ('6 months', 180),
            ('12 months', 371),
            ('24 months', 742)
        ]) AS spec
    )
)
SELECT
    w.lookback_label AS lookback_label,
    round(100 * (l.iv_now - min(d.atm_iv)) / nullIf(max(d.atm_iv) - min(d.atm_iv), 0), 1) AS iv_rank,
    round(100 * countIf(d.atm_iv < l.iv_now) / count(), 1)                                AS iv_percentile,
    count()                                                                               AS observations
FROM daily AS d
CROSS JOIN windows AS w
CROSS JOIN latest AS l
WHERE d.date >= l.as_of - w.lookback_days
GROUP BY w.lookback_label, w.lookback_days, l.iv_now
ORDER BY w.lookback_days
Run this yourself

Sa 1 month lookback, ang score ng stock na ito ay 0.4 sa IV rank at 4.8 sa IV percentile. Kapag pinalawig ang window sa 24 months, ang parehong session ay may score na 23.4 at 63.3. Walang nagbago sa option chain sa pagitan ng dalawang row na iyon. Ang window lamang ang nagbago. Kapag hindi nagtutugma ang dalawang screen tungkol sa isang ticker, ang lookback setting at ang IV series ang unang dalawang dapat suriin.

Paano ginagamit ang dalawang numero

Parehong ginagamit ang dalawang reading bilang filter sa pagpili ng strategy, hindi bilang forecast. Ang mga trader na nagbebenta ng premium, kabilang ang covered calls at cash-secured puts, ay karaniwang naghahanap ng matataas na reading. Ipinapahiwatig nito na ang option ay may presyong nakabatay sa mas malaking galaw kaysa sa karaniwang naihatid ng stock sa nasuring panahon. Tinitingnan naman ng mga trader na bumibili ng premium ang mababang dulo, kung saan kabaligtaran ang takbo ng parehong lohika. Mas kapaki-pakinabang para sa layuning ito ang relative score kaysa sa aktuwal na IV number. Ang 40% IV ay karaniwan para sa isang stock ngunit napakataas para sa isa pa. Naaalis ang problemang ito kapag inihahambing ang stock sa sarili nitong history. Ipinapakita ng Mabuti ba ang mataas na implied volatility ang mga trade-off sa bawat panig.

May isang bagay na hindi masasagot ng mga numerong ito para sa iyo. Maaaring tumaas pa ang isang mataas na reading. Maaari ring maging rank na 60 sa Biyernes ang rank na 95 noong Lunes kahit walang pagbabago sa iyong position. Wala sa alinmang score ang nagbibigay ng impormasyon tungkol sa direksiyon. Ang mataas na IV ay nangangahulugang nagpresyo ang market ng malaking galaw, ngunit walang ipinapakitang pananaw kung pataas o pababa ito.

Mga FAQ

Mas mainam ba ang IV rank o IV percentile?

Magkaibang tanong ang sinasagot ng mga ito. Mas maaasahan ang IV percentile kapag may isang matinding spike sa lookback window, dahil binibilang nito ang mga araw sa halip na ikumpara ang kasalukuyang halaga sa isang extreme value lamang. Mas madaling unawain ang IV rank kapag sapat ang dami ng datos sa range, dahil direktang ipinapakita nito kung gaano kalapit ang halaga ngayon sa 52-week high.

Ano ang mataas na IV rank?

Kadalasang itinuturing ng mga trading desk na ang readings na lampas 50 ay nasa upper half ng sariling range ng isang stock, habang ang lampas 80 ay tunay na mataas para sa stock na iyon. Relative ang score ayon sa disenyo nito. Kaya magkaiba ang ipinahihiwatig na absolute IV level ng rank na 80 sa isang tahimik na consumer staple at ng rank na 80 sa isang volatile na growth name.

Pareho ba ang lookback na ginagamit ng IV rank at IV percentile?

Karaniwan, 252 trading days ang ginagamit para sa pareho. Gayunman, maaaring baguhin ang setting sa karamihan ng platforms, at nagkakaiba ang default depende sa vendor. Ipinapakita ng panel sa itaas na maaaring magkaiba ang score ng isang stock sa bawat haba ng window. Ito ang unang dapat tingnan kapag hindi nagtutugma ang dalawang tool.

Maaari bang maging 0 o 100 ang IV rank?

Oo. Umaabot sa 100 ang IV rank kapag nag-print ang isang stock ng bagong 52-week high sa implied volatility, at umaabot sa 0 kapag may bagong low. Nangyayari ito dahil ang reading ngayon mismo ay isa sa mga endpoint ng range. Bihirang umabot sa alinman sa dalawang extreme ang IV percentile dahil kasama sa denominator ang kasalukuyang session.

Bakit nagbago ang IV rank ko kahit hindi gumalaw ang IV?

Umuusad ang window sa bawat session. Kapag lumabas sa trailing 52 weeks ang isang lumang spike, bumababa ang high na ginagamit sa denominator at tumataas ang rank kahit hindi nagbago ang IV ngayon. Inilalarawan ng IV crush ang isa pang karaniwang sorpresa: ang pagbaba mismo ng IV kaagad pagkatapos ng earnings report.


Nasa ilalim ng bawat panel dito ang eksaktong SQL na ginamit. Palitan ang ticker sa alinman sa mga ito upang kalkulahin ang score ng ibang pangalan sa Strasmore terminal.