---
title: "How to read a market sentiment gauge"
description: "The six factors behind the daily 0–100 score, why each is a two-year percentile, what the S&P 500 did after each band, and how it differs from CNN's index."
date: 2026-09-21
updated: 2026-09-21
tags: [sentiment, basics]
author: "Allen Yan"
image: https://sweetvaluelab.com/blog/img/c3c41f5258f7b920.png
lang: en
canonical: https://sweetvaluelab.com/blog/how-to-read-a-market-sentiment-gauge
---

On the September 18, 2026 close the [market sentiment gauge](https://sweetvaluelab.com/tools/market-sentiment) read **31, Fear**. The S&P 500 closed at 7,650, about 3.7% above its 125-day average, and the VIX sat at 14.8. Neither of those sounds like fear. The score came out where it did because two stocks in the covered universe closed at a 52-week high that day and 26 closed at a 52-week low, and because the volume flowing into falling stocks had been outrunning the volume flowing into rising ones for most of the month. The index was fine. Most of the stocks in it were not.

That gap is the reason the gauge exists. A single number for the mood of the market is only useful if you know what is inside it, so this guide takes the reading apart: the seven factors, the percentile that turns each of them into a 0–100 number, the average, and then two years of readings held against what the S&P 500 did next. It is built in the style of the well-known seven-factor CNN Fear & Greed Index and it will never print the same number, for reasons the last section spells out.

## The seven factors, and what each one measured on September 18

Every factor is a raw value pointed the same way: higher means more greed. Three follow the original index exactly, three stand in for a series this site does not have, and the seventh is left empty.

![The seven factors on September 18, 2026: each raw value, its percentile bar, and the average of the six available](https://sweetvaluelab.com/blog/img/502c4e69213b2314.svg "September 18, 2026. Momentum 34, volatility 61, safe haven 45, junk bond 40, strength 2, breadth 5. Six percentiles average to 31.2, rounded to 31: Fear. The put/call factor has no source here and is left out of the denominator.")

**Market momentum** (faithful). The S&P 500 close divided by its 125-day moving average, minus one. On the 18th: 7,650 against 7,377, so +3.7%. An index above its average reads as greed.

**Market volatility** (faithful). The VIX divided by its 50-day moving average, minus one, with the sign flipped so that a calm market scores high. 14.8 against 16.2 gives +8.4%.

**Safe haven demand** (faithful). The 20-trading-day return of SPY minus the same return of TLT, the long Treasury ETF. Stocks were down 0.1% over those 20 days and long bonds were down 1.3%, so stocks won by 1.2 points.

**Junk bond demand** (proxy). The 20-day return of HYG, the high-yield ETF, minus that of LQD, the investment-grade one. The original uses the option-adjusted spread on high-yield bonds. There is no spread series here, so two ETF prices do the job. Both fell 1.3% in the window, so the raw value was a flat 0.0.

**Stock price strength** (proxy). Stocks closing at a 52-week high minus stocks closing at a 52-week low, divided by the stocks counted. The original counts every NYSE listing; this one counts the ~518 stocks of the [public universe](https://sweetvaluelab.com/stocks), the S&P 500 and Nasdaq-100 constituents. On the 18th, 463 of them had a full year of history behind them: 2 highs, 26 lows, −5.2%.

**Stock price breadth** (proxy). The [McClellan volume summation index](https://sweetvaluelab.com/blog/how-to-read-market-breadth) over the same stocks. Each day, the volume of advancing stocks minus the volume of declining stocks, as a share of total volume; then a 19-day EMA minus a 39-day EMA (the oscillator, −44 on the 18th); then the oscillator accumulated from the first day of the series. The level of the summation depends on where it starts, which is why only its percentile is used and the start date is stored with every row. Both this factor and the one above need the universe to have reported: on a day when fewer than 80% of the stocks have a bar, the two are marked missing.

**Put and call options** (absent). The original's seventh factor is the five-day average of the CBOE equity put/call ratio. No options-volume source exists here, and it is not approximated. The score is the average of the six factors above, and the page says so on the seventh card.

The raw values are hard to compare with each other. A momentum of +3.7% and a breadth oscillator of −44 live on different scales, and a VIX 8% below its average is a very different thing in a calm year than in a wild one. That is what the next step is for.

## Why each factor is a percentile, and of what

Each raw value is ranked against that same factor's own last 504 trading days, roughly two years. The rank is the percentile: a volatility reading of 61 means that on 61% of the last two years' days, the VIX sat further above its 50-day average than it did on the 18th, and the market was more nervous on those days than today.

![Histogram of the volatility factor's 504 daily raw values, with today's +8.4% marked at the 61st percentile](https://sweetvaluelab.com/blog/img/d76b3ee3620a5690.svg "The volatility factor's raw values from September 16, 2024 to September 18, 2026. Most days cluster near zero. The tail on the left reaches −146%, the April 2025 sell-off, when the VIX stood at 2.5 times its own average. Today's +8.4% has 61% of the window's days to its left.")

The figure shows why this is a percentile and not a z-score. The volatility factor's distribution has a long left tail: in April 2025 the VIX went to two and a half times its 50-day average, a raw value of −146%. A standard deviation computed over a window that contains that week is stretched by it, and every ordinary day afterwards gets pulled toward the middle. The percentile ignores the size of the outlier. It only asks how many days sat below today.

Two years is a choice with consequences. A shorter window makes the gauge jumpier, because one bad month becomes a large share of the history it is ranked against. A longer one makes the gauge slow to notice that the regime changed. Two years is long enough to hold more than one mood and short enough to forget the one before, and there is no stronger argument for 504 than that.

The window also means the reading on any given day is relative to the two years before it. A 31 in September 2026 says that the last two years were mostly calmer. It does not say the market is in trouble in any absolute sense, and it cannot be compared with a 31 printed in 2020 without knowing what those two years looked like.

## The average

The six available percentiles are averaged with equal weight and rounded. On the 18th: (34 + 61 + 45 + 40 + 2 + 5) ÷ 6 = 31.2, so 31. The bands are 0–24 extreme fear, 25–44 fear, 45–55 neutral, 56–75 greed and 76–100 extreme greed.

When a factor cannot be computed on a day it is left out of the denominator. It is never replaced with a neutral 50, which would insert a reading nobody observed. The page marks the card as unavailable and says how many factors the number rests on.

## What the S&P 500 did after each band

The gauge stores every day since September 2024, so the natural question can be asked of it directly: after a day in each band, where was the index 20 and 60 trading days later?

![Two years of the gauge (blue, left axis) against the S&P 500 (grey, right axis), with the lowest reading of 2 on April 4, 2025 and the highest of 86 on November 13, 2024 marked](https://sweetvaluelab.com/blog/img/00a0c3e0d096073d.svg "September 16, 2024 to September 18, 2026. The lowest reading, 2, came on April 4, 2025, two days into the tariff sell-off; the highest, 86, on November 13, 2024, the week after the election. The index line rises through both. The gauge spends most of its time between 25 and 75.")

![Median S&P 500 return 20 and 60 trading days after a day in each band, with the share of positive outcomes](https://sweetvaluelab.com/blog/img/89c597075866412b.svg "504 trading days, September 2024 to September 2026. Twenty days after an extreme-fear day the index was down a median 1.2% and higher only 46% of the time; sixty days after, up a median 9.4% and higher 87% of the time. After every other band the twenty-day median sat between +1.1% and +1.7%. The extreme-greed row has 17 days in it.")

Read the extreme-fear row first. Twenty trading days after such a day the index was down a median 1.2%, and it was higher only 46% of the time. Sixty days after, it was up a median 9.4% and higher 87% of the time. Both numbers come from the same 68 days, most of them in March and April 2025, when the gauge sat under 25 for weeks while the index kept falling and then recovered all of it by June. Extreme fear in this window was a condition that persisted, and the rebound came on its own schedule.

The other four rows look alike at twenty days: medians between +1.1% and +1.7%, with the index higher 58% to 100% of the time. That last figure rests on 17 days of extreme greed, most of them in November 2024.

Three cautions belong next to that table. The windows overlap, so 68 extreme-fear days are closer to three or four independent episodes than to 68 observations. The two years hold exactly one sharp sell-off, and a window with two would print different numbers. And the table describes what happened after the readings in this window, the same limit [any backtest](https://sweetvaluelab.com/blog/what-a-backtest-cannot-tell-you) carries; the next two years will produce their own.

## How to use it

The gauge is a description of where six market series sit against their own recent history on one day. Three uses follow from that.

It answers "how does today compare?" without a chart. A 31 with the index near its highs, as on September 18, tells you the average stock is having a worse month than the index. That is a fact about [market breadth](https://sweetvaluelab.com/blog/how-to-read-market-breadth) you would otherwise have to count. A 70 with the index flat says the opposite.

It gives the mood a history. The band shares on the page (27% of the last two years in Fear, 14% in Extreme fear, 3% in Extreme greed) turn "the market feels nervous" into a number you can hold against the last two years, and the year chart shows how long each stretch lasted.

It is also a cross-check on the other pages here. A [reverse DCF](https://sweetvaluelab.com/tools/reverse-dcf) that implies 28% growth reads differently on a day the gauge sits at 80 than on one where it sits at 20, and the [bank board](https://sweetvaluelab.com/tools/banks) or the [software board](https://sweetvaluelab.com/tools/software) after a fear reading is worth opening to see whether the sector moved with the index or against it.

What it is not for is timing. The table above shows the extreme-fear rows pointing in opposite directions at 20 and 60 days. A reading tells you where the market's mood sits. It does not tell you what to do about it, and this page will not.

## Where it differs from the CNN index

The number here will not match the CNN Fear & Greed Index on any day, and the differences are the design.

- **Three proxies.** Junk bond demand is an ETF pair rather than a spread. Strength and breadth are counted over ~518 large stocks rather than the whole NYSE. Large stocks skew the counts: a bad month for small caps that spares the S&P 500 shows up less here than there.
- **One absent factor.** No put/call ratio. The average runs over six factors, so each one carries more weight than in a seven-factor average.
- **A rolling window.** Each factor is ranked against its own last 504 trading days. The original uses a fixed scale for each factor. On a rolling window, a reading is always relative to the recent past, and a calm two years will make an ordinary week look tense.
- **The universe.** The [S&P 500 and Nasdaq-100 constituents](https://sweetvaluelab.com/stocks), taken as they are today. Stocks that left an index leave the count.

Every definition above is the one the code uses. The [gauge](https://sweetvaluelab.com/tools/market-sentiment) updates once a day after the US close, and the date on the dial is the close it reflects.
