{"slug":"event-contract-prices-as-probabilities","qid":"coin_flip_names","label":"Contracts priced near a coin flip: implied vs realized outcome by name, 2023 through June 2026","post_title":"Event Contract Prices as Probabilities","post_url":"/blog/event-contract-prices-as-probabilities#q-coin_flip_names","columns":["symbol","contracts","implied_prob_pct","finished_above_pct"],"rows":[{"symbol":"SPY","contracts":4785,"implied_prob_pct":50.6,"finished_above_pct":68.4},{"symbol":"AAPL","contracts":716,"implied_prob_pct":50.4,"finished_above_pct":62.4},{"symbol":"NVDA","contracts":2641,"implied_prob_pct":50.2,"finished_above_pct":57},{"symbol":"KO","contracts":525,"implied_prob_pct":50.3,"finished_above_pct":52.4},{"symbol":"MSFT","contracts":1156,"implied_prob_pct":50,"finished_above_pct":51},{"symbol":"XOM","contracts":1280,"implied_prob_pct":49.9,"finished_above_pct":49.9}],"shape":"ranking","sql":"WITH px AS (\n    SELECT ticker,\n           toDate(toTimeZone(window_start, 'America/New_York')) AS session,\n           argMax(toFloat64(close), window_start) AS close_px\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO', 'XOM')\n      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2023-01-01')\n      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959\n    GROUP BY ticker, session\n),\nsnap AS (\n    SELECT underlying_symbol AS symbol,\n           ticker AS contract,\n           argMin(delta, abs(days_to_expiry - 30)) AS implied_prob,\n           toFloat64(any(strike_price)) AS strike,\n           any(expiration_date) AS expiry\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO', 'XOM')\n      AND date >= toDate('2023-01-01')\n      AND expiration_date <= toDate('2026-06-30')\n      AND days_to_expiry BETWEEN 25 AND 35\n      AND iv_converged = 1\n      AND volume > 0\n      AND delta BETWEEN 0.40 AND 0.60\n    GROUP BY symbol, contract\n)\nSELECT snap.symbol AS symbol,\n       count() AS contracts,\n       round(100 * avg(implied_prob), 1) AS implied_prob_pct,\n       round(100 * avg(close_px > strike), 1) AS finished_above_pct\nFROM snap\nINNER JOIN px ON px.ticker = snap.symbol AND px.session = snap.expiry\nGROUP BY symbol\nORDER BY finished_above_pct DESC","computed_at":"2026-08-03T10:23:47.973947+00:00","elapsed":0.004171833}