Sessions, not calendar days
A 30D move is the change from the close thirty trading sessions ago to the latest price. Weekends and full-market holidays are skipped, so thirty sessions is roughly six calendar weeks, and a window that crosses Labor Day or Thanksgiving is one session shorter in calendar terms than one that does not.
The baseline is the official close of that session, adjusted for splits. The current side is the live quote during market hours and the last close after the bell. Each row shows the baseline date and price so the arithmetic can be checked by hand.
Where the closes come from
MarketNeon keeps one row per name per session. Every quote refresh updates today’s row in place, and a nightly job stores adjusted daily closes for the whole universe. The Movers pane reads only those session rows — it never has to add up intraday prints.
- “Building” on a tab means some names do not yet have enough stored sessions for that window. The count shows how many are already in.
- A row labelled “12 of 30 sessions” is measured from the oldest session that is stored. It is ranked after fully covered names and the label stays until the history reaches the full window.
- 60D and 90D use a longer pack of sessions and load on demand when you open those tabs.
Reading the extra columns
“Since” is the baseline session for the move. “vs S&P” switches every percentage to the move relative to the S&P 500 fund MarketNeon tracks (SPYM) over the same window, so a name that rose 4% while the index rose 5% reads as −1%. “Earnings in window” flags a reported print between the baseline and today, which often explains a step change inside the window.
The median pill summarises the plotted names without letting one outsized move set the tone. Movers is an informational scanner, and none of these windows is a trade instruction.