Pre-market drop risk: model-estimated probability of an intraday decline in US microcaps, published each morning before

Pre-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.

get/v1/premarket-drop-risk

Request

  • Base URL: https://api.alphanume.com
  • URL: https://api.alphanume.com/v1/premarket-drop-risk
  • Auth: one of:
    • API key in header X-API-Key
    • HTTP bearer

Query parameters

tickerstring

Ticker symbol filter, e.g. 'AAPL'. Case-insensitive.

datestring

Exact date, YYYY-MM-DD. Cannot be combined with the date range parameters.

date_gtestring

Start of date range, inclusive (YYYY-MM-DD).

date_ltestring

End of date range, inclusive (YYYY-MM-DD).

date_gtstring

Start of date range, exclusive (YYYY-MM-DD).

date_ltstring

End of date range, exclusive (YYYY-MM-DD).

min_probnumber

Only rows with prob_drop >= this value, range [0, 1]. 0.7 keeps the model's higher-conviction names.

min_pricenumber

Only rows with px_at_trading >= this value (USD, >= 0). min_price=1 reproduces the legacy '$1 and up' screen.

max_pricenumber

Only rows with px_at_trading <= this value (USD, >= 0). max_price=1 isolates the sub-$1 cohort. Must be >= min_price.

sub_dollarstring

'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.

max_rankinteger

Only rows with rank_for_date <= this value (>= 1). max_rank=5 gives the top five names per day.

cursor_datestring

Pagination: the 'date' value from the previous response's next_cursor. Must be sent together with cursor_rank.

cursor_rankinteger

Pagination: the 'rank_for_date' value from the previous response's next_cursor. Must be sent together with cursor_date.

Response

Matching rows.

countinteger required
dataobject[] required
has_moreboolean required
next_cursorobject nullable required

Keyset cursor: pass its fields back as the cursor_* query parameters to fetch the next page.

Changes

No recorded changes to this operation across all 1 revision of this API.