Obscura

FINRA Short Interest

Consolidated short interest per security, reported to FINRA twice a month.

finra_short_interest — the dataset name to pass to the Obscura API.

Category Regulatory Columns 10 Refresh Every weekday Entity key symbol Point-in-time available_date

What one row means

FINRA consolidated short interest — the official twice-monthly settlement figure (shares short, days-to-cover), distinct from the daily Reg SHO short *volume* in `finra_short_volume`. One row per symbol per settlement date. Keyless FINRA Query API.

One row per (symbol, settlement_date).

Point-in-time availability

Every Obscura dataset carries available_date: the calendar day the publisher made the row available, day-of, with no session rounding. It is the one column a backtest filters on, and it means the same thing on every dataset in the catalog.

For finra_short_interest: published: available_date = settlement_date + 8 business days, FINRA's official twice-monthly dissemination schedule (the day FINRA publishes the consolidated short-interest figures to the public).

Refresh cadence

Obscura refreshes finra_short_interest every weekday — the most frequent scheduled job that re-collects or re-exports it. This is Obscura's own pipeline cadence, not the upstream publisher's release schedule; when a row became public is recorded per row in available_date.

Schema — 10 columns

The full public column list for finra_short_interest, with the meaning of every field. The same schema is served unauthenticated at https://api.obscura.trade/v1/catalog/finra_short_interest.

ColumnTypeDescription
symboltext · not nullOTC/exchange ticker symbol of the security (symbolCode from the FINRA Query API response). Primary-key component; joins to other equity datasets by ticker (no CUSIP/CIK is provided by this feed).
settlement_datedate · not nullFINRA settlement date (the report's as-of date, one of the twice-monthly cutoffs: the 15th or the last business day of the month), parsed from settlementDate. Primary-key component alongside symbol; the period/event date this row measures.
available_datedatePUBLIC-availability date = settlement_date + 8 business days, FINRA's official dissemination schedule; materialized by the collector via `calendar::add_business_days`. The point-in-time column to filter/join on — NEVER the settlement date itself.
issue_nametextIssuer/security name as registered with FINRA for this symbol (issueName), e.g. 'Alcoa Corporation'. Free text, not normalized against EDGAR company names; may be truncated or abbreviated by FINRA.
current_short_qtybigintTotal shares held in short positions as of this settlement date (currentShortPositionQuantity) — the headline consolidated short-interest figure for the symbol, aggregated across all reporting FINRA member firms.
previous_short_qtybigintTotal shares short as of the prior settlement date (previousShortPositionQuantity, i.e. ~2 weeks earlier), carried on the same row so change can be computed without a self-join.
avg_daily_volumebigintAverage daily trading volume over the settlement period used to compute days-to-cover (averageDailyVolumeQuantity), in shares/day.
days_to_coverdouble precisionDays-to-cover = short position / average daily volume (daysToCoverQuantity as reported by FINRA, not recomputed locally) — the number of trading days it would take to close out all short positions at average volume.
change_pctdouble precisionPercent change in short interest from the previous settlement date to this one (changePercent = (current_short_qty - previous_short_qty) / previous_short_qty * 100, as reported by FINRA); can be negative.
market_classtextFINRA market-tier code for where the security trades (marketClassCode), e.g. NNM (Nasdaq National Market), NYSE, OTC, SC (Nasdaq Small Cap) — distinguishes which OTC/exchange rulebook governs the reporting firms for this symbol.

Access finra_short_interest

Two delivery paths, one identifier. Both require an Obscura account and an active subscription; the catalog entry and the schema above are public.

import obscura

client = obscura.Client("obs_live_…")

df = client.query(
    dataset="finra_short_interest",
    symbols=["NVDA", "AAPL"],
    start="2024-01-01",
)

Create a free account Browse all 95 datasets

Frequently asked questions

What is in the finra_short_interest dataset?

Consolidated short interest per security, reported to FINRA twice a month. FINRA consolidated short interest — the official twice-monthly settlement figure (shares short, days-to-cover), distinct from the daily Reg SHO short *volume* in `finra_short_volume`. One row per symbol per settlement date. Keyless FINRA Query API.

How do I avoid look-ahead bias with finra_short_interest?

Filter on finra_short_interest.available_date, the day the publisher made the row public. For this dataset that date is derived as follows — published: available_date = settlement_date + 8 business days, FINRA's official twice-monthly dissemination schedule (the day FINRA publishes the consolidated short-interest figures to the public). A query of the form WHERE available_date <= '<as-of date>' never sees a row before it existed.

In what formats can I get finra_short_interest?

As a Parquet bulk export (POST https://api.obscura.trade/v1/download) or as JSON from the typed query API (POST https://api.obscura.trade/v1/query), both with dataset="finra_short_interest". The column schema is public at https://api.obscura.trade/v1/catalog/finra_short_interest.

Can I filter finra_short_interest by company or symbol?

Yes. finra_short_interest carries symbol, the column the API's symbols filter resolves against.

How often is finra_short_interest updated?

Obscura refreshes finra_short_interest on a every weekday schedule — that is the most frequent scheduled job that re-collects or re-exports the table. It is Obscura's own pipeline cadence, not the upstream publisher's release schedule; when the publisher makes a row available is described by the availability rule above, and is recorded per row in available_date.

Related datasets

CFTC Commitments of TradersThe CFTC's weekly Commitments of Traders report: how commercial, non-commercial and small traders are positioned in each… ECHO Enforcement CasesEnvironmental enforcement actions and penalties from the EPA's ECHO database. ECHO FacilitiesEPA-regulated facilities and their compliance history, from ECHO. EDGAR 13F FilingsMetadata for every 13F report, the quarterly filing where large institutional managers list their U.S. equity holdings. EDGAR 13F HoldingsThe line-item positions inside each 13F: which manager held which security, and how much, each quarter. EDGAR 8-K ItemsThe item numbers reported on each 8-K (5.02 officer changes, 2.01 acquisitions, 1.01 material agreements, and so on), so… EDGAR Dilution MetricsShare-issuance headroom and overhang metrics built from companies' XBRL filings: authorized versus outstanding shares, a… EDGAR Filing TextSignals mined from the text of filings, such as mentions of distress, litigation, going-concern doubt and restructuring.