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
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 |
|---|---|---|
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 |
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_chexahead of Friday expiration signals strong charm-driven rebalancing flows to position around - Confirm with the interpretation field - use
chex_interpretationfor a plain-English read of which way charm flows are tilting before acting - Locate charm-heavy strikes - scan
strikes[].net_chexto 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_chexafter the close to gauge gap pressure - Time it against gamma - combine
net_chexwith GEX to judge whether the close drifts toward or away from key levels, and size accordingly
Related
Related reading
- Vol-of-vol, convexity & charm dealer flow - how charm interacts with convexity and vol-of-vol to drive dealer flow
Complementary endpoints
- Vanna Exposure (VEX) - the vol-sensitivity counterpart to charm's time decay
- Gamma Exposure (GEX) - hedging acceleration that pairs with charm's end-of-day drift
- Delta Exposure (DEX) - the directional tilt that charm rebalances as time passes
- Dealer Premium - the premium dealers carry as charm flows rebalance into expiry
Ready to build?
Get your free API key and start pulling live options data in 30 seconds.