{"slug":"the-pattern-day-trader-rule","qid":"intraday_range","label":"Median and 90th percentile full day range, eight names, H1 2026","post_title":"Pattern Day Trader Rule: What Replaced It","post_url":"/blog/the-pattern-day-trader-rule#q-intraday_range","columns":["ticker","median_range_pct","p90_range_pct"],"rows":[{"ticker":"TSLA","median_range_pct":3.93,"p90_range_pct":6},{"ticker":"NVDA","median_range_pct":3.37,"p90_range_pct":5.72},{"ticker":"MSFT","median_range_pct":2.63,"p90_range_pct":4.96},{"ticker":"AAPL","median_range_pct":2.44,"p90_range_pct":3.95},{"ticker":"JNJ","median_range_pct":1.94,"p90_range_pct":3.15},{"ticker":"QQQ","median_range_pct":1.78,"p90_range_pct":3.2},{"ticker":"KO","median_range_pct":1.76,"p90_range_pct":2.68},{"ticker":"SPY","median_range_pct":1.18,"p90_range_pct":2.31}],"shape":"ranking","sql":"WITH daily AS (\n    SELECT ticker,\n           toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,\n           toFloat64(max(high)) AS day_high,\n           toFloat64(min(low)) AS day_low,\n           toFloat64(argMin(open, window_start)) AS day_open\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker IN ('SPY', 'QQQ', 'AAPL', 'MSFT', 'NVDA', 'TSLA', 'KO', 'JNJ')\n      AND window_start >= toDateTime('2026-01-01 05:00:00')\n      AND window_start < toDateTime('2026-07-01 04:00:00')\n    GROUP BY ticker, session_date\n)\nSELECT ticker,\n       round(quantileDeterministic(0.5)(100 * (day_high - day_low) / day_open, cityHash64(session_date)), 2) AS median_range_pct,\n       round(quantileDeterministic(0.9)(100 * (day_high - day_low) / day_open, cityHash64(session_date)), 2) AS p90_range_pct\nFROM daily\nWHERE day_open > 0\nGROUP BY ticker\nORDER BY median_range_pct DESC","computed_at":"2026-08-01T09:08:18.024194+00:00","elapsed":0.003167395}