{"slug":"non-marginable-securities-explained","qid":"price_ladder","label":"Symbol count and average daily range, by price bucket","post_title":"Non-Marginable Securities: Reg T vs House","post_url":"/blog/non-marginable-securities-explained#q-price_ladder","columns":["price_bucket","listing_count","avg_daily_range_pct"],"rows":[{"price_bucket":"Under $1","listing_count":695,"avg_daily_range_pct":14.14},{"price_bucket":"$1 to $3","listing_count":813,"avg_daily_range_pct":9.22},{"price_bucket":"$3 to $5","listing_count":477,"avg_daily_range_pct":8.37},{"price_bucket":"$5 to $10","listing_count":910,"avg_daily_range_pct":6.03},{"price_bucket":"$10 to $50","listing_count":6561,"avg_daily_range_pct":2.19},{"price_bucket":"$50 and up","listing_count":2895,"avg_daily_range_pct":2.36}],"shape":"ranking","sql":"SELECT\n    multiIf(last_close <  1, 'Under $1',\n            last_close <  3, '$1 to $3',\n            last_close <  5, '$3 to $5',\n            last_close < 10, '$5 to $10',\n            last_close < 50, '$10 to $50',\n                             '$50 and up')  AS price_bucket,\n    count()                                 AS listing_count,\n    round(avg(avg_range_pct), 2)            AS avg_daily_range_pct\nFROM\n(\n    SELECT\n        ticker,\n        argMax(close, date)                                 AS last_close,\n        avg(100 * toFloat64(high - low) / toFloat64(close)) AS avg_range_pct\n    FROM global_markets.stocks_daily_aggs\n    WHERE date >= today() - 120\n      AND volume > 0\n      AND close > 0\n    GROUP BY ticker\n    HAVING count() >= 40\n)\nGROUP BY price_bucket\nORDER BY min(last_close)","computed_at":"2026-08-22T04:17:32.043626+00:00","elapsed":0.325463749}