How the Adanos Fear & Greed Index is built: dumb money vs smart money
The Adanos Fear & Greed Index puts two crowds on one dial: what retail investors write on Reddit and X against what the market is doing according to the CNN Fear & Greed Index. Below is the full construction, step by step, with the exact rules the generator applies.
What's in here
- Retail side: how a day of Reddit and X posts becomes a bullish share, then a percentile against that source's own history
- Smart money side: the CNN Fear & Greed Index, used unchanged, with its seven inputs listed
- The gap: smart money minus retail plus the band that decides when one side leads
- The limits: what a six-month history can and cannot support
One question, two crowds
Every smart money versus dumb money indicator asks the same thing: are the people talking about the market and the money moving through it pointing the same way? The classic versions read both sides from price action. Don Hays' Smart Money Index compares the first half hour of trading with the last hour. SentimenTrader sets commercial hedgers against small speculators in the futures market. Both infer what retail feels from how retail trades.
This index reads retail mood directly. Retail investors write down what they think, every day, on Reddit and X. Those posts are scored for bullish and bearish tone and turned into a number. The market side is not inferred either: it is the CNN Fear & Greed Index, a published composite of seven market-structure indicators. The index tracks the gap between what the crowd says and what the market does.
From posts to a daily bullish share
The raw input is the market-wide sentiment endpoint of the Reddit and X sentiment APIs, queried one day at a time. For each source and each day it returns the share of scored posts that read bullish and the share that read bearish across the most discussed tickers. Posts are scored by the same engine that powers the per-ticker pages: an ensemble of a finance-tuned RoBERTa model and a VADER lexicon extended with 155 finance terms, with the model weighted 60 percent and the lexicon 40 percent.
The day's reading for a source is the bullish share of the decided posts:
bullish_share = bullish / (bullish + bearish) * 100Neutral posts are left out of the denominator on purpose. A day where most posts are neutral but the decided ones lean bullish still reads bullish, which is the question the index asks. If a source returns no bullish and no bearish posts for a day, that source is missing for that day rather than scored as 50.
Ranking each source against its own history
A bullish share of 65 percent means something different on Reddit than on X. X posts read consistently more bullish than Reddit posts, so a raw average would let X set the level and Reddit set the noise. The index never compares the two sources with each other and ranks each against its own past instead.
The rank is an as-of percentile. For a given day, take every reading of that source from March 1, 2026 up to and including that day. The percentile is the share of those readings at or below the day's value. A reading of 80 means the day is greedier than 80 percent of that source's own history so far. Nothing after the day enters the calculation, so a published value stays fixed when later days arrive and the chart can be read backwards without hindsight.
percentile(day) = 100 * count(readings up to day <= reading(day)) / count(readings up to day)The retail score is the average of the available percentiles, Reddit and X, rounded to a whole number. When one source is missing for a day the other carries the score alone. Because the percentile needs a history, the index does not start on its first day of data: the calendar begins on March 1, 2026 and the model refuses to publish with fewer than 20 aligned days.
Smart money is CNN's number, unchanged
The smart money side is the CNN Fear & Greed Index. Adanos reads the value CNN publishes and does not recompute, smooth or rescale it. CNN builds the index from seven indicators, each measured as how far it sits from its own recent average, then weights the seven equally into a 0 to 100 score:
- Market momentum: the S&P 500 against its 125-day moving average
- Stock price strength: net new 52-week highs and lows on the NYSE
- Stock price breadth: the McClellan Volume Summation Index
- Put and call options: the five-day average put/call ratio
- Market volatility: the VIX against its 50-day moving average
- Safe haven demand: the difference between 20-day stock and Treasury bond returns
- Junk bond demand: the yield spread between junk and investment-grade bonds
All seven describe how money is positioned, which is why the index uses CNN's composite as the stand-in for smart money instead of building a second survey. The trade-off is disclosed on the page: the CNN index is a record of market structure, not of institutional trades.
The calendar: completed weekdays plus the live session
The index runs on completed weekdays. Weekends are skipped. A market holiday keeps its retail reading in the percentile baseline, because people still post, but drops out of the displayed series, because CNN publishes no value for it. A weekday without a CNN value, for example a close not yet published, is left out rather than shown stale.
The current day is appended once the session is open, from 9:30 a.m. Eastern on a weekday. Its retail score is the percentile of today's reading within the full history plus today. Its smart money value is CNN's live reading when available. When it is not, the last close is carried forward and the page labels the smart money side with the date of that close, so a reader can see which number is live and which is not.
Refresh runs at least every three hours through the trading day. The retail side of older days is backfilled a few dates per run until the percentile baseline reaches back to the start of the index, which keeps provider rate limits intact.
The gap and the band
The headline is the divergence, smart money minus retail. A positive gap means the CNN index sits greedier than the crowd. A negative gap means the crowd is ranked greedier than the market. The index does not call a side on every wiggle. It calls one only past a band:
divergence = smart_money - retail
band = max(1, round(rms(divergence over the last 45 sessions)))
smart money leads if divergence >= +band
crowd leads if divergence <= -band
balanced otherwiseThe band is the root mean square of the divergence over the 45 sessions on display, which is the same window the chart shows. It uses root mean square instead of standard deviation because the reference point is parity, a gap of zero, rather than the average gap. If the two crowds have been close for weeks the band tightens and a modest gap counts. If they have been far apart the band widens and it takes more to call a side. Until 25 sessions are available the band is fixed at 20 points.
By construction most days read balanced. A gauge that flagged a leader every day would only repeat which line is higher, which the chart already shows, so the verdict changes only when the gap is stretched relative to recent history.
The five zones
Both sides are drawn on the same five-zone dial. The zone labels follow the familiar fear-to-greed vocabulary; the cutoffs are the ones the page uses for both needles.
| Reading | Zone | Retail meaning |
|---|---|---|
| 0 to 25 | Extreme fear | Posts read less bullish than almost all of that source's history |
| 26 to 44 | Fear | Below the middle of the source's own range |
| 45 to 55 | Neutral | Around the middle of the source's own range |
| 56 to 74 | Greed | Above the middle of the source's own range |
| 75 to 100 | Extreme greed | Posts read more bullish than almost all of that source's history |
For the smart money needle the zone describes CNN's composite directly. For the retail needle it describes a percentile, which is why the page says calmer than usual or greedier than usual rather than bullish or bearish in absolute terms. A retail reading of 20 does not mean most posts are bearish. It means the day is calmer than 80 percent of the source's history.
What the index does not do
The index does not forecast: the divergence describes the current gap and the page says so wherever the verdict appears. Its history starts in March 2026, which is enough for percentiles to mean something but far too short to test whether wide gaps come before turns, so no such claim is made.
It measures what retail says rather than what retail holds. A crowd can post bullish while sitting in cash. It covers the part of retail that posts on Reddit and X, scored by a model that still misreads some sarcasm. The smart money side inherits every strength and blind spot of the CNN index. The Dow record analysis from August 2026 shows what a stretched gap looks like in practice and what it did not tell you.
A separate comparison sets the index against the two older gauges, the AAII survey and the CNN index on its own.
FAQ
What is the Adanos Fear & Greed Index?
A stock market sentiment index that scores two crowds on one 0 to 100 scale. Dumb money is retail sentiment from Reddit and X, ranked against its own history. Smart money is the CNN Fear & Greed Index, shown as CNN publishes it. The page tracks the gap between the two and calls a side only when the gap is wider than a band derived from recent history.
How is the retail score calculated?
Each trading day, the bullish and bearish shares of Reddit posts and X posts about the most discussed stocks are turned into a bullish share, bullish divided by bullish plus bearish. Each source is then ranked as an as-of percentile against every earlier day since March 1, 2026, so a reading of 80 means today is greedier than 80 percent of that source's own history. The retail score is the average of the two percentiles.
Why rank each source against its own history instead of averaging the raw numbers?
X posts read consistently more bullish than Reddit posts, so averaging the raw shares would let the more bullish platform set the level. Ranking each source against itself first puts both on the same footing before they are combined.
Where does the smart money number come from?
It is the CNN Fear & Greed Index, a composite of seven market indicators: S&P 500 momentum against its 125-day average, net new 52-week highs and lows on the NYSE, the McClellan Volume Summation Index, the five-day put/call ratio, the VIX against its 50-day average, the 20-day return difference between stocks and Treasury bonds and the junk bond yield spread. Adanos reads the published value and does not recompute it.
When does the index say one side leads?
The divergence is smart money minus retail. The band is the root mean square of that divergence over the last 45 sessions, with a floor of one point. At or beyond plus the band, smart money leads. At or beyond minus the band, the crowd leads. Inside the band the reading is balanced, which is the normal state.
Does the index predict market tops and bottoms?
No. It describes the current gap between what retail posts and what the market is doing. The history only starts in March 2026, which is too short for a credible backtest, so the page makes no forecasting claim.
Sources
The construction described here is the one implemented in the index generator and served on the live page. External references:
- Adanos Fear & Greed Index: the live page, with the methodology and FAQ sections this article expands on.
- CNN Business, Fear & Greed Index: the seven indicators, their measurement and the equal-weighting rule, as published by CNN.
- Adanos API documentation: the market-sentiment endpoints that supply the daily bullish and bearish shares for Reddit and X.
- Adanos BuzzScore Whitepaper: the sentiment scoring engine, including the model and lexicon ensemble.