RESEARCH

Does a faster stock screener catch more movers? We tested 501 sessions

Study details

Measured
2024-08-02 – 2026-08-06, 501 trading sessions; trade-level cross-check on 60 sessions
Instruments
US equities, whole market; 75,957 top-mover events
Method
replay each session on a fixed grid, rebuild the watchlist every N seconds, and measure how often a mover was already on the list five minutes before its move
Result
88.4% – 90.6% across the entire range from 5 seconds to 300 seconds, at a watchlist size of 500
Contents
If you are building a scanner, the first instinct is to poll faster. A five-second refresh feels obviously better than a one-minute refresh, and the cost is real — more requests, more rate-limit pressure, more moving parts. We measured whether it actually catches more. It does not, at least not in a way that would justify the cost.

1. What we measured

A "catch" here means: the symbol was already on the watchlist five minutes before its move. Five minutes is the lead time a strategy needs to have any chance of acting. The watchlist is rebuilt every N seconds from the market at that moment — turnover leaders unioned with percentage-change leaders, held as a 30-minute rolling union. K is the size of the list. We ran it in both directions from the 60-second baseline, because a backtest built on minute bars already assumes 60-second refresh: faster on trade-level data, slower on minute bars.

2. Faster than 60 seconds (trade-level data, 60 sessions)

RefreshK=300K=500K=750
5s78.3%90.6%94.6%
10s78.0%90.4%94.6%
15s77.9%90.3%94.5%
30s77.2%89.9%94.2%
60s76.4%89.4%93.8%
Going from 60 seconds to 5 seconds bought 1.2 percentage points at K=500. Twelve times the polling rate for just over one point.

3. Slower than 60 seconds (minute bars, 501 sessions)

RefreshK=300K=500K=750
60s78.8%90.6%94.0%
120s77.8%90.0%93.6%
180s76.9%89.4%93.2%
300s75.6%88.4%92.6%
This is the direction that would have worried us — a broker that only lets you sweep the market every few minutes. Stretching the refresh from 60 to 300 seconds cost 2.2 points. Across the whole span, 5 seconds to 300 seconds, the catch rate stayed between 88.4% and 90.6%.

4. Why the interval matters so little

The rolling 30-minute union absorbs the delay. A symbol that enters the leaderboard is still in the union several refreshes later, so missing one snapshot rarely means missing the symbol. What decides the catch rate is how many names you are willing to watch, not how often you look. That shows up clearly in the size dimension. At the same 5-minute lead time:
Watchlist sizeCatch rate
20862.5%
28072.4%
35880.4%
56190.6%
Widening the list moved the number by 28 points. Changing the refresh interval by a factor of 60 moved it by 2.

5. Lead time is the other real variable

Lead0 min5 min10 min
Catch rate97.9%90.6%86.9%
Almost everything is on the list by the time the move happens; the question is how much warning you get. Across four half-year sub-periods the 5-minute figure stayed between 89.5% and 91.7%, so this is not an artefact of one regime. Conclusion If your scanner is missing movers, polling faster is unlikely to be the fix. Between 5 seconds and 5 minutes the difference was about two percentage points. How many symbols you watch, and how much lead time you demand, moved the result an order of magnitude more.

Limitations

  • This measures watchlist coverage, not profitability. Being on the list before a move is a precondition for trading it, not evidence that trading it makes money.
  • All figures are at a specific watchlist construction: turnover top-250 unioned with change top-250, held as a 30-minute rolling union. A different scoring rule will produce different numbers.
  • K=500 is the column we quote. Smaller lists degrade quickly — at K=300 the same runs sit around 76–79%.
  • The 501-session set uses minute bars. The trade-level cross-check covers 60 sessions, and agreed with the minute-bar conclusion; it does not independently cover the full period.
  • US equities only. We have not repeated this on crypto, where the session never closes and the leaderboard behaves differently.
  • The results assume you can sweep the whole market. If your data source only lets you poll a fixed subset, coverage falls sharply, and that constraint dominates everything measured here.

Related reading

← All research

Originally published by TraderWe on August 11, 2026. You may quote and link to this page. Republishing the full text without a link back to the original is not permitted.

6 replies

L
LurkerLee· Aug 2026 ago
So the list size is doing the work, not the refresh rate? Curious what happens if you shrink the list a lot.
DataDrivenDee· Aug 2026 ago
I like this, but the catch definition is doing heavy lifting - being on the list five minutes early isn't the same as being actionable. How would we test the version where you also need the name to still be there when the entry triggers?
R
RiskFirstRita· Aug 2026 ago
The part I'll actually use: if polling faster buys me nothing, that's one less failure point in my pre-market checklist. Fewer requests means fewer silent errors, fewer half-built watchlists, and fewer moments where I'm not sure whether my scanner is stale or the market is just quiet. I'd rather spend that reliability budget on my exit rules than on refresh frequency.
I
IndicatorSkeptic· Aug 2026 ago
Shocking, the thing everyone obsesses over turns out not to matter, while nobody asks whether being 'on a list' means anything at all. Still, respect for actually testing it instead of arguing about it on a chart screenshot.
Q
QuietVol· Aug 2026 ago· edited Aug 2026 ago
The spread across refresh rates (roughly 1.2pp) is smaller than the spread across K at any fixed rate (about 14pp from 300 to 750), so the list size is doing nearly all the work here. That reads like the movers are mostly already resident in the turnover/percent-change tail well before the five-minute mark, and refresh speed only helps for the handful that enter cold. Did you look at the distribution of the misses. Are the ~10% at K=500 the same kind of name each time (thin float, gap-in-from-nowhere), or are they scattered?
TraderWeTraderWe Team· Aug 2026 ago
That is the read, yes. Across the whole refresh range the catch rate moves about two points. Moving the list size moves it twelve. Shrinking is the expensive direction: K=300 sits between 75.6% and 78.8% across every refresh we tried, against 88.4% to 90.6% at K=500. Going the other way to 750 buys another four to five points, and the cost of that is following half again as many symbols. We did not test below 300, so we cannot tell you the shape of the curve on a really short list.
Sign in to reply →