How DAX Index Weights Are Calculated
How DAX index weights are calculated: free float market cap, the 10 percent single stock cap, quarterly reviews, and why the headline chart includes dividends.
DAX index weights are calculated from free float market capitalisation, with a ceiling of 10 percent on any single member at a rebalance. Each of the 40 companies counts in proportion to the value of the shares that are genuinely available to trade, not its full market value. One further rule catches most readers out: the headline DAX is a performance index that reinvests dividends, so it is not the same kind of series as a headline S&P 500 or Nasdaq-100 quote.
If you already have the list of DAX constituents, this page is the next step: how much each of those names actually counts, and what moves the number.
What free float market capitalisation means
Market capitalisation is the share price multiplied by shares outstanding. Free float narrows that to the shares an ordinary buyer could acquire on the open market. Under the published index rules, long term strategic holdings at or above 5 percent are treated as not free floating: founding family stakes, government holdings, cross shareholdings between companies, and shares a company holds in treasury. Deutsche Börse publishes a free float factor for every member and revises it as those stakes change.
A member's weight is its free float market capitalisation divided by the sum of free float market capitalisations across all 40 members. A company whose founders still hold 40 percent of the stock enters that sum at 60 percent of its size, so it carries roughly 40 percent less weight than a fully floated company of the same headline value.
Two things follow. A share price move changes weights every second the market is open, with no committee involved. A change in the float factor, following a lock up expiry or a block sale by a strategic owner, changes a weight without the share price moving at all.
The 10 percent cap, and what happens when a name pushes through it
No single DAX member may carry more than 10 percent of the index at a chaining date. Chaining dates fall on the third Friday of March, June, September and December. At each one, a member above the ceiling is assigned a capping factor that pulls it back to 10 percent, and the weight taken off it spreads across the other members in proportion to their own weights.
The arithmetic is worth seeing once. The panel below applies exactly that rule to a fixed basket of 40 large US listed companies, where every input is visible, and shows the 12 heaviest names in that basket before and after a 10 percent ceiling.
| ticker | uncapped_weight_pct | capped_weight_pct | cap_shift_pp | as_of |
|---|---|---|---|---|
| NVDA | 14.53 | 10 | -4.53 | Sep 28, 2026 |
| AAPL | 12.99 | 10 | -2.99 | Sep 28, 2026 |
| GOOGL | 11.02 | 10 | -1.02 | Sep 28, 2026 |
| MSFT | 9.94 | 11.33 | 1.38 | Sep 28, 2026 |
| AMZN | 6.98 | 7.95 | 0.97 | Sep 28, 2026 |
| META | 4.79 | 5.46 | 0.67 | Sep 28, 2026 |
| AVGO | 4.39 | 5 | 0.61 | Sep 28, 2026 |
| TSLA | 3.71 | 4.23 | 0.52 | Sep 28, 2026 |
| LLY | 2.78 | 3.16 | 0.39 | Sep 28, 2026 |
| AMD | 2.61 | 2.97 | 0.36 | Sep 28, 2026 |
| JPM | 2.35 | 2.68 | 0.33 | Sep 28, 2026 |
| WMT | 2.27 | 2.58 | 0.32 | Sep 28, 2026 |
The exact SQL behind every number
WITH basket AS (
SELECT
ticker,
toFloat64(argMax(market_cap, date)) AS mcap,
max(date) AS asof
FROM global_markets.stocks_ratios
WHERE ticker IN ('AAPL','MSFT','NVDA','AMZN','GOOGL','META','AVGO','TSLA','LLY','JPM',
'V','MA','XOM','UNH','JNJ','PG','HD','COST','ABBV','WMT',
'NFLX','BAC','KO','MRK','PEP','ADBE','CSCO','AMD','TMO','ACN',
'MCD','ABT','CRM','LIN','PFE','INTU','TXN','QCOM','AMGN','ORCL')
AND date >= today() - 60
AND market_cap > 0
GROUP BY ticker
),
weights AS (
SELECT
ticker,
asof,
100 * mcap / sum(mcap) OVER () AS w0
FROM basket
),
spill AS (
SELECT
sum(greatest(w0 - 10, 0)) AS excess,
sum(if(w0 < 10, w0, 0)) AS room,
formatDateTime(max(asof), '%b %e, %Y') AS as_of
FROM weights
)
SELECT
ticker,
round(w0, 2) AS uncapped_weight_pct,
round(if(w0 >= 10, 10.0, w0 * (1 + excess / room)), 2) AS capped_weight_pct,
round(if(w0 >= 10, 10.0, w0 * (1 + excess / room)) - w0, 2) AS cap_shift_pp,
as_of
FROM weights
CROSS JOIN spill
ORDER BY uncapped_weight_pct DESC
LIMIT 12The heaviest name in the basket, NVDA, carries an uncapped weight of 14.53 percent. The cap column trims it to 10 percent, a change of -4.53 percentage points, and that weight lands on every name sitting under the ceiling: the smallest name shown moves up by 0.32 percentage points. If the spillover pushes a second member through 10 percent, the calculation repeats until nothing sits above the line. These weights are current as of Sep 28, 2026 and they move with prices.
Between chaining dates the capping factors stay fixed while prices carry on moving, so a fast rising member can occupy more than a 10 percent share of the index for weeks before the next quarterly reset brings it back. Nothing in the rulebook forces a correction inside the quarter: the ceiling is a rebalance rule, not a live constraint on the index level.
Quarterly review, fast entry and fast exit
Membership and weighting are separate machinery. DAX composition gets one regular review a year, in September, while the index is chained four times a year. Between the annual reviews, two rules can change membership off cycle at a quarterly review date.
- Fast entry: a company outside the index that has climbed well inside the DAX size range on free float market capitalisation takes the place of the smallest current member.
- Fast exit: a member that has fallen well below that range is replaced by the highest ranked eligible candidate.
The exact rank thresholds live in the published rulebook and have been revised before, so read them at the source rather than memorising a number. Eligibility gates apply to any candidate: a Prime Standard listing, trading on Xetra, a minimum liquidity, annual and quarterly financial reports filed on time, and positive EBITDA in the two most recent annual financial statements. The profitability and reporting tests were added in the 2021 rule reform that also lifted the index from 30 members to 40, following an accounting fraud at a member during 2020.
Extraordinary changes sit outside all of this. An insolvency filing, a delisting, or a takeover that removes the free float can pull a member at any time, with a replacement named on short notice. The Frankfurt session clock that governs every one of these dates is covered in the Xetra trading hours guide.
DAX weighting versus the Nasdaq-100 method
Readers arriving from how QQQ holdings are weighted will recognise the family resemblance. Four divergences matter.
- Float. The DAX divides by free float market capitalisation. The Nasdaq-100 uses shares outstanding with no float adjustment, so a large insider stake still counts in full.
- The cap. The DAX ceiling is a flat 10 percent per member. The Nasdaq-100 runs a modified capitalisation scheme: a 24 percent ceiling on the largest member, plus a group rule under which members weighing more than 4.5 percent cannot add up to more than 48 percent between them.
- The calendar. The Nasdaq-100 reconstitutes annually in December and rebalances quarterly, with a special rebalance available when the weight constraints are breached. The DAX reviews composition annually in September and chains quarterly.
- The return convention. The headline Nasdaq-100 level is a price index. The headline DAX level is a performance index.
Performance index versus price index
This is the fact most readers get wrong. Two DAX series are published from the same constituents and the same weights. The headline number, the one quoted in the news and referenced by DAX futures and options, is the performance index: every cash dividend paid by a member is treated as reinvested into the index on the ex dividend date. The price index, published as the DAX Kursindex, drops dividends out and tracks prices alone.
The S&P 500 and Nasdaq-100 levels quoted in most coverage are price indices. A headline DAX chart set beside a headline S&P 500 chart is not a like for like comparison: one has years of reinvested dividends inside it and the other does not.
The gap is not small. The panel below takes eight US dividend payers over the five calendar years from January 2021 to December 2025 and splits the outcome into the price move and the cash paid out over the same window.
| ticker | price_only_pct | dividends_paid_pct | price_plus_dividends_pct |
|---|---|---|---|
| XOM | 190 | 44.7 | 234.7 |
| CVX | 79.9 | 35.9 | 115.8 |
| VZ | -30.8 | 22.3 | -8.5 |
| KO | 32.5 | 17.6 | 50.1 |
| PEP | -0.5 | 17.1 | 16.6 |
| JNJ | 32.2 | 14.9 | 47.2 |
| MCD | 45.4 | 14.8 | 60.2 |
| PG | 4 | 13.7 | 17.7 |
The exact SQL behind every number
WITH px AS (
SELECT
ticker,
toFloat64(argMin(close, date)) AS start_close,
toFloat64(argMax(close, date)) AS end_close
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('KO','PG','JNJ','PEP','MCD','XOM','CVX','VZ')
AND date BETWEEN '2021-01-04' AND '2025-12-31'
AND close > 0
GROUP BY ticker
),
dv AS (
SELECT
ticker,
sum(amt) AS dividends
FROM
(
SELECT
ticker,
id,
toFloat64(any(cash_amount)) AS amt
FROM global_markets.stocks_dividends
WHERE ticker IN ('KO','PG','JNJ','PEP','MCD','XOM','CVX','VZ')
AND currency = 'USD'
AND ex_dividend_date BETWEEN '2021-01-04' AND '2025-12-31'
GROUP BY ticker, id
)
GROUP BY ticker
)
SELECT
px.ticker AS ticker,
round(100 * (px.end_close / px.start_close - 1), 1) AS price_only_pct,
round(100 * dv.dividends / px.start_close, 1) AS dividends_paid_pct,
round(100 * ((px.end_close + dv.dividends) / px.start_close - 1), 1) AS price_plus_dividends_pct
FROM px
INNER JOIN dv ON dv.ticker = px.ticker
ORDER BY dividends_paid_pct DESCXOM paid out 44.7 percent of its starting share price in cash dividends across those five years, against a price move of 190 percent. A series that reinvests those payments and a series that ignores them separate by roughly that distance, and the arithmetic compounds over longer windows. Over a decade it accounts for a large share of the headline difference between a performance index and a price index built from identical holdings.
How these panels were built
- The 40 name basket is a fixed list of US listed companies used only to demonstrate the arithmetic. It is not the DAX and not an investable index. DAX free float factors are published by the index administrator and are not reproduced here.
- Weights in the cap panel come from each company's most recent market capitalisation on file, dated in the panel itself, and the ceiling is applied in one redistribution pass. Published methodologies repeat the pass until no member exceeds the cap.
- The dividend panel uses closing prices at the first and last session inside the window and cash dividends with an ex dividend date inside the same window. Payments are added at face value rather than compounded, which understates a true reinvested series.
FAQ
How is the DAX weighted?
By free float market capitalisation. Each member's weight is the market value of its freely tradable shares divided by the total across all 40 members, with a 10 percent ceiling on any single member applied at each quarterly chaining date.
What is the maximum weight of one stock in the DAX?
10 percent, set at the chaining dates on the third Friday of March, June, September and December. Between those dates prices move the weights, and a member can occupy more than 10 percent of the index until the next reset.
Does the DAX include dividends?
The headline DAX does. It is a performance index, and cash dividends are treated as reinvested on the ex dividend date. A separate price index, the DAX Kursindex, tracks prices without dividends.
How often does the DAX change its members?
Composition has one regular review a year, in September. Fast entry and fast exit rules can swap members at the quarterly review dates, and extraordinary events such as an insolvency or a takeover can force a change at any time.
Why does the DAX hold 40 stocks?
It has held 40 since September 2021, up from 30, after a rule reform that also added the profitability and reporting requirements. The count is fixed in the methodology rather than by market size.
Every panel on this page ships with the SQL that produced it, so you can open one and check the arithmetic line by line. To run the same capping maths on a basket you pick yourself, ask for it in plain English on the Strasmore terminal.