{"slug":"tase-vs-us-trading-days","qid":"gap_buckets","label":"gap_buckets","post_title":"tase-vs-us-trading-days","post_url":"/blog/lang/he/tase-vs-us-trading-days#q-gap_buckets","columns":["gap_bucket","spy_rate","qqq_rate","aapl_rate"],"rows":[{"gap_bucket":"0.0-0.5%","spy_rate":70.9,"qqq_rate":62.1,"aapl_rate":46.7},{"gap_bucket":"0.5-1%","spy_rate":18.3,"qqq_rate":24.8,"aapl_rate":28.7},{"gap_bucket":"1-2%","spy_rate":8.1,"qqq_rate":10.4,"aapl_rate":16.5},{"gap_bucket":"2-3%","spy_rate":1.4,"qqq_rate":1.3,"aapl_rate":4.9},{"gap_bucket":"3%+","spy_rate":1.2,"qqq_rate":1.4,"aapl_rate":3.2}],"shape":"ranking","sql":"WITH deduped AS\n(\n    SELECT\n        ticker,\n        date,\n        max(toFloat64(open))  AS open_px,\n        max(toFloat64(close)) AS close_px\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker IN ('SPY', 'QQQ', 'AAPL')\n    GROUP BY ticker, date\n),\nchained AS\n(\n    SELECT\n        ticker,\n        date,\n        open_px,\n        lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close,\n        lagInFrame(date)     OVER (PARTITION BY ticker ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_date\n    FROM deduped\n),\nweekend AS\n(\n    SELECT\n        ticker,\n        abs(100 * (open_px / prev_close - 1)) AS abs_gap_pct\n    FROM chained\n    WHERE prev_close > 0\n      AND open_px > 0\n      AND toDayOfWeek(prev_date) = 5\n      AND toDayOfWeek(date) = 1\n),\nbucketed AS\n(\n    SELECT\n        ticker,\n        multiIf(abs_gap_pct < 0.5, 1,\n                abs_gap_pct < 1,   2,\n                abs_gap_pct < 2,   3,\n                abs_gap_pct < 3,   4,\n                5) AS bucket_order,\n        multiIf(abs_gap_pct < 0.5, '0.0-0.5%',\n                abs_gap_pct < 1,   '0.5-1%',\n                abs_gap_pct < 2,   '1-2%',\n                abs_gap_pct < 3,   '2-3%',\n                '3%+') AS gap_bucket\n    FROM weekend\n),\ncounted AS\n(\n    SELECT\n        ticker,\n        bucket_order,\n        gap_bucket,\n        count() AS n\n    FROM bucketed\n    GROUP BY ticker, bucket_order, gap_bucket\n),\nshares AS\n(\n    SELECT\n        ticker,\n        bucket_order,\n        gap_bucket,\n        round(100 * n / sum(n) OVER (PARTITION BY ticker), 1) AS share_pct\n    FROM counted\n)\nSELECT\n    gap_bucket,\n    maxIf(share_pct, ticker = 'SPY')  AS spy_rate,\n    maxIf(share_pct, ticker = 'QQQ')  AS qqq_rate,\n    maxIf(share_pct, ticker = 'AAPL') AS aapl_rate\nFROM shares\nGROUP BY gap_bucket, bucket_order\nORDER BY bucket_order","computed_at":"2026-10-16T15:19:54.648769+00:00","elapsed":0.005789748}