Summarize this article with AI
One click opens your favourite AI with this article’s link

A ticker with a 4 million share float trades 40 million shares before lunch. Someone in chat says it “rotated the float ten times.” That sounds big. But float rotation is only as good as the float you divide by, and on a small cap that number can change in the middle of the run.

Float rotation is how many times a stock’s tradable float changes hands over a set window. You get it by dividing cumulative volume by the float. A stock with a 2 million share float that trades 6 million shares has rotated its float 3 times. It measures turnover against available supply. It does not show direction, and it is only as accurate as the float you divide by.

This guide covers the float rotation formula, a worked example with real arithmetic, and the part most explainers skip: what happens to the math when the company sells new shares into the move.

In this article

What is float rotation?

Float rotation is the number of times a stock’s tradable float has changed hands, calculated as total volume divided by the float.

If a stock has a 2 million share float and trades 6 million shares, it rotated its float 3 times. That’s it. It’s a turnover ratio: trading activity measured against the shares actually available to trade.

What it does not tell you: direction, who is buying, or whether every share really moved. The same shares can trade back and forth dozens of times in a session. A rotation of 3 doesn’t mean every holder sold. It means the volume equals three floats’ worth of shares.

Traders watch it on low float stocks because it gives a rough sense of how crowded and how fast a move is. When volume is a multiple of the float, a big chunk of the people holding the stock got in very recently, at very different prices.

The float rotation formula

Float rotation = Cumulative volume ÷ Float (in shares)

Two inputs, and both need care:

  • Cumulative volume: shares traded over the window you choose. Usually the current session, often including premarket. Some traders use a multi-day window for a run that started yesterday.
  • Float: shares outstanding minus shares held by insiders, affiliates and holders of restricted stock that can’t be freely sold yet.
  • Window: pick one and stay consistent. Mixing a premarket-included volume with a regular-hours comparison gives you a number that means nothing.

The volume side is easy. The float side is where people get burned. Data providers calculate float differently and update it on different schedules. Before you trust any screener number, check shares outstanding on the cover page of the latest 10-Q or 10-K using SEC EDGAR full-text search. For Canadian issuers, the filings live on SEDAR+.

Float rotation vs relative volume

Relative volume compares today’s volume to the stock’s own average. Float rotation compares today’s volume to supply. A large cap can trade at 3x its average volume and still rotate a tiny fraction of its float. A sleepy small cap can rotate its float several times on a single headline. They answer different questions, so use both.

Worked example: calculating float rotation step by step

Hypothetical example. The ticker, share counts and filings below are invented to show the math.

Ticker XYZ has 12 million shares outstanding. Insiders and affiliates hold 4.5 million. Another 1.5 million are restricted. So the float is 12 − 4.5 − 1.5 = 6 million shares.

XYZ gaps up on news. Here’s how the day’s volume stacks up against that 6 million float:

TimeCumulative volumeFloatFloat rotation
End of premarket3,000,0006,000,0000.5x
10:30 a.m.18,000,0006,000,0003.0x
Close33,000,0006,000,0005.5x

On paper, XYZ turned over its float 5.5 times. That’s a very active day for a small cap. But that number assumes the float stayed at 6 million all session. On a small cap that needs cash, that assumption is often wrong.

How does dilution change float rotation mid-run?

Any newly issued, freely tradable shares get added to the float, so a mid-run offering, ATM sale, warrant exercise or note conversion makes the denominator bigger and the true rotation smaller than the number on your screen.

Back to XYZ: a registered direct at 11:00

Still hypothetical. At 11:00 a.m., with cumulative volume at 18 million, XYZ files a prospectus supplement for a registered direct offering of 4 million shares off an effective shelf. Registered shares are freely tradable once delivered. The float is now 10 million, not 6 million.

From 11:00 to the close, another 15 million shares trade. Watch what happens to the math:

MetricStale float (6M)Updated float (10M)
Full-day rotation (33M volume)5.5x3.3x
Rotation after the offering (15M volume)2.5x1.5x
New shares as % of old float4M ÷ 6M = about 67% more supply

Same tape, very different story. The screen says the stock churned its float 5.5 times. The real number is closer to 3.3, and some of that afternoon volume may be the new holders selling the shares they just bought at a discount. That’s how a stock can show huge rotation and still fade into the close.

ATMs are the quiet version

An at-the-market program lets a company sell shares straight into the market through a sales agent, a little at a time. You usually only learn how many shares were sold after the fact, in a later 10-Q or prospectus supplement. During the run, you can’t see it. So if an ATM is open, assume your float figure might be understating supply. More on that in what an ATM offering does to a small cap.

Warrants and convertible notes

When a stock runs through a warrant strike, holders can exercise and sell. When convertible notes convert, new shares hit the market. Both expand the float exactly when price is moving. Read the exercise prices and conversion terms in the filings before the run, not during it. Our breakdown of warrant overhang walks through how to find them.

Canadian private placements work a bit differently. Shares issued in a TSXV or CSE placement usually carry a hold period, so they may not hit the tradable float right away. Check the closing news release and filing for the hold expiry date.

This is why dilution context matters so much. Fockets Terminal data shows runs on a priced offering closed down 4.3% on average and 65% faded, while runs on an 8-K closed up 3.5%. The Fockets Terminal ties big moves to the filing behind them and shows how many more shares a company may issue. If you’re new to this, start with how to tell if a stock is diluting.

Why does float rotation matter to small-cap traders?

Because it gives context on how crowded a move is, as long as the float is right. It is not a buy or sell trigger. Here’s a fair read on what it can and can’t do:

  • It can: show that most of the active shareholder base has a fresh cost basis, which can mean fast moves in both directions.
  • It can: flag when volume is out of proportion to supply, which is worth a look at the filings.
  • It can’t: tell you direction. High rotation shows up on runs that keep going and on runs that collapse.
  • It can’t: account for supply you don’t know about yet, like unreported ATM sales.

Float rotation checklist before you trust the number

  • Pull shares outstanding from the latest 10-Q or 10-K cover page (or SEDAR+ filing), not only a screener.
  • Check every filing since that date: 8-Ks, 424B prospectus supplements, S-1 or F-1 registrations, effective shelves.
  • Find out if an ATM program is open.
  • List warrants and convertible notes and note which are in the money at current prices.
  • Check for a recent reverse split, since screeners can lag the new share count.
  • Pick your volume window (session, with or without premarket, or multi-day) and keep it consistent.
  • Recalculate the moment an offering headline drops.

Float rotation FAQ

What is a good float rotation?

There’s no universal number. A rotation of 1x means something very different on a stock with a fresh offering than on one with a clean share structure. Treat it as context alongside the filings, price action and liquidity, not as a threshold.

Does float rotation include premarket volume?

It depends on the window you choose. Many small-cap traders include premarket because a lot of the action happens there. Just be consistent so you’re comparing like with like.

How can a stock rotate its float more than once a day?

The same shares trade many times. A day trader buys and sells within minutes, market makers flip inventory, and that churn counts toward volume each time. Rotation measures activity, not how many unique holders sold.

Is float the same as shares outstanding?

No. Shares outstanding is every issued share. Float strips out insider, affiliate and restricted holdings. Using shares outstanding instead of float will make rotation look smaller than it is.

Float rotation calculator (spreadsheet version)

The easiest float rotation calculator is a spreadsheet with one row per check-in. Put time in column A, cumulative volume in B, float from the latest filing in C and float after any new issuance in D. In E, enter =B2/C2 for the stale-float rotation. In F, enter =B2/D2 for the updated number. Seeing both side by side is the point, just like the XYZ table above.

Tracking float rotation on TradingView

On TradingView, the practical approach is a custom script that divides cumulative session volume by a float you type in yourself. Take the float from the latest 10-Q or 10-K, or from SEDAR+ for Canadian names. The script cannot know about an offering, so update the input the moment new shares are issued.

Float rotation in Pine Script

Here is a short educational snippet. It resets volume each day and plots rotation as a line. The default of 6 million matches the XYZ example, so change it to the real float.

//@version=6
indicator("Float rotation (manual float)")
floatM = input.float(6, "Float in millions, from latest filing")
var float cumVol = na
cumVol := timeframe.change("D") or na(cumVol) ? volume : cumVol + volume
plot(cumVol / (floatM * 1e6), "Float rotation")

If extended hours are turned on for your chart, premarket volume gets counted. If not, it doesn’t. Pick one and stay consistent.

Calculating float rotation in Python

You can pull intraday volume with yfinance, sum it for the session and divide by a float you enter by hand.

import yfinance as yf

ticker = input("Ticker: ")
float_shares = float(input("Float in shares, from the latest filing: "))
bars = yf.Ticker(ticker).history(period="1d", interval="1m", prepost=True)
session_volume = bars["Volume"].sum()
print("Float rotation:", round(session_volume / float_shares, 2))

Skip the float field the library offers. Like screener data, third-party float numbers can lag the filings.

Low float vs high float: why rotation numbers differ

Rotation swings much faster on a low float because the denominator is small. Six million shares traded on a 2 million float is 3x. The same volume on a float in the hundreds of millions barely registers. Small denominators also magnify mistakes. In the XYZ example, a 4M share offering cut the full-day rotation from 5.5x to 3.3x.

When high rotation is a red flag

High rotation is a warning sign when nothing explains it. Watch for:

See our pump and dump red flags guide, the SEC’s Investor.gov page on pump and dump schemes and FINRA investor resources.

Float rotation vs short interest

Short interest measures shares sold short. It is usually shown as a percent of float or as days to cover, which is short interest divided by average daily volume. Exchange-listed short interest is reported periodically through FINRA, not in real time. High rotation alone does not prove shorts are covering. New shares from dilution can also take pressure off a squeeze. More in how to check borrow fees and short interest.

Float rotation on TSXV and CSE stocks

For Canadian names, start with shares outstanding from SEDAR+, then subtract shares that can’t trade yet. Private placement shares under a hold period and escrowed shares are not tradable until they are released. Check the hold expiry date in the closing news release, because the float grows on that date. Our guide to checking dilution on SEDAR+ covers where to look.

What to check in any scanner’s float filter

Ask three things: where the float data comes from, how often it updates, and whether it reflects recent offerings or reverse splits. A float filter built on stale data gives you a confident wrong number. Fockets has a free community tier. Full access is $89/month and includes the Fockets Terminal, which rescans about 13,000 US stocks every 30 seconds and ties each move to the filing behind it.

Risks of trading high-rotation low float stocks

The main risks are halts, thin liquidity and hidden supply. Fast moves can trigger limit up-limit down trading halts that freeze you in a position. Wide bid-ask spreads mean slippage on entries and exits. New holders may sell discounted offering shares into strength, and an open ATM can add supply nobody sees until later.

More questions traders ask

Why do traders disagree about float rotation?

Mostly because the number has real limits. Float data varies by provider. The same shares churn over and over. Rotation carries no directional information. And dilution can hide in the denominator. Traders who like it treat it as context, while skeptics point to those gaps.

If you want to see how other traders check the float before they trust a rotation number, join the free Fockets community on our stock trading Discord. Ask questions, show your math, and build your own process. No gurus. No hype.

Keep reading

Disclaimer: This content is for educational purposes only and is not financial advice. Fockets Trading does not provide buy or sell recommendations. Trading small caps carries significant risk, including the loss of your entire investment. Always do your own research and consider consulting a licensed professional before making investment decisions.