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.

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 CHEX 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

  • End-of-day flow prediction — CHEX indicates whether dealers will buy or sell into the close as delta drifts
  • Weekly OpEx trading — large CHEX ahead of Friday expiration signals strong rebalancing flows
  • Intraday timing — combine CHEX with GEX to anticipate whether the close will drift toward or away from key levels
  • Overnight gap analysis — overnight charm-driven delta changes influence next-day opening flows
  • Position sizing near expiry — adjust position sizes when CHEX indicates strong directional rebalancing pressure

When to Use This Endpoint

Use CHEX when time decay is the dominant factor — typically in the final hours of trading or approaching weekly/monthly expiration. For volatility-driven delta changes, use VEX. For price-driven hedging, use GEX. CHEX is most powerful when combined with GEX: a positive-gamma regime with positive CHEX means dealers are buying into the close, reinforcing support.

Endpoint

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

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
FlashAlpha
© FlashAlpha. All rights reserved.