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
| field | meaning | unit | since |
|---|---|---|---|
ngv_volMinute series | Net cp x volume gamma at spot, 0DTE only. The minute twin of sec.ngv_volcp. | $M per index point | all sessions (backfilled 2026-10-03 from sec.ngv_volcp at each minute's :59 second) |
gpct_volMinute series | The same percentile computed on ngv_vol against the same minute of the prior 20 sessions that carry it. | percentile | all sessions; all null on the first 10 sessions (2019-06-19, 2022-04-14 to 2022-05-02: pool under 10) |
flip_volMinute 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 points | all sessions (backfilled 2026-10-03 from sec.flip_volcp at each minute's :59 second) |
call_wall_vol put_wall_volMinute 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. | strike | all sessions (backfilled 2026-10-03 the same way) |
hhiMinute 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 |
flowvelMinute series | Flow velocity: sum over strikes of the absolute 15-minute change in volume-book gamma, narrow scope. | $M per index point | all sessions |
now.gpct_volnow | Last finite gpct_vol (backfilled files) or the last minute's (new builds). | percentile | all sessions; null on the first 10 |
levels.flip_vol levels.call_wall_vol levels.put_wall_vollevels | flip_vol / call_wall_vol / put_wall_vol at the last frame's minute, the instant levels.flip is read at. | index points; strike | all sessions (backfilled 2026-10-03) |
frames[].gv frames[].gv0frames[] | 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 point | all sessions |
frames[].vv frames[].vv0frames[] | cp x volume vanna per strike. | $M of delta per vol point | all sessions |
frames[].cv frames[].cv0frames[] | cp x volume charm per strike. | $Bn of delta per day | all sessions |
sec.flip_volcpsec | Volume-book zero-gamma flip, 0DTE, raw directional root (+/-2%, then +/-6%). The default flip. | index points | all sessions |
sec.cr0_volcp sec.ps0_volcpsec | Peak positive / negative volume-book gamma strike within +/-2.5% of spot, 0DTE. The default walls. | strike | all sessions |
sec.ngv_volcpsec | Net volume-book gamma at spot, 0DTE. | $M per index point | all sessions |
orders[].fliporder 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[].sideorder ledger | over / under the volume flip. | string |
LAB columns 18
| column | meaning | unit | built from |
|---|---|---|---|
flip_vol_distlevels · volume | spot - the VOLUME-book zero-gamma flip, points (+ = above it, the positive-gamma side): THE flip, the one the chart draws | points, signed | spot sec.flip_volcpspot - the last sec.flip_volcp inside the minute |
gamma_pos_vollevels · volume | 1 when spot is at or above the VOLUME-book flip (long gamma), 0 below | flag | spot sec.flip_volcp1 when flip_vol_dist >= 0, 0 below, NaN when either is missing |
call_wall_vol_distlevels · volume | spot - the VOLUME-book call wall (the 0DTE strike with the most positive gamma), points (+ = above it) | points, signed | spot sec.cr0_volcpspot - the last sec.cr0_volcp inside the minute |
put_wall_vol_distlevels · volume | spot - the VOLUME-book put wall (the 0DTE strike with the most negative gamma), points (+ = above it) | points, signed | spot sec.ps0_volcpspot - the last sec.ps0_volcp inside the minute |
call_wall_strength_vollevels · 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 none | share | frames[].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_vollevels · volume | same for the VOLUME-book put wall, 0..1 | share | frames[].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_agreelevels · 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) | count | sec.cr0_volcp sec.cr0_oi sec.cr0of the three books' call walls at the minute, how many name the most-named strike |
put_wall_agreelevels · all three | same for the put wall: two or more books agree in 29.9% of minutes, all three in 1.8% | count | sec.ps0_volcp sec.ps0_oi sec.ps0of the three books' put walls at the minute, how many name the most-named strike |
call_wall_agree_distlevels · all three | spot - the call wall the most books name, points (+ = above it) | points, signed | spot sec.cr0_volcp sec.cr0_oi sec.cr0spot - the most-named call wall |
put_wall_agree_distlevels · all three | spot - the put wall the most books name, points (+ = above it) | points, signed | spot sec.ps0_volcp sec.ps0_oi sec.ps0spot - the most-named put wall |
net_gamma_volbook · volume | net gamma at spot, VOLUME book, $M -- 'how much gamma' unqualified | $M | sec.ngv_volcpthe last value inside the minute (the same object as the minute series ngv_vol) |
net_gamma_vol_flowbook · volume | 1-minute change of net_gamma_vol, $M per minute -- 'gamma flow' unqualified | $M per minute | sec.ngv_volcp1-minute difference of net_gamma_vol |
gamma_pctl_volbook · 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 median | percentile | sec.ngv_volcprecomputed 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_volbook · volume | sum over strikes of |gamma change| of the 0DTE VOLUME book against 15 minutes earlier, $M -- 'book being rebuilt / flow velocity' unqualified | $M | frames[].gv0 frames[].strikessum over strikes of |gv0 now - gv0 in the latest frame at least 15 minutes older|, strikes matched by value; carried forward |
concentration_volbook · 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' unqualified | Herfindahl | frames[].gv0sum of (|gv0| / sum |gv0|)^2 over the frame's strikes; carried forward. Not the minute series hhi (narrow scope, x 100) |
gamma_0dte_volexpiry · volume | VOLUME-book gamma, today's expiry only ($M) | $M | frames[].gv0sum of gv0 over the frame; carried forward |
gamma_next_volexpiry · volume | VOLUME-book gamma past today ($M) | $M | frames[].gv frames[].gv0sum of (gv - gv0); carried forward |
gamma_next_share_volexpiry · volume | share of the VOLUME book that outlives today (0..1) | share | frames[].gv frames[].gv0sum |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
| field | meaning | unit | since |
|---|---|---|---|
flipMinute 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 points | all sessions |
flip_seMinute 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 points | since 2026-08-24 (29 sessions) |
ngv_measMinute series | Net measured dealer gamma at spot, narrow scope. | $M per index point | all sessions |
gpctMinute 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. | percentile | all sessions (sessions before 2026-08-24 recomputed to this definition on 2026-10-03, see Known caveats) |
hold_lo hold_hiMinute 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 points | all sessions |
charmMinute series | Measured charm pressure: the change in dealer dollar delta per day from time decay, narrow scope. | $Bn of delta per day | all sessions |
dexMinute series | Measured dealer delta inventory, narrow scope. Millions of index units ("shares"), not dollars: multiply by spot for $M. | millions of index units | all sessions |
vexMinute series | Measured dealer vega, narrow scope. | $M per vol point | all sessions |
exp_rangeMinute 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 points | all sessions |
now.gpctnow | Last minute's gpct. | percentile | all sessions |
now.exp_rangenow · measured (adjustment) | exp_range at the second-to-last minute; near zero at the close by construction. | index points | all sessions |
levels.fliplevels | frames[-1].flip. | index points | all sessions |
levels.cr0levels | Strike with the largest positive measured gamma within +/-2.5% of spot (the measured "call wall"), narrow scope. | strike | all sessions |
levels.ps0levels | Strike with the most negative measured gamma within +/-2.5% of spot (the measured "put wall"). | strike | all sessions |
levels.hold_lo levels.hold_hilevels | The hold band at the last frame. | index points | all sessions |
ladder.g_flowladder | frames[-1].g. | $M per index point | all sessions |
ladder.v_flowladder | frames[-1].v. | $M of delta per vol point | all sessions |
ladder.c_flowladder | frames[-1].c. | $Bn of delta per day | all sessions |
frames[].g frames[].g0frames[] | Dealer gamma per strike. | $M per index point | all sessions |
frames[].v frames[].v0frames[] | Dealer vanna per strike. | $M of delta per vol point | all sessions |
frames[].c frames[].c0frames[] | Dealer charm per strike. | $Bn of delta per day | all sessions |
frames[].d frames[].d0frames[] | Dealer delta per strike, in dollars (delta x 100 x spot), unlike the aggregate dex. | $M of index exposure | all sessions |
frames[].e frames[].e0frames[] | Dealer vega per strike. | $M per vol point | all sessions |
frames[].cr0frames[] | Peak positive measured gamma strike in this frame (argmax g). | strike | all sessions |
frames[].ps0frames[] | Peak negative measured gamma strike (argmin g). | strike | all sessions |
frames[].flipframes[] | flip at this minute. | index points | all sessions |
frames[].hlo frames[].hhiframes[] | hold_lo / hold_hi at this minute. hhi here is the hold band's upper edge, not the top-level hhi concentration series. | index points | all sessions |
vol.cb vol.pbvol · measured (signing) | Customer BUY contracts, calls / puts, per strike, cumulative. | contracts | all sessions |
vol.cs vol.psvol · measured (signing) | Customer SELL contracts, calls / puts. | contracts | all sessions |
sec.flipsec | Measured flip (smoothed, tracked, minute cadence). | index points | all sessions |
sec.flip_sesec | Its crossing standard error. | index points | since 2026-08-24 |
sec.cr0 sec.ps0sec | Peak positive / negative measured gamma strike within +/-2.5%, narrow scope. | strike | all sessions |
sec.ngv_meassec | Net measured gamma at spot. | $M per index point | all sessions |
sec.hold_lo sec.hold_hisec · measured only | The hold band per second. | index points | all sessions |
sec.charmsec | Charm pressure. | $Bn of delta per day | all sessions |
sec.vannasec | Vanna pressure (the only aggregate vanna series). | $M of delta per vol point | all sessions |
sec.mc.<w>.strike sec.mc.<w>.valuesec | 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 point | all sessions |
orders[].gorder ledger | Dealer gamma the order added (measured sign); null if it could not be priced. | $M per index point | |
stats.no_side stats.no_gammaorder ledger | Orders the tape could not side / could not price. | count | |
stats.gamma_up stats.gamma_dnorder 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
| column | meaning | unit | built from |
|---|---|---|---|
flip_measlevels · measured | the MEASURED-book zero-gamma flip as a price (use flip_meas_dist in rules) | index points | flipcopied |
flip_meas_distlevels · measured | spot - the MEASURED-book flip, points (+ = above it) | points, signed | spot flipspot - flip |
gamma_pos_measlevels · measured | 1 when spot is at or above the MEASURED-book flip, 0 below | flag | spot flip1 when spot >= flip, 0 below, NaN when either is missing |
call_wall_meas_distlevels · measured | spot - the MEASURED-book call wall, points (+ = above it) | points, signed | spot sec.cr0spot - the last sec.cr0 inside the minute |
put_wall_meas_distlevels · measured | spot - the MEASURED-book put wall, points (+ = above it) | points, signed | spot sec.ps0spot - the last sec.ps0 inside the minute |
call_wall_strength_measlevels · measured | share of the near-money MEASURED book on the measured call wall's strike, 0..1 | share | frames[].g frames[].strikes frames[].cr0|g| on the frame's cr0 / sum |g| over the frame; carried forward |
put_wall_strength_measlevels · measured | same for the MEASURED-book put wall, 0..1 | share | frames[].g frames[].strikes frames[].ps0|g| on the frame's ps0 / sum |g| over the frame; carried forward |
net_gamma_measbook · measured | net gamma at spot, MEASURED (tape-signed) book, $M | $M | ngv_meascopied |
net_gamma_meas_minus_oibook · 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 | $M | ngv_meas ngv_convngv_meas - ngv_conv |
net_gamma_meas_flowbook · measured | 1-minute change of net_gamma_meas, $M per minute | $M per minute | ngv_meas1-minute difference of ngv_meas |
gamma_pctl_measbook · measured | net_gamma_meas ranked against the same minute of the prior 20 sessions, 0..100 | percentile | ngv_measrecomputed 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_measbook · measured | dealer delta exposure, MEASURED book, millions of SPX units of delta; + = dealers long delta. No volume-book twin | M SPX units of delta | dexcopied |
dealer_vega_measbook · measured | dealer vega exposure, MEASURED book, $M per vol point. No volume-book twin | $M per vol point | vexcopied |
charm_measbook · measured | charm pressure, MEASURED book: the dollar delta the book sheds per day from time decay alone, $Bn per day | $Bn of delta per day | charmcopied |
vanna_measbook · 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 point | sec.vannathe last value inside the minute |
dealer_delta_meas_flowbook · measured | 1-minute change of dealer_delta_meas, millions of SPX units | M SPX units per minute | dex1-minute difference, within the session |
dealer_vega_meas_flowbook · measured | 1-minute change of dealer_vega_meas, $M per vol point | $M per vol point, per minute | vex1-minute difference, within the session |
charm_meas_flowbook · measured | 1-minute change of charm_meas, $Bn per day | $Bn per day, per minute | charm1-minute difference, within the session |
max_change_5_measbook · 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, signed | sec.mc.5.valuethe last value inside the minute |
max_change_15_measbook · measured | the same over 15 min, $M | $M, signed | sec.mc.15.valuethe last value inside the minute |
max_change_30_measbook · measured | the same over 30 min, $M | $M, signed | sec.mc.30.valuethe last value inside the minute |
concentration_measbook · measured | the same Herfindahl on the MEASURED book, 0..1 | Herfindahl | frames[].gsum of (|g| / sum |g|)^2 over the frame's strikes; carried forward |
abs_gamma_meas_over_gross_oigross · 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_width | ratio | frames[].g frames[].gasum |g| / sum ga over the frame |
abs_gamma_below_measgross · measured | sum |measured gamma| on strikes within 30 pt BELOW spot, $M/pt | $M/pt | frames[].g frames[].strikes spotsum |g| on strikes in [spot - 30, spot); carried forward |
abs_gamma_above_measgross · measured | the same within 30 pt ABOVE spot, $M/pt | $M/pt | frames[].g frames[].strikes spotsum |g| on strikes in (spot, spot + 30]; carried forward |
abs_gamma_below_meas_chg15gross · measured | change of abs_gamma_below_meas against the frame 15 min earlier (negative = the book below thinned) | $M/pt, signed | frames[].g frames[].strikes spotabs_gamma_below_meas minus its value in the latest frame at least 15 minutes older |
abs_gamma_above_meas_chg15gross · measured | change of abs_gamma_above_meas over 15 min (positive = the book above thickened) | $M/pt, signed | frames[].g frames[].strikes spotabs_gamma_above_meas minus its value in the latest frame at least 15 minutes older |
abs_gamma_below_meas_chg30gross · measured | change of abs_gamma_below_meas over 30 min | $M/pt, signed | frames[].g frames[].strikes spotthe same against the frame at least 30 minutes older |
abs_gamma_above_meas_chg30gross · measured | change of abs_gamma_above_meas over 30 min | $M/pt, signed | frames[].g frames[].strikes spotthe same against the frame at least 30 minutes older |
gamma_0dte_measexpiry · measured | MEASURED gamma, today's expiry only ($M) | $M | frames[].g0sum of g0 over the frame; carried forward |
gamma_next_measexpiry · measured | MEASURED gamma past today -- the book that survives the close ($M) | $M | frames[].g frames[].g0sum of (g - g0); carried forward |
gamma_next_share_measexpiry · measured | share of the MEASURED book that outlives today (0..1) | share | frames[].g frames[].g0sum |g - g0| / sum |g| |
range_left_fcstvol · 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 number | index points | exp_rangecopied |
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
| field | meaning | unit | since |
|---|---|---|---|
ga_backfillTop level | Provenance stamp of the 2026-09-02 backfill that added the unsigned book ga/ga0 to older sessions: {at, oi, expiries, contracts, applied}. | object | sessions to 2026-08-21 |
ngv_convMinute series | Net cp x OI gamma at spot, narrow scope (0DTE plus three expiries, not 0DTE only). | $M per index point | all sessions |
frames[].go frames[].go0frames[] | cp x OI gamma per strike. | $M per index point | all sessions |
frames[].vo frames[].vo0frames[] | cp x OI vanna per strike. | $M of delta per vol point | all sessions |
frames[].co frames[].co0frames[] | cp x OI charm per strike. | $Bn of delta per day | all sessions |
frames[].ga frames[].ga0frames[] · open interest (unsigned) | Gross book: abs(gamma) x OI, calls and puts added. No sign, so no flip and no walls. | $M per index point | all sessions (backfilled 2026-09-02 on sessions to 2026-08-21) |
sec.flip_structsec | OI-book flip, narrow scope, raw root. | index points | all sessions |
sec.ngv_convsec | Net OI gamma at spot, narrow scope. | $M per index point | all sessions |
sec.cr0_oi sec.ps0_oisec | Peak positive / negative OI gamma strike within +/-2.5%, 0DTE only. | strike | all sessions |
sec.cr0_oi_book sec.ps0_oi_booksec | The same peaks over the narrow-scope OI book (they can pick a 3-5 DTE wall). | strike | all sessions |
LAB columns 15
| column | meaning | unit | built from |
|---|---|---|---|
flip_oi_distlevels · open interest | spot - the OPEN-INTEREST-book flip, points (+ = above it) | points, signed | spot sec.flip_structspot - the last sec.flip_struct inside the minute |
call_wall_oi_distlevels · open interest | spot - the OPEN-INTEREST-book call wall at 0DTE, points (+ = above it) | points, signed | spot sec.cr0_oispot - the last sec.cr0_oi inside the minute |
put_wall_oi_distlevels · open interest | spot - the OPEN-INTEREST-book put wall at 0DTE, points (+ = above it) | points, signed | spot sec.ps0_oispot - the last sec.ps0_oi inside the minute |
net_gamma_oibook · open interest | net gamma at spot, call-minus-put OPEN-INTEREST book over four expiries, $M (not comparable with the 0DTE books' level) | $M | ngv_convcopied |
gross_oi_totalgross · 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/pt | frames[].gasum of ga over the frame; carried forward |
gross_oi_at_spotgross · unsigned OI | the unsigned OI book on the strike nearest spot, $M/pt | $M/pt | frames[].ga frames[].strikes spotga on the strike nearest spot, NaN when it is more than 3 pt away; carried forward |
gross_oi_abovegross · unsigned OI | the heaviest unsigned OI strike ABOVE spot, $M/pt | $M/pt | frames[].ga frames[].strikes spotthe largest ga on a strike above spot; carried forward |
gross_oi_belowgross · unsigned OI | the heaviest unsigned OI strike BELOW spot, $M/pt | $M/pt | frames[].ga frames[].strikes spotthe largest ga on a strike below spot; carried forward |
gross_oi_above_distgross · unsigned OI | points from spot up to that heaviest strike above, always positive | points, always positive | frames[].ga frames[].strikes spotthat strike - spot |
gross_oi_below_distgross · unsigned OI | points from spot down to the heaviest strike below, always positive | points, always positive | frames[].ga frames[].strikes spotspot - that strike |
gross_oi_near_sharegross · unsigned OI | share of the unsigned OI book within +-10 pt of spot, 0..1 -- how much convexity sits on top of price | share | frames[].ga frames[].strikes spotsum of ga within 10 pt of spot / sum of ga |
gross_oi_top3_sharegross · unsigned OI | share of the unsigned OI book on its three heaviest strikes, 0..1 | share | frames[].gathe three largest ga / sum of ga |
gamma_0dte_oiexpiry · open interest | OPEN-INTEREST gamma, today's expiry only ($M) | $M | frames[].go0sum of go0 over the frame; carried forward |
gamma_next_oiexpiry · open interest | OPEN-INTEREST gamma past today ($M) | $M | frames[].go frames[].go0sum of (go - go0); carried forward |
gamma_next_share_oiexpiry · open interest | share of the OI book that outlives today (0..1) -- the OI book is roughly half next-expiry, so this one really moves | share | frames[].go frames[].go0sum |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
| field | meaning | unit | since |
|---|---|---|---|
dayTop level | Session date, ET. | YYYY-MM-DD | all sessions |
builtTop level | Build stamp of the code that wrote the file; a -live suffix means the live engine wrote it. | string | all sessions |
minutesTop level | The minute axis every minute series is aligned to. | HH:MM | all sessions |
stepTop level | Minutes between ladder frames. | 5 | all sessions |
exp_nTop level | Post-0DTE expiries the session was archived with (14 to 21; 21 on nearly every session since early 2023). | count | all sessions |
lad_nTop level · volume, OI | Post-0DTE expiries the frames' VOLUME and OI books sum over. Absent means 3. | count | since 2026-08-24 (29 sessions) |
lad5Top 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 units | since 2022-04-14 (absent on 2019-06-19) |
spotMinute 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 points | all sessions |
vwapMinute series | Not volume-weighted: the running mean of the minute spot since the open (an index has no volume). | index points | all sessions |
b2u b2lMinute series | vwap plus / minus 2 running standard deviations of spot. | index points | all sessions |
skewMinute 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 points | all sessions |
skewpctMinute series | The same skew as a ratio: how much richer the 25-delta put is than the call. | percent | all sessions |
straddleMinute 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 points | all sessions |
atmivMinute 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 |
div30Minute series | Change in atmiv over the last 30 minutes. | vol points | all sessions |
rvi15 rvi30 rvi60Minute 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. | ratio | all sessions |
now.spotnow | Last minute's spot. | index points | all sessions |
now.rv30now | 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. | percent | all sessions |
now.sessions_in_poolnow | Prior sessions in the gpct pool (up to 20). | count | all sessions |
ladder.strikesladder | Strike axis. | strike | all sessions |
frames[].tframes[] | Frame minute. | HH:MM | all sessions |
frames[].idxframes[] | Index of t in minutes. | integer | all sessions |
frames[].strikesframes[] | Strike axis of this frame. | strike | all sessions |
frames[].ivc frames[].ivpframes[] | 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.strikesvol | Strike axis (fixed for the session). | strike | all sessions |
vol.t vol.idxvol | Frame minute and its index in minutes. | HH:MM, integer | all sessions |
vol.cu vol.puvol | Multi-leg volume no package signing could reach (unsigned). | contracts | all sessions |
sec.secssec | Second axis. | HH:MM:SS | all sessions |
sec.stepsec | Seconds between rows (1 on every session). | seconds | all sessions |
sec.spotsec | Parity spot solved per second. | index points | all sessions |
sec.volsec | 0DTE contracts printed in that second, as recorded live. Only on sessions the live engine recorded. | contracts | 38 sessions, since 2026-08-03 |
day sym min_premiumorder ledger | Session, symbol, premium floor. | date, string, $ | |
asoforder ledger | Time of the newest order, ET. | HH:MM:SS | |
builtorder ledger | When the ledger was rebuilt, ET. | HH:MM:SS | |
orders[].oidorder ledger | Order id. | string | |
orders[].torder ledger | When the parent order printed, ET. | HH:MM | |
orders[].kindorder ledger | Structure from package reconstruction (single, vertical, ...). | string | |
orders[].legsorder ledger | Up to three legs as a label, e.g. 7740P/7750P. | string | |
orders[].lgorder ledger | Up to four legs as [strike, "C"|"P", customer side], side +1 bought, -1 sold, 0 unknown. | array | |
orders[].exporder ledger | Expiry carrying most of the order's gamma. | Mon D | |
orders[].sizeorder ledger | Contracts in the parent order. | contracts | |
orders[].netorder ledger | Premium. | $M | |
orders[].emorder 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[].shorder ledger | The order's share of its busiest strike's session volume. | percent | |
stats.n stats.netorder ledger | Orders above the floor, their total premium. | count, $M | |
built from to earn_tocalendar 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_measurecalendar file | When the statistics were built and the measure's definition. | ||
ledgercalendar 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. | ||
blackoutscalendar file | Fed blackout windows as [start, end]. |
LAB columns 54
| column | meaning | unit | built from |
|---|---|---|---|
mintime | minutes since the 09:30 open (0-389) | minutes since 09:30 | minutesthe row's index on the minute axis |
minutes_to_closetime | minutes left to the session's last minute: 15:59 on a full day, 12:59 on a half day | minutes to the last minute | minutes(rows in the session - 1) - min |
spotprice | SPX spot price | index points | spotcopied |
spot_meanprice | the running mean of spot since the open (an equal-weight mean of minute prices; NOT a VWAP, no volume weights it) | index points | vwapcopied |
spot_mean_distprice | spot - spot_mean, points | points, signed | spot vwapspot - vwap |
spot_sdprice | one running standard deviation of spot since the open, points (the half-width of the band over 2) | points | b2u b2l(b2u - b2l) / 4 |
spot_mean_zprice | spot's distance from its running mean in running SDs (+3 = stretched 3 SD above). The 'sigma stretch' of the chart's band | running SDs, signed | spot vwap b2u b2l(spot - vwap) / spot_sd |
spot_mean_up2price | the band's upper edge, spot_mean + 2 running SDs, price | index points | b2ucopied |
spot_mean_dn2price | the band's lower edge, spot_mean - 2 running SDs, price | index points | b2lcopied |
ret1price | spot now minus spot one minute ago, points (the last 1-minute candle's move) | points, signed | spotspot minus the previous minute's spot, within the session |
ret15price | spot now minus spot 15 minutes ago, index points (the move just made; positive = drifted up) | points, signed | spotspot minus spot 15 minutes earlier, within the session |
ret30price | spot now minus spot 30 minutes ago, index points | points, signed | spotspot minus spot 30 minutes earlier, within the session |
rv_1mprice | intra-minute realised vol from the per-second spot, annualised in % -- comparable to atm_iv; a choppy vs smooth minute | annualised % | sec.spot sec.secsstandard 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_widthexpiry · 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 condition | count | lad_nlad_n, 3 when the payload has none |
atm_ivvol | 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 clock | IV, % (trading clock) | atmivcopied |
atm_iv_chg1vol | 1-minute change of atm_iv, vol points | vol points per minute | atmiv1-minute difference, within the session |
atm_iv_chg30vol | 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 window | vol points | div30copied |
straddlevol | the 0DTE ATM straddle price, index points: the market's expected absolute move to the close | index points | straddlecopied |
straddle_pctvol | the ATM straddle as a % of spot -- the expected move, comparable across days | % of spot | straddle spotstraddle / spot x 100 |
em_usedvol | |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 CHOP | ratio | spot straddle|spot - the session's first spot| / (2 x the session's first straddle) |
range_ratio_15vol | realised RANGE over the last 15 min (per-second high minus low) / the range the straddle implies for 15 min; > 1 = moving more than priced | ratio | rvi15copied |
range_ratio_30vol | the same realised/implied RANGE ratio over 30 min -- the strongest single forecast of the next 30 min's range this programme found | ratio | rvi30copied |
range_ratio_60vol | the same realised/implied RANGE ratio over 60 min | ratio | rvi60copied |
rv30_over_atm_ivvol | 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 ratio | ratio | spot atmivstandard deviation of the last 30 one-minute log returns x sqrt(252 x 390) x 100, over atmiv |
skew_25dvol | 25-delta put IV minus 25-delta call IV, vol points (calendar clock) | vol points (calendar clock) | skewcopied |
skew_25d_ratiovol | 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 it | percent | skewpctcopied |
skew_25d_chg1vol | 1-minute change of skew_25d, vol points | vol points per minute | skew1-minute difference, within the session |
volumetape | 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 minutes | contracts per minute | raw 0DTE tape sec.vol vol.cb vol.cs vol.cu vol.pb vol.ps vol.pucontracts per minute from the raw tape; without it, volume_snap |
volume_pctltape | 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 vol | percentile | volumeshare of the same minute in the prior 20 sessions at or below this one, 0..1; NaN under 10 comparands |
volume_snaptape | volume as the snapshot carries it: per-second prints summed on newer sessions, a 5-minute increment spread per minute on older ones | contracts per minute | sec.vol vol.cb vol.cs vol.cu vol.pb vol.ps vol.pusec.vol summed per minute; without it, each 5-minute increment of the cumulative vol block spread evenly over its minutes |
ev_high_impactcalendar | 1 on a day with a high-impact release: FOMC, CPI, payrolls or PCE; else 0 | flag | /snapshots/events.jsonfrom the day's calendar rows; a day the calendar does not know reads 0, clocks NaN |
ev_fomccalendar | 1 on an FOMC decision day (statement 14:00, press conference 14:30) | flag | /snapshots/events.jsonfrom the day's calendar rows; a day the calendar does not know reads 0, clocks NaN |
ev_cpicalendar | 1 on a CPI day (08:30, before the open) | flag | /snapshots/events.jsonfrom the day's calendar rows; a day the calendar does not know reads 0, clocks NaN |
ev_payrollscalendar | 1 on a payrolls day (08:30, before the open) | flag | /snapshots/events.jsonfrom the day's calendar rows; a day the calendar does not know reads 0, clocks NaN |
ev_pcecalendar | 1 on a PCE inflation day (08:30, before the open) | flag | /snapshots/events.jsonfrom the day's calendar rows; a day the calendar does not know reads 0, clocks NaN |
ev_ismcalendar | 1 on an ISM day, manufacturing or services (10:00, inside the session) | flag | /snapshots/events.jsonfrom the day's calendar rows; a day the calendar does not know reads 0, clocks NaN |
ev_earningscalendar | 1 when a mega-cap (NVDA, AAPL, MSFT, ...) reports today, before the open or after the close | flag | /snapshots/events.jsonfrom the day's calendar rows; a day the calendar does not know reads 0, clocks NaN |
ev_opexcalendar | 1 on a monthly or quarterly options expiration day | flag | /snapshots/events.jsonfrom the day's calendar rows; a day the calendar does not know reads 0, clocks NaN |
ev_pre_opencalendar | 1 if a high/medium release came out before 09:30, so the session already trades AFTER the number | flag | /snapshots/events.jsonfrom the day's calendar rows; a day the calendar does not know reads 0, clocks NaN |
ev_minutes_tocalendar | 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 itself | minutes | /snapshots/events.jsonfrom the day's calendar rows; a day the calendar does not know reads 0, clocks NaN |
ev_minutes_sincecalendar | minutes since the last scheduled event inside the session; NaN before the first one | minutes | /snapshots/events.jsonfrom the day's calendar rows; a day the calendar does not know reads 0, clocks NaN |
ev_opex_quarterlycalendar | 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 year | flag | /snapshots/events.jsonfrom the day's calendar rows; a day the calendar does not know reads 0, clocks NaN |
ev_expiry_stackcalendar | 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 settlement | flag | /snapshots/events.jsonfrom the day's calendar rows; a day the calendar does not know reads 0, clocks NaN |
ev_quarter_endcalendar | 1 on the last session of a quarter, the SPX quarter-end expiry. About 4 days a year | flag | /snapshots/events.jsonfrom the day's calendar rows; a day the calendar does not know reads 0, clocks NaN |
ev_month_endcalendar | 1 on the last session of a month, quarter-ends included | flag | /snapshots/events.jsonfrom the day's calendar rows; a day the calendar does not know reads 0, clocks NaN |
ev_vix_weekcalendar | 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 four | flag | /snapshots/events.jsonfrom the day's calendar rows; a day the calendar does not know reads 0, clocks NaN |
ev_futures_rollcalendar | 1 on the Thursday eight days before a quarterly expiry, when ES and NQ volume moves to the next contract. About 4 days a year | flag | /snapshots/events.jsonfrom the day's calendar rows; a day the calendar does not know reads 0, clocks NaN |
ev_leapscalendar | 1 on the January third Friday, when the long-dated LEAPS cycle expires. One day a year | flag | /snapshots/events.jsonfrom the day's calendar rows; a day the calendar does not know reads 0, clocks NaN |
days_to_opexcalendar | weekdays left to the next third-Friday options expiration, 0 on the day itself, up to about 24; holidays count as weekdays | weekdays | /snapshots/events.jsonfrom the day's calendar rows; a day the calendar does not know reads 0, clocks NaN |
pulse_minutes_sincepulse | 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' | minutes | pulse.firmtape.com marksfrom the tape-marked minutes of the session (not a payload field); a day without marks reads 0, clocks NaN |
pulse_zpulse | the spot z-score of that last marked minute, in sigmas of the trailing half hour; NaN before the first | sigma | pulse.firmtape.com marksfrom the tape-marked minutes of the session (not a payload field); a day without marks reads 0, clocks NaN |
pulse_flashpulse | 1 if that marked minute had two or more public news desks flashing beside it (a headline-driven move), else 0 | flag | pulse.firmtape.com marksfrom the tape-marked minutes of the session (not a payload field); a day without marks reads 0, clocks NaN |
pulse_bookpulse | 1 if that marked minute had no headline and no calendar event, the dealer book moved on its own; else 0 | flag | pulse.firmtape.com marksfrom the tape-marked minutes of the session (not a payload field); a day without marks reads 0, clocks NaN |
pulse_countpulse | how many tape-marked minutes the session has had so far; 0 before the first | count | pulse.firmtape.com marksfrom the tape-marked minutes of the session (not a payload field); a day without marks reads 0, clocks NaN |