{"slug":"nse-pre-open-session-explained","qid":"gap_by_month","label":"gap_by_month","post_title":"nse-pre-open-session-explained","post_url":"/blog/lang/mr/nse-pre-open-session-explained#q-gap_by_month","columns":["month","session_count","gap_over_0_5_pct","gap_over_1_pct"],"rows":[{"month":"2024-10","session_count":176,"gap_over_0_5_pct":42,"gap_over_1_pct":17.6},{"month":"2024-11","session_count":160,"gap_over_0_5_pct":40.6,"gap_over_1_pct":16.2},{"month":"2024-12","session_count":168,"gap_over_0_5_pct":27.4,"gap_over_1_pct":11.3},{"month":"2025-01","session_count":160,"gap_over_0_5_pct":51.2,"gap_over_1_pct":28.1},{"month":"2025-02","session_count":152,"gap_over_0_5_pct":40.1,"gap_over_1_pct":16.4},{"month":"2025-03","session_count":168,"gap_over_0_5_pct":50.6,"gap_over_1_pct":30.4},{"month":"2025-04","session_count":168,"gap_over_0_5_pct":67.9,"gap_over_1_pct":48.2},{"month":"2025-05","session_count":168,"gap_over_0_5_pct":56.5,"gap_over_1_pct":30.4},{"month":"2025-06","session_count":160,"gap_over_0_5_pct":35.6,"gap_over_1_pct":13.1},{"month":"2025-07","session_count":176,"gap_over_0_5_pct":30.7,"gap_over_1_pct":5.1},{"month":"2025-08","session_count":168,"gap_over_0_5_pct":24.4,"gap_over_1_pct":9.5},{"month":"2025-09","session_count":168,"gap_over_0_5_pct":26.8,"gap_over_1_pct":13.7},{"month":"2025-10","session_count":184,"gap_over_0_5_pct":39.7,"gap_over_1_pct":17.4},{"month":"2025-11","session_count":152,"gap_over_0_5_pct":39.5,"gap_over_1_pct":19.1},{"month":"2025-12","session_count":176,"gap_over_0_5_pct":22.7,"gap_over_1_pct":8},{"month":"2026-01","session_count":160,"gap_over_0_5_pct":46.2,"gap_over_1_pct":20.6},{"month":"2026-02","session_count":152,"gap_over_0_5_pct":41.4,"gap_over_1_pct":16.4},{"month":"2026-03","session_count":176,"gap_over_0_5_pct":59.7,"gap_over_1_pct":24.4},{"month":"2026-04","session_count":168,"gap_over_0_5_pct":53.6,"gap_over_1_pct":26.2},{"month":"2026-05","session_count":160,"gap_over_0_5_pct":50.6,"gap_over_1_pct":18.1},{"month":"2026-06","session_count":168,"gap_over_0_5_pct":58.9,"gap_over_1_pct":28.6},{"month":"2026-07","session_count":176,"gap_over_0_5_pct":64.2,"gap_over_1_pct":36.4},{"month":"2026-08","session_count":168,"gap_over_0_5_pct":44.6,"gap_over_1_pct":22.6},{"month":"2026-09","session_count":168,"gap_over_0_5_pct":54.2,"gap_over_1_pct":28}],"shape":"series","sql":"WITH bars AS\n(\n    SELECT\n        ticker,\n        date,\n        argMax(toFloat64(open), _ingest_time)  AS open_px,\n        argMax(toFloat64(close), _ingest_time) AS close_px\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'JPM', 'JNJ', 'KO', 'XOM')\n      AND date >= '2024-10-01'\n      AND date <  '2026-10-01'\n    GROUP BY ticker, date\n),\ngaps AS\n(\n    SELECT\n        date,\n        open_px,\n        lagInFrame(close_px, 1) OVER (PARTITION BY ticker ORDER BY date ASC\n            ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close\n    FROM bars\n)\nSELECT\n    formatDateTime(toStartOfMonth(date), '%Y-%m')                            AS month,\n    count()                                                                  AS session_count,\n    round(100 * countIf(abs(open_px / prev_close - 1) > 0.005) / count(), 1) AS gap_over_0_5_pct,\n    round(100 * countIf(abs(open_px / prev_close - 1) > 0.01) / count(), 1)  AS gap_over_1_pct\nFROM gaps\nWHERE prev_close > 0\n  AND open_px > 0\nGROUP BY month\nORDER BY month","computed_at":"2026-10-09T16:04:12.153330+00:00","elapsed":0.003526864}