NSE · Minervini-style screener

The daily VCP shortlist for NSE, ready before market open.

Every trading day, Coil scans ~2,680 NSE stocks against Mark Minervini's Trend Template and Volatility Contraction Pattern criteria, then lists the ones that matched — sorted by RS, not by opinion — plus a global-market read. A list of what met the criteria, not a list of what to buy.

A screener, not a tip service. Coil shows objective criteria matches. You make every decision.

Base tightening · LLOYDSMEVCP · pivot 1.1%
Contractions 3Depth 11.6% → 7.2%Volume drying
What you get

Four things, every trading morning

The whole scan runs before you wake up. You open one page.

Daily VCP shortlist

Stocks that matched the Trend Template and a valid tightening base — sorted by RS, with contraction stats and how far below the pivot. A criteria match, not a call to buy.

Global market report

Objective exposure read: India breadth, distribution days, plus S&P, Nasdaq, VIX and gold status — reported as indicator states, not forecasts or calls to act.

Fundamentals overlay

EPS & sales YoY chains with acceleration flags, ROE, and the "Code 33" all-cylinders signal — right beside the chart pattern.

Alerts & export

A one-click TradingView watchlist, so the names are on your chart seconds after the scan lands.

New to this?

Learn the method before you read the list

Coil is built on Mark Minervini's published methodology — not a black box. Six terms you'll see on every report, explained plainly.

Every stock's life cycle runs through four stages: Stage 1 (basing, low volume, "watch, don't trade"), Stage 2 (advancing — the stage this methodology treats as the accumulation phase, where institutions are actively buying), Stage 3 (topping / distribution), and Stage 4 (declining). Coil only ever surfaces stocks that objectively match the criteria for Stage 2.Originally Stan Weinstein's framework, refined by Minervini. Described here for educational reference — not a statement that any stock is a good investment.
Eight objective checks a stock must clear before it's considered a confirmed Stage 2 uptrend — price above its 50/150/200-day averages in the right order, the 200-day average sloping up, price at least 25-30% above its 52-week low and within 25% of its high, and an RS Rating of 70+. 98% of big winning stocks were already in a confirmed Stage 2 uptrend before their major advance — waiting for confirmation costs little and filters out most losers before you even look at the chart pattern.
A 1-99 percentile ranking of a stock's price performance against every other stock in the market — not a raw return number. RS 90 means it's outperformed 90% of all NSE stocks. The Trend Template requires 70+; genuine market leaders are usually 80-90+. Coil computes this from a 3/6/9/12-month blended return, ranked across the full ~2,680-stock universe every day.
A stock in a Stage 2 uptrend pulls back and recovers in a series of contractions, each one tighter than the last — e.g. 25%, then 15%, then 8%, then 3-4% — as selling pressure dries up and volume fades. The buy zone is the top of the final, tightest contraction (the pivot); the stop sits just below that contraction's low, which is what makes the risk on the trade small and well-defined. This is the actual chart pattern Coil's algorithm detects every day.
Minervini's rule: never take a trade unless the potential gain is meaningfully larger than what you're risking. The reason it works isn't "win more often" — it's that a favorable payoff ratio can be profitable even at a sub-50% win rate. In Coil's own backtest (a 5% hard stop, held until price closed below its 20-day moving average — a real exit rule, not a fixed target), the win rate came out to 40.6%, yet the expectancy was still positive: (40.6% × +10.9%) + (59.4% × −1.9%) = +3.29% per trade. The average winner ended up over 5× the average loser — that asymmetry, not the hit rate, is the mechanism. See the full honest backtest — including where it underperformed a simple Nifty buy-and-hold — for the real numbers.
We ran the actual screening code against real historical NSE prices and published the result — wins, losses, and the parts that don't flatter it (the simulated account trailed the Nifty in this sample). No cherry-picked stock stories, no "look what you'd have made" pitch — just the aggregate, honestly reported.Read the full backtest report →
Pricing

Start free. Upgrade when it earns its keep.

Priced for Indian retail traders. Annual plans save ~2 months and cut churn.

Free
₹0
forever
  • Top 3 setups, 1-day delayed
  • Trend Template pass count
  • Full daily shortlist
  • Market report & alerts
Most popular
Pro
₹499 /mo
or ₹4,999/yr — save 16%
  • Full daily VCP shortlist
  • Global market report
  • EPS/Sales + Code 33 overlay
  • TradingView export
Premium
₹1,299 /mo
or ₹12,999/yr
  • Everything in Pro
  • Custom scan parameters
  • Backtest & historical bases
  • Portfolio & position tracking
  • Priority intraday refresh
Coil is an educational stock-screening tool, not an investment adviser. It reports objective technical and fundamental criteria — no buy/sell recommendations, target prices or advice. We are not SEBI-registered as a Research Analyst or Investment Adviser. Markets carry risk and you can lose money; do your own diligence. Disclaimer & terms
Coil

Welcome back

Log in to see today's shortlist

New to Coil? Create an account

Desk

Loading…

Open positions

Episodic pivots

Chart

Click any position or focus name to load it

Focus list

Accelerating earnings

Watchlist

MMarketSmith leaders

VCP setups

Episodic pivots

Loading…
What this screen is, and what it is not

This replicates the widely-shared Chartink “episodic pivot” scan exactly — three clauses on daily bars, across the full listed universe:

  1. volume > 250,000
  2. volume > 3 × sma(volume,50) as of yesterday
  3. close / previous close > 1.04

No Trend Template gate, on purpose. An episodic pivot happens to a stock that has gone nowhere; requiring a confirmed Stage 2 uptrend would reject the setup by construction. Most names here will not appear in the VCP shortlist, and that is correct.

Read the annotation columns, not the headline. The screen itself has no notion of prior neglect, and without it “episodic pivot” degenerates into “today’s big movers”: on 20 Aug 2026 twelve of its top twenty were sugar stocks — one sector news event counted as twelve independent signals. The Prior 65d and Range columns are what make that visible — sort on either to bring the genuine setups to the top. It is also the only variable that separated outcomes across 2,039 historical hits; the volume multiple did not, and in fact got monotonically worse as the surge grew.

The honest state of the evidence. Tested point-in-time on NSE, this setup has a median 20-day return of −2.75% and a 41% win rate. Micro-caps under ₹500 cr are materially worse (−7.65% median, 29% win, and that held out-of-sample). Nothing here is a recommendation; the screen exists so the setup can be watched and judged on your own tape, not because it has been shown to work.

The two clauses the published screen is missing

Both are computed here and neither is folded into chartink_pass — that field means “what the published screen returns”, and quietly tightening it would make the replication a lie. Every hit is listed; these are columns you sort on and a tag on the ticker, not a filter that decides what you may see.

  • Neglected — the stock went nowhere or fell over the prior 65 sessions. This is the clause that does the actual discriminating: across 2,039 point-in-time hits the prior 65-day return separated outcomes and the volume multiple did not.
  • Sideways — genuinely range-bound, not merely flat on net. A stock that ran +40% and gave it all back nets to zero and would pass a neglect test on its own while having been anything but quiet. Thresholds: net move ≤30% and a prior range ≤60%, carried from the OHLC scanner, which takes them from Qullamaggie’s “gone sideways for 3–6 months”.

Range is measured on closes, since the bhavcopy carries no intraday extremes — so a stock judged range-bound here is, if anything, more so than the number says.

Ticker Change Vol × avg Volume Setup Prior 65d Range Mkt Cap Size Close Turnover RS EPS YoY (Q-2→Q-1→latest) Sales YoY (Q-2→Q-1→latest) Margin trend Code33 ROE% Stage 2 Chart / report

Today's VCP shortlist

Loading…
Market pulse
Suggested exposure — by segment
Reading conditions…
Actionable today
at a buy point setups passing
at or within 2% of the pivot
Where the strength is leading cap segment
Where the weakness is weakest cap segment — avoid, don't bottom-fish
Is the advance healthy?
above 200-DMA
distribution days · 25 sessions
Where the money is flowing sector leaders and laggards
Industry groups — strongest, and the tail
By NSE sector — and who leads it
flowing in (75+) participating lagging money leaving trailing return over the selected window
Today’s run
NSE universe scanned
Trend Template pass
VCP + RS ≥ 70 matched
Tickers dropped (fetch failures)
Trend: 🚀 strong accel · accelerating · stable · decel · latest negative 🌱 early-stage: first base since IPO tinted columns = the decision set: leadership, fundamentals, setup, timing
Focus? Ticker RS EPS Rtg Cap / Mkt Cap Chart (~6mo, dashed = pivot) VCP BelowPiv Base age Code33Base Long-Term Trend Industry Group Catalyst EPS YoY (Q-2→Q-1→latest)Sales YoY (Q-2→Q-1→latest)Margin trendInstitutions ROE% Catalyst / newsAboutChart / report

Global market conditions

Loading…
📖

Loading…

Comparison window

India vs the world

The same mechanical test applied to the major global indices — price against its own 50- and 200-day averages.

Relative performance — India against the majors, rebased to 100

Global asset classes

What capital is doing outside equities — the risk-on / risk-off backdrop an equity screen sits inside.

Relative performance — rebased to 100

Your watchlist

— tracked setups
Growth research not configured
Free options — pick either
  1. Google Gemini (free tier): go to aistudio.google.com/apikey, sign in with a Google account, press Create API key. Starts with AIza.
  2. Groq (free tier): go to console.groq.com/keys, sign in, press Create API Key. Starts with gsk_.
  3. Paste the key above and press Save key — the provider is detected from the key itself, and the key is tested before it is stored.
  4. Press Generate for focus list.
Stored encrypted with the same scheme as your broker credentials, and never shown again by any screen or API. Gemini and Groq both have free tiers that comfortably cover ~23 names a day; an Anthropic key (sk-ant-) also works and is paid. Research is cached per scan date, so a name is generated at most once a day, and runs automatically each evening once the scan finishes.

Star any row in Today's Scan to track it here. Status updates each morning as the scan re-runs against the same base.

Open positions

No broker data fetched yet
Broker not connected
Read-only mirror of your Angel One holdings. Coil never places, modifies or cancels an order.
Portfolio total

Goal & leverage

What actually gets you to ₹60,00,000 — trades needed at each win rate and payoff

Trade journal

— trades logged
Broker not connected
Loading analytics…

Feedback

Log a closed trade to unlock feedback.
What you keep doing

Loading…

Monthly return on capital

Loading…

Account growth (realized P&L on starting capital)
Trade stats
System quality

Top winners

Share of total winning P&L in the window -- a book leaning on 2-3 names is riding concentration, not broad edge.

Top losers

Share of total losing P&L -- worth a specific look at what went wrong on these.

Performance by market cap tier

NSE official index membership (Large/Mid/Small/Micro), not a guessed price cutoff -- see Coil's own cap-tier classification.

Performance by setup type

Minervini's own review method: segment your ledger by pattern (VCP, Power Play, Pullback, Earnings Gap...), not just overall -- to find which setups you personally execute best, and size accordingly.

Backtest results

Real signals from the actual screen, on a ₹10,00,000 account · per-trade ₹ shown on an ₹80,000 stake (8%) · not investment advice

📈 2023-24 — Nifty bull market

2023-01-01 → 2024-12-31 · 341 signals across ~2,330 NSE stocks
₹10,00,000 ₹16,40,389 +₹6,40,389 · +64.0% Nifty over same period: +29.9%
win rate 36.4% · expectancy +3.22%/trade · max drawdown −9.5%
Rs 10 lakh account compounding through 2023-24
5 sample winners+₹83,208
KIRLOSENG12 Jul → 14 Aug '23+20.9%+₹16,736
SONATSOFTW12 Oct → 09 Nov '23+20.9%+₹16,720
NITCO24 Apr → 09 May '24+20.8%+₹16,656
SAKSOFT06 Apr → 21 Apr '23+20.8%+₹16,632
NAGREEKEXP01 Dec → 07 Dec '23+20.6%+₹16,464
Typical winners at the +20% profit-zone cap — 124 of 341 signals ended positive.
5 sample losers−₹29,424
NAVKARCORP08 Feb → 12 Feb '24−7.5%−₹6,000
OMAXE22 Nov → 28 Nov '23−7.5%−₹5,992
ARROWGREEN26 Aug → 28 Aug '24−7.5%−₹5,968
ECLERX18 Jul → 26 Jul '23−7.3%−₹5,816
KOKUYOCMLN20 Jun → 23 Jun '23−7.1%−₹5,648
Typical stop-outs at the 5-7% structural stop — the cost of finding the winners.

The honest math: a winner pays ~2.8x what a loser costs (+₹16-17k vs −₹6k on the same stake), so 36.4% winners still compounds the account +64% — four consecutive quarters at +12-15% while the market trended, flat after it topped. These 10 trades are representative samples from the full 341, not the best ones. Full methodology in the published backtest report.

🛡 Last two quarters — correction

2026-01-18 → 2026-07-18 · 12 signals · the Market Exposure Model held cash 96% of days
₹10,00,000 ₹9,86,643 −₹13,357 · −1.3% Nifty over same period: −4.9%
capital preserved by staying out · max drawdown −2.7%
Rs 10 lakh account through the last two quarters
All 3 winners+₹39,752
PRECWIRE10 Feb → 02 Mar '26+21.6%+₹17,312
KIRLOSENG11 Feb → 09 Mar '26+14.2%+₹11,368
GLENMARK12 Feb → 24 Apr '26+13.8%+₹11,072
All three target hits the window produced — shown in full, nothing held back.
3 of 7 stop-outs−₹18,064
SANDHAR11 Feb → 11 Feb '26−7.5%−₹6,000
SHRIPISTON12 Feb → 19 Feb '26−7.5%−₹6,024
CRAFTSMAN12 Feb → 27 Feb '26−7.6%−₹6,040
Remaining: VENUSREM −7.1%, LTF −8.2%, ZFCVINDIA −8.4%, 2 breakevens, IDFCFIRSTB −17.5% (overnight gap — 2 such cases in 395 signals).

What this window really shows: the exposure gate opened for just 5 days all half-year — every trade fired in that one mid-February week, which proved a bull trap. The system's −1.3% beat the index's −4.9% mostly by not playing. In a correction, the product's job is capital preservation, and that is what the flat blue line above is.

Reports

Readable one-page briefs on what is actually driving each setup

Build a report

Pick a screen; the brief covers every stock on it — the chart, what the base is doing, and which fundamentals are carrying it. Opens in a print view, so Save as PDF in the print dialog gives you the document.

Generated from the same scan data shown on screen. Descriptive, not a recommendation — it reports what the criteria matched, not what will happen.

Trade plan

The rules, then the arithmetic. Both are settled before you buy.

Loading sizing…

The rules, at a glance

Stop loss8% maxBelow the final contraction’s low. 8% is the ceiling, never widened — and the average lands at 5–6% because most stop out sooner.
Profit target15–25%Two to three times the stop. Most are taken in 4–8 weeks.
Reward / risk2:1 min3:1 preferred. No target at 2× the risk means no trade.
Risk per trade1–1.5%Of total equity; 1.25% typical. 2.5% is the absolute ceiling — past it risk of ruin balloons. Below ~0.25% you cannot get anywhere.
Position size25% maxAt full size, and also the optimum for a 2:1 trader. 8–12 names, aiming for 4–5 big ones.
Batting average40% or lessRitchie runs just under 40%; Minervini was in the 20s through 2022. The edge is the ratio, not the hit rate — a hit-rate edge collapses hardest when pressured.

The pair is what matters, and they are tethered: position size × stop = risk of total equity. At 1.25%, a 25% position forces a 5% stop, a 12.5% position allows 10%. A bigger position is bought by a tighter stop, never by more appetite.

1 · Choosing the stock

  1. Stage 2 only.All 8 Trend Template criteria. Never a stock below its 200-day average, however good the story.
  2. Leadership, not laggards.RS 80–90+, ideally in a top-ranked industry group. RS 70 is the floor.
  3. Earnings and sales accelerating.Code 33 — earnings, sales and margins improving together — is the strongest form.
  4. A proper base.2–4 contractions, each tighter, volume drying up, 4+ weeks. No base, no trade.
  5. Within reach of the pivot.The methodology treats the buy zone, not a 15%-extended price, as the low-risk reference point — lateness shows up as a position-sizing problem that cannot be fixed later.

2 · Pyramiding into it

A full position is arrived at, never opened. Each add is paid for by the stock proving itself.

QuarterAt the turn inside the final contraction — close crosses above the prior day’s close. Earliest and lowest entry, before the breakout confirms.stop −5%
HalfOn the breakout through the pivot, volume expanding. You are now adding to a position already in profit.stop below base
FullAt the next range pivot as the trend stair-steps higher.stop to breakeven
Only ever add to a winning position. Adding to a loser is averaging down — the one habit Minervini says will “guarantee disaster.”

3 · Booking profits

  • Sell into strength, while buyers are still eager — not after the move rolls over.
  • Take a third to a half off at 15–20%, especially if it arrived in under three weeks.
  • Move the stop to breakeven once up 2–3× the risk distance. The trade can no longer hurt you.
  • Let the remainder run behind a trailing stop — the 50-day average, or the low of the latest consolidation.
  • Cut immediately below the stop. No averaging down, no widening, no “it will come back.”
  • Your average gain must be 2–3× your average loss. Track it; if it is not, the edge is arithmetic, not effort.

4 · Your account, one year

Not a projection — the arithmetic of the rules above, so the pace is concrete. Seeded from your saved account size .

A planning tool, not advice. It checks a plan you have already decided on against Minervini’s published limits; it cannot tell you whether the trade is a good idea.

How these stocks were selected

Mark Minervini's Trend Template & Stage Analysis — the exact criteria this screen applies

Why only Stage 2?

Stan Weinstein's stage model, as refined by Minervini, splits a stock's life into four stages. The screen buys in exactly one of them.

Stage 1Neglect / basing

Sideways after a decline. Moving averages flat and converging, volume low. Smart money accumulates quietly.

Watch, don't trade
Stage 2Advancing (markup)

Breaks out of the base on rising volume. Moving averages turn up and align. Institutions drive the advance — a series of higher highs and higher lows.

The only stage to buy
Stage 3Topping / distribution

Advance stalls, price gets choppy and volatile. Averages flatten; volume picks up on down days.

Take profits, no new buys
Stage 4Declining (markdown)

Breaks below flattened averages, which then turn down. Lower highs and lower lows.

Avoid entirely

The vast majority of big stock moves happen during Stage 2 — and 98% of big winning stocks began their major move only after they were already in a confirmed Stage 2 uptrend. Waiting for that confirmation costs very little and avoids most losers.

The Trend Template — 8 criteria

A stock must satisfy all eight simultaneously to appear on this screen. Partial qualification doesn't count. These are computed directly from price data on every NSE stock, every trading day.

  1. Price above both the 150-day and 200-day moving averages.The baseline filter — Minervini won't consider a stock below its 200-day average even if the fundamentals look strong.
  2. The 150-day average is above the 200-day average.Medium-term strength confirming, not contradicting, the long-term trend.
  3. The 200-day average is trending up for at least 1 month (preferably 4–5+).A rising long-term average is what separates a real uptrend from a bounce.
  4. The 50-day average is above both the 150-day and 200-day.Proper moving-average alignment — short above medium above long.
  5. Price is above the 50-day average.The stock is leading its own short-term trend, not lagging it.
  6. Price is at least 25% above the 52-week low.Well off the bottom. Many of the best candidates are 100%+ above their lows.
  7. Price is within 25% of the 52-week high.Near highs, not in a deep hole. The closer to a new high, the better.
  8. RS Rating of at least 70 — preferably 80 or 90+.Relative Strength ranks the stock's price performance against every other NSE stock, 0–99. 70 means it has outperformed 70% of the market.

The Trend Template is a qualifier, not the whole strategy — a necessary first filter. Stocks that pass still need a proper base before there's an entry worth taking.

Then: the Volatility Contraction Pattern (VCP)

Among Trend Template passers, the screen looks for a base where volatility is contracting — each successive pullback shallower than the last, on progressively lighter volume. That tightening is the visible signature of supply drying up: sellers are being exhausted and shares are moving into stronger hands.

  • 2–4 contractions, each meaningfully tighter than the one before
  • Deepest pullback ≤50%, tightest ≤15% — and the newest leg at least 20% tighter than the oldest
  • Volume declining from the first leg to the last — the dry-up that confirms the pattern
  • The floor holds — the base isn't quietly making lower lows inside a declining channel
  • Minimum 4 weeks of base-building (2 weeks only for a genuine Power Play — a 100%+ move in under 8 weeks)
  • Not yet broken out, and currently within ~10% below the pivot — the actionable buy zone

Open View chart on any row to see the measured contraction legs and the pivot drawn on that stock's own chart — the same numbers the screen used to judge it.

What the other columns mean

RS Rating
Percentile rank (0–99) of a weighted 3/6/9/12-month return blend, ranked against the full NSE universe. Same construction as IBD's RS Rating. 70 is the gate; 90+ is leadership.
EPS Rating
Percentile rank of earnings growth and stability, 1–99.
Base age
How long the current base has been building (weeks since its pre-base top) against how long its own depth demands — about a week of repair per 5% of decline, so a 25% fall asks for roughly 5 weeks. 1.0× means the base has served its time. Measured from price alone, so it reads the same on a VCP, a cup-and-handle or a Darvas box. It tells you where a base is in its life; tested over 54,965 Stage-2 days it does not predict which base works, so it is not sortable and carries no score.
BelowPiv
How far below the pivot the stock is trading, in percent. Near zero means it's at the buy point.
Code 33
Minervini's "hitting on all cylinders" signal: three consecutive quarters where earnings, sales and margins are all accelerating together. Blank means unknown (e.g. a bank with no operating-margin line), which is not the same as "no".
Long-term trend
Where price sits against its 50-week and 200-week averages — established leader, young leader, or still recovering.
Industry group
The stock's group and that group's rank by relative strength. Minervini favours leaders inside leading groups.

This screen reports objective, mechanical criteria matches on public price and fundamental data. It is not investment advice, not a recommendation to buy or sell, and passing the screen is not a prediction. Do your own research and manage your own risk.

Account & billing

Manage plan, alerts and payment

Current plan

Loading…

Informational screener only — not investment advice, not SEBI-registered. You make every trading decision.
The Focus list
Why these few, out of every Trend Template passer

Why earnings decide membership

Every row in this table is already in a Stage 2 uptrend — that is what the Trend Template tests. So “strong chart” cannot be the thing that narrows 274 names down to a handful; they all have one. What separates a position from a passer is whether earnings are doing the work underneath the price.

Price can run on sentiment for weeks. It needs earnings to run for quarters.

Minervini’s premise is that superperformance comes from a company whose profits are accelerating — not merely growing. Institutions buying over months are what moves a stock hundreds of percent, and they buy an improving earnings stream. The chart shows you that accumulation is happening; the earnings tell you whether it has a reason to continue.

What gets a stock onto this list

  • EPS growth accelerating for at least 2 consecutive quarters — the growth rate improving, not just positive.
  • Sales growth accelerating for at least 2 quarters. Earnings without sales is cost-cutting, which has a short shelf life.
  • EPS +20% and sales +20% in the latest quarter — Minervini’s stated screening floor (his band is +20–50%+, “bigger is better”).

Acceleration is measured as a streak rather than a percentage on purpose. A company recovering from a near-zero base can print EPS growth of 2,400% — a real number in today’s data, and a meaningless one. A streak of consecutive improvements cannot be manufactured that way.

“Breakout year”

A growth rate only means something against the company’s own history. A stock growing 25% sounds healthy — unless it has grown 30% a year for five years, in which case it is quietly decelerating.

So the latest EPS growth is compared with the company’s long-run compounded profit growth (the faster of its 3-year and 5-year rate):

  • breakout yr current growth is above its long-run rate — a genuine inflection. BIRLACABLE: growing hard against a −20% three-year rate — a company that was shrinking has turned.
  • below LT rate still accelerating, but slower than its own history. Not disqualifying — the acceleration is real — but it is business as usual rather than an inflection.
  • no LT history too recently listed to have a 3-year rate. Deliberately not penalised: young companies are exactly the population superperformers come from.

The two states

  • ◆ FOCUS  the earnings qualify and a base is forming — there is a decision attached today, at or near a pivot.
  • ◇ FOCUS  the same earnings strength with no base yet. The company qualifies; the chart does not. These are the names to watch — a base you have already been following is the one you act on without hesitating.

Thresholds and definitions from the wiki: earnings-and-fundamentals.md (concrete thresholds, the 3–5 year comparison, Code 33) and trend-template.md. This is a mechanical reading of measured data, not advice.

LLOYDSME
Pattern cross-check · which of the algorithm's own criteria the chart confirms or misses
Open full size ↗
Annotated VCP chart
3 of 3 pattern criteria confirmed against the raw chart
What the chart shows, checked against each criterion
Trend Template check: price sits above the 50/150/200-day averages in the documented order, and the 200-day average is sloping up over a +81% price move into the base — matches the criterion as coded. Base check: since late May, price has carved three pullback-and-recovery legs in a narrowing band near the highs — matches the tightening-leg criterion as coded.
Worth flagging: depths don't strictly narrow leg-over-leg — 6.0% → 7.2% is a slight widening on the final step. The algorithm allows this via a documented "grace step" since both legs are already tight, but it's worth surfacing rather than hiding.
Volume: tail-volume isn't a clean decline either (the middle leg spikes above the oldest). The algorithm compares the latest leg (331K) against the average of every earlier leg (512K) — smooths out exactly this noise — and by that real test, volume genuinely is drying up.
Timing note: a live re-fetch shows the last close already sitting fractionally above the marked pivot level as of this check — reflecting price movement since the morning scan ran, not a signal to act on. Exactly the gap a same-day status-change alert would close.
What this is, and isn't: this cross-check re-reads the chart image against the same objective criteria the morning scan already applied — it does not use any information beyond the chart, and it is not a recommendation, opinion, or rating on whether to buy, hold or sell. It can be wrong. Verify every criterion above against the live chart and the stock's own filings before acting on anything shown here.