Alphanume

Insights

Point-in-Time Shares Outstanding Data by Date

Alphanume Team · July 28, 2026

Point-in-time shares outstanding data records the company-level share count on each historical trading date. Use those stored counts for dilution and size research instead of projecting today's count backward.

Historical Market Cap returns shares_outstanding beside market_cap for each covered ticker and date. The share count is the capitalization denominator known on that observation date. A monthly research panel should select a real trading date for every month and retain the returned count without replacing older values with a current quote field.

Backward projection corrupts two common tests. It changes old market capitalization because the multiplier is wrong, and it erases the timing of issuance or repurchases because every date inherits one final count. A company that doubled its shares over three years will look twice as large at the beginning if today's count is multiplied by the old price.

Know what the share field measures

Field

Meaning

Important boundary

date

Trading date of the stored observation

Choose actual covered sessions

ticker

Symbol attached to that observation

Needs identifier history across ticker changes

shares_outstanding

Company-level shares outstanding

Includes shares outside free float

market_cap

Value associated with the same date and count

No standalone price field is served

Shares outstanding is not float. Restricted shares and insider holdings remain inside the company-level number. A strategy concerned with borrow, executable supply, or index float needs additional data rather than relabeling this field.

The series records what was known on each day and does not restate the past after later changes. That is the useful point-in-time property, and it also means a later source revision should not be assumed to rewrite every earlier observation.

Build a historical month-end panel

Calendar month-end is often a weekend or holiday, so define month-end as the last covered trading session in each month. One reliable method pulls the ticker's entire interval, follows pagination, and then selects the latest returned date per calendar month. That uses source dates instead of guessing a fixed day.

import os
import requests
import pandas as pd

url = "https://api.alphanume.com/v1/historical-market-cap"
headers = {"X-API-Key": os.environ["ALPHANUME_API_KEY"]}
params = {"ticker": "AAPL", "date_gte": "2022-01-01", "date_lte": "2025-12-31"}
rows = []

while True:
    response = requests.get(url, headers=headers, params=params, timeout=30)
    response.raise_for_status()
    payload = response.json()
    rows.extend(payload["data"])
    if not payload.get("has_more"):
        break
    cursor = payload["next_cursor"]
    params.update({"cursor_date": cursor["date"], "cursor_ticker": cursor["ticker"]})

history = pd.DataFrame(rows)
history["date"] = pd.to_datetime(history["date"])
month_end = history.sort_values("date").groupby(history["date"].dt.to_period("M")).tail(1)

Both cursor components are required when has_more is true. Save every raw page and assert one selected month-end row per covered month. Missing months belong in a coverage table rather than being forward-filled without a declared rule.

Measure changes without assigning cause

Derived value

Formula

Interpretation

Absolute change

current shares minus prior shares

Net count difference between observations

Percentage change

current divided by prior minus 1

Scale-free change in ownership denominator

Market-cap change

current cap divided by prior cap minus 1

Combined price and share-count effect

Mismatch flag

large share change without a linked known event

Queue for filing and corporate-action review

A higher count can follow an offering, option exercise, conversion, acquisition consideration, employee compensation, or another corporate action. A lower count can follow repurchases, cancellations, or restructuring. The dated series identifies when the denominator changed; it does not establish why.

Join dilution or other filing events as separate dated evidence. Even then, temporal overlap is corroboration rather than proof that one filing caused the full net change, especially when several transactions occurred in the same month.

As a diagnostic, market_cap / shares_outstanding yields an implied per-share value for the same stored observation. Use it only to detect obvious internal mismatches because the endpoint is not a price source. Compare actual returns with a dedicated, corporate-action-aware price history.

Avoid the quiet panel failures
  • Current-count leakage. A present share count applied backward removes historical issuance timing.
  • Ticker discontinuity. Symbols can change, merge, or be reused while the company identity persists or changes.
  • Coverage start. Each ticker can begin on a different date, and absence before that date is not zero shares.
  • Corporate actions. Market-cap data alone cannot repair split errors or security mappings in a price source.
  • Sampling cadence. Monthly endpoints can miss an intra-month increase followed by a decrease.

Free access covers a trailing 20-session delayed window, so a multi-year month-end panel requires historical access. Keep tier restrictions distinct from missing source coverage.

Audit one ticker before a universe

Pull one ticker across two years, export raw daily observations and selected month-ends, and calculate absolute and percentage share changes. Review the largest five changes against dated filings or corporate actions, report unexplained gaps, and preserve the original values alongside every derived field.

The Historical Market Cap page documents the as-of values, while the Historical Market Cap guide covers pagination and coverage checks. Expand across tickers only after the month-end rule reproduces.