Skip to main content
Glama

Alphanume Datasets

Reverse-Split Calendar

get_reverse_splits
Read-onlyIdempotent

Reverse-split calendar: every US reverse stock split, executed and UPCOMING, with pre-split price, market-cap tier, and dilution/shelf cross-links.

One row per (ticker, execution date), sourced daily from Polygon's reference splits feed. Because the feed carries future execution dates, upcoming=true is a genuine forward calendar (~40 scheduled splits at any moment); ~70-100 reverse splits execute per month, almost all sub-$1 microcaps curing a listing deficiency. first_seen_at records when the pull first observed the row (an announcement proxy; for rows backfilled before launch it is set to the execution date itself and is synthetic).

Requires an Alphanume Pro API key. There is no date clamp on this route: a Pro key sees full history and the forward calendar.

Research context, stated plainly: in the Alphanume anomaly sweep (2022-2026, matched-control event study), reverse-split names underperform controls by roughly -6%/-12%/-18%/-40% over the 21/63/126/252 sessions after execution (~60% of events negative; Kim-Klein-Rosenfeld 2008 found the same). That makes this a screening/avoidance signal -- e.g. exclude fresh reverse-splitters from long screens, or use the calendar to anticipate the event. It is NOT a tradeable short card: borrow on these names is scarce and expensive and is not modeled anywhere, the calendar-time short portfolio was statistically inconclusive net of costs, and the long-horizon numbers are survivor-conditioned (only ~47% of events still have a full price history 252 sessions out). No CAR columns are served; the feed is the product.

Enrichment semantics. sub_dollar_flag marks names whose unadjusted close the session before the split was under $1 (the raw price is an internal input and is not served). market_cap_before / market_cap_tier are populated from 2024-01-02 (NULL earlier -- the cap history starts there). ratio = split_to/split_from (<1 = reverse; a 1-for-10 is 0.1); is_deficiency_candidate flags ratio <= 0.5, separating real consolidations from ADR-fee-style near-1.0 adjustments, which are served raw. dilution_link_flag/shelf_link_flag mark an S-1 or S-3/F-3 filing by the same ticker in the trailing 365 days (dilution links meaningful from 2026, shelf links from 2025 -- the linked datasets' own history floors). Upcoming rows carry NULL sub_dollar_flag until execution; OTC names outside the coverage universe may keep it NULL along with cap fields. Open-end mutual fund share adjustments are excluded at ingest; ETFs and closed-end funds are included.

Pagination: results are capped at 50,000 rows per request; when the response has has_more=true, pass next_cursor's cursor_date and cursor_ticker back to fetch the next page.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNoExact date, YYYY-MM-DD. Cannot be combined with the date range parameters.
tickerNoTicker symbol filter, e.g. 'AAPL'. Case-insensitive.
date_gtNoStart of date range, exclusive (YYYY-MM-DD).
date_ltNoEnd of date range, exclusive (YYYY-MM-DD).
cap_tierNoMarket-cap tier as of the session before the split (from the Alphanume cap history; populated from 2024-01-02).
date_gteNoStart of date range, inclusive (YYYY-MM-DD).
date_lteNoEnd of date range, inclusive (YYYY-MM-DD).
max_rowsNoMaximum 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.
upcomingNo'true' = only splits with an execution date today or later (the forward calendar); 'false' = only already-executed splits. Omit for both.
ratio_gteNoOnly rows with ratio >= this value, range (0, 1]. ratio = split_to/split_from, so 0.1 is a 1-for-10.
ratio_lteNoOnly rows with ratio <= this value, range (0, 1]. ratio_lte=0.1 keeps 1-for-10 and larger consolidations.
sub_dollarNo'true' = only names whose unadjusted close before the split was under $1 (the classic deficiency-cure cohort); 'false' = $1 and above.
cursor_dateNoPagination: the 'cursor_date' value from the previous response's next_cursor. Must be sent together with cursor_ticker.
cursor_tickerNoPagination: the 'cursor_ticker' value from the previous response's next_cursor. Must be sent together with cursor_date.
updated_sinceNoOnly rows updated at or after this date/datetime (YYYY-MM-DD or YYYY-MM-DD HH:MM:SS) -- for incremental syncs.
deficiency_onlyNo'true' = only listing-deficiency-sized splits (ratio <= 0.5, i.e. 1-for-2 or larger). Filters out ADR-fee-style near-1.0 adjustments.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes far beyond the annotations, disclosing data provenance, daily ingestion from Polygon, the forward-calendar nature of upcoming rows, synthetic first_seen_at values for backfilled data, missing cap history before 2024-01-02, NULL semantics, exclusions at ingest, and pagination behavior. This level of behavioral detail is exceptional.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured with labeled sections and a front-loaded summary. The research-context paragraph is substantial, yet it earns its place by framing appropriate use and caveats. It is not terse, but it is dense with relevant information and organized clearly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the full burden of explaining the data model, and it does so thoroughly: row granularity, key output fields, NULL behavior, auth requirements, pagination mechanics, and coverage caveats are all disclosed. An agent can confidently decide whether and how to call this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: it explains ratio as split_to/split_from with a 1-for-10 example, clarifies that upcoming=true is a genuine forward calendar, defines sub_dollar_flag semantics, and describes cap-tier history limitations. It enriches parameter understanding without exhaustively annotating every parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise definition: 'Reverse-split calendar: every US reverse stock split, executed and UPCOMING...' and specifies the row granularity and data source. This clearly identifies the resource and scope, and the mention of dilution/shelf cross-links helps distinguish it from related sibling datasets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit practical guidance: use it as a screening/avoidance signal, exclude fresh reverse-splitters from long screens, or anticipate events via the calendar. It also clearly warns against using it as a short card. However, it does not explicitly name or route to sibling tools like get_dilution_filings or get_shelf_registrations, even though those are related.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.2/5.0
Disambiguation4/5

Each tool maps to a distinct dataset, and the descriptions are detailed enough to resolve most ambiguity. A few adjacent pairs (S-1 dilution vs. shelf registrations, IV-HV premium vs. IV rank, FDA votes vs. FDA adverse events) share thematic surface area and could be confused by name alone.

Naming Consistency4/5

The overwhelming majority of tools follow a clean get_<noun_phrase> snake_case pattern. The two exceptions, check_api_status and list_market_cap_tickers, are semantically appropriate utility/companion tools but break the otherwise uniform verb prefix.

Tool Count3/5

At 27 tools, the surface is heavy and spans many unrelated financial domains, making selection and prompt context more expensive. Each tool does earn its place as a distinct dataset, but the server would benefit from some consolidation or a higher-level catalog tool.

Completeness4/5

As a read-only datasets API, the surface is broadly complete: status checking, pagination, and one coverage-map companion exist where needed. Minor gaps include the absence of a global dataset catalog/coverage listing and the lack of companion list tools for most other datasets.

Resources