Strasmore Research
Learn Matt ConnorBy Matt Connor · data as of September 30, 2026 · refreshed weekly

How to Invest in the DAX: Which Index You Get

Before you invest in the DAX, check which DAX: the headline index reinvests dividends, the Kursindex does not. Compare ETF, futures and Xetra routes.

How to invest in the DAX starts with a question most charts hide: which DAX you are buying. Germany's headline index is a performance index, calculated with every cash dividend reinvested straight back into it, while the DAX Kursindex is the price only version of the same 40 companies. The route you take into it, a fund or a futures contract, settles which of those two lines you end up tracking and on which clock you trade it.

Performance index or Kursindex: which DAX you get

The DAX has been calculated as a performance index, Performanceindex in German, since it launched in 1988. The rule is mechanical. When a member company goes ex dividend, the headline index does not step down by the dividend the way a price index does: the cash is treated as reinvested across the basket, and the level carries on. The DAX Kursindex runs the same 40 members at the same weights through a price only calculation, and it does take that ex dividend step down. One basket, two published lines. The distance between them is the dividend stream, compounded.

Almost every DAX number you meet, in a news headline or on a fund factsheet, is the performance index. For the constituent list, see which stocks are in the DAX. For the capping rules that set each member's share, see how DAX index weights are calculated. The general principle behind the two measurements is covered in price return versus total return, and the rest of this page is about what the choice does to the number in your account.

What the reinvestment gap looks like over fifteen years

The panel below runs that same arithmetic on EWG, a long listed US fund holding large German companies. Both halves of the calculation, the traded price and the cash paid out, come from one record. The fund tracks a broad German benchmark rather than the DAX itself; the mechanism is what carries over. Both lines start at 100 in 2011. One compounds price change alone. The other adds each year's cash distributions at the year end price, then compounds from there.

QueryPrice only versus dividends reinvested, both starting at 100
yearprice_only_indexdividends_reinvested_indexgap_points
201179.582.22.7
201297.8103.65.8
2013124.3133.59.2
2014110.8121.710.9
2015106.3119.112.8
2016110.2126.316.1
2017137.3160.623.3
2018104.612621.4
2019122.3150.928.6
2020130163.133.1
2021132.5170.838.3
202298.8131.532.7
2023116.7159.242.5
2024126.5176.850.3
2025170.3241.771.4
The exact SQL behind every number
WITH
    per_year AS
    (
        SELECT
            toYear(date)                   AS yr,
            argMin(toFloat64(close), date) AS first_close,
            argMax(toFloat64(close), date) AS last_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'EWG'
          AND date >= '2011-01-01'
          AND date <  '2026-01-01'
        GROUP BY yr
    ),
    per_year_cash AS
    (
        SELECT
            toYear(ex_date) AS yr,
            sum(cash)       AS cash_per_share
        FROM
        (
            SELECT
                ex_dividend_date            AS ex_date,
                max(toFloat64(cash_amount)) AS cash
            FROM global_markets.stocks_dividends
            WHERE ticker = 'EWG'
              AND ex_dividend_date >= '2011-01-01'
              AND ex_dividend_date <  '2026-01-01'
            GROUP BY ex_dividend_date
        )
        GROUP BY yr
    ),
    yearly AS
    (
        SELECT
            p.yr                                                            AS yr,
            p.last_close / p.first_close                                    AS price_factor,
            (p.last_close + ifNull(c.cash_per_share, 0.0)) / p.first_close  AS reinvested_factor
        FROM per_year AS p
        LEFT JOIN per_year_cash AS c ON c.yr = p.yr
    ),
    paths AS
    (
        SELECT
            arraySort(r -> tupleElement(r, 1), groupArray((yr, price_factor, reinvested_factor))) AS ordered,
            arrayMap(r -> tupleElement(r, 1), ordered)                                            AS years,
            arrayMap(v -> round(100 * exp(v), 1),
                     arrayCumSum(arrayMap(r -> log(tupleElement(r, 2)), ordered)))                AS price_path,
            arrayMap(v -> round(100 * exp(v), 1),
                     arrayCumSum(arrayMap(r -> log(tupleElement(r, 3)), ordered)))                AS reinvested_path
        FROM yearly
    )
SELECT
    toString(tupleElement(pt, 1))                        AS year,
    tupleElement(pt, 2)                                  AS price_only_index,
    tupleElement(pt, 3)                                  AS dividends_reinvested_index,
    round(tupleElement(pt, 3) - tupleElement(pt, 2), 1)  AS gap_points
FROM
(
    SELECT arrayJoin(arrayZip(years, price_path, reinvested_path)) AS pt
    FROM paths
)
ORDER BY year
Run this yourself

By the close of 2025, the price only line stood at 170.3 and the line with distributions reinvested stood at 241.7, a spread of 71.4 points on a base of 100. The two lines separate slowly at first and then faster: each year's cash lands on a base that already contains every earlier year's. That widening gap is the entire difference between the DAX and the DAX Kursindex.

Why a DAX chart and an S&P 500 chart measure different things

The headline S&P 500 is a price index. Its total return counterpart is published as a separate series and is rarely the figure a headline quotes. Put the two headline lines on one chart and you are holding a with dividends German measurement against a without dividends US measurement. Over a long horizon that comparison hands the German line a whole dividend stream the US line leaves out. Compare like with like instead: the DAX Kursindex against the headline S&P 500, or each index against its own total return series.

Route one: a UCITS ETF, and what to check before picking one

Most retail money reaches the index through a UCITS ETF, a fund built under European fund rules and listed on Xetra and other venues. Funds differ on a handful of axes, and each one changes what you are holding.

  • Which index version the fund tracks. Read the full index name on the factsheet, including any Net Return or Kursindex qualifier.
  • Replication method. A physically replicating fund buys the member shares in index weight. A synthetic fund holds a collateral basket and swaps its return for the index return with a bank, which adds that bank as a counterparty.
  • Domicile. An Irish, Luxembourg or German fund meets different withholding treatment on German dividends, and your own country of residence decides how the fund is taxed in your hands. That is mechanics, not tax advice.
  • Share class. An accumulating class keeps distributions inside the fund. A distributing class pays the cash out on a schedule.
  • Running cost and size. The total expense ratio comes out of the fund's return daily, and fund size sits behind the on screen spread you pay on a round trip.

None of those axes ranks one fund above another. They describe what a given fund is.

A distributing class leaves a visible cash trail. The distribution record below shows the shape of it: lumpy payments a couple of times a year rather than a smooth yield.

QueryWhat a distributing fund pays out, and when
dateex_date_labelcash_per_sharepct_of_price
2018-06-19Jun 19, 20180.74372.41
2019-06-17Jun 17, 20190.73812.74
2020-06-15Jun 15, 20200.27981.04
2020-12-14Dec 14, 20200.24930.81
2021-06-10Jun 10, 20210.60341.7
2021-12-13Dec 13, 20210.03580.11
2021-12-30Dec 30, 20210.24730.75
2022-06-09Jun 9, 20220.79193.09
2022-12-13Dec 13, 20220.00860.03
2023-06-07Jun 7, 20230.75872.75
2023-12-20Dec 20, 20230.00150.01
2024-06-11Jun 11, 20240.75852.47
2025-06-16Jun 16, 20250.67931.65
2026-06-15Jun 15, 20260.83161.99
The exact SQL behind every number
SELECT
    toString(d.ex_date)                                   AS date,
    formatDateTime(d.ex_date, '%b %e, %Y')                AS ex_date_label,
    round(d.cash_per_share, 4)                            AS cash_per_share,
    round(100 * d.cash_per_share / toFloat64(p.close), 2) AS pct_of_price
FROM
(
    SELECT
        ex_dividend_date            AS ex_date,
        max(toFloat64(cash_amount)) AS cash_per_share
    FROM global_markets.stocks_dividends
    WHERE ticker = 'EWG'
      AND ex_dividend_date >= '2018-01-01'
    GROUP BY ex_dividend_date
) AS d
INNER JOIN
(
    SELECT date, close
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'EWG'
      AND date >= '2018-01-01'
) AS p ON p.date = d.ex_date
ORDER BY date
Run this yourself

The panel carries 14 payments. The most recent of them, dated Jun 15, 2026, came to $0.8316 a share, or 1.99% of that day's closing price. An accumulating share class over the same stretch would put none of these lines in your account. The cash stays inside the fund and shows up in the share price.

Route two: DAX futures, for size

Eurex lists the index future in three sizes. FDAX is worth 25 euros per index point, FDXM (Mini DAX) 5 euros, and FDXS (Micro DAX) 1 euro. All three settle in cash against the index and reference the performance index, so a futures position carries the dividend stream the same way the headline index does. They are margined instruments: the deposit posted is a fraction of the contract's notional value, while gains and losses land on the full size. Contract codes, the expiry cycle and the settlement mechanics are set out in DAX futures: FDAX, FDXM and FDXS.

Route three: reaching Xetra hours from another time zone

Xetra runs continuous trading from 09:00 to 17:30 CET. In New York terms that is 03:00 to 11:30 ET, which leaves the first two hours of the US regular session as the only overlap. Those two hours shift for a couple of weeks each spring and autumn, when Europe and the US change clocks on different dates. Xetra trading hours and holidays carries the full calendar, including the German holidays on which Xetra is shut and US markets are open.

A reader outside Europe has two practical paths: a broker with direct access to a European venue, which means trading at European times or leaving resting orders, or a locally listed fund holding German companies, which trades on the local clock. The panel below shows when that second path actually changes hands.

QueryWhen a US listed German equity fund trades, by ET half hour
36 rows (showing 20)
et_timevolume_millionsshare_of_day_pct
02:0000
02:300.090.1
03:000.040
03:300.070.1
04:000.030
04:300.040.1
05:000.030
05:300.010
06:000.010
06:3000
07:000.020
07:3000
08:0000
08:300.010
09:000.010
09:3012.6215.8
10:005.456.8
10:305.687.1
11:005.877.3
11:307.629.5
The exact SQL behind every number
SELECT
    formatDateTime(
        toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE),
        '%H:%i')                     AS et_time,
    round(sum(volume) / 1e6, 2)      AS volume_millions,
    round(100 * sum(volume) /
        (
            SELECT sum(volume)
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker = 'EWG'
              AND window_start >= today() - 120
        ), 1)                        AS share_of_day_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'EWG'
  AND window_start >= today() - 120
GROUP BY et_time
ORDER BY et_time
Run this yourself

Over the trailing four months, trading spread across 36 half hour buckets, running from 02:00 ET to 19:30 ET, with the weight of it inside the regular session. Read the chart against the Xetra clock and the point lands: the German market that prices these companies closes at 11:30 ET, and the US listing trades on for hours afterwards without it.

How the index panel is built

The price only line compounds each calendar year's first close into its last close. The reinvested line adds that year's cash distributions to the year end price before compounding, which puts the cash back to work once a year rather than on each ex date. Annual reinvestment understates a true total return slightly, so the gap shown is a floor rather than a ceiling. Distribution rows are grouped by ex dividend date and deduplicated before summing, and fund prices are traded closes. The window stops at the end of the last complete calendar year, so no partial year distorts the final point.

FAQ

Is the DAX a price index or a total return index?

The headline DAX is a total return index, known in German practice as a performance index: cash dividends are reinvested back into the index rather than dropped out of it. The price only version is published separately as the DAX Kursindex.

What is the DAX Kursindex?

The DAX Kursindex holds the same 40 companies at the same weights as the DAX and is calculated from prices alone. It takes the ex dividend step down the headline index avoids, and the distance between the two lines widens for as long as the members keep paying.

Can I compare the DAX with the S&P 500?

Only version against matching version. The headline S&P 500 is a price index while the headline DAX already contains dividends, so the raw side by side is unequal. Line up the DAX Kursindex with the headline S&P 500, or compare each index against its own total return series.

What is the difference between an accumulating and a distributing DAX ETF?

An accumulating fund keeps dividends inside, where they lift the share price. A distributing fund pays them out as cash on a set schedule. Before costs and tax the two aim at the same total return; what differs is where the cash sits and how your country treats it.

Can a non European investor buy a DAX UCITS ETF?

Often not directly. UCITS funds are built for European distribution, and many brokers outside Europe, US retail brokers in particular, cannot offer them under local disclosure rules. The common alternatives are a locally listed fund with German exposure or an account that provides direct European market access.


Every panel here ships with the exact SQL folded underneath it. Open one to see how the two lines were counted, or ask the same question about another index in plain English on the Strasmore terminal.