The Stop Risk Score sizes positions on a four-step ladder built from 20-day realized volatility, shock, and drawdown. Below a score of 35 the engine suggests 1% risk per trade; at 75 and above it says avoid the position entirely, with two smaller steps between the two extremes.
The Stop Risk Score is one of the Macro Engine's modules: a single read on how much room a stock's own recent price action says a stop needs, not a forecast of where the stock goes next. There is no options chain behind it. It is built entirely from locally cached daily price history pulled from Polygon.io and Yahoo Finance: realized-volatility math, run on a stock that may not even have a liquid options market.
Six pieces feed the score, weighted by how much they tend to move first. The 20-day volatility percentile carries 35% of the weight: where the stock's current realized volatility sits against its own trailing history, relative to itself rather than to the market. The short-to-long volatility ratio carries 20%: whether the last few days have been noisier or quieter than the last few months. Latest shock carries 15%: the size of the most recent single large move. Downside-to-upside volatility asymmetry carries another 15%: whether the recent noise has come more from selling or more from buying. The 20-day drawdown carries 10%: how far the stock has fallen from its own recent high. A backwardation proxy fills the last 5%, a rough stand-in for whether short-dated risk is running hotter than long-dated risk.
None of these six inputs decides the score by itself. A stock can take a violent single-day shock and still land in the CALM band if its trailing volatility and drawdown are both otherwise quiet. The full mechanics of how one stock's score gets built are in how the Stop Risk Score is calculated.
On 2026-09-30, the engine scored 4,634 stocks against the sizing ladder. 3,343 scored below 35 and cleared for the full 1% suggested risk. 929 fell in the 35 to 54.9 band, cut to 0.75%. 185 sat in the 55 to 74.9 band, cut again to 0.5%. The remaining 177 were flagged AVOID: 32 for scoring 75 or above, and 145 for insufficient data to score at all.
On 2026-09-30 the engine had scored 4,634 stocks. 3,343 were CALM, scoring below 35. 929 were NORMAL, in the 35 to 54.9 band. 185 were ELEVATED, in the 55 to 74.9 band. 32 were STRESSED, scoring 75 or above. A further 145 came back UNAVAILABLE, meaning the engine did not have enough clean price history to score them at all. Low realized volatility was by far the largest single group in the scored universe that day.
Most of the scored universe was carrying calm, unremarkable volatility on 2026-09-30, which is what it looks like most of the time: 3,343 CALM against only 32 STRESSED. The other 145 names that scored UNAVAILABLE are a separate problem: the ladder could not judge them either way, calm or otherwise, because the price history behind them was not clean enough to trust.
The engine's own rule stops at the position: 1% suggested risk below 35, 0.75% from 35 to 54.9, 0.5% from 55 to 74.9, AVOID at 75 or above, or when there is not enough data to score at all. That is the band I follow for a single trade, but it is where the engine's job ends and mine starts: it sizes each position and stops there, with no concept of the macro driver behind it. I take a maximum of two positions per macro driver. Five semiconductor names are one position wearing five tickers, and the engine will happily size all five at 1% because it scores each name independently, with no view of what they have in common.
So the band is per position and the cap is per driver. At 0.75% suggested risk, two positions in one driver is 1.5% maximum exposure to that driver. At 1% it is 2%. Four drivers at 0.75% each is 6% simultaneous exposure; four drivers at 1% each is 8%, the top of what I will carry book-wide, across every driver at once.
When margin gets tight, I cut the band, not the count. A CALM reading that says 1% becomes 0.75% in my own sizing, which takes that driver's cap from 2% down to 1.5%. I would rather hold the same spread of drivers at a smaller size on each than drop a driver entirely to keep one position at full size, since fewer, larger positions concentrate the account against fewer macro outcomes.
This ladder does not have one threshold. It has three: 35, 55 and 75. A score just under 35 gets the full 1% band; a score just over it gets cut to 0.75%. A single point either side of a boundary can be the difference between two very different suggested sizes, and the score itself does not know or care that it is close to a line.
That sensitivity is exactly why I do not round mechanically at any of the three boundaries. A score of 73 and a score of 77 are close enough that the number alone does not decide it. I read the rest of the picture, what the other pillars are saying and what the chart is actually doing, and round up or down deliberately rather than let a two-point difference make the call for me.
The 75 threshold carries an extra wrinkle the other two do not: it is shared with UNAVAILABLE. A stock scoring 75 or above and a stock the engine could not score at all both land on AVOID, for two completely different reasons. One has a specific, measured reason to avoid it. The other is a blank the ladder cannot fill in yet.
This is a realized-volatility and stop-risk proxy, not an options-market read. There is no implied volatility surface behind it, no skew, no term structure priced by anyone but the stock's own recent trading.
AVOID is doing two jobs under one label. Of the 177 stocks flagged AVOID on 2026-09-30, 32 earned it with a score of 75 or above, and 145 got there because the engine lacked enough clean price history to score them at all. One is a measured, specific signal. The other is an absence of information, and treating both as the same warning is a mistake.
The underlying data is not perfectly clean either. Of the 4,634 rows scored that day, 4,489 were OK, but 142 came back flagged OUTLIER and 3 were FROZEN, meaning the price history behind that score had gone stale. A reading sitting on outlier or frozen data is worth a second look before it drives a sizing decision on its own.
A flip to AVOID also does not tell you what to do with a position you already hold. It does not close anything by itself. Closing, tightening the stop, or holding through is a separate decision, made from the technicals on that specific name rather than from the regime label.
The score also has no concept of the macro driver a position belongs to. That gap is what the driver cap above exists to close, and it is a manual layer, not something the ladder enforces on its own.
The Stop Risk Score is a single read on how much room a stock's own recent price action says a stop needs, built from realized volatility, not options data. Below 35 the engine suggests 1% risk per trade. From 35 to 54.9 it suggests 0.75%. From 55 to 74.9 it suggests 0.5%. At 75 or above, or with insufficient data, it says AVOID.
In the engine's ladder, a stock scoring 55 to 74.9, the ELEVATED band, gets a suggested risk of 0.5% per trade, down from 1% below 35 and 0.75% from 35 to 54.9. On 2026-09-30, 185 of 4,634 scored stocks sat in this band. At 0.5%, my own per-driver cap of two positions tops out at 1% exposure to that driver, half of what a CALM reading allows.
No. A flip to AVOID leaves an open position alone and adjusts the stop instead. I watch the technicals on that name, and if they start deteriorating I bring the stop in from 3 ATR to 2 ATR. The position keeps working on a shorter leash, and the market decides whether it survives rather than the regime label deciding for it.
My own rule caps it at two positions per macro driver, on top of whatever the engine suggests for each position individually. Five semiconductor names sized independently still add up to one driver wearing five tickers. At a 0.75% suggested band, two positions in one driver caps that driver's exposure at 1.5%. At 1%, it caps at 2%. Four drivers running at once, at 1% each, tops out at 8%, the most I carry across the whole book.
I cut the band, not the count. A CALM reading that suggests 1% becomes 0.75% in my own sizing when margin is tight, which pulls that driver's cap from 2% down to 1.5%. I would rather hold the same spread of drivers at a smaller size on each than drop a driver entirely to keep one position at full size, since dropping a driver concentrates the account against fewer macro outcomes.
This score is built from realized volatility, which measures what a stock's price already did, not what it is about to do: a CALM reading can turn STRESSED inside a single session on genuine news, and the ladder only catches that the day after.
The other risk is not the score's, it is mine. I once got stopped out of a Strong Risk-On position when the regime turned neutral, kept the money, and watched the market climb back. I re-entered because the price action looked like it was resuming, before the macro had actually confirmed anything. The breakout was fake, the market spent weeks consolidating, and the only new information in that trade was that I had overridden a signal that had just paid me.