Market breadth and how to read the passing count

Market breadth is how many stocks are taking part in a market's move. QM Screener measures it the most direct way a screener can. After every close it counts how many stocks passed each screen. We call each trading day a session, and the count comes from the same run that fills the table.

The Breadth card on the dashboard shows that count for the screen you're looking at, and its history chart shows how the count has changed over time.

Why the count matters

A momentum screen only passes a stock that's already doing what the strategy wants. It's trending, it's holding above its moving averages and it's beating the market. So the number of stocks that pass tells you how much the market is working for that strategy right now. When the count is high, many stocks fit that strategy's rules and the list is long. When it's low, few do and the list is short.

What you do with the count is your call. The card is a screen result. It is not advice. There's no regime label on it, so it never says bull market, correction or risk-off. It gives you a count and enough context to judge it.

How to read the card

On a phone or a narrow window the card sits above the list in Table view. Its first line shows today's count and how it compares with the recent average, and its second line has the sparkline, the index buttons and the History button. On a wide screen the card is on the Market tab and reads differently (see "On a wide screen" below), and the index buttons sit in the bar along the bottom of the page.

Look at the count and the indexes together. Say the count is rising while SPY is below its average. Then the strategy's stocks are holding up better than the index. If the count is falling while every index is above its average, fewer and fewer stocks are carrying the index.

On a wide screen

In a window wider than 960 pixels the card is at the top of the Market tab and reads differently.

The index buttons sit in the bar along the bottom of the window and show the day's move.

The history chart

On a wide screen the Market tab shows a 60-session sparkline, and pressing it opens the full chart. On a phone or a narrow window History opens it. Either way it opens on top of the page, under the card. To close it, press the same button again, press Escape or click the dimmed page around it. The dashboard doesn't remember that it was open, so after a reload the panel is always shut.

Replayed sessions

The nightly run only started recording counts when this feature shipped. For the sessions before that, we worked the counts out afterwards from saved prices. We call those sessions replayed.

History before the feature shipped was replayed against today's universe, so names that have since delisted are missing from those sessions.

The dashboard chart draws a replayed session like any other session. The API marks each one: backfilled is true on a replayed session, and the response carries the note above. A replay never overwrites a session the nightly run recorded.

In practice, a replayed count can come out lower than the real count on that day, because a stock that has delisted since can't show up in it. The shape of the history is still useful. Just be careful when you compare the exact number on a replayed session with one on a recorded session. The API's backfilled field tells you which is which.

The series goes back as far as we could replay it from saved prices, and it grows by one session after every close. The card stays hidden until at least one screen has history.

When a screen's rule changes

A count is only comparable with counts made under the same rule. On October 3, 2026 the Momentum Continuation screen lowered its relative-strength floor from above 93 to above 85, and its count roughly doubled from the next session on because the rule changed, not the market. So the average, the arrow and the percentile only compare sessions under the current rule, and they stay blank until 20 sessions have run under it. The bars before the change stay on the chart.

Getting the numbers in code

Breadth is public. You don't need a key or an account, and everyone gets the same numbers.

Below is a response cut down to one screen, one session and one index. The numbers are made up. The field names are real.

{
  "as_of": "2026-09-23",
  "days": 365,
  "note": "History before the feature shipped was replayed against today's universe, so names that have since delisted are missing from those sessions.",
  "screens": {
    "vcp": {
      "label": "VCP",
      "series": [
        {
          "date": "2026-09-23",
          "passing": 41,
          "near_miss": 17,
          "value_n": 9,
          "screened": 3120,
          "universe_n": 5480,
          "pct_above_sma20": 58.4,
          "pct_above_sma50": 61.2,
          "pct_above_sma200": 64.9,
          "backfilled": false,
          "recorded_at": "2026-09-23T20:31:07Z",
          "rs_gate": null
        }
      ]
    }
  },
  "indexes": {
    "SPY": [{"date": "2026-09-23", "close": 571.3}]
  }
}

screens lists every registered screen. Each one has its display label and a series, oldest first. A screen with nothing recorded has an empty series. The key is never missing.

passing, near_miss and value_n are the sizes of the three lists (Passing, Near misses and Value). screened is how many stocks the screen's rules were applied to. universe_n is how many tickers the run started with. The three pct_above_sma* fields are the share of measured stocks above their 20-, 50- and 200-day SMA. The 200-day one is null on screens that download less than 200 sessions of history.

rs_gate is the relative-strength floor a count was made under, and null on screens that have no such floor. Compare a session only with sessions that share it.

backfilled is true on a replayed session. indexes holds the SPY, QQQ and IWM closes over the same window. note is the replay caveat from above. If you show these rows anywhere, show the caveat with them.

Where to find the card

On a wide screen the card is on the Market tab. The tab bar above the chart reads Chart, Table and Market, and the rail of icons down the left edge has a Market button too. The Market tab holds the Breadth card and the sector strength strip, with every group of tiles shown. The screen picker heads the list down the left side of the page, and the bar along the bottom says which session's close the data is from and carries the SPY, QQQ and IWM buttons.

On a phone or a narrow window the dashboard is one column. The app bar at the top has the screen picker (which is also the page title) and the ... menu. A narrow window also shows the time the data was last updated and the theme toggle there; on a phone the app bar holds the Watchlist and Export buttons instead. Under it is the list bar: the list tabs (Passing, Near misses, Value), Filters, which opens the filter panel, and the Table and Chart view switch, with Watchlist and Export beside them on a narrow window. Then, in Table view, the market row holds the Breadth card and under it the sector strength strip; Chart view gives that room to the chart.

Frequently asked questions

Is a high passing count a signal to buy?

No. The count is a screen result. It is not advice. There's no regime label on the card, so nothing on it says bull, bear, risk-on or risk-off. It tells you how many stocks cleared one screen's rules at the last close. What you do with that is up to you.

Which sessions in the history chart were replayed?

The ones from before the feature shipped. The nightly run hadn't started recording yet, so we worked out their counts later from saved prices. History before the feature shipped was replayed against today's universe, so names that have since delisted are missing from those sessions. The dashboard chart draws them like any other session. The API marks each session as backfilled or not, so you can tell them apart there.

Why is there no Breadth card on my dashboard?

The card stays hidden until there's recorded history to show. It appears as soon as any screen has some. If the screen you're on has none yet, the card tells you so instead of showing a number. On a wide screen the card is on the Market tab, so the Chart and Table tabs don't show it. On a phone or a narrow window it's shown in Table view: Chart view gives that room to the chart.

Can I compare the count on one screen with another?

Compare a screen with itself. Each screen has its own rules. One that tests eight trend conditions usually passes fewer stocks than one that tests two. So the useful question is how today's count compares with the same screen's recent history. That's what the average and the percentile measure.

Do I need a subscription to read breadth?

No. The counts are public. Every account sees the card on its dashboard, free accounts included, and you can get the history over HTTP or MCP without a key. A subscription gets you the stocks behind each count.


This page is for education. It is not financial advice. QM Screener lists stocks that passed published filters and counts them. It doesn't recommend trades, size positions or know anything about your situation. It covers US stocks, uses end-of-day data and refreshes once per trading day after the close.