"Vanna and Charm: The Second-Order Greeks That Move Markets" | FlashAlpha Research

"Vanna and Charm: The Second-Order Greeks That Move Markets"

Vanna and charm are the second-order Greeks that most traders overlook, yet they drive some of the market's most powerful mechanical flows. Vanna measures how dealer delta shifts when implied volatility changes, creating the vol-compression rallies and vol-expansion selloffs that dominate post-event price action. Charm measures how delta decays with time, forcing overnight and intraday hedging adjustments that intensify near expiration. This guide explains both Greeks from first principles, shows how FlashAlpha quantifies them through the VEX and CHEX APIs, and demonstrates how to combine them with GEX for a complete dealer positioning framework.

T
Tomasz Dobrowolski
Quant Engineer
Mar 17, 2026 · 37 min read
Vanna Charm Greeks OptionsTrading DealerPositioning Volatility

If you have followed dealer positioning analysis, you already know gamma exposure (GEX). GEX tells you whether dealers will stabilize or amplify price moves. It is a powerful tool, but it only answers one question: what happens when price moves?

Markets do not just move in price. They also move in volatility and time. Implied volatility expands and contracts. The clock ticks toward expiration every second. Both of these forces change dealer delta — and dealers must hedge those changes just as aggressively as they hedge gamma.

The Greeks that capture these forces are vanna and charm. They are second-order derivatives, which sounds academic until you realize they routinely generate billions of dollars in mechanical hedging flow. Understanding them is the difference between watching the market move and understanding why it moved.

What Is Vanna?

Vanna

Vanna is the sensitivity of an option's delta to changes in implied volatility. Equivalently, it is the sensitivity of vega to changes in the underlying price. Mathematically, it is the mixed second partial derivative of the option price with respect to both spot price and volatility.

Vanna Definition $$ \text{Vanna} = \frac{\partial^2 V}{\partial S \, \partial \sigma} = \frac{\partial \Delta}{\partial \sigma} = \frac{\partial \nu}{\partial S} $$

In plain language: when implied volatility changes, option deltas shift. Vanna tells you the direction and magnitude of that shift. A positive vanna means delta increases when IV rises. A negative vanna means delta decreases when IV rises.

For a standard call option, vanna is positive when the option is out-of-the-money and negative when it is deep in-the-money. Put options exhibit the opposite pattern. The magnitude peaks for options that are slightly out-of-the-money — exactly where the most open interest tends to concentrate.

Why Vanna Matters

Vanna is the Greek that connects the volatility market to the equity market. When IV changes, vanna forces dealers to adjust their stock hedges — creating directional flows that have nothing to do with fundamental news or price action. These flows are mechanical, predictable, and often the dominant force after events like FOMC, CPI, or earnings.

Vanna-Driven Vol-Compression Rally (Positive VEX) Vol ↓ IV crush / event resolution Δ ↑ Dealer delta shifts higher Dealers Buy Rebalance hedges by purchasing stock Price ↑ Mechanical bid supports rally Rally suppresses vol further — reinforcing cycle Reverse all arrows for vol-expansion selloffs: Vol ↑ → Δ shifts → Dealers sell → Price ↓

Figure: The vanna feedback loop. When implied volatility drops, dealer delta hedges shift, forcing mechanical stock purchases that push prices higher — which further suppresses volatility.

Vanna's Market Impact: Vol-Compression Rallies and Vol-Expansion Selloffs

Most of the time, dealers are net short options (customers are net buyers of protection). This means dealers carry positive aggregate vanna exposure. The implications are profound.

When Volatility Drops (Positive Vanna, Bullish Flow)

  1. An event passes — FOMC, earnings, CPI — and uncertainty resolves
  2. Implied volatility drops across the board (the "IV crush")
  3. Dealers' call deltas decrease and put deltas move toward zero
  4. Net effect: dealers become over-hedged — they hold more short-stock positions than their reduced put deltas require
  5. To rebalance, dealers must buy stock to close their excess short hedges

Sign convention matters. The direction of vanna-driven flow depends on whether dealers are net short or net long options at each strike, and whether the options are calls or puts. FlashAlpha's VEX tool handles the sign convention for you — positive VEX means the strike benefits from vol compression (bullish), negative VEX means it benefits from vol expansion (bearish).

The practical result is that when IV drops, the aggregate vanna effect creates buying pressure. Dealers must purchase shares to rebalance their hedges. This mechanical buying is the engine behind the "vol-compression rally" — the steady grind higher that follows FOMC announcements, earnings IV crushes, and VIX mean-reversion events.

Why vol-down = dealers buy stock. In equity markets, dealers are predominantly net short puts due to institutional hedging demand. When volatility drops, OTM put deltas approach zero — dealers who were short stock to hedge these puts find themselves over-hedged and must buy stock to rebalance. This put-dominated aggregate vanna effect is why vol compression tends to be bullish for equities. The opposite applies during vol expansion: put deltas increase in magnitude, forcing dealers to sell stock to maintain their hedges.

The reverse is equally important:

When Volatility Rises (Positive Vanna, Bearish Flow)

  1. A shock hits — geopolitical risk, surprise data, a gap down
  2. Implied volatility spikes
  3. Dealer deltas shift, leaving them under-hedged
  4. Dealers must sell stock to re-establish their hedge
  5. This selling hits a market that is already falling — amplifying the move

This is why volatility spikes are self-reinforcing in the short term. It is not just panic selling by retail traders. It is billions of dollars in mechanical dealer flow driven by vanna. The selling continues until IV stabilizes or until the vanna exposure at the relevant strikes decays away.

60-80%
Of post-FOMC afternoon drift explained by vanna-driven flows
$2-5B
Estimated daily vanna hedging flow in SPX options on high-vol days
2-4 hrs
Typical duration of vanna-driven drift after a major IV collapse

What Is Charm?

Charm (Delta Decay)

Charm is the sensitivity of an option's delta to the passage of time. It measures how much delta changes per day (or per hour, per minute) with all else held constant. It is also called "delta decay" because it describes how deltas drift toward their terminal values (0 or 1 for calls, 0 or -1 for puts) as expiration approaches.

Charm Definition $$ \text{Charm} = -\frac{\partial^2 V}{\partial S \, \partial t} = -\frac{\partial \Delta}{\partial t} $$

Sign convention note: Charm is defined here as −∂Δ/∂t (with a leading negative sign). Some sources define it without the negative sign (∂Δ/∂t). Both conventions appear in practice — Bloomberg uses the negative convention. The interpretation remains the same: as time passes, option deltas decay toward their expiration values (0 or ±1).

Charm answers a simple question: if the stock price and implied volatility stay exactly the same, how will dealer delta change by tomorrow morning?

For out-of-the-money options, charm pushes delta toward zero — the option is becoming less sensitive to the underlying as time runs out. For in-the-money options, charm pushes delta toward 1 (calls) or -1 (puts) — the option is becoming more like stock. The largest charm effects occur for at-the-money options near expiration, where time decay is fastest.

The Overnight Effect

Charm operates 24/7, but stock markets are only open 6.5 hours a day. This means a significant portion of delta decay accumulates overnight. When the market opens, dealers must rebalance for all the charm-driven delta changes that occurred while the market was closed. This is one of the reasons opening prints can be volatile — it is not just news, it is overnight charm rebalancing.

Delta Decay (Charm) as Expiration Approaches 1.0 0.8 0.5 0.2 0.0 Call Delta 30 DTE 20 DTE 10 DTE 3 DTE 0 DTE Days to Expiration ITM ATM OTM Charm strongest here ATM delta splits to 0 or 1

Figure: Delta decay over time for ITM, ATM, and OTM call options. As expiration approaches, ITM deltas converge to 1.0, OTM deltas converge to 0.0, and ATM deltas diverge sharply — creating the largest charm-driven hedging flows in the final days.

Charm's Market Impact: Expiration Flows and Overnight Rebalancing

Charm is the quiet force. Unlike vanna, which activates during dramatic vol moves, charm works constantly — every minute, every hour, relentlessly pushing deltas toward their endpoints.

Near-Expiration Amplification

Charm's magnitude scales inversely with time to expiration. A 30-day option has modest charm. A 7-day option has noticeable charm. A 0DTE option has enormous charm. As the 0DTE boom has concentrated massive open interest in same-day expiration contracts, charm has become one of the dominant intraday forces.

  • Morning session: Charm pushes OTM option deltas toward zero throughout the day. Dealers who hedged those options must unwind their hedges as delta decays. The direction of this unwind depends on whether dealers are hedging calls (sell stock as delta drops) or puts (buy stock as delta rises toward zero).
  • Final hour: Charm accelerates dramatically. For at-the-money 0DTE options, delta can swing from 0.50 to 0.05 or 0.95 in the last 30 minutes. This creates rapid, large hedging adjustments.
  • Expiration pin: The interaction of charm and gamma near large OI strikes creates the "expiration pinning" effect, where price gravitates toward the max-pain level as both forces drive dealer hedging toward equilibrium.

The Overnight Charm Gap

Between the market close (4:00 PM ET) and the next open (9:30 AM ET), 17.5 hours pass. During that time, option deltas decay via charm but dealers cannot hedge in the stock market. The result is a hedging deficit that must be resolved at the open.

If overnight charm produces a net positive delta shift for dealers (they need to be shorter stock than they currently are), the open will see selling pressure. If charm produces a net negative delta shift (dealers need to be longer stock), the open will see buying pressure.

Charm is strongest around large OI expirations. Monthly OPEX (third Friday), quarterly OPEX, and days with heavy 0DTE activity see the largest charm-driven flows. If you trade the open on these days without checking charm exposure, you are flying blind.

How FlashAlpha Quantifies Vanna and Charm Exposure

Raw vanna and charm values for individual options are available on most platforms. What FlashAlpha does differently is aggregate them across the entire option chain — every strike, every expiration — weighted by open interest and dealer positioning assumptions. The result is Vanna Exposure (VEX) and Charm Exposure (CHEX): the total hedging flow dealers must execute in response to vol changes and time passage.

VEX: Vanna Exposure

The VEX endpoint (GET /v1/exposure/vex/{symbol}) returns per-strike vanna exposure and aggregate metrics. Here is how to read the data:

  • Positive net VEX: The stock "benefits from vol compression." If IV drops, expect net buying flow from dealers. This is bullish on a vol-down move.
  • Negative net VEX: The stock "benefits from vol expansion." If IV rises, expect net buying flow. This is unusual and typically occurs when dealer positioning is skewed toward net long options at certain strikes.
  • Per-strike bars: Show where vanna exposure is concentrated. Large bars near the current price indicate strikes where vol changes will generate the most hedging activity.

CHEX: Charm Exposure

The CHEX endpoint (GET /v1/exposure/chex/{symbol}) returns per-strike charm exposure and aggregate metrics:

  • Positive net CHEX: Time passage creates net selling pressure from dealers (they need to reduce long stock hedges as call deltas decay).
  • Negative net CHEX: Time passage creates net buying pressure (put delta decay forces dealers to buy stock).
  • Per-strike bars: Show the overnight hedging flow direction at each strike. Useful for predicting opening imbalances near expiration.

Python Code Examples

Both endpoints are available on the free tier (10 requests/day). Here is how to pull VEX and CHEX data programmatically.

Fetching Vanna Exposure (VEX)

import requests

API_KEY = "YOUR_API_KEY"
BASE    = "https://lab.flashalpha.com"

# Fetch vanna exposure for SPY
resp = requests.get(
    f"{BASE}/v1/exposure/vex/SPY",
    headers={"X-Api-Key": API_KEY}
)
vex = resp.json()

print(f"Net Vanna Exposure: {vex['net_vex']:,.0f}")
print(f"Interpretation:     {vex['interpretation']}")
print()

# Show top 5 strikes by absolute vanna exposure
strikes = sorted(vex["strikes"], key=lambda s: abs(s["vanna_exposure"]), reverse=True)
print("Top strikes by vanna exposure:")
for s in strikes[:5]:
    direction = "bullish on vol-down" if s["vanna_exposure"] > 0 else "bearish on vol-down"
    print(f"  ${s['strike']:>8.1f}  VEX: {s['vanna_exposure']:>+12,.0f}  ({direction})")

Fetching Charm Exposure (CHEX)

import requests

API_KEY = "YOUR_API_KEY"
BASE    = "https://lab.flashalpha.com"

# Fetch charm exposure for SPY
resp = requests.get(
    f"{BASE}/v1/exposure/chex/SPY",
    headers={"X-Api-Key": API_KEY}
)
chex = resp.json()

print(f"Net Charm Exposure: {chex['net_chex']:,.0f}")
print(f"Overnight flow:     {chex['overnight_direction']}")
print()

# Show strikes with largest overnight hedging impact
strikes = sorted(chex["strikes"], key=lambda s: abs(s["charm_exposure"]), reverse=True)
print("Top strikes by charm exposure:")
for s in strikes[:5]:
    flow = "selling pressure" if s["charm_exposure"] > 0 else "buying pressure"
    print(f"  ${s['strike']:>8.1f}  CHEX: {s['charm_exposure']:>+12,.0f}  ({flow})")

Combining VEX + CHEX + GEX

import requests

API_KEY = "YOUR_API_KEY"
BASE    = "https://lab.flashalpha.com"
SYMBOL  = "SPY"

# Pull all three exposure metrics in sequence
gex  = requests.get(f"{BASE}/v1/exposure/gex/{SYMBOL}",  headers={"X-Api-Key": API_KEY}).json()
vex  = requests.get(f"{BASE}/v1/exposure/vex/{SYMBOL}",  headers={"X-Api-Key": API_KEY}).json()
chex = requests.get(f"{BASE}/v1/exposure/chex/{SYMBOL}", headers={"X-Api-Key": API_KEY}).json()

print(f"=== {SYMBOL} Dealer Positioning Summary ===")
print(f"GEX  (gamma):  {gex['net_gex']:>+14,.0f}  |  {'Positive gamma — stabilizing' if gex['net_gex'] > 0 else 'Negative gamma — amplifying'}")
print(f"VEX  (vanna):  {vex['net_vex']:>+14,.0f}  |  {vex['interpretation']}")
print(f"CHEX (charm):  {chex['net_chex']:>+14,.0f}  |  Overnight: {chex['overnight_direction']}")
print(f"Gamma Flip:    ${gex['gamma_flip']}")
print(f"Call Wall:     ${gex['call_wall']}")
print(f"Put Wall:      ${gex['put_wall']}")

Combining Vanna, Charm, and Gamma: The Complete Picture

Each exposure metric answers a different question. Used together, they give you a three-dimensional view of dealer positioning that no single metric can provide.

Metric Driven By When It Dominates Key Question
GEX Price movement Always — the baseline Will moves be dampened or amplified?
VEX IV changes FOMC, earnings, VIX spikes What happens if vol drops or spikes?
CHEX Time passage 0DTE, OPEX weeks, overnight What hedging flow will time alone create?

Scenario: Post-Earnings IV Crush

A mega-cap tech stock reports earnings after the close. The stock barely moves, but IV drops 15 points overnight. Here is how each metric applies:

  1. GEX: Positive and large near the current price. Dealers will stabilize any price movement. Expect a tight range.
  2. VEX: Large positive vanna concentrated near ATM strikes. The massive IV crush triggers vanna-driven buying. This is the force that creates the slow grind higher the day after earnings, even when the "news" was neutral.
  3. CHEX: Front-week options just expired (the weekly that covered earnings). Remaining charm is moderate. Not a dominant force today.
  4. Combined read: Positive GEX pins price. Positive VEX provides a bullish tailwind from the IV crush. Charm is neutral. Net: expect a quiet, slightly bullish session with low realized vol. This is a vol-selling environment.

Scenario: Pre-OPEX Friday with Heavy 0DTE

  1. GEX: Extremely high due to massive gamma at expiring strikes. Price is pinned in a tight range during the morning.
  2. VEX: Moderate. Vol is already low ahead of expiration. Not the dominant force today.
  3. CHEX: Enormous. Thousands of contracts are hours from expiration. Delta decay is rapid. As the afternoon progresses, charm unwinds the remaining delta at expiring strikes, creating large directional flows.
  4. Combined read: Morning is pinned (GEX dominates). Afternoon sees increasing volatility as charm erodes gamma (0DTE options expire, removing the stabilizer). Final hour can see a sharp move as charm-driven unwinds dominate a market where gamma has largely expired away.

GEX + Vanna Regime Matrix

Positive Vanna (VEX+)
Negative Vanna (VEX−)
Positive GEX
Calm Bullish Grind
Dealers stabilize price (GEX) and vol-compression creates buying flow (VEX). Low realized vol, steady drift higher. Best environment for short premium.
Rangebound / Choppy
Dealers stabilize (GEX) but vol expansion would push selling flow (VEX). Price pinned but with a bearish undercurrent if vol rises. Watch for breakdowns.
Negative GEX
Sharp Rally / Squeeze
Dealers amplify moves (GEX) and vol-compression adds buying pressure (VEX). Fast, unstable rallies. Short squeezes and breakouts. Elevated realized vol.
Crash / Cascade Risk
Dealers amplify moves (GEX) and vol expansion forces selling (VEX). Self-reinforcing selloffs. The most dangerous regime. Hedges and wide stops essential.

Figure: The four regime combinations of gamma and vanna exposure. Each cell describes the market behavior and trading implications when the two forces interact.

For a broader overview of how GEX, VEX, and CHEX work together — including DEX (delta exposure) — see Why GEX Isn't Enough. For deeper coverage of gamma exposure specifically, see What Is Gamma Exposure (GEX)?

Where to Access VEX and CHEX Data

FlashAlpha provides vanna and charm exposure through multiple channels:

The free tier includes 10 API requests per day across all endpoints. Get your API key →

Frequently Asked Questions

Gamma measures how delta changes when the underlying price moves — it drives hedging in response to price. Vanna measures how delta changes when implied volatility moves — it drives hedging in response to vol changes. Gamma dominates during price-driven markets, while vanna dominates during vol events like FOMC, earnings IV crush, or VIX spikes.
When implied volatility drops, vanna-driven hedging forces dealers to buy stock. Dealers who are net short options carry positive vanna exposure, and a vol decline shifts their deltas in a way that requires purchasing shares to rebalance. This mechanical buying creates a steady bid — the "vol-compression rally" — and explains why markets often grind higher after events like FOMC announcements or earnings.
Charm (delta decay) measures how an option's delta changes with the passage of time. For 0DTE options, charm is extremely large because time is running out rapidly. This means deltas shift fast — an at-the-money 0DTE option can see its delta move from 0.50 to near zero in hours. Dealers must continuously rebalance as this happens, creating large intraday hedging flows that intensify into the close.
Use GET /v1/exposure/vex/{symbol} for vanna exposure and GET /v1/exposure/chex/{symbol} for charm exposure. Both endpoints are available on the free tier with 10 requests per day. Pass your API key via the X-Api-Key header. The response includes per-strike exposure data and aggregate net values. See the full documentation at flashalpha.com/docs/lab-api-vex and flashalpha.com/docs/lab-api-chex.

Live Market Pulse

Get tick-by-tick visibility into market shifts with full-chain analytics streaming in real time.

Intelligent Screening

Screen millions of option pairs per second using your custom EV rules, filters, and setups.

Execution-Ready

Instantly send structured orders to Interactive Brokers right from your scan results.

Join the Community

Discord

Engage in real time conversations with us!

Twitter / X

Follow us for real-time updates and insights!

GitHub

Explore our open-source SDK, examples, and analytics resources!