{"slug":"open-source-gex-dashboard","qid":"gamma_by_strike","label":"SPY gamma exposure by strike, latest session, contracts inside 30 days","post_title":"Open-Source GEX Dashboard: How It Works","post_url":"/blog/open-source-gex-dashboard#q-gamma_by_strike","columns":["strike","call_gex_musd","put_gex_musd","net_gex_musd","snapshot_label"],"rows":[{"strike":"$759","call_gex_musd":16.5,"put_gex_musd":-120.8,"net_gex_musd":-104.3,"snapshot_label":"Aug 19, 2026"},{"strike":"$760","call_gex_musd":27.6,"put_gex_musd":-1130.6,"net_gex_musd":-1103,"snapshot_label":"Aug 19, 2026"},{"strike":"$761","call_gex_musd":15.6,"put_gex_musd":-271.8,"net_gex_musd":-256.3,"snapshot_label":"Aug 19, 2026"},{"strike":"$762","call_gex_musd":13.1,"put_gex_musd":-367.1,"net_gex_musd":-354,"snapshot_label":"Aug 19, 2026"},{"strike":"$763","call_gex_musd":15.7,"put_gex_musd":-479,"net_gex_musd":-463.3,"snapshot_label":"Aug 19, 2026"},{"strike":"$764","call_gex_musd":17.9,"put_gex_musd":-791.2,"net_gex_musd":-773.3,"snapshot_label":"Aug 19, 2026"},{"strike":"$765","call_gex_musd":140.7,"put_gex_musd":-2128.1,"net_gex_musd":-1987.4,"snapshot_label":"Aug 19, 2026"},{"strike":"$766","call_gex_musd":62.6,"put_gex_musd":-1327.7,"net_gex_musd":-1265.1,"snapshot_label":"Aug 19, 2026"},{"strike":"$767","call_gex_musd":91.8,"put_gex_musd":-2175.9,"net_gex_musd":-2084.2,"snapshot_label":"Aug 19, 2026"},{"strike":"$768","call_gex_musd":1200.6,"put_gex_musd":-3032.3,"net_gex_musd":-1831.7,"snapshot_label":"Aug 19, 2026"},{"strike":"$769","call_gex_musd":3382.9,"put_gex_musd":-5123.3,"net_gex_musd":-1740.4,"snapshot_label":"Aug 19, 2026"},{"strike":"$770","call_gex_musd":10230.7,"put_gex_musd":-6092.4,"net_gex_musd":4138.3,"snapshot_label":"Aug 19, 2026"},{"strike":"$771","call_gex_musd":7643.6,"put_gex_musd":-1969.5,"net_gex_musd":5674.2,"snapshot_label":"Aug 19, 2026"},{"strike":"$772","call_gex_musd":6034,"put_gex_musd":-898.9,"net_gex_musd":5135.1,"snapshot_label":"Aug 19, 2026"},{"strike":"$773","call_gex_musd":3442.9,"put_gex_musd":-332.5,"net_gex_musd":3110.4,"snapshot_label":"Aug 19, 2026"},{"strike":"$774","call_gex_musd":2278.9,"put_gex_musd":-115.2,"net_gex_musd":2163.7,"snapshot_label":"Aug 19, 2026"},{"strike":"$775","call_gex_musd":2290.1,"put_gex_musd":-240.4,"net_gex_musd":2049.7,"snapshot_label":"Aug 19, 2026"},{"strike":"$776","call_gex_musd":880.2,"put_gex_musd":-476.7,"net_gex_musd":403.5,"snapshot_label":"Aug 19, 2026"},{"strike":"$777","call_gex_musd":547.1,"put_gex_musd":-95.7,"net_gex_musd":451.4,"snapshot_label":"Aug 19, 2026"},{"strike":"$778","call_gex_musd":382.9,"put_gex_musd":-32.2,"net_gex_musd":350.7,"snapshot_label":"Aug 19, 2026"},{"strike":"$779","call_gex_musd":162.6,"put_gex_musd":-73.3,"net_gex_musd":89.2,"snapshot_label":"Aug 19, 2026"},{"strike":"$780","call_gex_musd":500.7,"put_gex_musd":-342,"net_gex_musd":158.6,"snapshot_label":"Aug 19, 2026"},{"strike":"$781","call_gex_musd":78.4,"put_gex_musd":-53,"net_gex_musd":25.4,"snapshot_label":"Aug 19, 2026"}],"shape":"table","sql":"SELECT\n    concat('$', toString(round(k)))                                         AS strike,\n    round(sumIf(gex, side = 'call') / 1e6, 1)                               AS call_gex_musd,\n    round(-sumIf(gex, side = 'put') / 1e6, 1)                               AS put_gex_musd,\n    round((sumIf(gex, side = 'call') - sumIf(gex, side = 'put')) / 1e6, 1)  AS net_gex_musd,\n    any(snapshot_label)                                                     AS snapshot_label\nFROM\n(\n    SELECT\n        toFloat64(strike_price)                                AS k,\n        if(lower(option_type) LIKE 'c%', 'call', 'put')        AS side,\n        toFloat64(gamma) * toFloat64(volume) * 100\n            * pow(toFloat64(underlying_close), 2) * 0.01       AS gex,\n        formatDateTime(date, '%b %e, %Y')                      AS snapshot_label\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol = 'SPY'\n      AND date = (SELECT max(date) FROM global_markets.options_greeks WHERE underlying_symbol = 'SPY')\n      AND iv_converged = 1\n      AND volume > 0\n      AND days_to_expiry BETWEEN 0 AND 30\n      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.015\n)\nGROUP BY k\nORDER BY k","computed_at":"2026-08-22T04:17:47.288015+00:00","elapsed":2.169789502}