{"slug":"market-recap-2026-07-01","qid":"options_flow","label":"One row for the whole options day: volume, same-day expiry, put/call skew, and the busiest contract","post_title":"Market Recap: July 1, 2026, The Day in Numbers","post_url":"/blog/market-recap-2026-07-01#q-options_flow","columns":["option_prints_m","contracts_m","call_pct_of_volume","put_call_ratio","same_day_expiry_pct","thu_jul2_expiry_contracts_m","fri_jul3_expiry_prints","spy_put_contracts_m","spy_puts_2pct_below_pct","spy_calls_2pct_above_pct","mu_put_call_ratio","meta_put_call_ratio","top_contract_underlying","top_contract_strike","top_contract_type","top_contract_volume","top_contract_volume_fmt","top_contract_avg_price","top_contract_is_same_day","top_strike_minus_spy_close","spy_close"],"rows":[{"option_prints_m":11.22,"contracts_m":68.46,"call_pct_of_volume":58.6,"put_call_ratio":0.71,"same_day_expiry_pct":33.5,"thu_jul2_expiry_contracts_m":14.43,"fri_jul3_expiry_prints":0,"spy_put_contracts_m":5.76,"spy_puts_2pct_below_pct":11.6,"spy_calls_2pct_above_pct":3.7,"mu_put_call_ratio":1.11,"meta_put_call_ratio":0.39,"top_contract_underlying":"SPY","top_contract_strike":748,"top_contract_type":"C","top_contract_volume":878947,"top_contract_volume_fmt":"878,947","top_contract_avg_price":0.707,"top_contract_is_same_day":1,"top_strike_minus_spy_close":2.31,"spy_close":745.69}],"shape":"scalar","sql":"WITH\n    (\n        SELECT (any(underlying_symbol), any(toFloat64(strike_price)), any(option_type),\n                sum(size), round(avg(toFloat64(price)), 3),\n                any(if(substring(ticker, length(ticker) - 14, 6) = '260701', 1, 0)))\n        FROM global_markets.options_trades\n        WHERE sip_timestamp >= '2026-07-01 00:00:00' AND sip_timestamp < '2026-07-02 00:00:00'\n        GROUP BY ticker\n        ORDER BY sum(size) DESC, ticker ASC\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-01 13:30:00' AND window_start < '2026-07-01 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(sumIf(toFloat64(size), option_type = 'P') / sumIf(toFloat64(size), option_type = 'C'), 2) AS put_call_ratio,\n    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260701') / 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, underlying_symbol = 'SPY' AND option_type = 'P')) / 1e6, 2) AS spy_put_contracts_m,\n    round(100.0 * sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P' AND toFloat64(strike_price) < spy_regular_close * 0.98)\n        / sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P'), 1) AS spy_puts_2pct_below_pct,\n    round(100.0 * sumIf(size, underlying_symbol = 'SPY' AND option_type = 'C' AND toFloat64(strike_price) > spy_regular_close * 1.02)\n        / sumIf(size, underlying_symbol = 'SPY' AND option_type = 'C'), 1) AS spy_calls_2pct_above_pct,\n    round(sumIf(toFloat64(size), underlying_symbol = 'MU' AND option_type = 'P')\n        / sumIf(toFloat64(size), underlying_symbol = 'MU' AND option_type = 'C'), 2) AS mu_put_call_ratio,\n    round(sumIf(toFloat64(size), underlying_symbol = 'META' AND option_type = 'P')\n        / sumIf(toFloat64(size), underlying_symbol = 'META' AND option_type = 'C'), 2) AS meta_put_call_ratio,\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_volume,\n    reverse(arrayStringConcat(extractAll(reverse(toString(assumeNotNull(top_contract.4))), '\\\\d{1,3}'), ',')) AS top_contract_volume_fmt,\n    round(top_contract.5, 3) AS top_contract_avg_price,\n    top_contract.6 AS top_contract_is_same_day,\n    round(top_contract.2 - spy_regular_close, 2) AS top_strike_minus_spy_close,\n    spy_regular_close AS spy_close\nFROM global_markets.options_trades\nWHERE sip_timestamp >= '2026-07-01 00:00:00' AND sip_timestamp < '2026-07-02 00:00:00'","computed_at":"2026-07-26T05:44:19.910273+00:00","elapsed":6.280558963}