{"slug":"why-options-orders-dont-get-filled","qid":"quote_spreads","label":"Median quoted spread on Apple options by contract price, 30 second window on June 17 2026","post_title":"Why Your Options Order Isn't Getting Filled","post_url":"/blog/why-options-orders-dont-get-filled#q-quote_spreads","columns":["price_bucket","median_spread_cents","spread_pct_of_mid"],"rows":[{"price_bucket":"under $0.50","median_spread_cents":17,"spread_pct_of_mid":75},{"price_bucket":"$0.50 to $2","median_spread_cents":26,"spread_pct_of_mid":25},{"price_bucket":"$2 to $5","median_spread_cents":40,"spread_pct_of_mid":11.9},{"price_bucket":"$5 to $15","median_spread_cents":75,"spread_pct_of_mid":8.6},{"price_bucket":"$15 and up","median_spread_cents":170,"spread_pct_of_mid":3.8}],"shape":"ranking","sql":"SELECT\n    price_bucket,\n    round(quantileExact(0.5)(spread) * 100, 1)       AS median_spread_cents,\n    round(quantileExact(0.5)(100 * spread / mid), 1) AS spread_pct_of_mid\nFROM\n(\n    SELECT\n        toFloat64(ask_price) - toFloat64(bid_price)       AS spread,\n        (toFloat64(ask_price) + toFloat64(bid_price)) / 2 AS mid,\n        multiIf(mid < 0.50,  'under $0.50',\n                mid < 2.00,  '$0.50 to $2',\n                mid < 5.00,  '$2 to $5',\n                mid < 15.00, '$5 to $15',\n                             '$15 and up')                AS price_bucket,\n        multiIf(mid < 0.50, 1, mid < 2.00, 2, mid < 5.00, 3, mid < 15.00, 4, 5) AS bucket_order\n    FROM global_markets.cache_options_quotes\n    WHERE ticker IN\n    (\n        SELECT ticker\n        FROM global_markets.options_greeks\n        WHERE underlying_symbol = 'AAPL'\n          AND date = '2026-06-17'\n    )\n      AND sip_timestamp >= toDateTime('2026-06-17 18:00:00', 'UTC')\n      AND sip_timestamp <  toDateTime('2026-06-17 18:00:30', 'UTC')\n      AND bid_price > 0\n      AND ask_price > bid_price\n)\nGROUP BY price_bucket\nORDER BY min(bucket_order)","computed_at":"2026-08-07T15:21:15.080766+00:00","elapsed":0.003384598}