Skip to content

Short Squeeze Score Methodology

// formula · weights · sources · limitations

Tapeboard's Short Squeeze Score is a 0-100 composite computed daily from five normalized components, short interest as a percentage of float (35% weight), IBKR borrow fee (25%), float utilization (20%), days to cover (15%), and 5-day price momentum (5%), z-score normalized across a universe of roughly 500 active US equities.

What the score measures

The Tapeboard Short Squeeze Score is a 0-100 composite that ranks roughly 500 actively-traded US equities by squeeze potential each trading day. A score of 70+ means the ticker shows multiple squeeze conditions simultaneously, high short interest as a percentage of float, an elevated borrow fee, tight float utilization, an extended cover ratio, and constructive recent price action. A score below 30 means the ticker has none of those; the rest of the distribution sits in between.

The score is descriptive, not predictive. It tells you which tickers are loaded with the structural conditions a squeeze needs to ignite, it does not tell you which ones will. Squeezes require a catalyst (earnings beat, news catalyst, trapped seller covering size). The score quantifies the powder keg; the catalyst is the spark.

Five components, fixed weights

How the 100 points are allocated

The total score is the weighted sum of five components. Weights are fixed and disclosed below, they do not adapt per ticker. We chose these weights from the squeeze literature and from cross-sectional analysis of the GME, AMC, BBBY, KOSS, and BBIG events of 2021-2023. Borrow fee + utilization together carry 45% because, in retrospect, those were the leading signals on every named squeeze, short-interest-percentage on its own would have flagged dozens of false positives.

COMPONENTWEIGHTSOURCEWHAT IT TELLS YOU
SI % Float35%FINRA via YahooShort interest divided by free float. The headline squeeze metric, what fraction of tradable shares are sold short.
Borrow Fee25%IBKR Stock LoanAnnualized cost to borrow shares for shorting. High fees mean low share availability and crowded short positioning.
Float Utilization20%IBKR Stock LoanPercentage of available borrowable shares already lent out. 90%+ means the next short has nowhere to source shares.
Days to Cover15%FINRA SI / Avg VolShort interest divided by average daily volume. Higher = harder for shorts to exit without driving price up.
5-Day Momentum5%Price feedTrailing 5-trading-day price change percent. Catches the early rip phase before retail attention arrives.

Why momentum is only 5%. Momentum is included so the score isn't entirely lagging, the SI and borrow inputs are days to weeks delayed (see §03). But weighting momentum higher would turn this into a momentum scanner, which Tapeboard already provides separately under /scanner. The squeeze score's job is to surface structural setups; the momentum component is a tiebreaker.

Z-score normalization across the universe

Why raw values aren't the score

Raw values for each component are not added directly, a 40% SI/Float and a 4% borrow fee live on different scales. Each component is normalized to a z-score across the same-day universe of approximately 500 active US equities (the universe is defined as US-listed common stock with average daily dollar volume above $5M and a current market cap above $50M). The z-score for ticker T on component C is:

z(T, C) = (raw(T, C) - μ(C)) / σ(C)

where μ(C) is the universe mean of component C and σ(C) is the universe standard deviation. The weighted score is then:

score(T) = clamp(50 + 10 · Σ w(C) · z(T, C), 0, 100)

The 50 anchor + scale-by-10 transform maps a "perfectly average" ticker to score 50 and roughly +/- 5 standard deviations to the 0/100 endpoints. Clamping ensures the score never falls outside [0, 100]. The component breakdown shown on each ticker page (the weight × z-score bars) is the per-component contribution to that final number.

Where each input comes from and how often it refreshes

Sources, citations, and update cadence

Every input is documented below with its source, the legal basis for our use of it, and the cadence at which it refreshes. We do not hide vendor identities behind generic labels like "leading exchange feed", the row-level source is named.

INPUTSOURCECADENCE
Short InterestYahoo Finance defaultKeyStatistics module, which mirrors FINRA settlement dataBi-monthly. FINRA publishes mid-month and end-of-month settlement files with a ~10-business-day delay; Yahoo refreshes its module within 24 hours of release.
Borrow Fee & UtilizationIBKR Stock Loan Availability dataset (the broker's real-time view of its shortable inventory)Daily. Refreshed once per trading session shortly after the open.
Days to CoverComputed: (FINRA short interest) / (trailing 30-day average daily volume)Recomputed daily as ADV updates; SI numerator changes only on FINRA settlement.
5-Day MomentumSchwab Market Data closes (primary), Finnhub fallbackDaily, after US market close.
FINRA Threshold ListFINRA Threshold Securities List (regulatory file published EOD)Daily. Tickers earn the threshold flag after five consecutive settlement days of failures-to-deliver above the regulatory threshold.

Threshold flag. The "T" badge next to a ticker on the leaderboard means the symbol appears on the current FINRA Threshold Securities List. Inclusion requires aggregate fails-to-deliver of at least 10,000 shares and at least 0.5% of total shares outstanding for five consecutive settlement days. The list is a backward-looking regulatory signal, it confirms covering pressure already exists, it does not predict it.

What this score cannot tell you

Known limitations and honest caveats

Short interest is settlement-delayed. FINRA reports SI on a bi-monthly cadence with a ~10-business-day delay. The "SI %Float" you see can be up to three weeks stale. Real-time short interest does not exist publicly in US markets, the SEC has been studying a daily-reporting rule (Rule 13f-2, adopted 2023) but enforcement has been delayed. Until that rule activates, every public squeeze score is working off the same delayed FINRA inputs.

Borrow data is IBKR-only. Borrow fees and utilization come from Interactive Brokers' stock-loan inventory. IBKR is one of the largest retail-and-prop borrow providers, but it is not the entire borrow market. Prime-broker rates (Goldman, JPM, Morgan Stanley) are not in the dataset, and they sometimes diverge, a ticker can be cheap to borrow at IBKR while being expensive or hard-to-borrow at a prime broker, or vice versa. We disclose the source rather than synthesize a market-wide rate we cannot see.

Float Utilization caps near 100%. When IBKR runs out of shares to lend (utilization 100%), the data series flattens. Our z-score normalization treats those tickers as the maximum tail of the distribution, which is correct in practice, but the score loses ability to differentiate between two 100%-utilization names. The borrow-fee component takes over as the discriminator at that ceiling.

Universe matters. Z-scores are computed against the ~500-stock active universe. A ticker added to the universe today suddenly has a z-score relative to that universe; if the universe drifts (e.g., during an IPO wave or a delisting cluster), comparable scores across time can shift. We rebuild the universe daily but do not retroactively re-rank historical scores.

No catalyst detection. The score is structural. It will not light up because earnings drop tomorrow, an analyst upgrade hits, or a short report from a known activist names a ticker. Pair the score with the news feed, options-flow surface, and earnings calendar, those are where catalysts live.

How to use the score in your workflow

Suggested reading order

Step 1. Open the leaderboard at /scanner/squeeze and sort by score descending. Anything 70+ has multiple squeeze conditions simultaneously.

Step 2. For each top-of-list ticker, click through to the research page. The Squeeze Score Card on /research/:symbol breaks the total into the five component contributions, that's where you see whether a 78 score came from "all five components moderate" or "SI %Float is enormous, others are average."

Step 3. Cross-reference with the news feed and SEC filings on the same research page. The score tells you the powder is dry; the news feed tells you whether a spark is on the way.

Step 4. Size positions with the daily price-action context, not the score alone. A 95-score ticker that just printed a -8% day is in a different setup than a 95-score ticker that just broke out to new highs on rising volume.

Last reviewed and changelog

Last reviewed: 2026-06-07

This methodology is reviewed when weights change, when a data source changes, or quarterly, whichever comes first. Material changes are stamped here and reflected in the page's dateModified JSON-LD field.

2026-06-07, initial publication. Weights set at SI 35 / Fee 25 / Util 20 / DTC 15 / Momo 5. Universe is ~500 active US equities. Z-score anchored at 50 with σ-multiplier of 10.

If a data source changes (e.g., FINRA migrates SI reporting cadence, IBKR alters its borrow API), we'll log it here and re-score the affected universe. We do not retroactively rewrite historical scores.