{"slug":"tase-vs-us-trading-days","qid":"weekend_gap_profile","label":"weekend_gap_profile","post_title":"tase-vs-us-trading-days","post_url":"/blog/lang/he/tase-vs-us-trading-days#q-weekend_gap_profile","columns":["ticker","median_abs_gap_pct","avg_abs_gap_pct","over_1pct_rate","over_2pct_rate","weekend_gap_count","history_since"],"rows":[{"ticker":"AAPL","median_abs_gap_pct":0.56,"avg_abs_gap_pct":0.84,"over_1pct_rate":24.6,"over_2pct_rate":8.1,"weekend_gap_count":1048,"history_since":"2003"},{"ticker":"QQQ","median_abs_gap_pct":0.37,"avg_abs_gap_pct":0.56,"over_1pct_rate":13.1,"over_2pct_rate":2.8,"weekend_gap_count":763,"history_since":"2003"},{"ticker":"SPY","median_abs_gap_pct":0.29,"avg_abs_gap_pct":0.47,"over_1pct_rate":10.8,"over_2pct_rate":2.7,"weekend_gap_count":1048,"history_since":"2003"}],"shape":"table","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        date,\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)\nSELECT\n    ticker,\n    round(quantileDeterministic(0.5)(abs_gap_pct, toYYYYMMDD(date)), 2) AS median_abs_gap_pct,\n    round(avg(abs_gap_pct), 2)                                          AS avg_abs_gap_pct,\n    round(100 * countIf(abs_gap_pct > 1) / count(), 1)                  AS over_1pct_rate,\n    round(100 * countIf(abs_gap_pct > 2) / count(), 1)                  AS over_2pct_rate,\n    count()                                                             AS weekend_gap_count,\n    toString(toYear(min(date)))                                         AS history_since\nFROM weekend\nGROUP BY ticker\nORDER BY over_2pct_rate DESC","computed_at":"2026-10-16T15:19:54.540095+00:00","elapsed":0.005599137}