{"slug":"market-recap-2026-07-02","qid":"options_flow","label":"One row for the whole options day: volume, same-day expiry, the holiday-shifted week, and the July monthly","post_title":"Market Recap: July 2, 2026, The Day in Numbers","post_url":"/blog/market-recap-2026-07-02#q-options_flow","columns":["option_prints_m","contracts_m","call_pct_of_volume","same_day_expiry_pct","thu_jul2_expiry_contracts_m","fri_jul3_expiry_prints","jul10_weekly_contracts_m","jul17_monthly_contracts_m","spy_contracts_m","qqq_contracts_m","top_contract_underlying","top_contract_strike","top_contract_type","top_contract_expiry","top_contract_volume","top_contract_volume_fmt","top_contract_avg_price","top_strike_minus_spy_close","spy_close_minus_strike"],"rows":[{"option_prints_m":13.15,"contracts_m":80.96,"call_pct_of_volume":58.4,"same_day_expiry_pct":47.4,"thu_jul2_expiry_contracts_m":38.38,"fri_jul3_expiry_prints":0,"jul10_weekly_contracts_m":9.64,"jul17_monthly_contracts_m":8.82,"spy_contracts_m":13.96,"qqq_contracts_m":8.5,"top_contract_underlying":"SPY","top_contract_strike":740,"top_contract_type":"P","top_contract_expiry":"2026-07-02","top_contract_volume":540403,"top_contract_volume_fmt":"540,403","top_contract_avg_price":0.499,"top_strike_minus_spy_close":-4.8,"spy_close_minus_strike":4.8}],"shape":"scalar","sql":"WITH\n    (\n        SELECT (any(underlying_symbol), any(toFloat64(strike_price)), any(option_type),\n                any(toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))),\n                sum(size), count(), round(avg(toFloat64(price)), 3))\n        FROM global_markets.options_trades\n        WHERE sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'\n        GROUP BY ticker\n        ORDER BY sum(size) DESC\n        LIMIT 1\n    ) AS top_contract,\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-02 13:30:00' AND window_start < '2026-07-02 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) = '260702') / sum(size), 1) AS same_day_expiry_pct,\n    round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260702')) / 1e6, 2) AS thu_jul2_expiry_contracts_m,\n    countIf(substring(ticker, length(ticker) - 14, 6) = '260703') AS fri_jul3_expiry_prints,\n    round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260710')) / 1e6, 2) AS jul10_weekly_contracts_m,\n    round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260717')) / 1e6, 2) AS jul17_monthly_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    top_contract.1 AS top_contract_underlying,\n    top_contract.2 AS top_contract_strike,\n    top_contract.3 AS top_contract_type,\n    top_contract.4 AS top_contract_expiry,\n    top_contract.5 AS top_contract_volume,\n    reverse(arrayStringConcat(extractAll(reverse(toString(assumeNotNull(top_contract.5))), '[0-9]{1,3}'), ',')) AS top_contract_volume_fmt,\n    round(top_contract.7, 3) AS top_contract_avg_price,\n    round(top_contract.2 - spy_regular_close, 2) AS top_strike_minus_spy_close,\n    round(spy_regular_close - top_contract.2, 2) AS spy_close_minus_strike\nFROM global_markets.options_trades\nWHERE sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'","computed_at":"2026-07-26T05:44:53.311575+00:00","elapsed":7.181630607}