StockFOMO

How the FOMO score works

The score is a weighted sum of eight measurements taken from completed daily sessions. There is no model guessing at a number and no language model writing one. Given the same price history, it returns the same score every time — and every point is traceable to the reading that produced it.

The one idea

A 5% day means nothing on its own. It is routine for MSTR and remarkable for KO. So almost nothing here is measured in absolute terms: readings are ranked against that stock's own trailing year, or normalised by its own average true range. A score of 70 should mean the same degree of unusual whatever you type in.

The eight inputs

  • Price extension

    25% weight

    How far price has run over the last seven sessions, ranked against a year of this stock's own seven-session moves.

  • Distance from averages

    15% weight

    How far price sits above its own 10, 20 and 50-session averages, measured in units of the stock's typical daily range rather than percent.

  • Relative volume

    15% weight

    Today's volume against its own trailing 20-session average — how many more people than usual are trading it.

  • Momentum (RSI)

    15% weight

    A 14-period Wilder RSI, plus how far that reading has climbed in five sessions. Fast-rising momentum counts for more than a high number sitting still.

  • Volatility expansion

    10% weight

    Whether the stock's recent daily range has widened against its own longer-run range. Moves get wilder before they get crowded.

  • Price acceleration

    10% weight

    Whether the last three sessions are outrunning the last ten. A move that is speeding up reads differently from one that is grinding.

  • Gap activity

    5% weight

    Opening gaps up over the last two weeks, sized in units of average true range so a gap means the same thing on any stock.

  • Recent catalyst

    5% weight

    How recently an earnings date landed. A fresh catalyst explains attention; a stale one does not.

Upside only

FOMO is the fear of missing a move upward, so the score measures upside chasing and nothing else. Volume and volatility are direction-blind on their own — a crash produces both — so those inputs are multiplied by a gate derived from the stock's ten-session return in units of its own daily volatility.

The consequence is deliberate: a stock down 25% on triple volume scores near zero. That is not the model failing to notice. It is the model declining to call panic selling “FOMO”, because they are different things and conflating them would make the number meaningless.

The bands

  • 020LowNormal conditions.
  • 2140BuildingSome momentum or attention building.
  • 4160ElevatedThe move is becoming extended.
  • 6180HighCrowded and extended conditions.
  • 81100ExtremeVery strong short-term expansion relative to its own history.

Where the data comes from

Daily open, high, low, close and volume come from Polygon. Quotes, company profiles, symbol search and earnings dates come from Finnhub. Nothing is scraped, and no price is ever estimated or filled in — when a source is unreachable the page says so rather than showing a number we cannot stand behind.

A stock needs at least 70 completed sessions before it can be scored at all, and percentile comparisons are withheld until there is close to a year of history. A recent listing gets an honest “not enough history” instead of a confident number built on three months of data.

What it is not

This is not advice, not a recommendation, and not a forecast. A high reading does not mean a stock will fall, and a low one does not mean it is a bargain — plenty of stocks stay extended for months, and plenty of quiet ones keep going nowhere. The score describes the present, in the stock's own terms. What you do with that is yours.

It also says nothing about the business. Revenue, margins, management and valuation are all invisible to it.

Current model version fomo_v1. Every stored score records the version that produced it, so a change to the weights never silently rewrites history. Check a stock.