Pre-Market Drop Risk
get_premarket_drop_riskPre-market drop risk: model-estimated probability of an intraday decline in US microcaps, published each morning before the open.
Each trading morning, by ~09:25 ET and ahead of the 09:30 open, a RandomForestClassifier scores every microcap that actually traded in the pre-market session and this dataset serves the names ranked by modeled drop risk. Features are cut at a fixed 09:00 ET pre-market cutoff. prob_drop is P(intraday open->close return <= -5%); one row per (date, ticker), ordered by rank_for_date (1 = the highest-probability name that day). It measures the subset the model flags, not everything that moved overnight, and is built for researchers and traders analyzing pre-market activity in US microcaps.
Requires an Alphanume Pro API key. There is no date clamp on this route: a Pro key sees the whole history, whatever dates it asks for.
Sub-$1 names are featured, not filtered. Every row the model flags is published, each carrying a sub_dollar flag: pass min_price=1 for the legacy '$1 and up' screen, sub_dollar=1 (or max_price=1) to isolate the penny cohort, max_rank=5 for the day's top five.
History before go-live (2026-08-31) is walk-forward simulated: generated retrospectively by re-running the walk-forward loop (train on strictly-prior rows only, then score that date). There is no look-ahead in the features or the training window, but rows dated before go-live are not a real-time publication record; rows from go-live onward are published live each morning before the open.
Outcomes fill in late, never early. intraday_return_pct lands the same evening; return_lead_1d / return_lead_5d / return_lead_30d only once 1 / 5 / 20 NYSE sessions have elapsed -- NULL means not yet mature, or no exchange print existed at maturity (halts and delistings, which this microcap universe produces regularly). Three documented quirks kept for continuity with the training set: return_lead_30d is 20 trading sessions rather than 30 calendar days; return_lag_1m uses the 21-session price change over the price 252 sessions back (a legacy denominator quirk, so it is not a clean 1-month return); and the t_0..t_9 pre-market return grid is 0-filled, not NULL, when no print exists at or before that clock mark.
Borrow and locate costs are NOT modeled. Shorting a sub-$1 microcap needs a locate that may be expensive or simply unavailable, and no number served here carries that cost. sub_dollar and min_price are the levers for filtering toward borrowable names.
Pagination: results are capped at 50,000 rows per request; when the response has has_more=true, pass next_cursor's date and rank_for_date back as cursor_date and cursor_rank to fetch the next page.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Exact date, YYYY-MM-DD. Cannot be combined with the date range parameters. | |
| ticker | No | Ticker symbol filter, e.g. 'AAPL'. Case-insensitive. | |
| date_gt | No | Start of date range, exclusive (YYYY-MM-DD). | |
| date_lt | No | End of date range, exclusive (YYYY-MM-DD). | |
| date_gte | No | Start of date range, inclusive (YYYY-MM-DD). | |
| date_lte | No | End of date range, inclusive (YYYY-MM-DD). | |
| max_rank | No | Only rows with rank_for_date <= this value (>= 1). max_rank=5 gives the top five names per day. | |
| max_rows | No | Maximum data rows to return to the client (applied after the API responds). Default 500. Use 0 for no cap. Prefer narrowing with date/ticker filters over raising this. | |
| min_prob | No | Only rows with prob_drop >= this value, range [0, 1]. 0.7 keeps the model's higher-conviction names. | |
| max_price | No | Only rows with px_at_trading <= this value (USD, >= 0). max_price=1 isolates the sub-$1 cohort. Must be >= min_price. | |
| min_price | No | Only rows with px_at_trading >= this value (USD, >= 0). min_price=1 reproduces the legacy '$1 and up' screen. | |
| sub_dollar | No | '1' = only names priced under $1 at the 09:00 ET cutoff, '0' = only names at $1 or above. Convenience equivalent of min_price/max_price around $1. | |
| cursor_date | No | Pagination: the 'date' value from the previous response's next_cursor. Must be sent together with cursor_rank. | |
| cursor_rank | No | Pagination: the 'rank_for_date' value from the previous response's next_cursor. Must be sent together with cursor_date. |