Insights
What Goes Into a Next-Day Stock-Movement Model?
Alphanume Team · July 26, 2026
The documented Next-Day Movers model uses volatility level, volatility structure, and liquidity-related inputs to rank likely movement magnitude, while the public API exposes selections and realized outcomes rather than proprietary feature rows.
Alphanume's Next-Day Movers dataset publishes five liquid optionable equities selected for elevated absolute movement potential in the following trading session. The model targets magnitude. It does not forecast whether a stock will rise or fall, and the public response contains only date, ticker, return, and absolute_move.
The documented input families include implied volatility, realized volatility, their relative structure, cross-sectional context, and a liquidity reference. Those descriptions explain the mechanism without exposing coefficients, daily feature vectors, training samples, or a recipe for reconstructing the proprietary ranking.
Separate inputs from public outputs
Layer | Documented information | Public row |
|---|---|---|
Volatility level | Implied and recent realized volatility | Not exposed |
Volatility structure | Relative IV and realized-volatility relationship | Not exposed |
Cross-section | Ranks within the eligible daily universe | Not exposed |
Liquidity | Notional-volume context | Not exposed |
Selection | Top-ranked movement candidates | date and ticker |
Outcome | Following-session movement | return and absolute_move |
This boundary matters when explaining results. A published ticker is evidence that the full model ranked it into the daily shortlist. It is not evidence that one named feature was high, and it does not reveal which input contributed most on that date.
Understand the economic intuition
Implied volatility contains the options market's price of uncertainty, while recent realized volatility describes how the underlying has actually moved. Their level and relationship can help distinguish a quietly priced name from one already carrying a large volatility premium. Cross-sectional ranks make those measurements comparable across a changing equity universe.
Liquidity context helps keep the model focused on names where market observations are meaningful. None of these inputs turns magnitude into direction. A stock with elevated uncertainty can gap higher, gap lower, or realize less movement than expected.
Question | Suitable measurement | Invalid leap |
|---|---|---|
Did the name move a lot | absolute_move | Calling the sign in advance |
Which way did it move | return | Treating sign as the model target |
Was the selection unusual | Compare with a predefined universe benchmark | Attributing success to one hidden coefficient |
Was it tradeable | Independent spreads, depth, and costs | Assuming dataset membership guarantees execution |
Build a naive volatility benchmark
A mechanism test does not need to reverse engineer the model. Build one simple comparator from the IV/HV Premium dataset, such as selecting the five highest settled IV/HV ratios in the same eligible universe, and ask whether the published shortlist achieves higher next-session absolute movement. The field reference defines the ratio rank and settlement flag.
benchmark_spec = {
"selection_date": "completed trading date",
"eligible_universe": "same documented liquid optionable universe",
"score": "settled iv_hv_ratio_ranked",
"count": 5,
"primary_outcome": "next-session absolute return",
"comparison": "published movers minus naive top-five benchmark",
"cluster_unit": "selection date",
}
# Lock the specification before loading outcome returns.
assert benchmark_spec["count"] == 5The benchmark should use the settled value only under a next-session decision rule because the final IV/HV row settles after the close. If the intended decision occurs at 3:30 PM when Movers publishes, the benchmark needs archived provisional inputs from that time instead of the final same-date row.
Grade the public output honestly
New selections publish at 3:30 PM New York time. Their outcome fields remain null until the next session closes, then become fixed. Freeze the selection list before the outcome fill and calculate hit rates against a threshold chosen in advance, along with median absolute movement and the full distribution.
Use selection date as the clustering unit because the five names share the same market session. Compare with random or matched eligible names under the same outcome definition, and preserve missing or halted securities in an exclusions table rather than quietly replacing them.
State what remains unknown
- Proprietary detail. Coefficients, daily feature rows, and the complete training process are not served.
- Direction. The model ranks absolute movement rather than signed return.
- Outcome timing. Newest return fields are null until the following session finishes.
- Execution. The endpoint supplies no option quotes, fills, borrow, or costs.
- Benchmark choice. A weak comparator can exaggerate apparent incremental value.
Free access supplies a trailing 20-trading-session window ending one session behind the latest observation. The proof page reports published evidence for the product and does not reveal or validate every internal modeling decision.
Run one benchmark before theorizing
Read the Next-Day Movers guide, retrieve a completed sample, and save daily selections before joining outcomes. Build one naive volatility-only benchmark, match its daily count and eligible universe, and publish date-level coverage plus absolute-move differences.
Then inspect where the two lists disagree. Describe those rows using public volatility and liquidity data without claiming they reproduce private features. A holdout period can test whether the difference persists. That is a concrete way to study model inputs while respecting the boundary between documented mechanism and proprietary internals.