{"slug":"market-recap-2026-07-29","qid":"baseline_options_quote_tape","label":"Options NBBO tape: total updates vs the stock tape, plus the SPY root slice, July 29","post_title":"Market Recap: July 29, 2026, The Day in Numbers","post_url":"/blog/market-recap-2026-07-29#q-baseline_options_quote_tape","columns":["jul29_options_bn","options_to_stock_ratio","jul29_spy_options_m"],"rows":[{"jul29_options_bn":13.55,"options_to_stock_ratio":18.8,"jul29_spy_options_m":600}],"shape":"scalar","sql":"WITH\n    (SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00') AS jul29_options_rows,\n    (SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00') AS jul29_stock_quote_rows\nSELECT\n    round(jul29_options_rows / 1e9, 2) AS jul29_options_bn,\n    round(jul29_options_rows / jul29_stock_quote_rows, 1) AS options_to_stock_ratio,\n    round((SELECT count() FROM global_markets.cache_options_quotes WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27' AND sip_timestamp >= '2026-07-29 13:30:00' AND sip_timestamp < '2026-07-29 20:00:00') / 1e6, 0) AS jul29_spy_options_m","computed_at":"2026-08-01T22:47:34.187844+00:00","elapsed":0.002080147}