{"slug":"scoring-forecasts-with-the-brier-score","qid":"names","label":"Brier score of the market's own stated probability, by underlying","post_title":"Brier Score: How to Grade a Forecast","post_url":"/blog/scoring-forecasts-with-the-brier-score#q-names","columns":["symbol","market_brier","coin_flip_brier","graded_contracts"],"rows":[{"symbol":"NVDA","market_brier":0.1122,"coin_flip_brier":0.25,"graded_contracts":"28.54 thousand"},{"symbol":"TSLA","market_brier":0.1125,"coin_flip_brier":0.25,"graded_contracts":"42.23 thousand"},{"symbol":"AAPL","market_brier":0.1173,"coin_flip_brier":0.25,"graded_contracts":"14.98 thousand"},{"symbol":"MSFT","market_brier":0.1338,"coin_flip_brier":0.25,"graded_contracts":"22.61 thousand"},{"symbol":"KO","market_brier":0.1341,"coin_flip_brier":0.25,"graded_contracts":"8.61 thousand"},{"symbol":"SPY","market_brier":0.1375,"coin_flip_brier":0.25,"graded_contracts":"79.74 thousand"}],"shape":"ranking","sql":"WITH settle AS\n(\n    SELECT\n        underlying_symbol                AS sym,\n        date                             AS settle_date,\n        any(toFloat64(underlying_close)) AS settle_px\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO', 'TSLA')\n      AND date >= '2025-01-01'\n      AND date <  '2026-08-01'\n    GROUP BY sym, settle_date\n),\nscored AS\n(\n    SELECT\n        g.underlying_symbol                             AS symbol,\n        abs(toFloat64(g.delta))                         AS stated,\n        startsWith(lower(toString(g.option_type)), 'c') AS is_call,\n        if(is_call,\n           s.settle_px > toFloat64(g.strike_price),\n           s.settle_px < toFloat64(g.strike_price))     AS finished_itm\n    FROM global_markets.options_greeks AS g\n    INNER JOIN settle AS s\n        ON s.sym = g.underlying_symbol AND s.settle_date = g.expiration_date\n    WHERE g.underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO', 'TSLA')\n      AND g.date >= '2025-01-01'\n      AND g.date <  '2026-06-01'\n      AND g.expiration_date <= '2026-07-31'\n      AND g.days_to_expiry BETWEEN 28 AND 35\n      AND g.iv_converged = 1\n      AND g.volume > 0\n      AND abs(g.delta) > 0.02\n      AND abs(g.delta) < 0.98\n)\nSELECT\n    symbol,\n    round(avg((stated - finished_itm) * (stated - finished_itm)), 4) AS market_brier,\n    round(avg((0.5 - finished_itm) * (0.5 - finished_itm)), 4)       AS coin_flip_brier,\n    formatReadableQuantity(count())                                  AS graded_contracts\nFROM scored\nGROUP BY symbol\nORDER BY market_brier","computed_at":"2026-08-13T16:37:38.515023+00:00","elapsed":0.004612912}