Charm Exposure (CHEX) API - Time-Decay Delta Hedging - FlashAlpha Lab API
Lab API Charm Exposure (CHEX)

Charm Exposure (CHEX) API

Measure how dealer delta changes as time passes, predicting end-of-day and expiration-driven rebalancing flows.

New to charm exposure? Vanna & Charm Guide covers time-decay effects on dealer positioning.
Works with CME index futures. Pass ES=F or NQ=F and URL-encode the = as %3D - e.g. /v1/exposure/chex/ES%3DF. Options-on-futures are priced with Black-76 using the CME multiplier ($50/pt ES, $20/pt NQ); CME index futures are Growth-tier. See the futures hub.

Endpoint

GET /v1/exposure/chex/{symbol}
Auth required (X-Api-Key) Rate Limited: Yes Basic+

Parameters

Name In Required Default Description
symbol path yes - Underlying symbol
expiration query no all Filter by expiry date yyyy-MM-dd, or 0dte for same-day only
curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://lab.flashalpha.com/v1/exposure/chex/SPY"
import requests

resp = requests.get(
    "https://lab.flashalpha.com/v1/exposure/chex/SPY",
    headers={"X-Api-Key": "YOUR_API_KEY"}
)
data = resp.json()
print(f"Net CHEX: ${data['net_chex']:,.0f}")
const resp = await fetch(
  "https://lab.flashalpha.com/v1/exposure/chex/SPY",
  { headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log(`Net CHEX: $${data.net_chex.toLocaleString()}`);

Response

{
  "symbol": "SPY",
  "underlying_price": 597.505,
  "as_of": "2026-02-28T16:30:45Z",
  "net_chex": 850000000,
  "chex_interpretation": "Positive charm  -  time decay benefits dealers",
  "strikes": [
    {
      "strike": 575.0,
      "call_chex": 950000,
      "put_chex": 620000,
      "net_chex": 1570000
    }
  ]
}

Key Response Fields

Field Type Description
symbolstringUnderlying symbol
underlying_pricenumberCurrent price of underlying
as_ofstringISO 8601 timestamp
net_chexnumberAggregate net charm exposure in dollars
chex_interpretationstringPlain-English directional interpretation of charm exposure
strikesarrayPer-strike breakdown
strikes[].strikenumberStrike price
strikes[].call_chexnumberCall charm exposure at this strike
strikes[].put_chexnumberPut charm exposure at this strike
strikes[].net_chexnumberNet (call + put) charm exposure

What Is Charm Exposure?

Charm exposure (CHEX) measures how dealer delta shifts purely due to the passage of time (dDelta/dTime). As options age, their delta drifts - calls slowly gain delta and puts lose it. This forces dealers to continuously rebalance. The effect intensifies near expiration, making charm particularly useful for predicting end-of-day flows and weekly OpEx rebalancing. Positive CHEX means time decay is pushing dealers to buy shares, providing support. Negative CHEX means dealers are selling, adding pressure.

Common Use Cases

  • Predict the close from net_chex - positive means time decay pushes dealers to buy into the close, negative means they sell; set your end-of-day bias from the sign
  • Trade weekly OpEx - large net_chex ahead of Friday expiration signals strong charm-driven rebalancing flows to position around
  • Confirm with the interpretation field - use chex_interpretation for a plain-English read of which way charm flows are tilting before acting
  • Locate charm-heavy strikes - scan strikes[].net_chex to see which levels dealer time-decay hedging will pull price toward into expiry
  • Anticipate the open - overnight charm-driven delta drift shapes next-day opening flows; read net_chex after the close to gauge gap pressure
  • Time it against gamma - combine net_chex with GEX to judge whether the close drifts toward or away from key levels, and size accordingly

Related reading

Complementary endpoints

Ready to build?

Get your free API key and start pulling live options data in 30 seconds.