Data dictionary

Every field in the archive files (159) and every LAB column (120), grouped by the dealer-gamma book it reads; magnitudes are never comparable across books.

VOLUME default

cp x cumulative session volume (cp = +1 call, -1 put). Spotted by: suffix _volcp or _vol in the payload, _vol in LAB.

Payload fields 16

fieldmeaningunitsince
ngv_vol
Minute series
Net cp x volume gamma at spot, 0DTE only. The minute twin of sec.ngv_volcp.$M per index pointall sessions (backfilled 2026-10-03 from sec.ngv_volcp at each minute's :59 second)
gpct_vol
Minute series
The same percentile computed on ngv_vol against the same minute of the prior 20 sessions that carry it.percentileall sessions; all null on the first 10 sessions (2019-06-19, 2022-04-14 to 2022-05-02: pool under 10)
flip_vol
Minute series
Volume-book zero-gamma flip, 0DTE, raw directional root (+/-2%, then +/-6%): sec.flip_volcp at the end of the minute. The default flip. null when the book is one-sided.index pointsall sessions (backfilled 2026-10-03 from sec.flip_volcp at each minute's :59 second)
call_wall_vol put_wall_vol
Minute series
Peak positive / negative volume-book gamma strike within +/-2.5% of spot, 0DTE: sec.cr0_volcp / ps0_volcp at the end of the minute. The default walls.strikeall sessions (backfilled 2026-10-03 the same way)
hhi
Minute series
Herfindahl concentration of abs(volume-book gamma) across strikes within +/-2.5% of the median strike, narrow scope, x100. High = a few strikes hold the book. Not the hold band (that is frames[].hhi).percent (0 to 100)all sessions
flowvel
Minute series
Flow velocity: sum over strikes of the absolute 15-minute change in volume-book gamma, narrow scope.$M per index pointall sessions
now.gpct_vol
now
Last finite gpct_vol (backfilled files) or the last minute's (new builds).percentileall sessions; null on the first 10
levels.flip_vol levels.call_wall_vol levels.put_wall_vol
levels
flip_vol / call_wall_vol / put_wall_vol at the last frame's minute, the instant levels.flip is read at.index points; strikeall sessions (backfilled 2026-10-03)
frames[].gv frames[].gv0
frames[]
cp x volume gamma per strike. gv0 is the object ngv_vol, flip_volcp and the volume walls are built from; gv adds the later expiries.$M per index pointall sessions
frames[].vv frames[].vv0
frames[]
cp x volume vanna per strike.$M of delta per vol pointall sessions
frames[].cv frames[].cv0
frames[]
cp x volume charm per strike.$Bn of delta per dayall sessions
sec.flip_volcp
sec
Volume-book zero-gamma flip, 0DTE, raw directional root (+/-2%, then +/-6%). The default flip.index pointsall sessions
sec.cr0_volcp sec.ps0_volcp
sec
Peak positive / negative volume-book gamma strike within +/-2.5% of spot, 0DTE. The default walls.strikeall sessions
sec.ngv_volcp
sec
Net volume-book gamma at spot, 0DTE.$M per index pointall sessions
orders[].flip
order ledger
Distance of the order's top-gamma strike from the volume flip at that minute, the flip the chart draws (the measured flip until 2026-10-03; every archived ledger was re-pointed that day). null when the session carries no volume flip at that minute.index points (absolute)
orders[].side
order ledger
over / under the volume flip.string

LAB columns 18

columnmeaningunitbuilt from
flip_vol_dist
levels · volume
spot - the VOLUME-book zero-gamma flip, points (+ = above it, the positive-gamma side): THE flip, the one the chart drawspoints, signedspot sec.flip_volcp
spot - the last sec.flip_volcp inside the minute
gamma_pos_vol
levels · volume
1 when spot is at or above the VOLUME-book flip (long gamma), 0 belowflagspot sec.flip_volcp
1 when flip_vol_dist >= 0, 0 below, NaN when either is missing
call_wall_vol_dist
levels · volume
spot - the VOLUME-book call wall (the 0DTE strike with the most positive gamma), points (+ = above it)points, signedspot sec.cr0_volcp
spot - the last sec.cr0_volcp inside the minute
put_wall_vol_dist
levels · volume
spot - the VOLUME-book put wall (the 0DTE strike with the most negative gamma), points (+ = above it)points, signedspot sec.ps0_volcp
spot - the last sec.ps0_volcp inside the minute
call_wall_strength_vol
levels · volume
share of the near-money 0DTE VOLUME book standing on the volume call wall's own strike, 0..1 -- a thin wall is drawn like any other but may behave like noneshareframes[].gv0 frames[].strikes sec.cr0_volcp
|gv0| on the strike nearest the minute's cr0_volcp (within 3 pt) / sum |gv0| over the frame; each 5-minute frame carried forward
put_wall_strength_vol
levels · volume
same for the VOLUME-book put wall, 0..1shareframes[].gv0 frames[].strikes sec.ps0_volcp
|gv0| on the strike nearest the minute's ps0_volcp (within 3 pt) / sum |gv0| over the frame; carried forward
call_wall_agree
levels · all three
how many of the three books (volume, open interest, measured) name the SAME call wall, 1..3. Two or more agree in 45.5% of minutes, all three in 7.1% (store through 2026-09-23)countsec.cr0_volcp sec.cr0_oi sec.cr0
of the three books' call walls at the minute, how many name the most-named strike
put_wall_agree
levels · all three
same for the put wall: two or more books agree in 29.9% of minutes, all three in 1.8%countsec.ps0_volcp sec.ps0_oi sec.ps0
of the three books' put walls at the minute, how many name the most-named strike
call_wall_agree_dist
levels · all three
spot - the call wall the most books name, points (+ = above it)points, signedspot sec.cr0_volcp sec.cr0_oi sec.cr0
spot - the most-named call wall
put_wall_agree_dist
levels · all three
spot - the put wall the most books name, points (+ = above it)points, signedspot sec.ps0_volcp sec.ps0_oi sec.ps0
spot - the most-named put wall
net_gamma_vol
book · volume
net gamma at spot, VOLUME book, $M -- 'how much gamma' unqualified$Msec.ngv_volcp
the last value inside the minute (the same object as the minute series ngv_vol)
net_gamma_vol_flow
book · volume
1-minute change of net_gamma_vol, $M per minute -- 'gamma flow' unqualified$M per minutesec.ngv_volcp
1-minute difference of net_gamma_vol
gamma_pctl_vol
book · volume
net_gamma_vol ranked against the SAME minute of the prior 20 sessions, 0..100 (the chart's GAMMA PCTL). Read it as a decile: 20 sessions give ~11 points of error at the medianpercentilesec.ngv_volcp
recomputed over the store from net_gamma_vol: the share of the same clock minute in the prior 20 sessions strictly below, x 100; NaN under 10 comparands. Not copied from gpct_vol
total_change_15_vol
book · volume
sum over strikes of |gamma change| of the 0DTE VOLUME book against 15 minutes earlier, $M -- 'book being rebuilt / flow velocity' unqualified$Mframes[].gv0 frames[].strikes
sum over strikes of |gv0 now - gv0 in the latest frame at least 15 minutes older|, strikes matched by value; carried forward
concentration_vol
book · volume
Herfindahl of |gamma| across the near-money strikes of the 0DTE VOLUME book, 0..1: high = a few strikes hold it and pin hard -- 'concentrated book / pin risk' unqualifiedHerfindahlframes[].gv0
sum of (|gv0| / sum |gv0|)^2 over the frame's strikes; carried forward. Not the minute series hhi (narrow scope, x 100)
gamma_0dte_vol
expiry · volume
VOLUME-book gamma, today's expiry only ($M)$Mframes[].gv0
sum of gv0 over the frame; carried forward
gamma_next_vol
expiry · volume
VOLUME-book gamma past today ($M)$Mframes[].gv frames[].gv0
sum of (gv - gv0); carried forward
gamma_next_share_vol
expiry · volume
share of the VOLUME book that outlives today (0..1)shareframes[].gv frames[].gv0
sum |gv - gv0| / sum |gv|

MEASURED

the dealer's net position, signed print by print off the trade tape. Spotted by: neutral payload names (flip, cr0, ps0, gpct, ngv_meas, hold_lo/hi, dex), _meas in LAB.

Payload fields 41

fieldmeaningunitsince
flip
Minute series
Measured zero-gamma flip: the root of net measured gamma over a grid of hypothetical spot (+/-2%, widened once to +/-6%), on a curve smoothed with a 3-minute half-life EMA and tracked to the previous root. Lags the raw book by about 4 minutes. null when the book is one-sided over +/-6%.index pointsall sessions
flip_se
Minute series
Crossing standard error of flip (Mueller 1985): trailing curve noise over the slope at the root. null until 5 innovations exist or above 99.index pointssince 2026-08-24 (29 sessions)
ngv_meas
Minute series
Net measured dealer gamma at spot, narrow scope.$M per index pointall sessions
gpct
Minute series
Percentile (0 to 100) of ngv_meas against the SAME minute of the prior 20 sessions; null under 10 comparands. A decile, not a rank: the sampling error is about +-11 points at the median. No measured forward edge once the time of day is held fixed.percentileall sessions (sessions before 2026-08-24 recomputed to this definition on 2026-10-03, see Known caveats)
hold_lo hold_hi
Minute series · measured only
The hold band: the contiguous interval of hypothetical spot around current spot where measured dealer gamma stays positive, searched over +/-6%. null when spot itself sits in negative measured gamma. An edge that reached the end of the grid reads as spot +/-6%. No volume-book band exists.index pointsall sessions
charm
Minute series
Measured charm pressure: the change in dealer dollar delta per day from time decay, narrow scope.$Bn of delta per dayall sessions
dex
Minute series
Measured dealer delta inventory, narrow scope. Millions of index units ("shares"), not dollars: multiply by spot for $M.millions of index unitsall sessions
vex
Minute series
Measured dealer vega, narrow scope.$M per vol pointall sessions
exp_range
Minute series · measured (adjustment)
FirmTape's forecast of the range left to the close: rv30-based sigma x spot x sqrt(minutes left), scaled by exp(-0.147 z), z = ngv_meas z-scored against the prior 20 sessions' pooled minutes. Measured to add nothing over the straddle; kept for comparison.index pointsall sessions
now.gpct
now
Last minute's gpct.percentileall sessions
now.exp_range
now · measured (adjustment)
exp_range at the second-to-last minute; near zero at the close by construction.index pointsall sessions
levels.flip
levels
frames[-1].flip.index pointsall sessions
levels.cr0
levels
Strike with the largest positive measured gamma within +/-2.5% of spot (the measured "call wall"), narrow scope.strikeall sessions
levels.ps0
levels
Strike with the most negative measured gamma within +/-2.5% of spot (the measured "put wall").strikeall sessions
levels.hold_lo levels.hold_hi
levels
The hold band at the last frame.index pointsall sessions
ladder.g_flow
ladder
frames[-1].g.$M per index pointall sessions
ladder.v_flow
ladder
frames[-1].v.$M of delta per vol pointall sessions
ladder.c_flow
ladder
frames[-1].c.$Bn of delta per dayall sessions
frames[].g frames[].g0
frames[]
Dealer gamma per strike.$M per index pointall sessions
frames[].v frames[].v0
frames[]
Dealer vanna per strike.$M of delta per vol pointall sessions
frames[].c frames[].c0
frames[]
Dealer charm per strike.$Bn of delta per dayall sessions
frames[].d frames[].d0
frames[]
Dealer delta per strike, in dollars (delta x 100 x spot), unlike the aggregate dex.$M of index exposureall sessions
frames[].e frames[].e0
frames[]
Dealer vega per strike.$M per vol pointall sessions
frames[].cr0
frames[]
Peak positive measured gamma strike in this frame (argmax g).strikeall sessions
frames[].ps0
frames[]
Peak negative measured gamma strike (argmin g).strikeall sessions
frames[].flip
frames[]
flip at this minute.index pointsall sessions
frames[].hlo frames[].hhi
frames[]
hold_lo / hold_hi at this minute. hhi here is the hold band's upper edge, not the top-level hhi concentration series.index pointsall sessions
vol.cb vol.pb
vol · measured (signing)
Customer BUY contracts, calls / puts, per strike, cumulative.contractsall sessions
vol.cs vol.ps
vol · measured (signing)
Customer SELL contracts, calls / puts.contractsall sessions
sec.flip
sec
Measured flip (smoothed, tracked, minute cadence).index pointsall sessions
sec.flip_se
sec
Its crossing standard error.index pointssince 2026-08-24
sec.cr0 sec.ps0
sec
Peak positive / negative measured gamma strike within +/-2.5%, narrow scope.strikeall sessions
sec.ngv_meas
sec
Net measured gamma at spot.$M per index pointall sessions
sec.hold_lo sec.hold_hi
sec · measured only
The hold band per second.index pointsall sessions
sec.charm
sec
Charm pressure.$Bn of delta per dayall sessions
sec.vanna
sec
Vanna pressure (the only aggregate vanna series).$M of delta per vol pointall sessions
sec.mc.<w>.strike sec.mc.<w>.value
sec
Max-change gamma, w in 1 5 10 15 30 minutes: the strike whose measured gamma moved most over the trailing w minutes, and the signed change. null for the first w minutes.strike; $M per index pointall sessions
orders[].g
order ledger
Dealer gamma the order added (measured sign); null if it could not be priced.$M per index point
stats.no_side stats.no_gamma
order ledger
Orders the tape could not side / could not price.count
stats.gamma_up stats.gamma_dn
order ledger
Orders that added positive / negative dealer gamma.count
stats.<event name>
calendar file · measured (the book statistics)
What usually followed that kind of event: window, ratio (range in the window over the trailing-move expectation, event days over other days), n, study, recent [[date, value]], book {flip_crossed, at_wall, short_gamma, short_vs_long}. The book statistics use the measured flip and the measured hold band; at_wall means "ended within a few points of a hold-band edge", not of cr0 / ps0.

LAB columns 33

columnmeaningunitbuilt from
flip_meas
levels · measured
the MEASURED-book zero-gamma flip as a price (use flip_meas_dist in rules)index pointsflip
copied
flip_meas_dist
levels · measured
spot - the MEASURED-book flip, points (+ = above it)points, signedspot flip
spot - flip
gamma_pos_meas
levels · measured
1 when spot is at or above the MEASURED-book flip, 0 belowflagspot flip
1 when spot >= flip, 0 below, NaN when either is missing
call_wall_meas_dist
levels · measured
spot - the MEASURED-book call wall, points (+ = above it)points, signedspot sec.cr0
spot - the last sec.cr0 inside the minute
put_wall_meas_dist
levels · measured
spot - the MEASURED-book put wall, points (+ = above it)points, signedspot sec.ps0
spot - the last sec.ps0 inside the minute
call_wall_strength_meas
levels · measured
share of the near-money MEASURED book on the measured call wall's strike, 0..1shareframes[].g frames[].strikes frames[].cr0
|g| on the frame's cr0 / sum |g| over the frame; carried forward
put_wall_strength_meas
levels · measured
same for the MEASURED-book put wall, 0..1shareframes[].g frames[].strikes frames[].ps0
|g| on the frame's ps0 / sum |g| over the frame; carried forward
net_gamma_meas
book · measured
net gamma at spot, MEASURED (tape-signed) book, $M$Mngv_meas
copied
net_gamma_meas_minus_oi
book · measured − open interest
net_gamma_meas - net_gamma_oi, $M: the tape-signed book against the open-interest book. For measured vs VOLUME compare net_gamma_meas with net_gamma_vol$Mngv_meas ngv_conv
ngv_meas - ngv_conv
net_gamma_meas_flow
book · measured
1-minute change of net_gamma_meas, $M per minute$M per minutengv_meas
1-minute difference of ngv_meas
gamma_pctl_meas
book · measured
net_gamma_meas ranked against the same minute of the prior 20 sessions, 0..100percentilengv_meas
recomputed over the store from net_gamma_meas, the same way as gamma_pctl_vol. Not copied from gpct, so one definition on every session
dealer_delta_meas
book · measured
dealer delta exposure, MEASURED book, millions of SPX units of delta; + = dealers long delta. No volume-book twinM SPX units of deltadex
copied
dealer_vega_meas
book · measured
dealer vega exposure, MEASURED book, $M per vol point. No volume-book twin$M per vol pointvex
copied
charm_meas
book · measured
charm pressure, MEASURED book: the dollar delta the book sheds per day from time decay alone, $Bn per day$Bn of delta per daycharm
copied
vanna_meas
book · measured
vanna pressure, MEASURED book: the dollar delta the book gains per 1 vol point of IV, $M per vol point$M of delta per vol pointsec.vanna
the last value inside the minute
dealer_delta_meas_flow
book · measured
1-minute change of dealer_delta_meas, millions of SPX unitsM SPX units per minutedex
1-minute difference, within the session
dealer_vega_meas_flow
book · measured
1-minute change of dealer_vega_meas, $M per vol point$M per vol point, per minutevex
1-minute difference, within the session
charm_meas_flow
book · measured
1-minute change of charm_meas, $Bn per day$Bn per day, per minutecharm
1-minute difference, within the session
max_change_5_meas
book · measured
the largest single-strike gamma change of the MEASURED ladder over the last 5 min, $M, signed -- how hard the busiest strike just moved$M, signedsec.mc.5.value
the last value inside the minute
max_change_15_meas
book · measured
the same over 15 min, $M$M, signedsec.mc.15.value
the last value inside the minute
max_change_30_meas
book · measured
the same over 30 min, $M$M, signedsec.mc.30.value
the last value inside the minute
concentration_meas
book · measured
the same Herfindahl on the MEASURED book, 0..1Herfindahlframes[].g
sum of (|g| / sum |g|)^2 over the frame's strikes; carried forward
abs_gamma_meas_over_gross_oi
gross · measured ÷ unsigned OI
sum |measured gamma| / sum unsigned OI gamma: how much of the convexity the tape-signed book accounts for. Low = the sides cancel. Changes scope with book_widthratioframes[].g frames[].ga
sum |g| / sum ga over the frame
abs_gamma_below_meas
gross · measured
sum |measured gamma| on strikes within 30 pt BELOW spot, $M/pt$M/ptframes[].g frames[].strikes spot
sum |g| on strikes in [spot - 30, spot); carried forward
abs_gamma_above_meas
gross · measured
the same within 30 pt ABOVE spot, $M/pt$M/ptframes[].g frames[].strikes spot
sum |g| on strikes in (spot, spot + 30]; carried forward
abs_gamma_below_meas_chg15
gross · measured
change of abs_gamma_below_meas against the frame 15 min earlier (negative = the book below thinned)$M/pt, signedframes[].g frames[].strikes spot
abs_gamma_below_meas minus its value in the latest frame at least 15 minutes older
abs_gamma_above_meas_chg15
gross · measured
change of abs_gamma_above_meas over 15 min (positive = the book above thickened)$M/pt, signedframes[].g frames[].strikes spot
abs_gamma_above_meas minus its value in the latest frame at least 15 minutes older
abs_gamma_below_meas_chg30
gross · measured
change of abs_gamma_below_meas over 30 min$M/pt, signedframes[].g frames[].strikes spot
the same against the frame at least 30 minutes older
abs_gamma_above_meas_chg30
gross · measured
change of abs_gamma_above_meas over 30 min$M/pt, signedframes[].g frames[].strikes spot
the same against the frame at least 30 minutes older
gamma_0dte_meas
expiry · measured
MEASURED gamma, today's expiry only ($M)$Mframes[].g0
sum of g0 over the frame; carried forward
gamma_next_meas
expiry · measured
MEASURED gamma past today -- the book that survives the close ($M)$Mframes[].g frames[].g0
sum of (g - g0); carried forward
gamma_next_share_meas
expiry · measured
share of the MEASURED book that outlives today (0..1)shareframes[].g frames[].g0
sum |g - g0| / sum |g|
range_left_fcst
vol · measured (adjustment)
FirmTape's FORECAST of the range left to the close, index points: realised vol over the last 30 min scaled to the minutes left, adjusted by how high net_gamma_meas stands against the prior 20 sessions. A model, not an implied numberindex pointsexp_range
copied

OPEN INTEREST

cp x morning open interest. Spotted by: struct, conv or _oi in the payload (flip_struct, ngv_conv, cr0_oi), _oi in LAB.

Payload fields 10

fieldmeaningunitsince
ga_backfill
Top level
Provenance stamp of the 2026-09-02 backfill that added the unsigned book ga/ga0 to older sessions: {at, oi, expiries, contracts, applied}.objectsessions to 2026-08-21
ngv_conv
Minute series
Net cp x OI gamma at spot, narrow scope (0DTE plus three expiries, not 0DTE only).$M per index pointall sessions
frames[].go frames[].go0
frames[]
cp x OI gamma per strike.$M per index pointall sessions
frames[].vo frames[].vo0
frames[]
cp x OI vanna per strike.$M of delta per vol pointall sessions
frames[].co frames[].co0
frames[]
cp x OI charm per strike.$Bn of delta per dayall sessions
frames[].ga frames[].ga0
frames[] · open interest (unsigned)
Gross book: abs(gamma) x OI, calls and puts added. No sign, so no flip and no walls.$M per index pointall sessions (backfilled 2026-09-02 on sessions to 2026-08-21)
sec.flip_struct
sec
OI-book flip, narrow scope, raw root.index pointsall sessions
sec.ngv_conv
sec
Net OI gamma at spot, narrow scope.$M per index pointall sessions
sec.cr0_oi sec.ps0_oi
sec
Peak positive / negative OI gamma strike within +/-2.5%, 0DTE only.strikeall sessions
sec.cr0_oi_book sec.ps0_oi_book
sec
The same peaks over the narrow-scope OI book (they can pick a 3-5 DTE wall).strikeall sessions

LAB columns 15

columnmeaningunitbuilt from
flip_oi_dist
levels · open interest
spot - the OPEN-INTEREST-book flip, points (+ = above it)points, signedspot sec.flip_struct
spot - the last sec.flip_struct inside the minute
call_wall_oi_dist
levels · open interest
spot - the OPEN-INTEREST-book call wall at 0DTE, points (+ = above it)points, signedspot sec.cr0_oi
spot - the last sec.cr0_oi inside the minute
put_wall_oi_dist
levels · open interest
spot - the OPEN-INTEREST-book put wall at 0DTE, points (+ = above it)points, signedspot sec.ps0_oi
spot - the last sec.ps0_oi inside the minute
net_gamma_oi
book · open interest
net gamma at spot, call-minus-put OPEN-INTEREST book over four expiries, $M (not comparable with the 0DTE books' level)$Mngv_conv
copied
gross_oi_total
gross · unsigned OI
sum of |gamma| x open interest over the near-money window, $M per index point. Its scope follows book_width (3 expiries, 21 on widened sessions)$M/ptframes[].ga
sum of ga over the frame; carried forward
gross_oi_at_spot
gross · unsigned OI
the unsigned OI book on the strike nearest spot, $M/pt$M/ptframes[].ga frames[].strikes spot
ga on the strike nearest spot, NaN when it is more than 3 pt away; carried forward
gross_oi_above
gross · unsigned OI
the heaviest unsigned OI strike ABOVE spot, $M/pt$M/ptframes[].ga frames[].strikes spot
the largest ga on a strike above spot; carried forward
gross_oi_below
gross · unsigned OI
the heaviest unsigned OI strike BELOW spot, $M/pt$M/ptframes[].ga frames[].strikes spot
the largest ga on a strike below spot; carried forward
gross_oi_above_dist
gross · unsigned OI
points from spot up to that heaviest strike above, always positivepoints, always positiveframes[].ga frames[].strikes spot
that strike - spot
gross_oi_below_dist
gross · unsigned OI
points from spot down to the heaviest strike below, always positivepoints, always positiveframes[].ga frames[].strikes spot
spot - that strike
gross_oi_near_share
gross · unsigned OI
share of the unsigned OI book within +-10 pt of spot, 0..1 -- how much convexity sits on top of priceshareframes[].ga frames[].strikes spot
sum of ga within 10 pt of spot / sum of ga
gross_oi_top3_share
gross · unsigned OI
share of the unsigned OI book on its three heaviest strikes, 0..1shareframes[].ga
the three largest ga / sum of ga
gamma_0dte_oi
expiry · open interest
OPEN-INTEREST gamma, today's expiry only ($M)$Mframes[].go0
sum of go0 over the frame; carried forward
gamma_next_oi
expiry · open interest
OPEN-INTEREST gamma past today ($M)$Mframes[].go frames[].go0
sum of (go - go0); carried forward
gamma_next_share_oi
expiry · open interest
share of the OI book that outlives today (0..1) -- the OI book is roughly half next-expiry, so this one really movesshareframes[].go frames[].go0
sum |go - go0| / sum |go|

NO BOOK

market quantities, calendar and bookkeeping: no dealer weight. Spotted by: spot, iv, straddle, volume, events, axes.

Payload fields 51

fieldmeaningunitsince
day
Top level
Session date, ET.YYYY-MM-DDall sessions
built
Top level
Build stamp of the code that wrote the file; a -live suffix means the live engine wrote it.stringall sessions
minutes
Top level
The minute axis every minute series is aligned to.HH:MMall sessions
step
Top level
Minutes between ladder frames.5all sessions
exp_n
Top level
Post-0DTE expiries the session was archived with (14 to 21; 21 on nearly every session since early 2023).countall sessions
lad_n
Top level · volume, OI
Post-0DTE expiries the frames' VOLUME and OI books sum over. Absent means 3.countsince 2026-08-24 (29 sessions)
lad5
Top level · all (display)
The ladder's display scale floor: median of the 5 heaviest strikes over the closing 30 minutes of the 5 prior sessions, keyed <frame key>|<slice> (keys g v c d e go vo co gv vv cv ga, slices all, z0 = 0DTE, nx = after 0DTE). Cosmetic, changes no measurement.frame unitssince 2022-04-14 (absent on 2019-06-19)
spot
Minute series
SPX, solved from put-call parity on the option chain (median of C - P + K e^(-rT) over the 10 strikes nearest the crossing).index pointsall sessions
vwap
Minute series
Not volume-weighted: the running mean of the minute spot since the open (an index has no volume).index pointsall sessions
b2u b2l
Minute series
vwap plus / minus 2 running standard deviations of spot.index pointsall sessions
skew
Minute series
25-delta risk reversal on the 0DTE chain: put IV minus call IV. Positive = puts bid over calls. null unless both wings bracket 25 delta. Calendar-time IV.vol pointsall sessions
skewpct
Minute series
The same skew as a ratio: how much richer the 25-delta put is than the call.percentall sessions
straddle
Minute series
ATM 0DTE straddle mid (call mid + put mid at the strike nearest spot). Batch days read the 5-minute chain and carry each value forward, so it steps every 5 minutes.index pointsall sessions
atmiv
Minute series
ATM implied vol backed out of straddle: straddle / (0.7979 x sqrt(T) x spot), T on the trading-time clock.vol points (percent)all sessions
div30
Minute series
Change in atmiv over the last 30 minutes.vol pointsall sessions
rvi15 rvi30 rvi60
Minute series
Realised over implied range: the high-low range of the per-second spot over the trailing 15 / 30 / 60 minutes, divided by the straddle-implied range over the same horizon (2 x straddle x sqrt(H / minutes left)). Above 1 = the market is moving more than it priced.ratioall sessions
now.spot
now
Last minute's spot.index pointsall sessions
now.rv30
now
Realised vol of the last 30 one-minute log returns, annualised on the trading-time clock (sqrt(252 x 390)). The only place rv30 is published. A 30-observation sigma: its 95% interval is x0.80 to x1.34.percentall sessions
now.sessions_in_pool
now
Prior sessions in the gpct pool (up to 20).countall sessions
ladder.strikes
ladder
Strike axis.strikeall sessions
frames[].t
frames[]
Frame minute.HH:MMall sessions
frames[].idx
frames[]
Index of t in minutes.integerall sessions
frames[].strikes
frames[]
Strike axis of this frame.strikeall sessions
frames[].ivc frames[].ivp
frames[]
Mean 0DTE implied vol of the call / put at each strike (the smile). Calendar-time clock. null where the strike has no 0DTE quote.vol points (percent)all sessions
vol.strikes
vol
Strike axis (fixed for the session).strikeall sessions
vol.t vol.idx
vol
Frame minute and its index in minutes.HH:MM, integerall sessions
vol.cu vol.pu
vol
Multi-leg volume no package signing could reach (unsigned).contractsall sessions
sec.secs
sec
Second axis.HH:MM:SSall sessions
sec.step
sec
Seconds between rows (1 on every session).secondsall sessions
sec.spot
sec
Parity spot solved per second.index pointsall sessions
sec.vol
sec
0DTE contracts printed in that second, as recorded live. Only on sessions the live engine recorded.contracts38 sessions, since 2026-08-03
day sym min_premium
order ledger
Session, symbol, premium floor.date, string, $
asof
order ledger
Time of the newest order, ET.HH:MM:SS
built
order ledger
When the ledger was rebuilt, ET.HH:MM:SS
orders[].oid
order ledger
Order id.string
orders[].t
order ledger
When the parent order printed, ET.HH:MM
orders[].kind
order ledger
Structure from package reconstruction (single, vertical, ...).string
orders[].legs
order ledger
Up to three legs as a label, e.g. 7740P/7750P.string
orders[].lg
order ledger
Up to four legs as [strike, "C"|"P", customer side], side +1 bought, -1 sold, 0 unknown.array
orders[].exp
order ledger
Expiry carrying most of the order's gamma.Mon D
orders[].size
order ledger
Contracts in the parent order.contracts
orders[].net
order ledger
Premium.$M
orders[].em
order ledger
Each leg's strike from spot in expected moves to the close (2 x ATM straddle); null unless every leg expires that day.EM units
orders[].sh
order ledger
The order's share of its busiest strike's session volume.percent
stats.n stats.net
order ledger
Orders above the floor, their total premium.count, $M
built from to earn_to
calendar file
Build time (UTC), calendar span, last date with historical earnings.
days.<date>[]
calendar file
Events on that ET date: t clock (HH:MM, "" for all day), k kind (fomc macro earn opex early closed fed auction ff), n name, i impact (high med low), optional f forecast, p prior, u source link.
stats_built stats_measure
calendar file
When the statistics were built and the measure's definition.
ledger
calendar file
The pre-registered FOMC forward ledger (registered, built, in_sample, rows).
next_earn.<SYM>
calendar file
Next earnings date d and hour h per covered stock.
blackouts
calendar file
Fed blackout windows as [start, end].

LAB columns 54

columnmeaningunitbuilt from
min
time
minutes since the 09:30 open (0-389)minutes since 09:30minutes
the row's index on the minute axis
minutes_to_close
time
minutes left to the session's last minute: 15:59 on a full day, 12:59 on a half dayminutes to the last minuteminutes
(rows in the session - 1) - min
spot
price
SPX spot priceindex pointsspot
copied
spot_mean
price
the running mean of spot since the open (an equal-weight mean of minute prices; NOT a VWAP, no volume weights it)index pointsvwap
copied
spot_mean_dist
price
spot - spot_mean, pointspoints, signedspot vwap
spot - vwap
spot_sd
price
one running standard deviation of spot since the open, points (the half-width of the band over 2)pointsb2u b2l
(b2u - b2l) / 4
spot_mean_z
price
spot's distance from its running mean in running SDs (+3 = stretched 3 SD above). The 'sigma stretch' of the chart's bandrunning SDs, signedspot vwap b2u b2l
(spot - vwap) / spot_sd
spot_mean_up2
price
the band's upper edge, spot_mean + 2 running SDs, priceindex pointsb2u
copied
spot_mean_dn2
price
the band's lower edge, spot_mean - 2 running SDs, priceindex pointsb2l
copied
ret1
price
spot now minus spot one minute ago, points (the last 1-minute candle's move)points, signedspot
spot minus the previous minute's spot, within the session
ret15
price
spot now minus spot 15 minutes ago, index points (the move just made; positive = drifted up)points, signedspot
spot minus spot 15 minutes earlier, within the session
ret30
price
spot now minus spot 30 minutes ago, index pointspoints, signedspot
spot minus spot 30 minutes earlier, within the session
rv_1m
price
intra-minute realised vol from the per-second spot, annualised in % -- comparable to atm_iv; a choppy vs smooth minuteannualised %sec.spot sec.secs
standard deviation of the per-second log returns inside the minute x sqrt(252 x 6.5 x 3600) x 100; NaN under 5 seconds
book_width
expiry · volume and OI scope
how many post-0DTE expiries the session's volume and OI books sum over -- a provenance stamp, not a market state: 3 on sessions archived narrow, 21 on sessions archived wide (the ones from 2026-08-24 on, which carry lad_n); read it per session. Use it ONLY to keep a rule on gamma_next_* / gamma_next_share_* (vol or oi) or gross_oi_* inside one definition; never as a market conditioncountlad_n
lad_n, 3 when the payload has none
atm_iv
vol
0DTE ATM implied vol, % annualised on the trading clock, backed out of the ATM straddle (pair with top_pctl for an 'IV rank'). It climbs ~3x from open to close by construction, so compare at a fixed clockIV, % (trading clock)atmiv
copied
atm_iv_chg1
vol
1-minute change of atm_iv, vol pointsvol points per minuteatmiv
1-minute difference, within the session
atm_iv_chg30
vol
atm_iv now minus atm_iv 30 minutes ago, vol points -- the IV leg that gives back a correct realised-vol call. Mostly the clock: prefer it inside a min windowvol pointsdiv30
copied
straddle
vol
the 0DTE ATM straddle price, index points: the market's expected absolute move to the closeindex pointsstraddle
copied
straddle_pct
vol
the ATM straddle as a % of spot -- the expected move, comparable across days% of spotstraddle spot
straddle / spot x 100
em_used
vol
|spot - the session's first spot| / the opening expected move (2 x the first ATM straddle): the EM drawer's 'used so far', the same number. Above 1 = the opening move is spent, the chart's CHOPratiospot straddle
|spot - the session's first spot| / (2 x the session's first straddle)
range_ratio_15
vol
realised RANGE over the last 15 min (per-second high minus low) / the range the straddle implies for 15 min; > 1 = moving more than pricedratiorvi15
copied
range_ratio_30
vol
the same realised/implied RANGE ratio over 30 min -- the strongest single forecast of the next 30 min's range this programme foundratiorvi30
copied
range_ratio_60
vol
the same realised/implied RANGE ratio over 60 minratiorvi60
copied
rv30_over_atm_iv
vol
realised vol over the last 30 one-minute returns / atm_iv, both annualised on the trading clock, plain ratio: 1 = the tape moves as fast as the straddle prices; > 1 = the straddle is cheap -- 'VRP / realised vs implied' as a ratioratiospot atmiv
standard deviation of the last 30 one-minute log returns x sqrt(252 x 390) x 100, over atmiv
skew_25d
vol
25-delta put IV minus 25-delta call IV, vol points (calendar clock)vol points (calendar clock)skew
copied
skew_25d_ratio
vol
25-delta skew as a RATIO: put IV over call IV minus one, in PERCENT (median ~10, 95th pctl ~25) -- NOT a 0-1 percentile; 'rich skew' is skew_25d_ratio >= 15 or top_pctl on itpercentskewpct
copied
skew_25d_chg1
vol
1-minute change of skew_25d, vol pointsvol points per minuteskew
1-minute difference, within the session
volume
tape
contracts traded per minute across the 0DTE chain: from the raw tape where the archive has it; otherwise the snapshot's, which on older sessions is a 5-minute increment spread evenly over its minutescontracts per minuteraw 0DTE tape sec.vol vol.cb vol.cs vol.cu vol.pb vol.ps vol.pu
contracts per minute from the raw tape; without it, volume_snap
volume_pctl
tape
traded-VOLUME percentile of this minute vs the same minute of the prior 20 sessions (0-1) -- 'heavy for this time of day'; volume, NOT implied volpercentilevolume
share of the same minute in the prior 20 sessions at or below this one, 0..1; NaN under 10 comparands
volume_snap
tape
volume as the snapshot carries it: per-second prints summed on newer sessions, a 5-minute increment spread per minute on older onescontracts per minutesec.vol vol.cb vol.cs vol.cu vol.pb vol.ps vol.pu
sec.vol summed per minute; without it, each 5-minute increment of the cumulative vol block spread evenly over its minutes
ev_high_impact
calendar
1 on a day with a high-impact release: FOMC, CPI, payrolls or PCE; else 0flag/snapshots/events.json
from the day's calendar rows; a day the calendar does not know reads 0, clocks NaN
ev_fomc
calendar
1 on an FOMC decision day (statement 14:00, press conference 14:30)flag/snapshots/events.json
from the day's calendar rows; a day the calendar does not know reads 0, clocks NaN
ev_cpi
calendar
1 on a CPI day (08:30, before the open)flag/snapshots/events.json
from the day's calendar rows; a day the calendar does not know reads 0, clocks NaN
ev_payrolls
calendar
1 on a payrolls day (08:30, before the open)flag/snapshots/events.json
from the day's calendar rows; a day the calendar does not know reads 0, clocks NaN
ev_pce
calendar
1 on a PCE inflation day (08:30, before the open)flag/snapshots/events.json
from the day's calendar rows; a day the calendar does not know reads 0, clocks NaN
ev_ism
calendar
1 on an ISM day, manufacturing or services (10:00, inside the session)flag/snapshots/events.json
from the day's calendar rows; a day the calendar does not know reads 0, clocks NaN
ev_earnings
calendar
1 when a mega-cap (NVDA, AAPL, MSFT, ...) reports today, before the open or after the closeflag/snapshots/events.json
from the day's calendar rows; a day the calendar does not know reads 0, clocks NaN
ev_opex
calendar
1 on a monthly or quarterly options expiration dayflag/snapshots/events.json
from the day's calendar rows; a day the calendar does not know reads 0, clocks NaN
ev_pre_open
calendar
1 if a high/medium release came out before 09:30, so the session already trades AFTER the numberflag/snapshots/events.json
from the day's calendar rows; a day the calendar does not know reads 0, clocks NaN
ev_minutes_to
calendar
minutes until the next scheduled event inside the session (FOMC 14:00, ISM 10:00, FOMC minutes); NaN when none is ahead, so a condition on it selects event days by itselfminutes/snapshots/events.json
from the day's calendar rows; a day the calendar does not know reads 0, clocks NaN
ev_minutes_since
calendar
minutes since the last scheduled event inside the session; NaN before the first oneminutes/snapshots/events.json
from the day's calendar rows; a day the calendar does not know reads 0, clocks NaN
ev_opex_quarterly
calendar
1 on the quarterly third Friday (March, June, September, December): options, the ES and NQ futures and the index rebalances expire or settle together. About 4 days a yearflag/snapshots/events.json
from the day's calendar rows; a day the calendar does not know reads 0, clocks NaN
ev_expiry_stack
calendar
1 when two or more expiry-class events share the date: every quarterly third Friday, the January LEAPS expiry, a month-end that meets an index rebalance or the monthly VIX settlementflag/snapshots/events.json
from the day's calendar rows; a day the calendar does not know reads 0, clocks NaN
ev_quarter_end
calendar
1 on the last session of a quarter, the SPX quarter-end expiry. About 4 days a yearflag/snapshots/events.json
from the day's calendar rows; a day the calendar does not know reads 0, clocks NaN
ev_month_end
calendar
1 on the last session of a month, quarter-ends includedflag/snapshots/events.json
from the day's calendar rows; a day the calendar does not know reads 0, clocks NaN
ev_vix_week
calendar
1 on every session of the week that holds the MONTHLY VIX settlement (the Wednesday thirty days before the next month's third Friday), about one week in fourflag/snapshots/events.json
from the day's calendar rows; a day the calendar does not know reads 0, clocks NaN
ev_futures_roll
calendar
1 on the Thursday eight days before a quarterly expiry, when ES and NQ volume moves to the next contract. About 4 days a yearflag/snapshots/events.json
from the day's calendar rows; a day the calendar does not know reads 0, clocks NaN
ev_leaps
calendar
1 on the January third Friday, when the long-dated LEAPS cycle expires. One day a yearflag/snapshots/events.json
from the day's calendar rows; a day the calendar does not know reads 0, clocks NaN
days_to_opex
calendar
weekdays left to the next third-Friday options expiration, 0 on the day itself, up to about 24; holidays count as weekdaysweekdays/snapshots/events.json
from the day's calendar rows; a day the calendar does not know reads 0, clocks NaN
pulse_minutes_since
pulse
minutes since the last minute the tape marked as market-moving (a one-minute index move of 4 sigma of the trailing half hour, or 3 with the dealer book moving too); NaN before the first such minute, so 'pulse_minutes_since <= 5' means 'within five minutes after a tape shock'minutespulse.firmtape.com marks
from the tape-marked minutes of the session (not a payload field); a day without marks reads 0, clocks NaN
pulse_z
pulse
the spot z-score of that last marked minute, in sigmas of the trailing half hour; NaN before the firstsigmapulse.firmtape.com marks
from the tape-marked minutes of the session (not a payload field); a day without marks reads 0, clocks NaN
pulse_flash
pulse
1 if that marked minute had two or more public news desks flashing beside it (a headline-driven move), else 0flagpulse.firmtape.com marks
from the tape-marked minutes of the session (not a payload field); a day without marks reads 0, clocks NaN
pulse_book
pulse
1 if that marked minute had no headline and no calendar event, the dealer book moved on its own; else 0flagpulse.firmtape.com marks
from the tape-marked minutes of the session (not a payload field); a day without marks reads 0, clocks NaN
pulse_count
pulse
how many tape-marked minutes the session has had so far; 0 before the firstcountpulse.firmtape.com marks
from the tape-marked minutes of the session (not a payload field); a day without marks reads 0, clocks NaN