All screens

Quality & Compounders

Gautam Baid Quality Compounder

Gautam Baid Quality Compounder is a Quality & Compounders screen. It checks every NSE-listed stock against 4 conditions 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

Gautam Baid's 'The Joys of Compounding' argues that the majority of investors conflate a single good year with a durable business model. A genuinely compounding franchise earns >20% ROCE not once but consistently for many years — Baid's canonical test is five consecutive years above the threshold, which effectively eliminates cyclical businesses that look like compounders at the top of their cycle. The second insight is self-funded growth: a true compounder does not need to repeatedly raise equity or take on debt to fund its expansion; D/E below 0.5 and minimal share dilution signal a business whose operating cash flows are sufficient for reinvestment. Together these two filters — ROCE consistency and financial discipline — identify businesses with genuine competitive moats, because only a moat can sustain above-cost-of-capital returns across different economic conditions without needing perpetual external capital.

The rule, step by step

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

ROCE Consistency

  • EBIT/Capital ≥ 20%, 5 Years is true

Financial Discipline

  • Debt/Equity < 0.5
  • EPS CAGR (5Y) > 15
  • (Share Dilution (5Y) is missing) or (Share Dilution (5Y) ≤ 0)

Hard excludes

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

Ranked by EPS CAGR (5Y), highest first.

The figures it uses

EBIT/Capital ≥ 20%, 5 Years

Used in a condition
Formula
True when EBIT ÷ (total equity + total debt) was at least 20% in each of the latest five years
Input fields
ebit, total equity, total debt
Source of record
FinEdge · /api/v1/financials/{symbol}?statement_code=pl&period=annualFinEdge · /api/v1/financials/{symbol}?statement_code=bs&period=annual
Refresh
Recomputed nightly (06:30 IST job); rows older than 3 days are excluded from screens

Debt/Equity

Used in a condition
Formula
Total debt ÷ total equity from the latest annual balance sheet; a company reporting zero debt has a ratio of 0; none is given when the debt figure is unknown or equity is not positive
Input fields
total debt, total equity
Source of record
FinEdge · /api/v1/financials/{symbol}?statement_code=bs&period=annual
Refresh
Recomputed nightly (06:30 IST job); rows older than 3 days are excluded from screens

EPS CAGR (5Y)

Used in a condition
Formula
EPS ((Latest ÷ value 5 years earlier)^(1/5) − 1) × 100, both values positive
Input fields
eps
Source of record
FinEdge · /api/v1/financials/{symbol}?statement_code=pl&period=annual
Corporate actions
Adjusted for corporate actions before use
Refresh
Recomputed nightly (06:30 IST job); rows older than 3 days are excluded from screens

Share Dilution (5Y)

Used in a condition
Formula
(Paid-up shares now − paid-up shares 20 quarters earlier) ÷ the earlier count × 100
Input fields
paidUpEquityShares
Source of record
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

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

ROCE — Latest Year (%)

EBIT / (total_equity + long_term_borrowings + short_term_borrowings) * 100, using latest annual figures.

The current-year snapshot. By itself this is insufficient — a company in a cyclical boom can clear 20% ROCE in the upcycle and fall below it in the downcycle. This metric is read alongside roce_positive_streak_years to distinguish structural from cyclical ROCE.

High is better

Consecutive Years ROCE > 20%

Count of the most recent consecutive annual periods for which EBIT / (total_equity + long_term_borrowings + short_term_borrowings) > 0.20, counting backward from the latest year until the first year the threshold is not met.

High is better

Debt-to-Equity Ratio

(long_term_borrowings + short_term_borrowings) / total_shareholders_equity, using latest balance sheet values.

Must be below 0.5. A low D/E confirms the business can service its obligations comfortably and is not artificially inflating ROCE by deploying borrowed capital into marginally profitable assets. For financial sector companies this metric is not applicable — use capital adequacy ratios instead.

Low is better

5-Year Share Count Growth (%)

((shares_outstanding_latest / shares_outstanding_5yr_ago) - 1) * 100, where shares_outstanding is the weighted average diluted share count from the income statement.

Low is better

Try the rule

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

  • EBIT/Capital ≥ 20%, 5 Years is true—
  • Debt/Equity < 0.5—
  • EPS CAGR (5Y) > 15—
  • (Share Dilution (5Y) is missing) or (Share Dilution (5Y) ≤ 0)—

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.015 · signal date 2026-10-14 · n 4447
  • 22-day IC 0.004 · 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 4 conditions 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.