Report in 4 Steps
Export XML (via Flex Query)
Create a Flex Query in Interactive Brokers and download it as XML.
Upload XML
XML upload at KapitalTax. No broker logins, no API access.
Auto-report + optionally supplement
KapitalTax creates the report automatically. Optionally you can add:
- previously paid advance lump sums
- fund classification
Receive & use report
You receive clearly structured tables and totals, e.g. as inputs for Anlage KAP, KAP-INV and SO of your tax return.
Core Calculation Principles
The rules behind it
1) FIFO Allocation (First In, First Out)
KapitalTax uses the FIFO principle for matching acquisitions and disposals – this is the standard logic for determining gains/ losses on securities.
What does this mean in practice?
The first-purchased units/ tranches are consumed first in a sale – including clean allocation of acquisition costs and sale proceeds.
2) EUR Valuation of All Transactions: ECB Reference Rates (Securities) & Trade Rates (FX)
All values in the report are unified in EUR.
- Securities transactions (buy/ sell/ income): Valued at the ECB reference exchange rate (daily rate) of the respective transaction day.
- FX transactions:
- Direct EUR↔XX FX trades: Valued at the actual execution rate (trade rate) from broker data.
- Cross-FX YY↔XX (without EUR leg): Conversion via EUR based on ECB reference rates of the transaction day.
Note: ECB reference rates are information/ reference rates and do not necessarily correspond to rates of actual market transactions.
3) Cash Basis Principle for Income
Dividends, distributions and interest are recorded according to actual receipt (time of credit at the broker). This increases verifiability because each line in the report can be reconciled with broker statements.
What KapitalTax Specifically Calculates
A) Securities Transactions (Stocks, ETFs, Options, etc.)
Typically included in the report:
- Gain/ loss per sale (FIFO-based) + totals
- Detail tables with date, quantity, price, fees, EUR value
- Separate totals by instrument type (where meaningful)
Why this matters: You don't just get a number, but a verifiable derivation (incl. individual transactions + subtotals).
B) Currency Transactions (FX) & EUR Valuation
Typically included in the report:
- FX gains/ losses as separate tables/ totals
- EUR valuation by clear rule: trade rate for EUR pairs, otherwise ECB reference rate (via EUR)
C) Income: Distributions, Dividends, Interest
Typically included in the report:
- Dividends/ distributions (gross/ net, withholding tax)
- Interest incl. credit and debit interest
- Totals by currency and where applicable by country
D) Withholding Tax: Creditable per Country (DTA Logic + 25% Cap)
KapitalTax logic per payment (simplified):
- DTA maximum per country: Capped at the maximum creditable rate according to official overview. The BZSt publishes an annually updated overview (as of January 1).
- Upper limit: additionally capped by the German capital gains tax rate of 25% (flat tax).
- Investment fund special logic (if relevant): Consideration of relevant fund-related rules (e.g. partial exemption) based on your stored fund classification.
In the report you see:
- Country of payment
- Withheld tax
- Maximum creditable rate / cap
Find more details about withholding tax here.
E) Investment Funds & Advance Lump Sum (per tranche)
KapitalTax calculates the advance lump sum per tranche (tax lot) – i.e. separately per purchase date. This is crucial because the law provides for time-proportional effects for intra-year acquisitions, among others.
Base rate (parameter source): The base rate is published by the BMF (annual publication).
Basic logic (abbreviated):
- Base return based on redemption price/ market price at year start × 70% × base rate.
- Capped at the surplus amount (value increase + distributions).
- Advance lump sum = max(0, min(base return, surplus) - distributions)
How KapitalTax implements this (practical):
- Per tranche: Each purchase tranche separately.
- Time proportion in purchase year: In the year of acquisition, the advance lump sum is reduced by 1/12 for each full month before the acquisition month.
- Distributions by receipt date: A distribution only reduces tranches that already existed at the time of receipt.
Feature: User inputs for
- Previously paid advance lump sums
- Fund classification (see next section)
Find more details about the advance lump sum here.
F) Fund Classification
Broker data is often insufficient to reliably classify funds. Therefore this is deliberately a control feature at KapitalTax:
You can categorize funds as:
- Equity fund
- Mixed fund
- Real estate fund
- Foreign real estate fund
- Other funds
G) Options: Premium Income, Closing, Expiry, Exercise, Assignment
KapitalTax maps typical option events as clearly distinguishable events – instead of confusing broker lines.
Typically included in the report:
- Premium income as separate revenue
- Closing as corresponding counter-position
- Worthless expiry (value = 0) as distinct event
- Exercise: Option costs affect the acquisition/ disposal costs of the underlying.
Find more details about options here.
H) Tax-Category Oriented Totals & Form Inputs
KapitalTax creates totals and tables aligned with the German capital income classification system.
Usable as inputs for:
Anlage KAP is the standard form for capital income under § 20 EStG (e.g. interest, dividends, capital gains from securities). It is also used to declare withheld/ creditable taxes or to request assessment (e.g. favorable taxation check/ verification of tax deduction).
- Dividends/ profit shares from stocks etc.
- Interest/ income from capital claims (e.g. bonds, fixed deposits, cash interest)
- Gains/ losses from disposal of stocks/ bonds/ other capital assets and certain derivatives/ options
- Foreign withholding tax (for crediting) and capital income without German tax deduction (typical for foreign brokers)
Anlage KAP-INV is for investment income (§ 16 InvStG) not subject to domestic tax deduction (German capital gains tax by a domestic custodian bank) – this is typically the case for foreign brokers.
- Fund/ ETF distributions
- Advance lump sums
- Gains from disposal/ redemption of investment units
- Practically: ETF/ fund distributions, advance lump sum and fund disposal gains are declared via KAP-INV when no German tax deduction was made
Anlage SO covers other income. In the context of securities and crypto portfolios, the 'Private Disposal Transactions' section under § 23 EStG is particularly relevant. Here, gains/ losses from disposal of 'other economic goods' within the 1-year period are declared.
- Crypto assets in private assets (e.g. sale/ exchange within one year)
- Products with entitlement to physical delivery (e.g. Xetra-Gold), which are treated as physical gold for tax purposes per BFH case law
- Disposal/ redemption within one year as private disposal transaction; after expiry of the one-year period generally not taxable