# Sample construction filters (CLAUDE.md §6). All liquidity screens use LAGGED data only. baseline: session: regular_hours_only # 09:30-16:00 ET, calendar-truncated half days min_price_lagged: 5.0 # USD, prior-month median close min_bars_per_day_lagged: 100 # prior-month median RTH bars/day min_history_days: 60 exclude_suspected_split_window_days: 1 # +/- days around detected split jumps duplicate_rule: aggregate # volume-sum, max(high), min(low), first open, last close universes: all_instruments: {} liquid_top500: { rank_by: lagged_dollar_volume, top_n: 500 } liquid_top1000: { rank_by: lagged_dollar_volume, top_n: 1000 } liquid_top3000: { rank_by: lagged_dollar_volume, top_n: 3000 } periods: pre_decimalization: ["1992-01", "2001-01"] post_decimal_pre_regnms: ["2001-02", "2007-02"] regnms_to_2019: ["2007-03", "2019-12"] modern: ["2020-01", "2026-03"] # NOTE: period cuts are provisional; main analyses use flexible year effects (CLAUDE.md §13)