{"slug":"market-recap-2026-07-07","qid":"options_flow","label":"One row for the whole options day: volume, call share, 0DTE, and the two contracts that bracketed SPY's close","post_title":"Market Recap: July 7, 2026, The Day in Numbers","post_url":"/blog/market-recap-2026-07-07#q-options_flow","columns":["option_prints_m","contracts_m","call_pct_of_volume","same_day_expiry_pct","same_day_contracts_m","spy_contracts_m","qqq_contracts_m","intc_contracts_m","top_contract_underlying","top_contract_strike","top_contract_type","top_contract_is_call","top_contract_volume","top_contract_avg_price","top_strike_minus_spy_close","second_contract_underlying","second_contract_strike","second_contract_type","second_contract_is_put","second_contract_volume","second_contract_avg_price","spy_close_minus_second_strike","both_top_contracts_same_day","spy_close"],"rows":[{"option_prints_m":10.6,"contracts_m":61.13,"call_pct_of_volume":55.6,"same_day_expiry_pct":31.2,"same_day_contracts_m":19.08,"spy_contracts_m":12.48,"qqq_contracts_m":8.36,"intc_contracts_m":0.69,"top_contract_underlying":"SPY","top_contract_strike":749,"top_contract_type":"C","top_contract_is_call":1,"top_contract_volume":873438,"top_contract_avg_price":0.647,"top_strike_minus_spy_close":1.34,"second_contract_underlying":"SPY","second_contract_strike":747,"second_contract_type":"P","second_contract_is_put":1,"second_contract_volume":785834,"second_contract_avg_price":0.88,"spy_close_minus_second_strike":0.66,"both_top_contracts_same_day":2,"spy_close":747.66}],"shape":"scalar","sql":"WITH\n    (\n        SELECT (groupArray(und), groupArray(strike), groupArray(typ), groupArray(vol), groupArray(avg_px), groupArray(is_0dte))\n        FROM (\n            SELECT any(underlying_symbol) AS und, any(toFloat64(strike_price)) AS strike, any(option_type) AS typ,\n                   sum(size) AS vol, round(avg(toFloat64(price)), 3) AS avg_px,\n                   if(substring(ticker, length(ticker) - 14, 6) = '260707', 1, 0) AS is_0dte\n            FROM global_markets.options_trades\n            WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'\n            GROUP BY ticker\n            ORDER BY vol DESC\n            LIMIT 2\n        )\n    ) AS top2,\n    (\n        SELECT round(toFloat64(argMax(close, window_start)), 2)\n        FROM global_markets.delayed_stocks_minute_aggs\n        WHERE ticker = 'SPY' AND window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00'\n    ) AS spy_regular_close\nSELECT\n    round(count() / 1e6, 2) AS option_prints_m,\n    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,\n    round(100.0 * sumIf(size, option_type = 'C') / sum(size), 1) AS call_pct_of_volume,\n    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260707') / sum(size), 1) AS same_day_expiry_pct,\n    round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260707')) / 1e6, 2) AS same_day_contracts_m,\n    round(toFloat64(sumIf(size, underlying_symbol = 'SPY')) / 1e6, 2) AS spy_contracts_m,\n    round(toFloat64(sumIf(size, underlying_symbol = 'QQQ')) / 1e6, 2) AS qqq_contracts_m,\n    round(toFloat64(sumIf(size, underlying_symbol = 'INTC')) / 1e6, 2) AS intc_contracts_m,\n    top2.1[1] AS top_contract_underlying,\n    top2.2[1] AS top_contract_strike,\n    top2.3[1] AS top_contract_type,\n    if(top2.3[1] = 'C', 1, 0) AS top_contract_is_call,\n    top2.4[1] AS top_contract_volume,\n    top2.5[1] AS top_contract_avg_price,\n    round(top2.2[1] - spy_regular_close, 2) AS top_strike_minus_spy_close,\n    top2.1[2] AS second_contract_underlying,\n    top2.2[2] AS second_contract_strike,\n    top2.3[2] AS second_contract_type,\n    if(top2.3[2] = 'P', 1, 0) AS second_contract_is_put,\n    top2.4[2] AS second_contract_volume,\n    top2.5[2] AS second_contract_avg_price,\n    round(spy_regular_close - top2.2[2], 2) AS spy_close_minus_second_strike,\n    top2.6[1] + top2.6[2] AS both_top_contracts_same_day,\n    spy_regular_close AS spy_close\nFROM global_markets.options_trades\nWHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'","computed_at":"2026-07-26T05:50:37.851921+00:00","elapsed":5.174535859}