Methodik

Rechenmodell des Zinseszinsrechners

Diese Seite dokumentiert, wie der Zinseszinsrechner auf finanzfacts.de und die gleichnamige Android-App rechnen. Beide nutzen denselben Rechenkern. Er ist gegen eine unabhängige Zweitimplementierung mit Dezimalarithmetik geprüft: über 11.000 zufällige Szenarien mit allen Optionen liefern dort bis auf zehn Stellen dieselben Ergebnisse.

Alle Prozentwerte sind Prozentzahlen (7 bedeutet 7 %). Geldbeträge in Euro, ohne Zwischenrundung gerechnet. Rechtsstand Oktober 2026.

1. Zeitachse

  • Start ist der erste Tag des Startmonats startMonth (1 bis 12) im Jahr startYear.
  • Interne Zeit t in Monaten ab Start (Gleitkommazahl). Ein Jahr = 12 Monate. Eine Woche = 12/52 Monate, zwei Wochen = 12/26 Monate, ein Tag = 12/365 Monate.
  • Alle berechneten Zeitpunkte werden auf 9 Nachkommastellen gerundet (round(t*1e9)/1e9), damit z. B. 52 Wochen exakt t = 12 ergeben.
  • Laufzeit T (Monate, > 0, darf gebrochen sein). Spardauer S mit 0 <= S <= T.
  • Absoluter Monatsindex: a(t) = (startMonth - 1) + t.
  • Jedes Ereignis hat eine Seite: Ende-Seite (gehört zur Periode, die bei t endet) oder Anfangs-Seite (gehört zur Periode, die bei t beginnt).
  • Kalenderjahr eines Ereignisses: startYear + floor((a(t) - 1e-7)/12) auf der Ende-Seite, startYear + floor((a(t) + 1e-7)/12) auf der Anfangs-Seite.
  • Kalendermonat (1 bis 12) analog: floor(a ± 1e-7) mod 12 + 1.
  • Reihenfolge bei gleichem t: (1) alle Ende-Seite-Ereignisse, (2) Vorabpauschale-Berechnung zum Jahresende, (3) Monats-Schnappschuss, (4) alle Anfangs-Seite-Ereignisse. Innerhalb einer Gruppe: Zinsgutschrift vor Einzahlung vor Entnahme; Steuer der Vorabpauschale vor Einzahlungen; Einzahlungen vor Sonderzahlungen vor Entnahmen.

2. Einzahlungen

  • Startkapital K0 (>= 0) bei t = 0, Anfangs-Seite.
  • Sparrate d (>= 0) im Intervall iv mit Intervalllänge L: w = 12/52, 2w = 12/26, m = 1, q = 3, h = 6, y = 12.
  • Zeitpunkt timing:
  • pre (vorschüssig, Anfang der Periode): Zahlungen bei t = k·L für k = 0, 1, 2, … solange k·L < S − 1e-9. Anfangs-Seite.
  • post (nachschüssig, Ende der Periode): t = k·L für k = 1, 2, … solange k·L <= S + 1e-9. Ende-Seite.
  • Dynamik dyn (% p.a.): Betrag = d · (1 + dyn/100)^j mit j = floor((tp + 1e-9)/12), wobei tp der Beginn der Zahlungsperiode ist (pre: tp = t, post: tp = t − L).
  • Sonderzahlungen extras: Liste {month: ganze Zahl m mit 0 <= m < T, amount}. Positiv = Einzahlung, negativ = Entnahme (Bruttoverkauf). Anfangs-Seite bei t = m.

3. Anlageart mode

3a. etf (Fonds/ETF, thesaurierend, Kursmodell)

  • Rendite r (% p.a., effektiv) für Anlagejahr 1, optional Phasen phases = Liste {year: n >= 2, r}. Rendite im Anlagejahr j (t in [12(j−1), 12j)) ist die der Phase mit dem größten year <= j, sonst r. Für t < 0 gilt r.
  • Laufende Kosten ter (% p.a.). Nettowachstum im Jahr j: g_j = (1 + r_j)(1 − ter) − 1 (als Dezimalzahlen).
  • Anteilspreis P(0) = 1. P(t) wächst stetig geometrisch: innerhalb eines Anlagejahres P(t2) = P(t1) · (1 + g_j)^((t2 − t1)/12). Für t < 0 rückwärts mit g_1.
  • Kaufkosten je Einzahlung (auch Startkapital und positive Sonderzahlungen): costFix (€) und costPct (% vom Einzahlungsbetrag). Kosten c = min(E, costFix + E·costPct/100). Angelegt wird E − c. Anschaffungskosten (Steuer) = E (Kosten erhöhen die Anschaffungskosten).
  • Jeder Kauf erzeugt ein Los: Anteile u = (E − c)/P(t), Anschaffungskosten je Anteil b = E/u, bisher versteuerte Vorabpauschale je Anteil v = 0, Kaufjahr und Kaufmonat (Kalender, gemäß Seite).
  • Depotwert V(t) = Summe Anteile · P(t).

3b. zins (Zinskonto, Tagesgeld, Festgeld, Sparbuch)

  • Nominalzins r (% p.a.) mit denselben Phasen wie oben (TER und Kaufkosten entfallen).
  • Guthaben B, aufgelaufene, noch nicht gutgeschriebene Zinsen A.
  • Zwischen zwei Ereignissen: A += B · r(t)/100 · Δt/12 (lineare Verzinsung, abschnittsweise je Rendite-Phase).
  • Zinsgutschrift credit: y, h, q, m (alle 12/n Monate ab Start), d (täglich, alle 12/365 Monate) oder end (nur am Laufzeitende). Gutschriften bei t = j·Lc für j >= 1 und t < T − 1e-9, zusätzlich immer eine Schlussgutschrift bei t = T. Ende-Seite.
  • Bei Gutschrift: I = A, A = 0. Steuer s = Steuerbuchung(I). Ohne Ausschüttung: B += I − s. Mit payout = true (Zinsen werden ausgezahlt): wenn I − s >= 0, wird I − s ausgezahlt und B bleibt; sonst B += I − s.

4. Steuern (tax.on)

  • Steuersatz bei Kirchensteuersatz k (0, 8 oder 9 %, als Dezimalzahl kd): q = (1 + 0,055 + kd)/(4 + kd). Ohne Kirchensteuer 26,375 %.
  • Sparerpauschbetrag fsa (€ pro Kalenderjahr, Standard 1.000).
  • Teilfreistellung tf (%): Aktienfonds 30, Mischfonds 15, Immobilienfonds 60, Auslands-Immobilienfonds 80, sonst 0. Im Modus zins immer 0.
  • Steuerbuchung im Kalenderjahr y mit steuerpflichtigem Betrag x (darf negativ sein):
  • Zustand je Jahr: X (Summe x im Jahr), paid (bereits gezahlte Steuer im Jahr), L (Verlustvortrag zu Jahresbeginn).
  • Wechsel in ein neues Jahr (für jedes übersprungene Jahr einzeln): L = max(0, L − X), X = 0, paid = 0.
  • Buchung: X += x; due = max(0, X − L − fsa) · q; Steuer = due − paid (negativ = Erstattung); paid = due.
  • Zinsmodus: x = I (Zinsgutschrift) im Jahr der Gutschrift.
  • ETF-Verkauf von Bruttobetrag G zum Preis P: verkaufte Anteile G/P nach FIFO (älteste Lose zuerst). x = Summe über verkaufte Teil-Lose u · (P − b − v) · (1 − tf/100). Steuer wird vom Verkaufserlös abgezogen (Nettoerlös = G − Steuer).
  • Vorabpauschale (nur ETF): für jedes Kalenderjahresende bei t_b mit a(t_b) Vielfaches von 12 und 0 < t_b < T − 1e-9. Jahr Y = Kalenderjahr, das bei t_b endet.
  • Basiszins BZ_Y aus Tabelle (2018 0,87; 2019 0,52; 2020 0,07; 2021 −0,45; 2022 −0,05; 2023 2,55; 2024 2,29; 2025 2,53; 2026 3,20 %), für spätere Jahre bzFuture (% , Standard 3,20). Negativer Basiszins zählt als 0.
  • P1 = P(t_b − 12) (Jahresanfang), P2 = P(t_b) (Jahresende). Je Anteil: VPu = max(0, min(P1 · 0,7 · BZ, P2 − P1)).
  • Für jedes Los im Bestand (nach allen Ende-Seite-Ereignissen bei t_b): Faktor f = 1, wenn Kaufjahr < Y, sonst f = (13 − Kaufmonat)/12. Vorabpauschale des Loses = u · VPu · f; v += VPu · f.
  • Summe VP: Steuerbuchung mit x = VP · (1 − tf/100) im Jahr Y + 1 (Anfangs-Seite bei t_b). Diese Steuer zahlt der Anleger vom Verrechnungskonto (externer Abfluss), das Depot bleibt unverändert.
  • Ohne Steuern: Steuer immer 0, keine Vorabpauschale.

5. Entnahmeplan (wd.on)

  • Beginn t_w = wd.start (Monate ab Start), Betrag W, Intervall m (1), q (3), y (12), Zeitpunkt pre oder post, Dynamik wd.dyn (% p.a.).
  • pre: Entnahmen bei t = t_w + k·Lw (k >= 0) solange t < T − 1e-9, Anfangs-Seite. post: k >= 1 solange t <= T + 1e-9, Ende-Seite.
  • Betrag = W · (1 + dyn/100)^floor((tp − t_w + 1e-9)/12) mit tp = Beginn der Entnahmeperiode (pre: t, post: t − Lw).
  • wd.net = false (Brutto): ETF verkauft G = min(Betrag, V); Auszahlung = G − Steuer. Zinsmodus: Auszahlung = min(Betrag, B).
  • wd.net = true (Netto, nur ETF relevant): Verkauf G so, dass G − Steuer(G) = Betrag; reicht das Depot nicht, wird alles verkauft.
  • Kann ein Betrag nicht voll ausgezahlt werden, gilt das Kapital als aufgebraucht (Zeitpunkt merken). Spätere Entnahmen zahlen, was noch da ist.
  • Negative Sonderzahlungen werden wie Brutto-Entnahmen behandelt.

6. Ergebnis

  • Monats-Schnappschüsse bei t = 1, 2, …, floor(T) und zusätzlich bei T, falls T gebrochen ist. Wert = V (ETF) bzw. B (Zins).
  • Endwert brutto = Wert bei T.
  • Endwert netto: ETF = Endwert − Steuer bei hypothetischem Komplettverkauf bei T (Ende-Seite, Steuerzustand wird nicht verändert). Zins = B.
  • Real (Kaufkraft heute) = nominal / (1 + infl/100)^(t/12).
  • Rendite nach Kosten und Steuern p.a. = interner Zinsfuß der Anleger-Zahlungsströme (Diskontierung (1 + x)^(−t/12)): −Einzahlungen (brutto), +Netto-Entnahmen, −Steuern aus Vorabpauschale, +ausgezahlte Zinsen, + Endwert netto bei T.
  • Erträge: ETF = Endwert brutto − Summe angelegter Beträge (nach Kaufkosten) + Summe Bruttoverkäufe. Zins = Summe gutgeschriebener Zinsen (brutto).

7. Monte-Carlo (nur ETF)

  • Monatliche Log-Renditen ~ N(ln(1 + g)/12, σ²/12) ab Januar des Startjahres, σ = Volatilität p.a. Innerhalb eines Monats geometrische Interpolation. Zufallsgenerator mit festem Seed.

Prüfung

Der Rechenkern läuft gegen eine zweite, unabhängig programmierte Referenz (Python, Dezimalarithmetik) und gegen geschlossene Formeln (Rentenbarwert, Sparbuchformel, Annuität) sowie Lehrbuchbeispiele zur Vorabpauschale. Findest du eine Abweichung, nutze bitte das Feedback-Formular auf der Rechnerseite.

Danke! Deine Meldung ist angekommen. Ich prüfe sie in den nächsten Tagen.
War diese Seite hilfreich?
Fehler entdeckt oder etwas veraltet? Sag mir Bescheid.

Tipp: Markiere eine Textstelle auf der Seite und schreib mir direkt dort, was geändert werden soll.

Worum geht es?

Ich speichere deine Meldung, die Seitenadresse und bei Rechnern deine Eingaben, aber keine IP-Adresse. Mehr dazu in der Datenschutzerklärung.

Florian Baumann, Gründer von finanzfacts.de
Über den Autor
Florian Baumann

Florian hat Wirtschaftsinformatik in Würzburg studiert und ist seit über 20 Jahren im Online-Marketing tätig. Seit mehreren Jahren investiert er privat in ETFs, Aktien, Krypto und Immobilien. Mit finanzfacts.de zeigt er dir den einfachsten Weg vom Finanzeinsteiger zum informierten Investor.

Mehr über Florian erfahren →

Jeden Rechner baut Florian selbst, jede Zahl prüft er gegen die amtliche Quelle, KI hilft nur beim Entwurf und beim Nachrechnen. Wie das genau abläuft, steht unter So entstehen die Inhalte.

Finanzfacts Logo Finanzfacts

Finanzbildung für Anfänger

Haftungsausschluss & Transparenz

Die auf finanzfacts.de bereitgestellten Inhalte, Rechner und Vergleiche dienen reinen Informationszwecken und stellen keine individuelle Anlage-, Rechts- oder Steuerberatung dar. Wir übernehmen keine Gewähr für die Richtigkeit, Vollständigkeit oder Aktualität der bereitgestellten Daten. Investitionen an der Börse sind mit Risiken verbunden, die bis zum Totalverlust des eingesetzten Kapitals führen können. Historische Renditen sind kein verlässlicher Indikator für zukünftige Entwicklungen. Triff finanzielle Entscheidungen immer auf Basis deiner eigenen Recherche.

Werbehinweis

Links mit Stern (*) sind Werbelinks (Affiliate-Links), Boxen mit dem Hinweis „Anzeige“ sind Werbung. Kaufst du über einen solchen Link ein Produkt oder eröffnest ein Konto, erhält finanzfacts eine Provision. Für dich entstehen dabei keine Zusatzkosten, und du unterstützt damit den kostenfreien Betrieb unserer Rechner. Als Amazon-Partner verdienen wir an qualifizierten Verkäufen.

Fragen oder Fehler gefunden? Schreib uns: florian.baumann@finanzfacts.de oder gehe zur Kontaktseite.