All screens

CANSLIM & Growth

Full CANSLIM (All 7 Factors)

Full CANSLIM (All 7 Factors) is a CANSLIM & Growth screen. It checks every NSE-listed stock against 1 condition computed from nightly data, after excluding heavily pledged promoters and very small market caps. This page explains the rule, each figure and its source. It lists no stocks and is not advice.

What it does and why

William O'Neil's CANSLIM methodology, published in 'How to Make Money in Stocks', is one of the most empirically back-tested growth frameworks in markets — O'Neil studied every major market winner from 1880 to 2009 and derived 7 common characteristics. The critical insight is that great stocks share both fundamental momentum (accelerating earnings) and price/volume momentum (institutional accumulation) at the precise point of entry. Screeners that use only C — the most commonly reproduced factor — capture a fraction of the signal: they find companies with good recent earnings but miss those entering a proper base breakout (N), receiving heavy institutional buying (I), or leading their sector on relative price strength (L). This screen wraps QP2's score_canslim() implementation to apply all 7 factors simultaneously — do not re-implement the individual factor logic here. The score is composite: a company passing 6 of 7 is a strong candidate; 7 of 7 is a rare, high-conviction setup that has historically preceded outsized price moves.

The rule, step by step

A stock must satisfy every condition below. Conditions are grouped under the pillar they test.

Earnings Factors (C + A)

Described in the philosophy; not a pass/fail condition in the current rule

Timing Factors (N + S + M)

Described in the philosophy; not a pass/fail condition in the current rule

Smart Money Factors (L + I)

Described in the philosophy; not a pass/fail condition in the current rule

General conditions

  • CANSLIM Composite ≥ 0.6

Hard excludes

  • Promoter pledge above 30% of the promoter's holding
  • Market cap below ₹500 crore
Passes the screen

Ranked by CANSLIM Composite, highest first.

The figures it uses

CANSLIM Composite

Used in a condition
Formula
Composite of the seven CANSLIM factor scores as defined in rules/canslim.py; written only when the independent verifier clears it, otherwise blank
Input fields
canslim_c, canslim_a, canslim_n, canslim_s, canslim_l, canslim_i, canslim_m
Source of record
Upstox · public historical candles, NSE_EQ|{ISIN} (no auth)FinEdge · /api/v1/daily-quotes/{symbol} (fallback)FinEdge · /api/v1/financials/{symbol}?statement_code=pl&period=annualFinEdge · /api/v1/financials/{symbol}?statement_code=pl&period=quarterlyFinEdge · /api/v1/financials/{symbol}?statement_code=cf&period=annualFinEdge · /api/v1/shareholdings/pattern/{symbol}?period=quarterlyFinEdge · /api/v1/shareholdings/summary/{symbol}?period=quarterly
Corporate actions
Adjusted for corporate actions before use
Refresh
Recomputed nightly (06:30 IST job); rows older than 3 days are excluded from screens

Promoter Pledge

Hard exclude input
Formula
Pledged shares as a share of the promoter's own holding: pledgedSharesPct ÷ promoter holding × 100; blank when the quarter is not listed
Input fields
pledgedSharesPct, promoter holding
Source of record
FinEdge · /api/v1/shareholdings/summary/{symbol}?period=quarterlyFinEdge · /api/v1/shareholdings/pattern/{symbol}?period=quarterly
Refresh
Recomputed nightly (06:30 IST job); rows older than 3 days are excluded from screens

Market Cap

Hard exclude input
Formula
Close × paid-up equity shares ÷ 10,000,000 (₹ crore)
Input fields
close, paidUpEquityShares
Source of record
Upstox · public historical candles, NSE_EQ|{ISIN} (no auth)FinEdge · /api/v1/daily-quotes/{symbol} (fallback)FinEdge · /api/v1/shareholdings/summary/{symbol}?period=quarterly
Corporate actions
Adjusted for corporate actions before use
Refresh
Recomputed nightly (06:30 IST job); rows older than 3 days are excluded from screens

What each figure means

C — Current Quarterly EPS Score

Binary 0 or 1: 1 if the most recent quarter's EPS (continuing operations) is >25% higher than the same quarter in the prior year, else 0. Computed by score_canslim() in src/quantro/rules/canslim.py.

High is better

A — Annual EPS CAGR Score

Binary 0 or 1: 1 if 5-year annual EPS CAGR from continuing operations exceeds 25%, else 0. Computed by score_canslim() in src/quantro/rules/canslim.py.

Filters out companies with a one-quarter earnings explosion driven by a windfall, merger, or tax benefit. A business must have compounded EPS at >25% annually for five years to score here — that is a structural earner, not a one-year event. FinEdge retroactively adjusts EPS for splits and bonuses, making this figure reliable where Upstox historical data would introduce errors.

High is better

N — 52-Week High Proximity Score

Binary 0 or 1: 1 if the current price is within 15% of the 52-week high price, else 0. Computed by score_canslim() in src/quantro/rules/canslim.py.

Counterintuitive to value investors: O'Neil deliberately required stocks to be near their highs, not their lows. The logic is that a stock making new highs has already overcome overhead supply — every prior seller has been bought out, and the path of least resistance is up. Stocks 'near the high' (within 15%) are forming or breaking out of bases.

High is better

S — Volume Surge Score

Binary 0 or 1: 1 if recent volume (last 10 days) is >40% above the 50-day average volume, else 0. Computed by score_canslim() in src/quantro/rules/canslim.py.

Volume surge on an upside breakout is O'Neil's confirmation signal that institutional money is entering. Small retail buying cannot move a mid-cap stock 40% above its average volume — only funds and large buyers can. A price breakout without volume surge is considered a 'low-conviction' breakout that frequently fails.

High is better

L — Leader (Relative Strength) Score

Binary 0 or 1: 1 if the stock's 12-month price return percentile rank within the NSE universe exceeds the 70th percentile, else 0. Computed by score_canslim() in src/quantro/rules/canslim.py.

High is better

I — Institutional Sponsorship Score

Binary 0 or 1: 1 if the combined FII + DII shareholding percentage increased in the most recent two quarters, else 0. Computed by score_canslim() in src/quantro/rules/canslim.py.

Institutional accumulation is the jet fuel for a sustained price move. A stock with strong fundamentals that institutions are actively adding to has both the catalyst (earnings) and the buyer (smart money). Institutional selling, by contrast, is an early warning sign even when quarterly results look fine.

High is better

M — Market Direction Score

Binary 0 or 1: 1 if Nifty 50 is above its 200-day simple moving average, else 0. Computed by score_canslim() in src/quantro/rules/canslim.py.

High is better

Total CANSLIM Score (0–7)

canslim_c_score + canslim_a_score + canslim_n_score + canslim_s_score + canslim_l_score + canslim_i_score + canslim_m_score. Range 0 to 7. Computed by score_canslim() in src/quantro/rules/canslim.py.

High is better

Try the rule

Type hypothetical values to see which conditions they satisfy. These are not real stocks and nothing here is stored.

  • CANSLIM Composite ≥ 0.6—

Enter values to begin

How sensitive is it?

How many stocks pass if this threshold were set differently. Counts only; no stocks are named.

A worked example

Loading the worked example…

Sign in with a completed risk profile to check any stock against this rule.

Evidence

What the harness measured

no_verified_figureNot yet tested

We have not measured this screen yet, so there is no record to explain.

Live monitoring

  • 5-day IC -0.038 · signal date 2026-10-14 · n 4447
  • 22-day IC -0.029 · signal date 2026-09-12 · n 3840

This is a historical, statistical measurement produced by FINOME TECHNOLOGIES PVT LTD's research harness on past data. It is not a prediction, and past results do not indicate future results. The universe is today's Nifty 500 constituents, so the sample is affected by survivorship bias. It describes how a screen's selections behaved in the past and does not constitute investment advice or a recommendation.

Run this screen

Run this screen

Rule version 1.0.0

Questions

How is this screen calculated?
Each stock is tested against 1 condition using figures computed from exchange prices and company filings, adjusted for corporate actions. The rule is versioned; this page shows version 1.0.0.
How often does the screen update?
The figures are recomputed once each trading day after the nightly compute. A stock whose figures are more than three days old is left out rather than shown stale.
Is this investment advice?
No. This is educational material describing a screening method. It does not recommend any security and does not consider your circumstances.
Educational use only — GoQuant is a research tool. This page explains a screening method and is not a recommendation. Investment advice is provided by FINOME TECHNOLOGIES PVT LTD (AltQube), SEBI-registered Investment Adviser, registration no. INA000018373, under a signed advisory agreement and after a risk profile. Past performance is not indicative of future results.