Strasmore Research
Learn Matt ConnorBy Matt Connor · Updated 2026-08-22 · data as of August 22, 2026 · refreshed weekly

What Is FINRA Short Interest? Days to Cover

FINRA short interest is shares sold short and not yet bought back. See how it's reported twice monthly, settlement dates, days to cover and percent of float.

Short interest is the total number of a stock's shares sold short and not yet bought back, the running balance of open short positions, reported to FINRA twice a month. It is the standard gauge of how heavily traders are positioned against a stock, read through two ratios: days to cover and short percent of float. Every figure here comes from that regulatory dataset, the query behind each number one click away.

What Is Short Interest in Stocks?

A short sale inverts the usual order of a trade: a short seller borrows shares, sells them at today's price, and aims to buy them back cheaper. Buying them back, "covering", returns the borrowed stock to its lender. Until that happens the position stays open, and every open short position at every brokerage counts toward the stock's short interest.

Short interest is a level, an outstanding balance at a point in time, like the balance on a loan. It rises when new shorts open, falls when shorts cover, and says nothing about any single day's trading. That makes it the opposite of daily short volume, a flow of marked-short trades that is mostly routine market-maker plumbing; the two are confused constantly, and we measure both on one ticker in short interest vs. short volume. Two normalizations make the raw share count comparable across stocks, short percent of float and days to cover, both measured on real tickers below.

One risk note belongs in any definition: a short loses money when the price rises, and a price has no ceiling, so the loss on an uncovered short is unlimited, unlike a long position, where the most you can lose is what you paid.

How Is Short Interest Measured and Reported?

Short interest is a regulatory disclosure, not an exchange feed. FINRA Rule 4560 obligates every member brokerage to report the open short positions on its books twice a month, as of a scheduled settlement date: one mid-month, one at month-end. The rule covers all equity securities, listed and over-the-counter, and it counts positions, not trades, a firm reports what its customers and its own desks still owe in borrowed shares as of that date, whatever they did in between. FINRA compiles the filings into one file per settlement date: one row per security, carrying shares short, an average-daily-volume figure and the days-to-cover ratio built from the two. The FINRA files guide covers the source mechanics; the most-shorted leaderboards read the newest print:

QueryThe latest FINRA short interest file: one snapshot of the whole market
The exact SQL behind every number
WITH (SELECT max(settlement_date) FROM global_markets.stocks_short_interest) AS latest
SELECT concat(monthName(latest), ' ', toString(toDayOfMonth(latest)), ', ', toString(toYear(latest))) AS latest_settlement_date,
       count() AS tickers_reported,
       multiIf(count() < 1000, toString(count()),
               concat(toString(intDiv(count(), 1000)), ',', lpad(toString(count() % 1000), 3, '0'))) AS tickers_reported_fmt,
       round(sum(si) / 1e9, 1) AS total_shares_short_b
FROM
(
    SELECT ticker, max(short_interest) AS si
    FROM global_markets.stocks_short_interest
    WHERE settlement_date = latest
    GROUP BY ticker
)
Run this yourself

As of the July 31, 2026 settlement, the file covers 22,339 tickers carrying a combined 55.3 billion shares of open short positions, the US equity market's entire short book in one twice-monthly snapshot.

Short Interest Reporting Dates

"Twice a month" resolves to two rules: the mid-month settlement falls on the 15th, moved back to the preceding business day when the 15th lands on a weekend or holiday, and the month-end settlement falls on the last business day of the month. The file reaches the public days to weeks later. Every settlement print of the last five months, with its weekday and the days that passed before the data arrived here:

QueryShort interest reporting dates: recent settlements, weekday, coverage and publication lag
The exact SQL behind every number
SELECT concat(monthName(d), ' ', toString(toDayOfMonth(d)), ', ', toString(toYear(d))) AS settlement_date,
       weekday,
       securities_on_file,
       multiIf(securities_on_file < 1000, toString(securities_on_file),
               concat(toString(intDiv(securities_on_file, 1000)), ',', lpad(toString(securities_on_file % 1000), 3, '0'))) AS securities_on_file_fmt,
       publication_lag_days
FROM
(
    SELECT settlement_date AS d,
           formatDateTime(settlement_date, '%W') AS weekday,
           uniqExact(ticker) AS securities_on_file,
           dateDiff('day', settlement_date, toDate(min(_ingest_time))) AS publication_lag_days
    FROM global_markets.stocks_short_interest
    WHERE settlement_date >= today() - INTERVAL 5 MONTH
    GROUP BY settlement_date
)
ORDER BY d
Run this yourself

9 settlement dates in five months, the business-day adjustment visible in the weekday column (a settlement dated the 13th is a mid-month print pulled back from a weekend 15th). The newest, settled July 31, 2026 on a Friday, covers 22,339 securities and took 11 days to arrive; the one before it took 17 days.

The consequence: whatever short-interest number you read today describes positioning as of the last settlement, one to several weeks back (we measured every recent print's lag). "Current" short interest is never current.

A Worked Example: Tesla's Short Interest

Definitions stick better with a ticker attached. Tesla at every settlement of the last two years, short interest next to the average daily volume in the same file:

QueryTSLA short interest vs. average daily volume, bi-monthly (last 2 years)
The exact SQL behind every number
SELECT concat(monthName(d), ' ', toString(toDayOfMonth(d)), ', ', toString(toYear(d))) AS settlement_date,
       short_interest_m_shares,
       avg_daily_volume_m_shares
FROM
(
    SELECT settlement_date AS d,
           round(max(short_interest) / 1e6, 1) AS short_interest_m_shares,
           round(max(avg_daily_volume) / 1e6, 1) AS avg_daily_volume_m_shares
    FROM global_markets.stocks_short_interest
    WHERE ticker = 'TSLA'
      AND settlement_date >= today() - INTERVAL 2 YEAR
    GROUP BY settlement_date
)
ORDER BY d
Run this yourself

As of the July 31, 2026 settlement, 68.5 million TSLA shares were sold short against 44.2 million shares of average daily volume; two years earlier the balance stood at 78.7 million. Count the data points: 47 settlement dates, two per month, nothing in between.

Short Percent of Float and Days to Cover

Days to cover, the short interest ratio, divides short interest by average daily volume: at the stock's normal pace of trading, how many full sessions would it take for every open short to buy back? The file computes it for you, with one convention worth knowing, it is floored at 1.00 and never prints below.

Short percent of float divides short interest by the float, shares outstanding minus insider stakes, restricted stock and other closely held blocks, and asks what fraction of the tradable ownership pie is sold short. One caveat, the same one the stock float explainer opens with: no filing reports a float. Companies report shares outstanding quarterly; every float figure you see is a vendor's subtraction. The panel below divides by the audited denominator instead, basic shares outstanding from the latest quarterly filing, making each percentage a conservative floor, since float is never larger than shares outstanding.

QuerySix household names at the latest settlement: shares short, percent of shares outstanding, days to cover
The exact SQL behind every number
WITH (SELECT max(settlement_date) FROM global_markets.stocks_short_interest) AS latest,
shares AS
(
    SELECT tk AS ticker,
           argMax(basic_shares_outstanding, (filing_date, period_end)) AS shares_out
    FROM global_markets.stocks_income_statements
    ARRAY JOIN tickers AS tk
    WHERE tk IN ('AAPL', 'KO', 'MSFT', 'NVDA', 'TSLA', 'GME')
      AND timeframe = 'quarterly'
      AND filing_date >= today() - INTERVAL 1 YEAR
      AND basic_shares_outstanding > 0
    GROUP BY tk
),
si AS
(
    SELECT ticker,
           max(short_interest) AS shares_short,
           max(days_to_cover) AS dtc
    FROM global_markets.stocks_short_interest
    WHERE settlement_date = latest
      AND ticker IN ('AAPL', 'KO', 'MSFT', 'NVDA', 'TSLA', 'GME')
    GROUP BY ticker
)
SELECT si.ticker AS ticker,
       round(si.shares_short / 1e6, 1) AS shares_short_m,
       round(shares.shares_out / 1e6, 0) AS shares_outstanding_m,
       multiIf(shares.shares_out < 1e9, toString(toUInt64(round(shares.shares_out / 1e6, 0))),
               concat(toString(intDiv(toUInt64(round(shares.shares_out / 1e6, 0)), 1000)), ',',
                      lpad(toString(toUInt64(round(shares.shares_out / 1e6, 0)) % 1000), 3, '0'))) AS shares_outstanding_m_fmt,
       round(100.0 * si.shares_short / shares.shares_out, 2) AS short_pct_of_shares_out,
       round(si.dtc, 2) AS days_to_cover
FROM si
INNER JOIN shares ON si.ticker = shares.ticker
ORDER BY indexOf(['AAPL', 'KO', 'MSFT', 'NVDA', 'TSLA', 'GME'], si.ticker)
Run this yourself

Read Tesla's row, the fifth: 68.5 million shares short against 3,225 million shares outstanding is 2.12% sold short, on days to cover of 1.55, the classic mega-cap shape, a share count that sounds enormous in isolation sitting on deep liquidity and a huge share base. Nvidia makes the point louder: the largest raw short balance of the six, 292.7 million shares, still lands at 1.21% of shares outstanding on 2.3 days to cover. The raw number alone tells you nothing.

GameStop is the outlier: 12% of shares outstanding sold short, several times any other name in the table, on 17.06 days to cover.

What Counts as High Short Interest?

There is no official threshold, "high" is a convention, and the honest way to calibrate it is to measure the field. Days to cover across every liquid ticker in the latest file (at least one million shares of average daily volume):

QueryDays to cover across all liquid US tickers, latest settlement (min 1M shares/day)
The exact SQL behind every number
WITH (SELECT max(settlement_date) FROM global_markets.stocks_short_interest) AS latest
SELECT count() AS liquid_tickers,
       multiIf(count() < 1000, toString(count()),
               concat(toString(intDiv(count(), 1000)), ',', lpad(toString(count() % 1000), 3, '0'))) AS liquid_tickers_fmt,
       round(quantileExact(0.5)(dtc), 1) AS median_days_to_cover,
       round(quantileExact(0.9)(dtc), 1) AS p90_days_to_cover,
       min(dtc) AS lowest_days_to_cover,
       countIf(dtc >= 10) AS names_at_10_plus
FROM
(
    SELECT ticker, max(days_to_cover) AS dtc, max(avg_daily_volume) AS adv
    FROM global_markets.stocks_short_interest
    WHERE settlement_date = latest
    GROUP BY ticker
)
WHERE adv >= 1000000
Run this yourself

Across 2,632 liquid tickers the median is 2.9 days to cover, the 90th percentile 7.7 days, and the lowest value prints 1, the floor. Only 128 names reach ten days or more: a couple of days is routine, a double-digit ratio genuinely crowded.

Now the other ratio, liquid names with a recent quarterly filing on record, bucketed by short interest as a percentage of shares outstanding, each bucket's median days to cover alongside.

QueryHow liquid US stocks distribute by short interest as a percent of shares outstanding
The exact SQL behind every number
WITH (SELECT max(settlement_date) FROM global_markets.stocks_short_interest) AS latest,
si AS
(
    SELECT ticker,
           max(short_interest) AS shares_short,
           max(avg_daily_volume) AS adv,
           max(days_to_cover) AS dtc
    FROM global_markets.stocks_short_interest
    WHERE settlement_date = latest
    GROUP BY ticker
    HAVING adv >= 1000000
),
shares AS
(
    SELECT tk AS ticker,
           argMax(basic_shares_outstanding, (filing_date, period_end)) AS shares_out
    FROM global_markets.stocks_income_statements
    ARRAY JOIN tickers AS tk
    WHERE timeframe = 'quarterly'
      AND filing_date >= today() - INTERVAL 9 MONTH
      AND basic_shares_outstanding > 0
    GROUP BY tk
    HAVING shares_out >= 10000000
),
joined AS
(
    SELECT si.ticker AS ticker,
           100.0 * si.shares_short / shares.shares_out AS short_pct,
           si.dtc AS dtc
    FROM si
    INNER JOIN shares ON si.ticker = shares.ticker
    WHERE 100.0 * si.shares_short / shares.shares_out <= 50
)
SELECT multiIf(short_pct < 2, 'Under 2%',
               short_pct < 5, '2-5%',
               short_pct < 10, '5-10%',
               short_pct < 20, '10-20%',
               '20%+') AS short_pct_bucket,
       count() AS tickers,
       round(100.0 * count() / sum(count()) OVER (), 1) AS pct_of_tickers,
       round(quantileExact(0.5)(dtc), 2) AS median_days_to_cover
FROM joined
GROUP BY short_pct_bucket
ORDER BY min(short_pct)
Run this yourself

The field spreads wider here than most readers expect. Only 13% of these stocks carry under 2% of their shares outstanding short; the two middle buckets (28.8% and 30.2%) hold the bulk of the field between 2% and 10%; 7.6%, 101 names, run above 20%. Measured against float, every one of those numbers would be higher.

The last column is the payoff: median days to cover climbs with every step up the ladder, from 2.37 days in the least-shorted bucket to 7.4 in the most-shorted. Two different denominators, one a share base, one a volume tape, rank the field the same way: a stock heavily shorted relative to its shares is typically also slower to unwind (days to cover has its own explainer).

GameStop, January 2021: What a Squeeze Looks Like in the Data

Every discussion of high short interest arrives at the same reference case. GameStop's record across the 10 settlements from November 2020 to March 2021, with the closing price on each of those dates (prices as-traded, before GME's later 4-for-1 split):

QueryGameStop, Nov 2020 – Mar 2021: short interest, days to cover and the closing price at each settlement
The exact SQL behind every number
WITH px AS
(
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
           argMax(toFloat64(close), window_start) AS close_px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'GME'
      AND window_start >= '2020-11-01 00:00:00'
      AND window_start < '2021-04-02 00:00:00'
      AND toHour(toTimeZone(window_start, 'America/New_York')) BETWEEN 9 AND 15
    GROUP BY day
),
si AS
(
    SELECT settlement_date,
           round(max(short_interest) / 1e6, 1) AS shares_short_m,
           round(max(days_to_cover), 1) AS days_to_cover
    FROM global_markets.stocks_short_interest
    WHERE ticker = 'GME'
      AND settlement_date >= '2020-11-01'
      AND settlement_date <= '2021-03-31'
    GROUP BY settlement_date
)
SELECT concat(monthName(si.settlement_date), ' ', toString(toDayOfMonth(si.settlement_date)), ', ', toString(toYear(si.settlement_date))) AS settlement_date,
       si.shares_short_m AS shares_short_m,
       si.days_to_cover AS days_to_cover,
       round(px.close_px, 2) AS gme_close
FROM si
INNER JOIN px ON si.settlement_date = px.day
ORDER BY si.settlement_date
Run this yourself

The setup sits in the top rows: at the November 13, 2020 settlement, 67.5 million GME shares were short, days to cover stood at 14, and the stock closed at $11.02. The balance kept building into year-end, 71.2 million shares at the December 31, 2020 settlement, the largest of the 10 prints, with the stock at $18.81.

Then the table turns over. At the January 29, 2021 settlement, with the stock closing at $328.24, short interest printed 21.4 million shares, roughly a third of the year-end balance, and days to cover had collapsed to 1, the floor. Both halves of the ratio moved at once: shorts covered (the numerator fell) and volume exploded (the denominator rose). By the March 31, 2021 settlement the balance sat at 10.7 million.

Two lessons a price chart will not teach. The record is retrospective, the January 15, 2021 snapshot, taken with the stock at $35.49, reached the public only on the usual multi-week lag. And a low days-to-cover reading is not always calm: the ratio hit its floor in the wildest stretch of the episode, describing a torrent of volume rather than a small position. The full squeeze anatomy walks those weeks.

Short Interest FAQ

What is a high short interest?

There is no official cutoff. At the latest settlement the median liquid US ticker shows 2.9 days to cover, and only 128 reach ten days or more. On the other ratio, 7.6% of filing-backed liquid stocks carry more than 20% of shares outstanding short, the zone most desks call heavily shorted.

When are short interest reporting dates?

Twice a month: the 15th (moved back to the previous business day when it falls on a weekend or holiday) and the last business day of the month. Brokerages report open positions as of those settlement dates under FINRA Rule 4560, and the file is published days to weeks later, the newest print here settled July 31, 2026 and arrived 11 days later.

What is short percent of float?

Short interest divided by the float, the shares free to trade. No filing reports a float, so every published version is a vendor estimate. Measured against audited shares outstanding, never smaller than the float, Tesla's latest print is 2.12% and GameStop's 12%.

What is days to cover?

Short interest divided by average daily volume: the sessions of typical trading it would take for every open short to buy back. Tesla's latest print works out to 1.55 days, and the file floors the ratio at 1.00.

Is short interest the same as short volume?

No. Short interest counts open positions at settlement dates, a level, twice a month. Short volume counts shares sold short each day, a flow, much of it market-maker hedging (both, measured).


Every panel above is a stored query, open the SQL beneath it, swap in any ticker, and re-run it on the Strasmore terminal.