{"slug":"open-source-gex-dashboard","qid":"gex_history","label":"Gross SPY call and put gamma against the net, trailing 60 calendar days","post_title":"Open-Source GEX Dashboard: How It Works","post_url":"/blog/open-source-gex-dashboard#q-gex_history","columns":["session_date","session_label","call_gex_bn","put_gex_bn","net_gex_bn"],"rows":[{"session_date":"2026-06-23","session_label":"Jun 23","call_gex_bn":21.26,"put_gex_bn":-20.99,"net_gex_bn":0.27},{"session_date":"2026-06-24","session_label":"Jun 24","call_gex_bn":27.76,"put_gex_bn":-20.76,"net_gex_bn":7},{"session_date":"2026-06-25","session_label":"Jun 25","call_gex_bn":18.84,"put_gex_bn":-29.71,"net_gex_bn":-10.87},{"session_date":"2026-06-26","session_label":"Jun 26","call_gex_bn":15.91,"put_gex_bn":-23.11,"net_gex_bn":-7.21},{"session_date":"2026-06-29","session_label":"Jun 29","call_gex_bn":25.16,"put_gex_bn":-23.47,"net_gex_bn":1.69},{"session_date":"2026-06-30","session_label":"Jun 30","call_gex_bn":39.34,"put_gex_bn":-28.4,"net_gex_bn":10.94},{"session_date":"2026-07-01","session_label":"Jul 1","call_gex_bn":28.42,"put_gex_bn":-31.7,"net_gex_bn":-3.28},{"session_date":"2026-07-02","session_label":"Jul 2","call_gex_bn":42.21,"put_gex_bn":-23.58,"net_gex_bn":18.63},{"session_date":"2026-07-06","session_label":"Jul 6","call_gex_bn":39,"put_gex_bn":-45.99,"net_gex_bn":-6.99},{"session_date":"2026-07-07","session_label":"Jul 7","call_gex_bn":31.5,"put_gex_bn":-45.33,"net_gex_bn":-13.84},{"session_date":"2026-07-08","session_label":"Jul 8","call_gex_bn":33.08,"put_gex_bn":-28.22,"net_gex_bn":4.86},{"session_date":"2026-07-09","session_label":"Jul 9","call_gex_bn":41.93,"put_gex_bn":-34,"net_gex_bn":7.93},{"session_date":"2026-07-10","session_label":"Jul 10","call_gex_bn":41.13,"put_gex_bn":-29.2,"net_gex_bn":11.93},{"session_date":"2026-07-13","session_label":"Jul 13","call_gex_bn":23.01,"put_gex_bn":-37.55,"net_gex_bn":-14.54},{"session_date":"2026-07-14","session_label":"Jul 14","call_gex_bn":47.33,"put_gex_bn":-22.38,"net_gex_bn":24.95},{"session_date":"2026-07-15","session_label":"Jul 15","call_gex_bn":52.13,"put_gex_bn":-37.69,"net_gex_bn":14.44},{"session_date":"2026-07-16","session_label":"Jul 16","call_gex_bn":31.66,"put_gex_bn":-44.51,"net_gex_bn":-12.85},{"session_date":"2026-07-17","session_label":"Jul 17","call_gex_bn":21.57,"put_gex_bn":-28.03,"net_gex_bn":-6.46},{"session_date":"2026-07-20","session_label":"Jul 20","call_gex_bn":27.1,"put_gex_bn":-34.47,"net_gex_bn":-7.37},{"session_date":"2026-07-21","session_label":"Jul 21","call_gex_bn":29.99,"put_gex_bn":-31.68,"net_gex_bn":-1.68},{"session_date":"2026-07-22","session_label":"Jul 22","call_gex_bn":21.03,"put_gex_bn":-45.41,"net_gex_bn":-24.37},{"session_date":"2026-07-23","session_label":"Jul 23","call_gex_bn":27.19,"put_gex_bn":-31.65,"net_gex_bn":-4.46},{"session_date":"2026-07-24","session_label":"Jul 24","call_gex_bn":25.58,"put_gex_bn":-29.06,"net_gex_bn":-3.48},{"session_date":"2026-07-27","session_label":"Jul 27","call_gex_bn":29.37,"put_gex_bn":-29.33,"net_gex_bn":0.04},{"session_date":"2026-07-28","session_label":"Jul 28","call_gex_bn":25.3,"put_gex_bn":-15.34,"net_gex_bn":9.96},{"session_date":"2026-07-29","session_label":"Jul 29","call_gex_bn":20.42,"put_gex_bn":-22.75,"net_gex_bn":-2.33},{"session_date":"2026-07-30","session_label":"Jul 30","call_gex_bn":31.09,"put_gex_bn":-22.76,"net_gex_bn":8.33},{"session_date":"2026-07-31","session_label":"Jul 31","call_gex_bn":24.54,"put_gex_bn":-35.11,"net_gex_bn":-10.58},{"session_date":"2026-08-03","session_label":"Aug 3","call_gex_bn":57.24,"put_gex_bn":-38.49,"net_gex_bn":18.75},{"session_date":"2026-08-04","session_label":"Aug 4","call_gex_bn":58.91,"put_gex_bn":-31.07,"net_gex_bn":27.84},{"session_date":"2026-08-05","session_label":"Aug 5","call_gex_bn":27.67,"put_gex_bn":-33.1,"net_gex_bn":-5.43},{"session_date":"2026-08-06","session_label":"Aug 6","call_gex_bn":29.2,"put_gex_bn":-34.53,"net_gex_bn":-5.32},{"session_date":"2026-08-07","session_label":"Aug 7","call_gex_bn":43.54,"put_gex_bn":-25.29,"net_gex_bn":18.25},{"session_date":"2026-08-10","session_label":"Aug 10","call_gex_bn":35.42,"put_gex_bn":-43.73,"net_gex_bn":-8.31},{"session_date":"2026-08-11","session_label":"Aug 11","call_gex_bn":27.06,"put_gex_bn":-27.58,"net_gex_bn":-0.52},{"session_date":"2026-08-12","session_label":"Aug 12","call_gex_bn":31.05,"put_gex_bn":-31.03,"net_gex_bn":0.01},{"session_date":"2026-08-13","session_label":"Aug 13","call_gex_bn":60.48,"put_gex_bn":-36.21,"net_gex_bn":24.27},{"session_date":"2026-08-14","session_label":"Aug 14","call_gex_bn":34.51,"put_gex_bn":-30.34,"net_gex_bn":4.16},{"session_date":"2026-08-17","session_label":"Aug 17","call_gex_bn":36.16,"put_gex_bn":-43,"net_gex_bn":-6.84},{"session_date":"2026-08-18","session_label":"Aug 18","call_gex_bn":23.38,"put_gex_bn":-40.49,"net_gex_bn":-17.11},{"session_date":"2026-08-19","session_label":"Aug 19","call_gex_bn":40.3,"put_gex_bn":-29.73,"net_gex_bn":10.58}],"shape":"series","sql":"SELECT\n    toString(d)                                                             AS session_date,\n    formatDateTime(d, '%b %e')                                              AS session_label,\n    round(sumIf(gex, side = 'call') / 1e9, 2)                               AS call_gex_bn,\n    round(-sumIf(gex, side = 'put') / 1e9, 2)                               AS put_gex_bn,\n    round((sumIf(gex, side = 'call') - sumIf(gex, side = 'put')) / 1e9, 2)  AS net_gex_bn\nFROM\n(\n    SELECT\n        date                                                   AS d,\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    FROM global_markets.options_greeks\n    WHERE underlying_symbol = 'SPY'\n      AND date >= today() - 60\n      AND iv_converged = 1\n      AND volume > 0\n      AND days_to_expiry BETWEEN 0 AND 45\n)\nGROUP BY d\nORDER BY d","computed_at":"2026-08-22T04:17:49.666796+00:00","elapsed":0.099634209}