German taxes on capital gains

This guide provides general explanations on how you declare your investment income to the German tax office. This applies in particular, if you use a foreign brokerage account, such as Interactive Brokers.

Note: This is not professional tax advice and you should verify all the information contained here. In particular, we do not guarantee that this page will always be up to date to the newest regulations.


If you live in Germany and had any investment income (capital gain/losses, dividends) or owned any investments funds (ETFs, mutual funds) in a brokerage account that does not automatically deduct Germany taxes, you are required to declare your taxes. In particular, this applies to Germany residents who have an account with Interactive Brokers.

While this requires a little bit of work, we hope that this guide will give you an head ups of the most important parts that you need to include in your tax return.

Taxes on capital gains

The basic rules of German taxes on capital gains are as follows:

  • All the following rules only apply to stocks, bonds and similar investment, but not other assets, such as real estates, gold, currencies (including crypto currencies) and art. The rules for the latter are quite different, as they count as "other economic goods" = "andere Wirtschaftsgüter" and are not covered here. If the purchase and sale are more than 12 months apart (potentially extended to 10 years in certain situations, such as when a regular profit is derived, as it happens for crypto staking or lending), any realized gain is tax-free, while any realized loss cannot be used to offset gain. If there are less than 12 months between purchase and sale, the realized gain or loss contributes to your regular income and is taxed according to your tax bracket. This is different if the respective assets produces cashflow, which may be the case for some crypto assets. Also the taxation of real estate with rental income is different.

  • The first 801 EUR per year in capital gains are not taxed. Any capital gain from stocks/bonds (sale/purchase, dividends) in a given year is reduced by 801 EUR for singles or 1602 EUR for couples. If you do not reach this amount, you cannot carry it forward, so you should make sure to use the full amount. This can be done by realizing the correct amounts of gains towards the end of the year. However, you should be careful to really include everything in your calculation (capital gains/losses, dividends and the infamous Vorabpauschale discussed later).

  • Capital gains are not taxed based on your income, but at a flat rate (unless the flat rate is higher than your personal tax rate). The flat rate is usually 25% of the respective profit and once the total tax is calculated, you need to add another 5.5% (of the total tax) as so-called Solidarzuschlag, such that the total tax is 26.375%. However, if your respective German tax bracket is actually below 25%, you can request a so-called Günstigerprüfung, in which case the German tax authorities will check how much your tax would be if your capital gains were taxed as regular income. Provided that the resulting tax is lower than the

  • Every transaction is converted into EUR. If you purchase or sell an asset, the value is converted into EUR using the official exchange rate of that day. Typically, the fluctuations on a given day are sufficiently small to be ignored and in many situations the German tax office will also accept the use of average exchange rates over larger periods of time (weeks, months), but any such procedure should be consistently applied, we recommend to just use a Microsoft Excel or Google Sheets function that uses an official exchange rate from that day.

  • All gains and losses are computed based on the first-in first-out (FIFO) principle. If you have purchased an asset at different times and at different prices and you sell some of it, the gain or loss is always computed based on the idea that you are selling those assets first that you bought first.
    Example: You first purchased 10 shares of BMW for 50 EUR and later on you purchased another 5 shares of BMW for 56 EUR. If the price drops to 55 EUR and you sell 12 shares, your profit will be 48 EUR, because you realized a profit 5 EUR on each of the 10 shares you bought first and then a loss of 1 EUR on the remaining 2 shares. The cost basis of the remaining of the 3 shares will still be 56 EUR each, because they thought to be the ones you bought later. This consideration does not include transaction costs.

  • Transaction costs always decrease gains and increase losses. The transaction costs to complete a purchase or sale are included when determining profit or loss.
    Example: Let us assume that both purchase and sale cost 4 EUR per transaction. If you purchase 10 shares of BMW for 50 EUR each and later sell them for 60 EUR each, your profit will be 92 EUR, as you need to subtract 4 EUR for each of the two transactions. If you had instead sold them for 40 EUR, your loss would have been 108 EUR as the transaction cost is added to your loss.

  • Other brokerage fees are non-deductible. While transactions costs are included when computing gains or losses, you are not allowed to include any account fees or similar in your calculation. They are supposed to be already accounted for by the fact that the first 801 EUR of gains per person per year are tax-free.

  • There are no wash sale rules. In some countries, you are prohibited from realizing a temporary to reduce your cost basis, which are known as wash sale rules. There is no such rule in Germany, so you could--in principle--sell an asset to realize a loss and then immediately purchase it again. You only need to respect the first-in first-out rule.
    Example: If you purchase 10 shares of BMW for 50 EUR each and then it crashes to 30 EUR. If you now sold all your shares, you would realize a loss of 200 EUR. You could now purchase the 10 shares again for 30 EUR each. Based on the wash sale rules in the US, the purchase would have undone the realization of your loss, so for tax purposes you would still own 10 shares of BMW with a purchase price of 50 EUR each and there would not have been a loss that you could use to offset other profits. In Germany, however, you could use the loss of 200 EUR to offset other profits, but at the same time the 10 shares are now counted with the purchase price of 30 EUR each. If the shares are sold soon after, there will be no difference between the two examples. For long term buy & hold investors, however, it can be advantageous to realize losses in the presence to reduce taxes now and then benefit from compound interest growth in the long term. Such a strategy is known as tax-loss harvesting and it is much easier in Germany without a wash sale rule.

  • There are two different types of losses/gains: Realized stock losses/gains (Aktienverlusttopf) and realized general losses/gains (Allgemeiner Verlusttopf). Realized stock losses and gains are those associated to the sale of stocks. General losses or gains are all other types of gains and losses, i.e., mostly those associated to selling bonds and funds, but also any type of dividend payments (even if they are paid by stocks). When determining overall gain and losses for the purpose of taxes, each type of losses first offsets gains of the same type (realized stock losses offset realized stock gains, realized general losses offset realized general gains). Only in a second step, the remaining realized general losses can offset realized stock gains, but not the other way around, i.e., realized stock losses can only offset realized stock losses and are otherwise carried forward.

Vorabpauschale ("Advanced tax payments")

If you hold any investment funds (ETFs, mutual funds, REITs etc.), Germany will tax you, even if you do not sell your shares. This was introduced in a major capital gains tax reform of 2018, which simultaneously abolished a punitive tax on foreign investment funds. Previously, Germany would tax internal dividend payments, provided that the fund declares them to Germany (which was not done by most US funds leading to some punitive tax for those "intransparent" funds).

Luckily, this tax is rather low and is often even zero, provided that the respective funds pays out a dividend. It is therefore important to understand the exact rules how the Vorabpauschale is calculated. It is calculated by subtracting the any dividend payments from the so-called Basisertrag. Let us go through the calculation in detail:

  • Basisertrag ("Base return"). The Basisertrag is the calculated as the lesser of the following two values (at least zero):
    (1) The value appreciation of the respective fund from the first trading day of the previous tax year until the first trading day of the current tax year, i.e., we calculate how much the respective product increased in value.
    (2) The fictitious appreciation if the initial value (based on the first trading day of previous tax year) would have increased with 70% of the January Basiszins of the previous tax year (as published by the German Bundesministerium der Finanzen), i.e., we apply this interest rate multiplied by 70% to the initial value.

  • Vorabpauschale. We take the Basisertrag of the respective investment and then subtract any dividends which were paid out during the previous tax year. The remaining value (at least zero) is then the Vorabpauschale. This amount is then treated as if we you received it on the first working day of the current tax year, i.e., if we do our taxes for the year 2020, we need to look at the value appreciation and Basiszins for the year 2019, because the Vorabpauschale counts as received on the first working day in 2020 and thus needs to be filed for the tax year 2020.

Why do we not need to care about the Vorabpauschale if our fund pays out a dividend? Most dividend paying funds pay a dividend of the order of 0.5-2.0% per year (dividend yield). In contrast, the Basiszins has been below 0.5% for the last few year (and we apply 70% to it!), so any dividend payment will likely be larger than the Basisertrag, so the Vorabpauschale will only start to matter if (a) the Basiszins increases or (b) the dividend yield is very low. Let us consider the Basiszins for the last few years:

  • 2018 (relevant for tax return 2019): +0.87%

  • 2019 (relevant for tax return 2020): +0.52%

  • 2020 (relevant for tax return 2021): +0.07% as announced here

  • 2021 (relevant for tax return 2022): -0.45% as announced here (note there is no Vorabpauschale for this year)

In summary, even for the year 2018 (relevant for tax return 2019), you would only have a non-zero Vorabpauschale if your dividend payments were below 70% x 0.87% = 0.609%.

If the Vorabpauschale is non-zero, it will be taxed as if it had been paid out as dividend and then reinvested (but note that the Teilfreistellung discussed next). Therefore, the cost basis of your investment will increase by the Vorabpauschale, so you will pay less tax once you sell the respective product. Note that this increase of cost basis does even occur if you do not need to pay tax on it, because your capital gains are tax free (below the Sparerpauschbetrag of 801 EUR, see above). It is therefore imperative to keep detailed documentation of your tax returns and any taxes you may have paid on the Vorabpauschale.

Finally, if the respective number of shares were purchased during the year, you reduce the Vorabpauschale (computed based on above rules, based on the value at the beginning of the year) by 1/12 of it up to the previous month. Example: If you bought the respective fund in July 2018, the Vorabpauschale for your tax return 2019 will reduced by 6*1/12=1/2 because it was only bought after the first 6 months in the previous tax year.

Teilfreistellung ("partial exemption")

As part of the capital gains tax reform of 2018, the German government introduced a reduced tax for certain investment funds. This reduced tax is called Teilfreistellung ("partial exemption"), because your capital gains tax is reduce by the following fraction:

  • REIT (with real estate investments of at least 51% of the fund's value): Reduction by 60% (=> 40% of the regular tax)

  • Foreign REITs (with real estate investments of at least 51% of the fund's value): Reduction by 80% (=> 20% of the regular tax)

  • Stock funds (with stocks making up at least 51% of the fund's value): Reduction by 30% (=> 70% of the regular tax)

  • Mixed funds (with stocks making up at least 25% of the fund's value): Reduction by 15% (=> 85% of the regular tax)

  • Other funds (with stocks making up less than 25% and real estate less than 50%): No reduction (=> regular tax)

The Teilfreistellung is applied to any capital gains tax of the respective funds, i.e., when computing tax on dividends, profit and even for the Vorabpauschale. For calculational purposes, any dividends, profits, losses or Vorabpauschale is multiplied with the resulting percentage quoted above (40%, 20%, 70%, 85% and 100%). Consequently, a loss of 1000 EUR in a stock fund will compensate for only 700 USD in profits of another fund and so on.

Further note that the Teilfreistellung excludes the possibility to reduce German taxes by internally paid source taxes. This is the main reason for this partial exemption, because previously one could take a credit for the taxes paid by the fund. However, source taxes that are paid by yourself (appearing on your brokerage statement rather than being hidden inside the fund's balance sheet) can still be used to offset German taxes, as discussed next.

Quellensteuer ("source tax")

Many countries reserve the right to tax any dividends paid by companies located in the respective country. These taxes can be rather high and even the US would usually tax any dividends paid to foreign residents by 30%. Luckily, Germany has signed lots of tax treaties (double taxation agreements) to reduce the tax burden of foreign source taxation. Most tax treaties (including the US-German one) reduce the respective taxes to only 15%.

For the US, most Brokers will automatically deduct this reduced amount of 15% source tax, provided the German tax resident has correctly filled in the W-8BEN form when setting up the account. For many other countries, the respective broker may automatically deduct a higher tax and you will need to go through some administrative hassle to get back the difference between what you paid in source taxes and what you should have paid according to the respective tax treaty. Among others, this applies to countries, such as Switzerland, France and Italy.

You will be able to deduct the paid source tax from your German taxes (maximally up to the reduced amount according to the tax treaty, i.e., it is your problem if you are not able to recover the difference). Let us emphasize that this deduction takes place before the Solidaritätszuschlag of 5.5% is added on top of the total taxes. This leads to the curious situation that source taxes will actually slightly reduce your overall tax burden:

  • Example 1. You receive 1000 EUR in dividends from a US company (originally in USD).
    (1) If there was no source taxation, you would pay 25% of taxes equaling 250 EUR. You then apply 5.5% of Solidaritätszuschlag onto your total taxes to pay an additional 13.75 EUR, such that your total is 267.50 EUR.
    (2) However, due to the US source tax (reduced to 15% by tax treaty), you first pay 150 EUR to the US government which will be automatically deducted by your broker. When it comes to the German taxes, you can deduct these 150 EUR from your ordinary tax obligation of 250 EUR, so that you are only left 100 EUR in German taxes. When the Solidaritätszuschlag of 5% is applied to this amount, you add another 5.50 EUR, such that your total is only 255.50 EUR, which is 12 EUR (or 1.2%) less in overall taxes.

  • Example 2. You receive 1000 EUR in dividends from a US-based stock ETF (originally in USD).
    (1) As it is a stock ETF, there will be a Teilfreistellung (see above) of 30%, so you will only need to pay 175 EUR in ordinary taxes, on which 5.5% of Solidaritätszuschlag equaling 9.63 EUR is added. The total will thus be 184.63 EUR.
    (2) Just as in the case of an individual US stock, the broker will deduct a US tax of 15% equaling 150 EUR, which we can deduct from the ordinary tax of 175 EUR. Consequently, the remaining German tax is only 25 EUR, on which the Solidaritätszuschlag of 5.5% is added, which is only 1.38 EUR. The total tax will therefore only be 176.38 EUR.

Let us emphasize that the same logic even applies if your tax rates are lower in the context of a Günstigerprüfung. Again, one would first compute the ordinary German taxes, then subtract any source taxation (up to the maximally allowed amount explained in the tax treaty) and only then apply the Solidaritätszuschlag (where applicable).

This discussion only covers the German part of the taxation. For a US person, one would then need to go back and confirm that the total German tax is higher than the respective US tax, such that there is no additional remaining US tax (when using tax credits). Again, in this setting the US will still tax dividends based on the agreed amount as explained in the tax treaty, after which German taxes are calculated just as for German tax residents without US ties. Only in a last step, US persons will need to check if there is a remaining US tax that is not compensated by deducting the paid German tax. In the context of taking German taxes as a foreign tax credit to potentially offset US taxes on US sourced dividends is possible, even though foreign tax credits can usually only be applied to foreign sourced income (in this specific case, these dividends are reclassified as foreign sourced for the purpose of taking US tax credits). Please consult with an expert on international taxation laws for the details.

General recommendations

The following recommendation apply to most people whose capital gains are taxed in Germany, but you should carefully check the rules that apply to your particular case.

  • Ensure that you use up your tax-free base amount (Freibetrag) of 801 EUR per person (1602 EUR for married couples).

  • lf you do not have any other taxable income, you can realize profits up to the maximal tax-free income amount (ca. 9,000-10,000 EUR) without paying any taxes. Note, however, that there are lower limits for free health insurance if a student is still insured for free through their parents. Note that you need to make sure that your broker is aware that you do not have any other income, so that you have a larger tax-free amount. If you forgot this, you can still get your respective taxes back by filing your income taxes at the end of the year. To ensure that your low taxable income is taken into account, you need to request a "tax comparison" (Günstigerprüfung), which you can do by checking the respective box in your income tax filings (Anlage KAP).

The following recommendations are slightly more advanced.

  • Avoid the realization of capital gains if you can beyond the tax-free base amount (Freibetrag). Of course, if you need to sell some assets, you should not use tax considerations against realizing gains or losses. However, if you are a long term buy and hold investor, it is typically advantageous not to sell assets.

  • Consider the realization of capital losses (wash sales) to delay taxes if you can compensate capital gains up to the tax-free amount. If you some of your investments carry temporarily unrealized losses, i.e., if some of your stocks are currently traded for less than what you bought them for, but you intend to keep them long term, you could consider selling and immediately rebuying them for the same price. By doing so, you will realize losses which can be used to offset gains (either from selling stocks or from dividends). For this, you need to keep the rules for combining different types of losses/gains in mind.

Special case: Joint accounts

You can open an investment account with somebody else. If this person is your spouse, you can declare taxes together. In all other cases (including family members, such as a sibling or parent), you will legally form what is known as a Gemeinschaft bürgerlichen Rechts (GbR). This does not require you to start a company, but is rather the standard legal terminology when a group of people enters legal agreements (even three friends buying a six pack of beers will legally be a GbR).

When you hold an investment account together (such as Joint Accounts with Interactive Brokers), you will need to declare and divide any capital gains and losses. For this, you will need to fill in a form that is called Gesonderte und einheitliche Feststellung von Besteuerungsgrundlagen. You can do this in Elster online together with your normal tax declaration, but you may need to wait until this form becomes available (which is often only in spring after the respective tax year).

The idea is relatively straightforward: You will first need to declare all profits from the investment account as if there was only a single account holder, i.e., everything together. In a second step, you will then need to divide all individual pieces (profits, losses, foreign tax withholdings etc.) and divide them between the two holders. You can do this either manually or by fractions. In practice, this allows a little bit of tax optimization as you can assign profits and losses between the two parties relatively freely*. However, you cannot change a profit into a loss. For example, if there were only two stock sales, one with 100 EUR loss and one with 200 EUR profit, you can only divide the net profit of 100 EUR, but you could not assign that person A had 100 EUR loss and the other 200 EUR profit (as if the transactions would be assigned to the individuals).

*) There are some limits for joint family investments where the distribution of profits and losses still needs to be plausible, so there are some limits on the possible optimization.

Practice examples: Tax declaration 2020 (Anlage KAP)

For the following example, we consider a person with the following capital gains in a foreign brokerage account. The field numbers and forms are based on the Elster tax form for the tax year 2020. We ignore any investments into ETFs or mutual funds, as they need to be declared in Anlage KAP-INV as explained here (while it focuses on US-ETFs, the tax information is generally applicable).

  • Stock 1: Capital loss of 1300 EUR

  • Stock 2: Capital profit of 2500 EUR

  • Stock 3: Dividends of 1000 EUR minus a deduction of 150 EUR in foreign source taxes (15% based on tax treaty)

  • We assume that 300 EUR of the exemption (Sparer-Pauschbetrag) were already used up through capital gains in a German account via Freistellung.

  • We assume that all stocks were bought in the year 2009 or later, so that we do not need to worry about tax-free profits for previously purchased shares.

Note that the calculation of profits and losses follow the rules outlined above, i.e., one needs to take apply the first-in-first-out principle and convert all transactions into EUR. Based on this, the tax declaration should be filled in as follows:

  • Field 16: Nothing. - This would only be relevant if one chooses to declare all capital gains from German financial institutions, where the tax was already taken out (typically, in order to correct something). In this case, one would declare the amount of used up Sparer-Pauschbetrag here.

  • Field 17: 300 EUR. - This is the amount of the Sparer-Pauschbetrag used up at German banks, where the tax was already taken out.

  • Field 18: Nothing. - This would be relevant if one had capital gains from a German account, where no tax was deducted. As we assume that there is

  • Field 19: 2200 EUR. - This is the total sum of profits (positive), losses (negative) and dividends. It does not include any profits, losses or dividends from investment funds (ETFs, mutual funds, REITs), which would need to be declared on Anlage KAP-INV.

  • Field 20: 2000 EUR. - This is the total profit from selling stocks (in our case, from Stock 2).

  • Field 22: 0 EUR. - This is the total loss from selling anything else than stocks (in our case, there is nothing).

  • Field 23: 1000 EUR. - This is the total loss from selling stocks (in our case, from Stock 1).

  • Field 25: Nothing. - This would only be relevant if certain investments just lost their whole value, so that they cannot be sold, but just removed from the account.

  • Field 26: Nothing. - We assume that there was no interest paid by the German tax authority during the tax year.

  • Field 37: Nothing. - We assume that no capital gains tax was paid to Germany.

  • Field 38: Nothing. - If there was no capital gains tax, there was also no solidarity surcharge.

  • Field 39: Nothing. - If there was no capital gains tax, there was also no church tax.

  • Field 40: Nothing. - This would only be relevant if foreign taxes were already used to reduce the previous capital gains. However, we provided the total (such as the 1000 EUR of dividends, even though only 850 EUR were received due to 150 EUR in source tax).

  • Field 41: 150 EUR. - This is the source tax paid based on the tax treaty (Stock 3). Note that even if the tax treaty was not used, only the amount based on the tax treaty is deductible. It is therefore the taxpayer's responsibility to claim any overpaid foreign source tax.

  • Field 42: Nothing. - This would only be relevant if one invested in foreign stocks with tax incentives that allows German tax payers to declare fictitious source tax (which was not actually paid) to reduce the respective tax burden.

Frequently asked questions

  • When does a broker automatically deduct German taxes?
    There are two types of German taxes: Source taxes on dividends and general capital gains taxes for German tax residents.
    Source taxes will automatically be automatically deducted when a German company pays out dividends. This is generally deducted by all brokers that allow you to buy German stocks.
    General capital gains taxes are only deducted for German tax residents by German brokers. This is a feature, as it means that you do not need to declare any capital gains, provided that your broker already deducted taxes automatically. You still have the right to file taxes to correct something. For example, if you did not fully exploit the tax-free amount of 801 EUR, because you did not correctly inform your broker about your Freistellungsauftrag or because your personal tax rate is below 25% (in which case, you can apply your personal tax rate rather than the 25% standard tax rate on capital gains). You can also get an exemption if you show that you are not a German tax resident or that you have very low income via the so-called Nichtveranlagungsbescheinigung.
    Note that foreign brokers (such as Interactive Brokers) will not deduct this second type of taxes, so you are required to file your capital gains taxes every year.

  • When does a foreign broker (such as Interactive Brokers) automatically deduct taxes?
    Foreign brokers typically only deduct source taxes on dividends. This is done in accordance with the laws of the respective countries. Typically, source taxes are only deducted for countries, where the client is not a tax resident, as otherwise it is assumed that the client will settle his/her tax obligations directly (moreover, many brokers participate in information exchange, so the respective tax authorities will be aware of such capital gains).

  • I cannot or do not want to tell my broker that I am not a US tax resident. What does this mean?
    In many cases, you are required by the terms and conditions of the respective broker to inform about any changes regarding your address or tax status. However, you need to confirm yourself what the legal consequences may be of not following these terms and conditions. In many situations, such violations are not illegal, but can result in account closure. In contrast, it is almost everywhere a criminal offence to knowingly not comply with your tax obligations, in particular, if this is due to the fact that the broker does not withhold the correct amounts due not knowing your tax status. It may therefore be wise to ensure that you declare and pay any taxes you owe, which includes accounts that do not automatically withhold taxes. In many situations, it is therefore best to have a brokerage account, which allows to transparently declare the current tax residence and in particular, use double taxation agreements with the US (using form W8-BEN), for example
    Interactive Brokers.
    Example: An exchange student opened a Robinhood account, while being in the US. Robinhood is usually only available to US tax residents (most exchange students are not tax residents), but this was not properly checked when the account was opened or the tax situation changed. Either way, if this student is not a tax resident of the US, but is hesitant to inform Robinhood about it, because he/she expects that the account will be closed (which is likely true). While we do not recommend such behavior, we want to emphasize that in such a scenario it is of utter importance to declare any dividends received form US companies, as Robinhood will not take any withholding taxes. Such a student would therefore be required to file US taxes as non-resident as long as he/she holds this account to not be guilty of US tax evasion (note that Robinhood and most US brokers provide the relevant tax information to the IRS). This student could avoid this hassle by using a broker that accepts foreign tax residents (such as Interactive Brokers), where the correct amount will be deducted after filling in form W8-BEN. If there are no other US connected activities, the student will not need to file US taxes anymore (unless he/she is US person).

Further resources