{"slug":"what-it-costs-to-trade-a-stock","qid":"pair_summary","label":"NVDA vs SOXS: median quoted spread over the window, with the smallest single-session gap","post_title":"What It Costs to Trade a Stock, Measured","post_url":"/blog/what-it-costs-to-trade-a-stock#q-pair_summary","columns":["nvda_spread_bps","f_spread_bps","times_wider","sessions_measured","smallest_daily_gap_x"],"rows":[{"nvda_spread_bps":0.89,"f_spread_bps":7.16,"times_wider":8,"sessions_measured":5,"smallest_daily_gap_x":7.9}],"shape":"scalar","sql":"WITH per_day AS (\n    SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS et_date,\n           quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), ticker = 'NVDA' AND bid_price > 0 AND ask_price > bid_price) * 10000 AS nvda_bps,\n           quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), ticker = 'F' AND bid_price > 0 AND ask_price > bid_price) * 10000 AS f_bps\n    FROM global_markets.cache_stocks_quotes\n    WHERE ticker IN ('NVDA', 'F')\n      AND sip_timestamp >= toDateTime(today() - 10)\n      AND sip_timestamp < toDateTime(today() - 3)\n      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199\n    GROUP BY et_date\n),\nwhole AS (\n    SELECT quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), ticker = 'NVDA' AND bid_price > 0 AND ask_price > bid_price) * 10000 AS nvda_bps,\n           quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), ticker = 'F' AND bid_price > 0 AND ask_price > bid_price) * 10000 AS f_bps\n    FROM global_markets.cache_stocks_quotes\n    WHERE ticker IN ('NVDA', 'F')\n      AND sip_timestamp >= toDateTime(today() - 10)\n      AND sip_timestamp < toDateTime(today() - 3)\n      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199\n)\nSELECT round((SELECT nvda_bps FROM whole), 2) AS nvda_spread_bps,\n       round((SELECT f_bps FROM whole), 2) AS f_spread_bps,\n       round((SELECT f_bps FROM whole) / (SELECT nvda_bps FROM whole), 1) AS times_wider,\n       (SELECT count() FROM per_day) AS sessions_measured,\n       round((SELECT min(f_bps / nvda_bps) FROM per_day), 1) AS smallest_daily_gap_x","computed_at":"2026-08-22T04:35:34.210411+00:00","elapsed":6.809271885}