Insights
How to Grade a Next-Day Movers Model Honestly
Alphanume Team · July 21, 2026
Grade Next-Day Movers on absolute-movement lift, threshold hit rates, coverage, and misses. Directional accuracy answers a question the model does not target.
Alphanume's Next-Day Movers dataset publishes five liquid optionable equities selected for elevated movement potential in the following trading session. Each historical row contains the selection date, ticker, signed next-session return, and unsigned absolute_move. Newest outcomes remain null until that following session completes.
A useful scorecard compares those absolute outcomes with a control group defined before results are viewed. Counting how many selected stocks rose is directional accuracy and can make a strong magnitude model look random by design. The central question is whether selected names moved more than comparable names available at the same decision time.
Define accuracy for this target
Metric | Definition | What it reveals |
|---|---|---|
Median absolute-move lift | Selected median minus control median | Typical incremental movement |
Threshold hit rate | Share with absolute move above a fixed cutoff | Frequency of practically large sessions |
Top-tail capture | Share of realized market-wide top movers selected | Coverage of extreme movement |
Low-move miss rate | Selected names below a low-movement cutoff | Wasted shortlist capacity |
Directional balance | Share of positive signed returns | Outcome sign only, not target accuracy |
Choose movement cutoffs from an earlier development period or an economic requirement, then freeze them. A threshold selected after seeing the model distribution turns the scorecard into another tuned strategy. Report medians and tails because one explosive ticker can dominate a mean.
Retrieve only resolved selections
The endpoint is GET /v1/next-day-movers. Pull a completed window, preserve null outcomes, and exclude the unresolved newest date from outcome statistics only after it remains visible in a coverage table. Historical membership stays fixed after publication.
import os
import requests
import pandas as pd
response = requests.get(
"https://api.alphanume.com/v1/next-day-movers",
headers={"X-API-Key": os.environ["ALPHANUME_API_KEY"]},
params={"date_gte": "2025-01-01", "date_lte": "2025-12-31"},
timeout=30,
)
response.raise_for_status()
selections = pd.DataFrame(response.json()["data"])
coverage = selections.groupby("date").agg(
selected=("ticker", "size"),
outcomes=("absolute_move", "count"),
)
resolved = selections.loc[selections["absolute_move"].notna()].copy()Expect five candidates on a normal selection date and investigate every deviation. An empty or incomplete day can reflect market calendars, access windows, upstream availability, or a retrieval problem. Do not silently rescale a three-name day to look like a complete daily prediction set.
Build matched controls carefully
Controls should come from the same point-in-time liquid optionable universe and decision date, excluding selected tickers. Match on predefined properties that affect movement, such as market-cap bucket, realized-volatility bucket, and broad liquidity. Use data known by the selection clock and keep unmatched picks.
Control choice | Strength | Limitation |
|---|---|---|
Whole eligible universe | Simple market-wide benchmark | Can differ sharply in size and volatility |
Matched controls | Balances predefined observable features | Depends on point-in-time matching coverage |
Random eligible draws | Shows sampling uncertainty | Requires many seeded repetitions |
Current universe | Easy to obtain | Invalid for historical grading because it leaks survivors |
Historical Optionable Tickers is monthly and does not by itself reproduce the model's daily liquidity universe. If the exact contemporaneous universe is unavailable, label the control as a proxy and run sensitivity checks. A confident accuracy number built on a mismatched denominator is less useful than an honest range across plausible controls.
Use calibration language precisely
The public endpoint does not expose a predicted probability or model score, so formal probability calibration cannot be tested from these rows. You can report empirical hit rates at fixed absolute-move thresholds over rolling periods, but those are outcome frequencies for the selected set rather than calibration curves by predicted probability.
Coverage also requires a full realized universe. Top-tail capture asks how many of the session's largest movers appeared in the five-name list, while the public selection table alone can only show how its own picks behaved. Source the market-wide outcome denominator separately and retain delisted, halted, or ticker-changed names under an explicit policy.
Report misses instead of hiding them
- Low-move selections. Show every resolved pick below the predefined threshold.
- Unselected extremes. List major eligible movers missed by the shortlist when the control universe supports it.
- Null outcomes. Keep unresolved newest rows separate from zero movement.
- Date concentration. Cluster uncertainty by selection date because five names share one session.
- Execution gap. Underlying movement does not equal an option strategy return.
The model publishes at 3:30 PM New York time. A scorecard based on the served next-session outcome grades selection, while a trade simulation also needs entry prices, spreads, contract choice, and costs. Free access provides a trailing 20-trading-session window ending one session behind the latest observation.
Publish one complete scorecard
Follow the Next-Day Movers guide, freeze a one-year sample and one control design, then publish coverage by date, median absolute-move lift, threshold hit rates, top-tail capture, and every low-move miss. Show both date-level and ticker-level counts.
Compare the result with the published proof material without assuming the same sample or control definition. Save raw selections, control membership, outcome data, and code so another researcher can reproduce the scorecard. That is a defensible model grade even when the measured lift is small.