All screens

Quality & Compounders

Coffee Can Portfolio

Coffee Can Portfolio is a Quality & Compounders screen. It checks every NSE-listed stock against 3 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

The Coffee Can concept — originally from Robert Kirby and popularised in India by Saurabh Mukherjee — is about finding businesses so consistently good that you can buy them and forget about them for a decade. The test is brutally simple: the company must have grown revenue by at least 10% every single year for 8 years AND maintained ROCE above 15% every single year for 8 years. No exceptions, no 'but it had a bad COVID year'. We add two quality gates that the original framework lacks: a cash flow quality check (to catch companies that report profits but collect less cash) and a valuation sanity check (to avoid paying bubble prices for confirmed compounders).

The rule, step by step

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

Growth Consistency

  • Revenue CAGR (8Y) ≥ 10

Quality Consistency

  • PAT/Assets ≥ 12%, 8 Years is true
  • Debt/Equity < 0.3

Valuation Sanity

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

Hard excludes

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

Ranked by Revenue CAGR (8Y), highest first.

The figures it uses

Revenue CAGR (8Y)

Used in a condition
Formula
((Revenue now ÷ revenue 7 annual statements earlier)^(1/7) − 1) × 100; eight annual statements span seven yearly intervals
Input fields
revenue
Source of record
FinEdge · /api/v1/financials/{symbol}?statement_code=pl&period=annual
Refresh
Recomputed nightly (06:30 IST job); rows older than 3 days are excluded from screens

PAT/Assets ≥ 12%, 8 Years

Used in a condition
Formula
True when PAT ÷ total assets was at least 12% in each of the latest eight years (a ROCE proxy)
Input fields
pat, total assets
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

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

Consecutive Years of ≥10% Revenue Growth

The number of the last 8 fiscal years in which the company grew its revenue by 10% or more. The maximum is 8; the minimum to qualify for this screener is 8 (all 8 years must pass — no exceptions).

High is better

Consecutive Years of ROCE ≥15%

The number of the last 8 fiscal years in which ROCE exceeded 15%. Must be 8 out of 8 to qualify.

High is better

Years with CFO/PAT ≥ 0.85 (out of 8)

The number of the last 8 fiscal years in which operating cash flow was at least 85% of reported net profit. This checks whether reported profits are backed by real cash collection.

High is better

Current PE vs Own 5-Year Median PE (%)

The percentage by which the current PE exceeds the company's own 5-year median PE. A value of 40% means the stock is 40% more expensive than its own historical average — the market is pricing in significant further improvement.

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.

  • Revenue CAGR (8Y) ≥ 10—
  • PAT/Assets ≥ 12%, 8 Years is true—
  • Debt/Equity < 0.3—

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.013 · signal date 2026-10-14 · n 4447
  • 22-day IC 0.019 · 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 3 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.