← All skills
canslim-screener
Use when the user wants a CANSLIM stock screen: growth-stock analysis, momentum identification, or ranking stocks by earnings, growth, and price strength using O'Neil's methodology.
About this skill
Use when the user wants a CANSLIM stock screen: growth-stock analysis, momentum identification, or ranking stocks by earnings, growth, and price strength using O'Neil's methodology.
SKILL.md
canslim-screener.SKILL.mdPlace it in your Syntic skills folder. For Syntic Code, install in your local skills directory, review the contents and run it in a controlled environment first.
---
name: canslim-screener
description: Use when the user wants a CANSLIM stock screen: growth-stock analysis, momentum identification, or ranking stocks by earnings, growth, and price strength using O'Neil's methodology.
category: Screening
version: 1.0.0
tools: []
---
# CANSLIM Stock Screener
Screen and rank US growth stocks using William O'Neil's CANSLIM methodology: **C**urrent earnings, **A**nnual growth, **N**ewness/new highs, **S**upply/demand, **L**eadership/RS rank, **I**nstitutional sponsorship, **M**arket direction. This covers the full 7-of-7 component method (100% of the methodology), not a partial version.
## When to Use
Use for requests like "find CANSLIM stocks," "screen for growth stocks using O'Neil's method," "which stocks have strong earnings and momentum," "stocks near 52-week highs with accelerating earnings," or any request for multi-bagger/growth candidates via a systematic, historically-grounded selection process. Not a fit for pure value/income screening (favor P/E- or dividend-led criteria instead) or for bear-market conditions, where the M component will flag caution rather than produce buy candidates.
## Component Weights (O'Neil weights)
C (Current Earnings) 15% · A (Annual Growth) 20% · N (Newness) 15% · S (Supply/Demand) 15% · L (Leadership/RS Rank) 20% · I (Institutional) 10% · M (Market Direction) 5%.
**Weighted RS formula** for the L component: `Weighted RS = 0.40 × rel_3m + 0.30 × rel_6m + 0.30 × rel_12m`, where each `rel_` term is the stock's return relative to a benchmark (default `^GSPC`; SPY/QQQ/IWM are common alternates) over that lookback. Re-normalize the weights across whatever periods are actually available. Fallback hierarchy when multi-period data is incomplete: (1) no benchmark available → use weighted absolute stock performance with a 20% score penalty; (2) all multi-period windows missing but ≥50 bars of price history exist → fall back to trailing 365-day absolute return (still with the 20% penalty if no benchmark); (3) fewer than 50 bars of history → score the L component 0 and flag the data-quality error.
## What Each Component Measures
- **C (Current Earnings)**: quarterly EPS and revenue growth, year-over-year.
- **A (Annual Growth)**: 3-year EPS CAGR and its stability.
- **N (Newness)**: distance from the 52-week high and breakout behavior.
- **S (Supply/Demand)**: volume-based accumulation vs. distribution (up-day volume vs. down-day volume).
- **L (Leadership)**: 52-week relative strength vs. the S&P 500 via the weighted RS formula above.
- **I (Institutional)**: institutional holder count and ownership percentage.
- **M (Market Direction)**: S&P 500 trend vs. its 50-day EMA; when the market is in a confirmed downtrend (M scores near 0), this is a hard override — see Bear Market Rule below.
## Two-Stage Approach
Think of the screen as two stages: (1) an analysis stage where every candidate in the universe is scored across all 7 components using web_search-gathered data, and (2) a reporting stage where candidates are ranked by composite score and turned into an actionable, plain-language report. Keep the universe manageable — a focused list of 20-40 stocks the user cares about (or a well-known index subset) analyzes far more reliably through manual research than trying to sweep hundreds of tickers.
## Analysis Workflow
1. **Establish the universe** — either a user-specified list of tickers, or a reasonable default set (e.g. large, liquid names by market cap) if none is given.
2. **Assess market direction (M) first** — determine whether the S&P 500 is above or below its 50-day EMA; this gates the whole screen (see Bear Market Rule).
3. **Gather per-stock data** via web_search for each candidate: quarterly EPS/revenue growth (C), 3-year EPS CAGR (A), % off 52-week high and breakout status (N), volume accumulation/distribution pattern (S), 3/6/12-month relative performance vs. the benchmark (L), institutional holder count and ownership % (I).
4. **Score each component 0-100** against the criteria above, then compute the composite as the weighted sum using the O'Neil weights.
5. **Rank** candidates by composite score, highest first, and identify the weakest component for each (the thing most likely to break the setup).
## Rating Bands & Guidance
- **Exceptional+ (90-100)**: all components near-perfect (roughly C≥85, A≥85, N≥85, S≥80, L≥85, I≥80, M≥80). Aggressive buy; position sizing guidance 15-20% of portfolio.
- **Exceptional (80-89)**: outstanding fundamentals plus strong momentum. Strong buy; standard sizing 10-15%.
- **Strong (70-79)**: solid across components with minor weaknesses. Standard buy; sizing 8-12%.
- **Above Average (60-69)**: meets thresholds with one weak component. Buy on pullback; conservative sizing 5-8%.
## Institutional Data Fallback
When direct institutional-ownership data (e.g. shares-outstanding-based figures) is unavailable or incomplete, fall back to institutional ownership percentage sourced via web_search from a screener site (Finviz-style data is a good proxy). This typically raises I-component confidence from a partial-data score around 35/100 up to 60-100/100 once ownership % and holder count are both known. Note in the output when a fallback source was used so the user can weigh data reliability. A holder count in the thousands with high ownership % (e.g. "6,199 holders, 68.3% ownership") is a strong institutional-sponsorship signal worth calling out explicitly ("superinvestor" territory).
## Worked Examples
- **Exceptional+ (97.2)**: "Explosive quarterly earnings (C=100), strong 3-year growth (A=95), at new highs (N=98), volume accumulation (S=85), RS leader (L=92), strong institutional support (I=90), uptrend market (M=100)."
- **Strong (77.5)**: "Strong earnings (C=85), solid growth (A=80), near high (N=70), accumulation (S=60), RS leader (L=75), good institutions (I=60), uptrend (M=90)."
These illustrate that a high composite score should be traceable, component by component, back to specific underlying numbers — never present a score without the breakdown that produced it.
## Bear Market Override
If the M component scores near 0 (confirmed downtrend), do not recommend buying regardless of how strong the other six components are — CANSLIM does not work well in bear markets, since roughly 3 of 4 stocks follow the market's trend. Guidance in that case: recommend raising cash (80-100%) and waiting for market recovery before deploying capital on any candidate.
## Presenting Results
Deliver a market summary (2-3 sentences on the M-component read, with an explicit bear-market warning if applicable), then the top candidates ranked by composite score. For each: the composite score and rating band, price and sector, the 7-component breakdown with the specific numbers behind each score — e.g. "C: 100 — quarterly EPS +45% YoY, revenue +X%", "N: distance from 52-week high and breakout status", "S: up/down volume ratio, e.g. 1.06 with an accumulation read", "L: 92 — 3m/6m/12m +12.4%/+18.7%/+44.1% (relative +5.2%/+8.3%/+22.0%), RS rating 88", "I: holder count and ownership %" — plus the weakest component and any data-quality caveats (e.g. institutional data sourced via fallback). A compact summary table (rank, symbol, composite score, rating, RS rating) above the detailed writeups helps the user scan quickly before reading the full breakdowns.
Close with grouped recommendations (immediate-buy / strong-buy / watchlist, each with the position-sizing guidance above), risk factors (sector concentration, data gaps, market-condition warnings), and next steps: deeper fundamental review of the top 3 candidates, checking upcoming earnings dates, reviewing charts for entry timing — or, if M is bearish, explicitly recommending the user wait rather than deploy capital.
Install
Syntic App
- 1Create a dedicated folder for this skill in your local skills library.
- 2Place SKILL.md into that folder.
- 3Restart Syntic and invoke this skill on matching tasks.
Syntic Code (CLI)
- 1Save SKILL.md in your local Syntic Code skills directory.
- 2Keep related files in the same skill folder.
- 3Run in a safe environment and validate outputs.