Pre-Market Drop Risk
See which actively trading US microcaps the model flags for a drop of at least 5% from the open to the close. Each morning's candidates are ranked by probability using only price and return information available by the 09:00 ET cutoff.
Rank the morning's downside setups.
rank_for_date starts at 1, while prob_drop gives the model's probability of an open-to-close return at or below -5%.
Separate penny names from the rest.
px_at_trading and sub_dollar let you isolate or remove the sub-$1 cohort without changing what the model published.
Measure what happened next.
intraday_return_pct and the 1, 5, and 20-session forward returns fill only after each outcome can be known.
Which microcaps look most likely to sell off after today's open? Rank the candidates, explain what happened before the bell, and separate the names that may be too difficult to borrow.
Your agent translates this into today's probability ranking, the pre-market path, price cohort, market cap, and the borrow caveat the dataset cannot resolve.
A ranked downside screen before the opening auction.
Each trading morning, a Random Forest model scores US microcaps that have already traded actively in the pre-market session. The target is specific: whether the stock's unadjusted open-to-close return will be -5% or worse. Rows are the names the classifier flags, ordered from the highest modeled probability down.
The model sees the cumulative overnight return path through 09:00 ET, recent price returns, the last pre-market price, and a microcap universe fixed before scoring. Sub-$1 names are included rather than silently removed, so a researcher can study that cohort or filter it out with min_price=1.
Each row includes:
- The date, ticker, daily rank, and modeled probability of a decline of at least 5%.
- The last unadjusted pre-market price at or before 09:00 ET and its sub-dollar flag.
- A ten-mark cumulative return path from 04:30 through 09:00 ET.
- Lagged return features across recent and longer horizons.
- Point-in-time market cap attached to the signal date.
- Same-day and forward outcomes that remain null until their horizons mature.
The model predicts an open-to-close decline, not whether a short can be located or traded profitably. Borrow and locate costs are absent, especially where sub_dollar equals 1.
Study the names already flashing stress before 09:30.
The first use is triage. A short seller can start with the highest-ranked names, then add the information this model does not have: news, filings, live borrow, locate cost, spreads, and available size. A long-only process can use the same list as an avoid or review queue before the open.
The stored history supports tests of probability cuts, rank cuts, and sub-dollar exclusions. Never read a null outcome as a flat return. Null means the horizon has not matured or the required exchange print did not exist.
- Pull max_rank=5 for a compact daily review queue
- Compare hit rate and realized return across probability bands
- Run separate tests for sub-$1 names and names priced at $1 or above
- Condition the signal on market cap and the shape of the pre-market return path
- Measure outcome decay at the close, one session, five sessions, and twenty sessions
Built from pre-open prints, point-in-time size, and prior returns.
Pre-market minute bars and daily prices come from Polygon. Point-in-time market cap comes from Alphanume's historical market-cap table. A ticker must be in the microcap universe and have at least 20 pre-market minute bars at or before 09:00 ET before it can be scored.
Each row is scored from information available by the 09:00 ET cutoff. Same-day and forward outcomes are attached later, after each horizon becomes observable.
The probability, path, and outcomes behind each rank.
The headline fields below are a subset. Every field, with exact types and semantics, is documented in the API reference.
| Field | Type | What it tells you |
|---|---|---|
| rank_for_date | integer | Daily rank, with 1 assigned to the highest prob_drop |
| prob_drop | number | Modeled probability that the open-to-close return is -5% or worse |
| px_at_trading | number | Last unadjusted pre-market price at or before 09:00 ET |
| sub_dollar | integer | 1 when px_at_trading is below $1 |
| premarket_return_at_cutoff | number or null | Cumulative return from the prior adjusted close through the last print at or before 09:00 ET |
| t_0...t_9 | number or null | Cumulative pre-market returns at 30-minute clock marks from 04:30 through 09:00 ET |
| market_cap | number or null | Point-in-time market capitalization for the signal date |
| intraday_return_pct | number or null | Actual unadjusted open-to-close return, filled after the session |
| return_lead_1d | number or null | Adjusted return after one trading session, null until mature |
| return_lead_5d | number or null | Adjusted return after five trading sessions, null until mature |
| return_lead_30d | number or null | Adjusted return after 20 trading sessions, null until mature |
One call returns the day's highest-risk microcaps.
One key works across the REST API, the hosted MCP server, and this dashboard. Every response is JSON with a { count, data } envelope.
import requests
url = "https://api.alphanume.com/v1/premarket-drop-risk"
params = {
"date": "2026-08-28",
"min_prob": 0.70,
"max_rank": 5,
"api_key": "alp_abc123"
}
r = requests.get(url, params=params)
print(r.json())curl "https://api.alphanume.com/v1/premarket-drop-risk?date=2026-08-28&min_prob=0.70&max_rank=5&api_key=alp_abc123"{
"count": 1,
"has_more": false,
"next_cursor": null,
"data": [
{
"date": "2026-08-28",
"ticker": "XYZ",
"rank_for_date": 1,
"prob_drop": 0.781432,
"px_at_trading": 0.83,
"sub_dollar": 1,
"premarket_return_at_cutoff": 18.57,
"t_0": 0.0,
"t_1": 0.0,
"t_2": 4.29,
"t_3": 7.14,
"t_4": 9.43,
"t_5": 11.86,
"t_6": 13.57,
"t_7": 16.14,
"t_8": 17.43,
"t_9": 18.57,
"return_lag_1y": -63.21,
"return_lag_1m": -1.84,
"return_lag_5d": 22.06,
"market_cap": 17640000.0,
"intraday_return_pct": -8.43,
"return_lead_1d": -6.18,
"return_lead_5d": -14.72,
"return_lead_30d": null
}
]
}What this data does not claim.
- Borrow availability, locate price, financing cost, slippage, and available size are not modeled. That omission is most important in the sub-$1 cohort.
- The t_0 through t_9 grid is cumulative and zero-filled when no earlier print exists. A zero can therefore mean no print rather than a genuinely flat pre-market return.
Asked by researchers, answered plainly.
What does prob_drop mean?
It is the model's estimated probability that the stock's unadjusted return from the regular-session open to the regular-session close will be -5% or worse. It is not the probability of any negative return, and it is not a guarantee that the threshold will be reached.
Why are some outcome fields null?
An outcome is written only after its horizon has elapsed. A recent row cannot have a five-session or twenty-session return yet. A mature field can also remain null when a halt or delisting leaves no exchange print at the required horizon.
Are penny stocks included in the model output?
Yes. Sub-$1 names are published with sub_dollar=1 rather than removed. Use min_price=1 or sub_dollar=0 to reproduce a $1-and-up screen, or sub_dollar=1 to study the penny cohort directly.
How should a short seller use this dataset?
Use it to prioritize research before the open, then join live borrow, locate cost, news, liquidity, and position limits from other systems. The probability rank can narrow the list, but it cannot tell you whether shares are available or whether the expected move exceeds execution costs.
Available with Pro.
This dataset is Pro-only. Free and Trial keys return 403 PRO_SUBSCRIPTION_REQUIRED on every request, with no delayed or historical preview. Pro includes full history, current updates, REST, MCP, and dashboard access.