Alphanume

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.