← All posts

Which Growth Stocks Are Self-Funding? Cash-Flow Quality Screening in Python

Rank growth stocks by revenue growth, free-cash-flow margin, cash-to-debt, and valuation.

What's the question?

Growth is more durable when it is internally funded. A company that can expand revenue while also producing free cash flow has more strategic flexibility than a company that relies on external financing. Free cash flow is cash from operations after capital spending, so it captures whether growth is consuming or producing cash.

The question is which large technology and platform companies combine revenue growth with cash-flow quality. Revenue growth alone is not enough. A fast-growing company with negative free-cash-flow margin may still be valuable, but it carries a different financing profile from a company that grows while generating cash.

The approach

The universe is AAPL, MSFT, NVDA, AMZN, META, GOOG, AVGO, CRM, ORCL, ADBE, AMD, and QCOM. Built from SEC EDGAR public filings and market data, the screen uses latest trailing-twelve-month metrics.

  1. Pull revenue growth, gross margin, free-cash-flow margin, cash-to-debt, P/E ratio, and market capitalization
  2. Standardize each metric across the peer group using z-scores
  3. Reward higher revenue growth, higher free-cash-flow margin, higher gross margin, and more cash relative to debt
  4. Penalize higher P/E ratios
  5. Rank the companies by the resulting self-funding growth score

The score is a cross-sectional screen. It is not a valuation model and it does not estimate intrinsic value.

Code

import xfinlink as xfl
import pandas as pd

xfl.set_api_key("YOUR_API_KEY")  # free at https://xfinlink.com/signup

tickers = ["AAPL", "MSFT", "NVDA", "AMZN", "META", "GOOG", "AVGO", "CRM", "ORCL", "ADBE", "AMD", "QCOM"]
fields = ["market_cap", "revenue_growth", "gross_margin", "fcf_margin", "cash_to_debt", "pe_ratio"]
df = xfl.metrics(tickers, period_type="ttm", fields=fields)
latest = df.sort_values("period_end").groupby("ticker").tail(1).dropna()

def zscore(s):
    return (s - s.mean()) / s.std(ddof=0)

latest["quality_score"] = (
    zscore(latest["revenue_growth"])
    + zscore(latest["fcf_margin"])
    + 0.5 * zscore(latest["gross_margin"])
    + 0.5 * zscore(latest["cash_to_debt"].clip(0, 10))
    - 0.25 * zscore(latest["pe_ratio"].clip(1, 100))
)

print(latest.sort_values("quality_score", ascending=False))

Full script with formatting and visualisation: self-funding-growth-quality-python.py

Output

Self-funding growth quality screen comparing revenue growth and free-cash-flow margin
=== Self-Funding Growth Quality Screen ===
Universe: 11 large-cap technology and platform stocks
Latest TTM period range: 2026-02-27 to 2026-05-03
Top score: NVDA ( 4.41)
Weakest score: ORCL (-3.27)

Self-funding growth ranking:
NVDA  score=  4.41  rev_growth=  70.7%  FCF_margin=  47.0%  cash/debt= 1.56  PE= 31.4  market_cap=$4,966B
ADBE  score=  1.36  rev_growth=  11.0%  FCF_margin=  42.2%  cash/debt= 1.11  PE= 11.9  market_cap=$83B
AMD   score=  0.95  rev_growth=  35.0%  FCF_margin=  22.9%  cash/debt= 5.20  PE=167.7  market_cap=$834B
AVGO  score=  0.87  rev_growth=  30.0%  FCF_margin=  43.4%  cash/debt= 0.30  PE= 63.6  market_cap=$1,818B
META  score=  0.75  rev_growth=  26.2%  FCF_margin=  22.4%  cash/debt= 0.40  PE= 20.6  market_cap=$1,437B
MSFT  score=  0.45  rev_growth=  17.9%  FCF_margin=  22.9%  cash/debt= 2.41  PE= 23.3  market_cap=$2,903B
GOOG  score= -0.95  rev_growth=  17.5%  FCF_margin=  15.2%  cash/debt= 0.49  PE= 27.4  market_cap=$4,358B
AAPL  score= -1.17  rev_growth=  12.8%  FCF_margin=  28.6%  cash/debt= 0.60  PE= 35.2  market_cap=$4,270B
QCOM  score= -1.32  rev_growth=   5.2%  FCF_margin=  28.1%  cash/debt= 0.36  PE= 22.7  market_cap=$224B
AMZN  score= -2.08  rev_growth=  14.2%  FCF_margin=  -0.3%  cash/debt= 0.85  PE= 28.5  market_cap=$2,565B
ORCL  score= -3.27  rev_growth=  14.9%  FCF_margin= -38.6%  cash/debt= 0.73  PE= 33.1  market_cap=$529B

What this tells us

NVDA ranks first by a wide margin because it combines 70.7% revenue growth with a 47.0% free-cash-flow margin and a positive cash-to-debt ratio. That is the rare combination the screen is designed to find: high growth and strong cash generation at the same time.

ADBE ranks second despite only 11.0% revenue growth because its cash-flow profile is strong and its P/E ratio is low relative to the group. AMD and AVGO also score well, but for different reasons. AMD has faster growth and a strong cash-to-debt ratio, while AVGO has a high free-cash-flow margin.

The bottom of the screen is driven by weak cash conversion. AMZN has positive revenue growth but near-zero free-cash-flow margin. ORCL has positive revenue growth but a negative free-cash-flow margin in this trailing-twelve-month window.

So what?

Self-funding growth screens are useful when the research objective is quality, not just speed. They help separate companies that are growing because they have powerful economics from companies that are growing while absorbing cash.

The next step is not automatically buying the top-ranked stocks. A high score should trigger deeper work on durability: customer demand, capital intensity, competitive position, and valuation. A low score should trigger a financing review. Growth that requires persistent cash outflow can still work, but the hurdle rate is higher.

Built with xfinlink — free financial data API for Python.