How GRIPS Scoring Works: The Algorithm Behind Every Squintz Signal
GRIPS scores every moving stock on five independent dimensions. Here's exactly how the algorithm decides which stocks earn a high-conviction alert — and why most stocks never make it past dimension one.
At 10:04 AM ET on May 14, 2026, GRIPS scored ONDS at 76 and triggered a high-conviction alert. The entry price was $9.88. By close, ONDS was trading near $11.44 — a +15.8% intraday move on top of the 10.76% it had already moved before the signal fired.
Thousands of other stocks were moving that morning. How did the algorithm decide ONDS was the one worth the alert? Five independent scoring dimensions, calibrated against 22,000+ real trade outcomes. This is exactly how each one works.
GRIPS is a 0–100 composite built from five components: Growth, Range, Intensity, Probability, Spread Quality. Each scores 0–20. Only stocks clearing all five at high levels — plus nine additional gates the composite alone can't capture — earn a high-conviction alert. Most stocks fail at dimension 1 or 2. That's by design.
G — Growth (Velocity, Not Magnitude)
Common mistake retail traders make: assuming a stock that's already up 8% is "too late." That's backwards. The question isn't whether the move happened — it's whether the move is still happening.
Growth measures velocity (change_pct / window_minutes). A stock that moved 8% in 20 minutes (0.40%/min) scores dramatically higher than a stock that moved the same 8% over 90 minutes (0.09%/min). Speed is the signal. Magnitude alone is noise.
A G score of 14 or higher is the high-conviction floor. Below 14, the move is either stale or stalling. Above 17, the stock is firing on all cylinders.
ONDS scored G=15 at detection. The +10.76% had built up over roughly 30 minutes — strong velocity, room to keep running. Velocity is also the #3 feature by importance in the ML model that powers the P dimension. Speed isn't just one input to the algorithm — it's the input the other dimensions defer to.
For the deeper math behind velocity scoring, see the velocity scoring explainer.
R — Range (Where Price Closed in Its Day)
A stock that closes its session at the high tells a different story than one that closes at the low, even if both ended the day up the same percentage. Range measures where the most recent price sits relative to today's intraday high and low.
A close in the top 15% of today's range scores 17–20. That's a stock where buyers are still in control at the moment of evaluation. A close in the bottom 30% of range scores below 10 — sellers pushed back, the move is exhausting itself.
This dimension catches a specific failure mode: stocks that gap up on news, run for 20 minutes, then fade for the rest of the day. Growth alone would still score that stock high. Range pulls it back. R is the cheapest filter in the algorithm — no ML required, just price action — but it's the one that catches the most fakeouts. If G is high and R is low, somebody bought a headline and the rest of the float said no thanks.
I — Intensity (Volume Tells Different Stories Than Price)
A 5% move on 200K shares means something different than the same 5% move on 5 million shares. Intensity measures volume participation — specifically, today's volume compared to the stock's normal trading pattern.
This is the dimension that separates institutional flow from retail noise. Small-cap stocks can move 8% on a handful of tweets. The same 8% with 2M+ shares means real money is positioning.
I score of 10+ is the high-conviction floor. Below 10, the move is probably a small group of accounts chasing each other. Above 15, institutions are participating.
GRIPS uses 7-day rolling average volume as the baseline, so a stock's "normal" is calibrated to its own pattern, not against the broad market. A small-cap with low average daily volume can still register high intensity if today's tape is 3× its own normal — what matters is the deviation from its own behavior, not whether it cracks the S&P top 50 by volume.
P — Probability (The ML Layer)
The first three dimensions are rule-based. The fourth is statistical.
Probability is the output of a Random Forest model trained on 22,000+ labeled trade outcomes. The model takes the current signal's features — velocity, volume, time of day, sector, intraday position, prior-day gap, and others — and returns the probability that the move continues for the next hour.
This is the dimension that gets sharper over time. Every alert fired gets graded at 1hr, 4hr, and 24hr. Every Friday, the model retrains on all accumulated outcomes. As of the most recent retrain, model accuracy is 63.8% on direction prediction — substantially above the 50% coin-flip baseline.
P is the dimension I trust least when it's high alone, and trust most when it agrees with the other four. ML models can find spurious patterns. But when the rule-based dimensions and the statistical dimension both point the same direction, that's confluence — and confluence is what the nine-gate stack is designed to catch.
S — Spread Quality (The Microstructure Tell)
Spread Quality measures the tightness of the bid-ask spread relative to price. A stock trading at $20.00 with a $0.02 spread (0.1%) scores high. The same stock with a $0.50 spread (2.5%) scores near zero.
Why this matters: tight spreads on a moving stock are the fingerprint of institutional liquidity. Market makers compete to provide liquidity when real money is flowing. Wide spreads mean either thin order books or retail-dominated trading — both red flags for entering a position you might need to exit quickly.
S score of 10+ is the high-conviction floor. Below 10, the stock might trap you on exit if the move reverses. Above 15, you can exit with minimal slippage at any reasonable size.
This is the dimension that 95% of retail signal services ignore. It's also the dimension that separates a fillable signal from a paper-only trade. For the longer-form breakdown of why spread matters more than retail thinks, see the spread quality deep-dive.
Why Five Dimensions and Not Three or Ten
Three dimensions would force compromises. Without P (the ML layer), you lose the dataset advantage — the part of the algorithm that compounds over time. Without S (spread), you trade signals you can't execute cleanly. Without R (range), you chase stocks that already topped out.
Ten dimensions would overfit. Every additional dimension is another chance for the model to find patterns in noise. The 22,000-outcome dataset supports five well-calibrated dimensions. Ten would split the data too thin per dimension to be statistically meaningful, and most of the marginal dimensions would just be re-measuring what an existing dimension already captured.
Five is the smallest number that covers velocity, structure, participation, prediction, and microstructure without one dimension's signal getting washed out by another's noise. Drop any one of them and you lose a specific failure mode the others can't catch.
The Nine Gates of a High-Conviction Alert
GRIPS total ≥ 75 isn't sufficient on its own. A stock can hit 75 while still failing on a critical dimension. High-conviction status requires all nine of the following to be true simultaneously:
- GRIPS total ≥ 75 — composite high-conviction floor.
- G score ≥ 14 — velocity isn't stalling.
- I score ≥ 10 — real volume participation.
- S score ≥ 10 — institutional spread.
- Change ≥ 8% intraday — meaningful move, not noise.
- Velocity ≥ 0.20%/min — speed signals momentum.
- Direction = up — longs only, no shorts.
- Window ≤ 45 minutes — move developed recently, not a 4-hour drift.
- Time = 9:30–11:30 AM ET — the opening window where these setups historically work.
Most stocks never clear gate 1. The composite score being 75 requires near-perfect alignment of all five dimensions. The remaining gates filter out the edge cases that slip through composite scoring — stocks that hit 75 on a stale move, or on a tape that looks fine but is actually below the velocity floor when you measure it directly.
Try the interactive GRIPS calculator to see how each parameter affects the score. Move any slider and watch dimensions update in real time.
How the Dataset Got to 22,000 Outcomes
Every high-conviction alert that fires gets graded at three checkpoints: 1 hour after detection, 4 hours after detection, and 24 hours after detection. The 24-hour label is the final word — win or loss.
The dataset started at zero in early 2024. As of the most recent retrain, it sits at 22,000+ labeled outcomes. The model retrains every Friday on the full accumulated dataset. The P-score (probability dimension) is the output that gets sharper.
This is the part of the system that compounds. Every alert fired adds another labeled outcome. Every Friday, the model gets marginally sharper. Six months from now, the P-score will be measurably better than it is today — without any code changes from me.
You can see the live outcomes — wins, losses, and pending — at the public track record. Every alert published. Every outcome graded. No cherry-picking.
Try It Yourself
The GRIPS calculator lets you input any move size, velocity, volume, spread, and timing — and watch the dimensions update in real time. Move the sliders, see why a stock at +8% with 30-min velocity outperforms a stock at +8% with 90-min velocity.
Or skip straight to the live performance log and see how the algorithm actually performed against real market outcomes across every trading day since launch. Wins and losses both. No filter.
If you want the alerts delivered as they fire — email instant on Scout, SMS and browser push on Pro — see pricing.
Five dimensions. Nine gates. One alert when the math says yes. That's the deal.
Chris Baszto
Founder, Squintz.AI
Squintz.AI is not a registered investment advisor. Nothing in this article is financial advice. Past algorithm performance does not guarantee future results.