Back to catalog

indian-stock-sector-screening

Screen Indian sectors for S-curve stocks via Screener.in.

Category 📈 Indian Stock Sector Screening

Indian Stock Sector Screening

When to use

When Joseph asks to screen a sector for S-curve growth candidates, start a new sector watchlist, or run a cross-sector pure-play growth-compounder screen (PEG-as-a-gate). This is the breadth-first companion to indian-stock-analysis (which is depth-first: single stock, full template). Use this first to narrow to 2-3 candidates (per sector) or a top-5 cohort (cross-sector), then hand off to indian-stock-analysis for deep dives.

For the cross-sector variant, see references/growth-compounder-screen.md.

Workflow

1. Identify the candidate list

Start with the companies listed in the S-curve framework's hunting grounds (e.g., aerospace, EMS, healthcare). For new sectors, use Screener.in's industry classification or the peer comparison table of a known company in that sector.

2. Pull the peer comparison table (FAST — one navigation)

Navigate to the standalone page of the largest/most representative company in the sector:

browser_navigate → https://www.screener.in/company/{LEADER_TICKER}/

The peer comparison table on the standalone page shows ALL key metrics for the entire peer group simultaneously:

Column What it tells you
CMP Current price
P/E Valuation anchor
Mar Cap Rs.Cr. Size — determines if it's still early S-curve
Div Yld % Income component
NP Qtr Rs.Cr. Quarterly profit scale
Qtr Profit Var % Profit growth/decline trend
Sales Qtr Rs.Cr. Quarterly revenue scale
Qtr Sales Var % Revenue growth trend (KEY for S-curve)
ROCE % Capital efficiency — >15% threshold

This single table saves 5-7 browser navigations. From this table, immediately identify:

  • 🟢 DEEP DIVE candidates: High sales growth (>25%), decent ROCE (>15%), sensible P/E relative to growth
  • 🟡 WATCH candidates: Good metrics but one red flag (expensive, decelerating, promoter selling)
  • 🔴 PASS: Low ROCE, declining profits, absurd P/E, loss-making
  • ⚪ NOT S-CURVE: Quality companies with too large a base or too slow growth

3. Extract summary stats for the top 2-3 candidates

For each promising candidate, extract the key stats from the page snapshot:

  • Market Cap, Current Price, P/E, Book Value, Dividend Yield, ROCE, ROE, Face Value
  • These are ALWAYS visible on the standalone page without login
  • The machine-generated PROS/CONS provide quick sanity checks (but are sometimes wrong — verify)

4. Run the extraction script on the top candidate(s)

Use scripts/extract_screener_data.js from indian-stock-analysis skill via browser_console. On the standalone page (NOT consolidated), all financial tables render with numeric values — no login needed.

5. Populate a sector watchlist file

Save to /opt/data/wiki/wealth/invest/research/s-curve-sectors/s-curve-{sector-slug}.md using the S-curve framework from /opt/data/wiki/wealth/invest/research/s-curve-sectors/s-curve-framework.md.

Structure per company:

  • Summary metrics table (Revenue CAGR, PAT CAGR, OPM, P/E, PEG, ROCE, D/E)
  • Narrative: why it belongs on the list
  • Key concerns: what would kill the thesis
  • S-curve scorecard (7-point from framework)
  • Verdict: DEEP DIVE / WATCH / PASS / NOT S-CURVE

6. Deep-dive the winner

Once the sector screening identifies the top candidate, hand off to indian-stock-analysis for the full template-based deep dive.

Why the browser toolset (not web_extract) for Screener.in

Screener.in is a JavaScript-heavy SPA: the peer-comparison table, financial tables, and summary metrics are injected into the DOM at runtime by JS, not served as rendered HTML. Consequence:

  • web_extract (the DDG/Tavily/Firecrawl layer) grabs the raw page and returns the shell with blank/absent table data — it cannot read the live tables.
  • The extraction script does document.querySelectorAll() on rendered table rows (CMP, P/E, ROCE, growth %, market cap), which requires running JS inside the loaded page = browser_console.

So use the browser toolset (navigate + snapshot + console) for Screener.in — it is the only layer that works on the JS-rendered financial tables. The web layer is for the rest of the flow: web_search to find tickers/sector pages and leader companies, web_extract for static content outside Screener (news, docs, GitHub, arxiv). General default: try the cheap web_search/web_extract layer first; escalate to the heavy browser layer only when a page is JS-rendered, needs interaction/forms/logins, needs live-DOM reads, or needs screenshots.

Screener.in Quirks and Pitfalls

Standalone vs Consolidated page

CRITICAL: The consolidated page (/consolidated/) hides ALL financial data behind the login wall for free-tier users. Tables render headers but numeric values show as blank or "x,xxx". The standalone page (/company/{TICKER}/) shows all data WITHOUT login. ALWAYS use the standalone page first. Only try consolidated if Joseph confirms Screener.in credentials are configured.

What's ALWAYS visible (no login needed)

On the standalone page, these are always available without login:

  • Summary stats: Market Cap, CMP, P/E, Book Value, Dividend Yield, ROCE, ROE, Face Value, 52W High/Low
  • Peer comparison table (all columns)
  • Shareholding pattern (quarterly and yearly)
  • Quarterly P&L table (last 12-13 quarters)
  • Annual P&L, Balance Sheet, Cash Flow, Ratios — ALL with numeric values
  • CAGR tables (Sales, Profit, Stock Price, ROE growth rates)
  • Machine-generated PROS/CONS

What requires login

  • Insights section (order book, employee count, revenue breakdown)
  • Export to Excel feature
  • Consolidated financials page
  • Some advanced peer comparison features

Quarterly seasonality in defense/PSU stocks

Defense, PSU, and capital goods companies have extreme quarterly seasonality. Q4 (March) always dominates — it can contribute 35-40% of annual revenue. Q1 (June) is always the weakest.

Never compare Q1 vs Q4 sequentially. Always compare YoY (Q1 this year vs Q1 last year). If you compare Q1 vs Q4, you'll conclude the company is collapsing when it's just seasonal.

CFO/PAT in defense stocks is inherently lumpy

Government payment cycles create volatile CFO/PAT ratios. In Data Patterns:

  • FY24: CFO/PAT = 0.76 (strong)
  • FY25: CFO/PAT = -0.41 (negative — government delayed payments)
  • FY26: CFO/PAT = 0.30 (weak but recovering)

The "CFO/PAT > 0.8" threshold from indian-stock-analysis does NOT apply to defense stocks. Use 3-5 year averages and look for the TREND (improving or deteriorating), not a single-year threshold.

When to worry: CFO stays negative for 3+ consecutive years AND debtor days spike above historical average by 50%+.

Reference

  • S-curve framework: /opt/data/wiki/wealth/invest/research/s-curve-sectors/s-curve-framework.md
  • Pure-play growth-compounder framework: /opt/data/wiki/wealth/invest/research/frameworks/growth-compounder-framework.md
  • Cross-sector growth-compounder screen (PEG-as-a-gate, not PEG-as-the-screen): references/growth-compounder-screen.md
  • Stock analysis template: /opt/data/wiki/wealth/invest/research/frameworks/_template.md
  • Deep dive skill: indian-stock-analysis

Pitfalls

1. Don't skip the peer table. It's the highest-value-per-second step. One navigation gives you P/E, ROCE, and growth rates for the entire sector.

2. Don't trust the consolidated page. It will waste 20 minutes showing blank tables. Always start on standalone.

3. Don't apply dividend-stock CFO thresholds to defense/PSU. Defense working capital is lumpy by design, not broken.

4. Always YoY comparison for quarterly data. Sequential comparison in seasonal businesses is misleading.

5. Don't deep-dive every company. The peer table narrows 10-15 companies to 2-3. Only those get the extraction script.