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
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 |
|---|---|---|
symbol | string | Underlying symbol |
underlying_price | number | Current price of underlying |
as_of | string | ISO 8601 timestamp |
net_chex | number | Aggregate net charm exposure in dollars |
chex_interpretation | string | Plain-English directional interpretation of charm exposure |
strikes | array | Per-strike breakdown |
strikes[].strike | number | Strike price |
strikes[].call_chex | number | Call charm exposure at this strike |
strikes[].put_chex | number | Put charm exposure at this strike |
strikes[].net_chex | number | Net (call + put) charm exposure |