← All posts

Does the Nasdaq 100 Have Better Growth Quality Than the Dow? Index Constituent Analysis in Python

Compare Nasdaq 100 and Dow constituents by growth, cash-flow quality, and valuation.

What's the question?

The Nasdaq 100 is usually described as a growth index, while the Dow Jones Industrial Average is often treated as a blue-chip index. Those labels are useful, but they are imprecise. Growth can be low quality if it consumes cash. Blue-chip stability can still include weak cash conversion.

The question is whether current Nasdaq 100 constituents actually have stronger growth quality than current Dow constituents. Growth quality means revenue growth combined with high gross margin, positive free-cash-flow margin, and reasonable valuation context.

The approach

The test compares current Nasdaq 100 and Dow constituents. Built from SEC EDGAR public filings and market data, it combines index membership with latest trailing-twelve-month fundamentals and valuation metrics.

  1. Pull current Nasdaq 100 and Dow constituents
  2. Label each company as Nasdaq 100 only, Dow only, or both indexes
  3. Pull latest revenue growth, gross margin, free-cash-flow margin, P/E ratio, and market capitalization
  4. Apply sanity filters for complete and plausible observations
  5. Compare cohort medians and list the fastest revenue growers

Medians are used because index constituents can include extreme individual companies. A median describes the typical constituent more reliably than an average.

Code

import xfinlink as xfl
import pandas as pd

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

ndx = xfl.index("ndx100", limit=150)
dow = xfl.index("djia", limit=50)
ndx_ids = set(ndx[ndx["removed_date"].isna()]["entity_id"])
dow_ids = set(dow[dow["removed_date"].isna()]["entity_id"])
tickers = sorted(set(ndx["ticker"].dropna()) | set(dow["ticker"].dropna()))

fields = ["market_cap", "revenue_growth", "gross_margin", "fcf_margin", "pe_ratio"]
metrics = xfl.metrics(tickers, period_type="ttm", fields=fields)
latest = metrics.sort_values("period_end").groupby("entity_id").tail(1).dropna()

def cohort(entity_id):
    if entity_id in ndx_ids and entity_id in dow_ids:
        return "Both indexes"
    if entity_id in ndx_ids:
        return "Nasdaq 100 only"
    return "Dow only"

latest["cohort"] = latest["entity_id"].map(cohort)
summary = latest.groupby("cohort")[["revenue_growth", "gross_margin", "fcf_margin", "pe_ratio"]].median()
print(summary)

Full script with formatting and visualisation: nasdaq100-dow-growth-quality-python.py

Output

Nasdaq 100 versus Dow revenue growth and free-cash-flow margin scatter plot
=== Nasdaq 100 vs Dow Growth Quality ===
Current Nasdaq 100 constituents after cleaning: 99
Current Dow constituents after cleaning: 28
Combined complete-data universe: 82 companies
Metric period range: 2026-02-26 to 2026-05-10

Cohort medians:
Both indexes     n=  7  rev_growth=   9.2%  gross_margin=  50.6%  FCF_margin=  19.4%  positive_FCF=  85.7%  PE= 34.3
Dow only         n= 14  rev_growth=   6.5%  gross_margin=  54.3%  FCF_margin=  11.0%  positive_FCF=  85.7%  PE= 28.8
Nasdaq 100 only  n= 61  rev_growth=  13.4%  gross_margin=  58.4%  FCF_margin=  21.9%  positive_FCF=  95.1%  PE= 33.7

Fastest revenue growers in the combined index set:
MU    Nasdaq 100 only  rev_growth=  85.5%  FCF_margin=  17.7%  PE= 46.4
SNDK  Nasdaq 100 only  rev_growth=  82.8%  FCF_margin=  33.8%  PE= 68.8
ALNY  Nasdaq 100 only  rev_growth=  82.6%  FCF_margin=  15.0%  PE= 66.1
NVDA  Nasdaq 100 only  rev_growth=  70.7%  FCF_margin=  47.0%  PE= 31.4
PLTR  Nasdaq 100 only  rev_growth=  67.7%  FCF_margin=  51.5%  PE=143.8
MELI  Nasdaq 100 only  rev_growth=  36.8%  FCF_margin=  53.2%  PE= 42.0
AMD   Nasdaq 100 only  rev_growth=  35.0%  FCF_margin=  22.9%  PE=167.7
AXON  Nasdaq 100 only  rev_growth=  34.0%  FCF_margin=   0.7%  PE=178.1
BA    Dow only         rev_growth=  32.7%  FCF_margin=  -1.1%  PE= 86.6
WDC   Nasdaq 100 only  rev_growth=  32.0%  FCF_margin=  24.7%  PE= 33.7

What this tells us

The Nasdaq 100-only cohort has stronger growth quality by the median measures. Its median revenue growth is 13.4%, compared with 6.5% for Dow-only companies. Its median free-cash-flow margin is also higher at 21.9% versus 11.0%. Positive free-cash-flow margin is more common in the Nasdaq 100-only group, at 95.1% versus 85.7% for Dow-only names.

The valuation difference is smaller than the growth difference. The Nasdaq 100-only median P/E ratio is 33.7, compared with 28.8 for Dow-only companies. That premium exists, but it is not extreme relative to the gap in revenue growth and free-cash-flow margin.

The fastest growers are mostly Nasdaq 100-only constituents. BA is the lone Dow-only company in the top 10, and it has a negative free-cash-flow margin in the latest trailing-twelve-month period.

So what?

The Nasdaq 100 label is not just shorthand for higher expected growth. In this sample, it also corresponds to stronger cash-flow quality. That matters because growth with positive free cash flow is less dependent on external financing and less vulnerable to capital-market tightening.

For allocation work, the practical conclusion is to separate index labels from index contents. The Nasdaq 100 is more expensive than the Dow on median P/E, but it also has meaningfully better growth and cash conversion. A rotation decision should weigh both sides of that tradeoff rather than treating one index as simply aggressive and the other as simply defensive.

Built with xfinlink — free financial data API for Python.