{"slug":"market-data-skills-for-ai-agents","qid":"intraday_shape","label":"Where the volume sits: share of June 2026 volume by half hour, New York time","post_title":"Market Data Skills for AI Agents","post_url":"/blog/market-data-skills-for-ai-agents#q-intraday_shape","columns":["et_time","spy_share_pct","ko_share_pct"],"rows":[{"et_time":"04:00","spy_share_pct":0.23,"ko_share_pct":0.15},{"et_time":"04:30","spy_share_pct":0.04,"ko_share_pct":0.03},{"et_time":"05:00","spy_share_pct":0.05,"ko_share_pct":0.03},{"et_time":"05:30","spy_share_pct":0.05,"ko_share_pct":0.03},{"et_time":"06:00","spy_share_pct":0.05,"ko_share_pct":0.02},{"et_time":"06:30","spy_share_pct":0.06,"ko_share_pct":0.03},{"et_time":"07:00","spy_share_pct":0.28,"ko_share_pct":0.07},{"et_time":"07:30","spy_share_pct":0.21,"ko_share_pct":0.08},{"et_time":"08:00","spy_share_pct":0.28,"ko_share_pct":0.09},{"et_time":"08:30","spy_share_pct":0.43,"ko_share_pct":0.11},{"et_time":"09:00","spy_share_pct":0.43,"ko_share_pct":0.31},{"et_time":"09:30","spy_share_pct":8.9,"ko_share_pct":14.18},{"et_time":"10:00","spy_share_pct":6.18,"ko_share_pct":7.66},{"et_time":"10:30","spy_share_pct":5.02,"ko_share_pct":7.07},{"et_time":"11:00","spy_share_pct":4.51,"ko_share_pct":6.03},{"et_time":"11:30","spy_share_pct":5.66,"ko_share_pct":4.93},{"et_time":"12:00","spy_share_pct":4.18,"ko_share_pct":4.52},{"et_time":"12:30","spy_share_pct":3.97,"ko_share_pct":4.47},{"et_time":"13:00","spy_share_pct":4.24,"ko_share_pct":3.83},{"et_time":"13:30","spy_share_pct":4.26,"ko_share_pct":3.86},{"et_time":"14:00","spy_share_pct":5.02,"ko_share_pct":4.89},{"et_time":"14:30","spy_share_pct":5.4,"ko_share_pct":5.05},{"et_time":"15:00","spy_share_pct":6.96,"ko_share_pct":6.23},{"et_time":"15:30","spy_share_pct":18.06,"ko_share_pct":19.51},{"et_time":"16:00","spy_share_pct":13.52,"ko_share_pct":6.54},{"et_time":"16:30","spy_share_pct":0.91,"ko_share_pct":0.09},{"et_time":"17:00","spy_share_pct":0.36,"ko_share_pct":0.12},{"et_time":"17:30","spy_share_pct":0.28,"ko_share_pct":0.02},{"et_time":"18:00","spy_share_pct":0.17,"ko_share_pct":0.01},{"et_time":"18:30","spy_share_pct":0.11,"ko_share_pct":0.02},{"et_time":"19:00","spy_share_pct":0.1,"ko_share_pct":0.02},{"et_time":"19:30","spy_share_pct":0.07,"ko_share_pct":0.02}],"shape":"series","sql":"WITH bars AS (\n    SELECT ticker,\n           toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE) AS et_bucket,\n           volume\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker IN ('SPY', 'KO')\n      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-06-01')\n      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')\n),\ntotals AS (\n    SELECT sumIf(volume, ticker = 'SPY') AS spy_total,\n           sumIf(volume, ticker = 'KO') AS ko_total\n    FROM bars\n)\nSELECT formatDateTime(b.et_bucket, '%H:%i') AS et_time,\n       round(100 * sumIf(b.volume, b.ticker = 'SPY') / any(t.spy_total), 2) AS spy_share_pct,\n       round(100 * sumIf(b.volume, b.ticker = 'KO') / any(t.ko_total), 2) AS ko_share_pct\nFROM bars AS b\nCROSS JOIN totals AS t\nGROUP BY et_time\nORDER BY et_time","computed_at":"2026-08-01T08:37:24.370730+00:00","elapsed":0.003153132}