Altersvorsorge — einfach durchgerechnet
Dieses Werkzeug zeigt Ihnen, wie sich vier Wege der privaten Altersvorsorge für Ihre Lebenssituation rechnen — verständlich und ohne Fachvorwissen. Im Schnellrechner wählen Sie Ihre Situation aus, geben drei bis vier Angaben ein und sehen sofort einen Vergleich. Unter Was nun? erfahren Sie, wie der nächste Schritt praktisch abläuft.
- Privat-ETF-Sparplan: Ein Wertpapiersparplan ohne staatliche Förderung. Sie bleiben jederzeit flexibel und kommen jederzeit an das Geld; auf die Erträge fällt jedoch Steuer an.
- Altersvorsorgedepot: Ein neues, ab 2027 verfügbares gefördertes Depot. Der Staat legt Zulagen obendrauf, und es gibt einen Steuervorteil. Dafür ist das Geld bis zum Ruhestand gebunden. Achten Sie hier besonders auf die laufenden Kosten — sie wirken sich über die lange Laufzeit stark auf das Endkapital aus.
- Riester (Bestand): Der bekannte geförderte Vertrag. Neue Riester-Verträge können nur noch bis zum 31.12.2026 abgeschlossen werden; danach ist kein Neuabschluss mehr möglich. Bereits bestehende Verträge bleiben darüber hinaus geschützt.
- Rürup (Basisrente): Eine geförderte Rente vor allem für Selbstständige. Hoher Steuervorteil beim Einzahlen, dafür lebenslange Rente ohne Möglichkeit der Auszahlung auf einen Schlag.
- Wechseln Sie zum Tab Schnellrechner.
- Wählen Sie das Profil, das am ehesten zu Ihnen passt.
- Ergänzen Sie Geburtsjahr, monatlichen Sparbetrag und Einkommensbereich.
- Lesen Sie das Ergebnis — welcher Weg in Ihrer Situation am meisten übrig lässt.
- Unter Was nun? sehen Sie, wie es konkret weitergeht.
Wenn Sie alle Annahmen selbst steuern möchten — Rendite, Inflation, Kosten, Auszahlphase je Produkt —, wechseln Sie oben rechts in den Experten-Modus.
Dieses Werkzeug ist ein Rechen- und Anschauungshilfsmittel. Es ersetzt weder eine Steuer-, Rechts- noch eine Anlage- oder Versicherungsberatung und gibt keine Empfehlung ab, welches Produkt Sie abschließen sollten. Alle Berechnungen beruhen auf vereinfachten Annahmen und typisierten Durchschnittswerten und können von Ihrer tatsächlichen Situation abweichen. Bevor Sie eine Entscheidung treffen, lassen Sie sich von einer dafür zugelassenen Fachperson individuell beraten.
Modellhaftes Rechen- und Darstellungswerkzeug zur persönlichen Finanzplanung. Der Entwickler ist weder Steuerberater noch Wirtschaftsprüfer, Rechtsanwalt, Anlage- oder Versicherungsberater und ist insbesondere nicht zur geschäftsmäßigen Hilfeleistung in Steuersachen im Sinne des § 3 StBerG befugt. Durch die Nutzung der Software kommt keine Beratungsbeziehung zustande. Berechnungen, Befunde und Hinweise sind rein modellhaft und stellen keine Empfehlung im rechtlichen, steuerlichen, anlage- oder versicherungsbezogenen Sinne dar. Keine Gewähr, kein Support, Haftung im gesetzlich zulässigen Umfang ausgeschlossen (Vorsatz und grobe Fahrlässigkeit sowie Schäden an Leben, Körper und Gesundheit ausgenommen; § 521 BGB bleibt unberührt). Vor jeder Umsetzung steuerlicher, rechtlicher, anlage- oder versicherungsbezogener Entscheidungen ist eine individuelle Prüfung durch eine zugelassene Berufsperson erforderlich (Steuerberater, Wirtschaftsprüfer, Rechtsanwalt, Anlageberater nach WpHG, Vermittler nach § 34d GewO).
© 2026 Andreas Ebert · Freeware zur persönlichen Nutzung · Bezug: www.privatbilanz.de
Schnellrechner
Wählen Sie Ihre Situation und ergänzen Sie wenige Angaben. Alles Übrige rechnet das Werkzeug mit dokumentierten Standardwerten — diese sehen Sie unter dem Ergebnis.
Was nun? — Der nächste Schritt
Sie wissen jetzt, welcher Weg sich für Sie rechnen könnte — doch wie geht es praktisch weiter? Beantworten Sie ein paar Fragen, und das Werkzeug zeigt Ihnen einen anbieterneutralen Leitfaden für den nächsten Schritt. Es werden bewusst keine konkreten Banken, Broker oder Produkte genannt — die Auswahl bleibt Ihre Entscheidung.
Worum geht es?
Dieses Werkzeug rechnet vier Wege der privaten Altersvorsorge unter identischen Annahmen gegeneinander: einen klassischen Privat-ETF-Sparplan, das ab 01.01.2027 verfügbare Altersvorsorgedepot, einen bestehenden Riester-Vertrag und Rürup (Basisrente). Die Steuer- und Liquiditätseffekte werden nach den Vorgaben des Altersvorsorgereformgesetzes modelliert, das am 29.05.2026 im Bundesgesetzblatt verkündet wurde (BGBl. 2026 I Nr. 156) und dessen wesentliche Teile zum 01.01.2027 in Kraft treten.
Das Altersvorsorgedepot ist beschlossen, aber noch nicht am Markt. Wer sich gerade informiert, sollte den folgenden Stand kennen:
- Gesetz in Kraft, Produkte ab 2027. Das Altersvorsorgereformgesetz ist am 29.05.2026 im Bundesgesetzblatt verkündet worden (BGBl. 2026 I Nr. 156). Die wesentlichen Regelungen gelten ab dem 01.01.2027; erst ab diesem Zeitpunkt dürfen Altersvorsorgedepots angeboten werden.
- Noch keine abschlussfähigen Angebote. Banken, Neobroker, Fonds- gesellschaften und Versicherer bereiten Produkte vor und veröffentlichen Infoseiten, aber konkrete Konditionen — insbesondere Rentenfaktoren für die lebenslange Rente — liegen noch nicht vor. Der im Werkzeug für die Auswertung „mit oder ohne Absicherung" verwendete Rentenfaktor (Vorgabe 27 € je 10.000 €) ist daher weiterhin eine Modellannahme ohne Marktbeleg.
- Zertifizierung. Jedes Produkt muss vor dem Vertrieb vom Bundeszentralamt für Steuern zertifiziert werden. Anbieter müssen mindestens ein kostengedeckeltes Standardprodukt bereitstellen, dessen Effektivkosten auf höchstens 1 % pro Jahr begrenzt sind; auch außerhalb des Standardprodukts sind die Effektivkosten offen auszuweisen.
- Vergleichsplattform. Zum Start ist eine unabhängige, digitale Vergleichsplattform vorgesehen, die zertifizierte Produkte mit ihren Effektivkosten transparent gegenüberstellt.
- Auszahlung. Der Auszahlbeginn ist frühestens mit Vollendung des 65., spätestens mit dem 70. Lebensjahr möglich. Zulässig sind eine lebenslange Leibrente oder ein zeitlich befristeter Auszahlplan (mindestens bis zum 85. Lebensjahr).
- Kranken- und Pflegeversicherung. Nach der FAQ des Bundesfinanz- ministeriums sind laufende Leistungen aus geförderten Verträgen bei Pflichtversicherten der Krankenversicherung der Rentner beitragsfrei — wie bisher bei Riester. Das Werkzeug bildet das für die laufende Rente des Altersvorsorgedepots entsprechend ab (Schalter im Tab Eingaben). Offen bleibt die sozialversicherungsrechtliche Behandlung von Einmal- und Teilkapitalauszahlungen aus dem Altersvorsorgedepot; hierzu fehlt bislang eine ausdrückliche gesetzliche oder höchstrichterliche Festlegung. Das Werkzeug rechnet diesen Fall in Anlehnung an § 229 SGB V auf 120 Monate verteilt — als ausgewiesene, vorsichtige Modellannahme.
- Was sich noch ändern kann. Zertifizierungsdetails, die konkrete Produktlandschaft und einzelne Verwaltungsauffassungen (etwa zur KV-/PV-Behandlung von Kapitalauszahlungen) können sich bis und nach dem Inkrafttreten noch entwickeln. Die Berechnungen dieses Werkzeugs sind modellhaft und beim tatsächlichen Produktabschluss anhand der dann gültigen Bedingungen zu prüfen.
- Grundzulage Altersvorsorgedepot: 50 ct/€ bis 360 € Eigenbeitrag, danach 25 ct/€ bis 1.800 €, maximal 540 €/Jahr.
- Mindesteigenbeitrag: 120 €/Jahr (10 €/Monat). Die einkommensabhängige Kürzung der Zulagen wie bei Riester entfällt vollständig.
- Kinderzulage: 1 € Zulage je 1 € Eigenbeitrag bis 300 €/Kind/Jahr, je Kind nur an einen Elternteil.
- Berufseinsteigerbonus: einmalig 200 €, wenn der Anleger zu Beginn des Beitragsjahres unter 25 Jahre alt ist (Stichtag ist nicht der Vertragsabschluss).
- Sonderausgabenabzug § 10a EStG: 1.800 € zuzüglich Zulagenanspruch. Die Günstigerprüfung wird im Modell durchgeführt.
- Anspar-Besteuerung: Keine. Weder Vorabpauschale noch Abgeltungsteuer auf laufende Erträge.
- Auszahl-Besteuerung — Zwei-Töpfe-Logik:
Der geförderte Anteil wird in voller Höhe nach § 22 Nr. 5 EStG besteuert (Grenzsteuersatz im Ruhestand).
Für Beiträge oberhalb der 1.800-€-Grenze (nicht geförderter Topf) kommt es auf die Auszahlform an:
- Als lebenslange Rente nur Ertragsanteilsbesteuerung nach § 22 Nr. 5 Satz 2 i. V. m. § 22 Nr. 1 Satz 3 EStG. Der Ertragsanteil richtet sich nach dem Alter bei Rentenbeginn (mit 67: 17 %; bei abweichendem Renteneintrittsalter im Experten-Modus rechnet das Werkzeug mit dem jeweils gesetzlich maßgeblichen Wert).
- In allen übrigen Auszahlformen — Kapitalauszahlung (Einmalbetrag oder 30 % vorab) und befristeter Auszahlplan — ist der Unterschiedsbetrag steuerpflichtig: die Auszahlung abzüglich der darauf entfallenden eingezahlten Beiträge, also nur der Gewinn (§ 22 Nr. 5 Satz 2 Buchst. c i. V. m. § 20 Abs. 1 Nr. 6 EStG). Nach der 12/62-Regel ist davon nur die Hälfte steuerpflichtig, wenn der Vertrag mindestens 12 Jahre bestanden hat und die Auszahlung nach Vollendung des 62. Lebensjahres erfolgt; sonst der volle Unterschiedsbetrag. (Das Altersvorsorgedepot kann frühestens 2027 abgeschlossen werden, daher gilt hier stets die Altersgrenze 62; bei Riester-Verträgen mit Abschluss vor 2012 sind es 60.) Besteuert wird jeweils mit dem persönlichen Grenzsteuersatz im Ruhestand (keine Abgeltungsteuer, da sonstige Einkünfte). Maßgeblich ist, dass die Ertragsanteilsbesteuerung eine lebenslange Leibrente voraussetzt — ein bis zum Auszahlende befristeter Plan ist keine.
- Übertragung Rürup ↔ Altersvorsorgedepot: nicht möglich (verschiedene Säulen).
- Begünstigtenkreis Altersvorsorgedepot: Gesetzlich Rentenversicherungspflichtige, Beamte (mit Einwilligung), Selbstständige nach § 15 / § 18 Abs. 1 Nr. 1–3 EStG bei Steuererklärung, Pflichtmitglieder berufsständischer Versorgungswerke (mit Einwilligung gegenüber ZfA). Mittelbar berechtigte Ehegatten max. 175 € Grundzulage.
- Im Tab Eingaben die persönlichen, steuerlichen und die Globalparameter (Rendite, Inflation, Renteneintritt, Auszahlendalter) erfassen.
- Im Tab Vergleich die vier Spalten gegenüberstellen. Jede Spalte erlaubt einen Override der Globalparameter und individuelle Einstellungen zur Auszahlphase im gesetzlichen Rahmen.
- Im Tab Steuersatz-Szenarien die Sensitivität gegenüber dem Grenzsteuersatz im Ruhestand prüfen.
- Im Tab Auswertung die neutrale Modell-Aussage zur Vorzugswürdigkeit lesen. Die Auswertung verzichtet bewusst auf normative Empfehlungen.
- Im Tab Druckreport eine kompakte Druckansicht erzeugen.
Modellhaftes Rechen- und Darstellungswerkzeug zur persönlichen Finanzplanung. Der Entwickler ist weder Steuerberater noch Wirtschaftsprüfer, Rechtsanwalt, Anlage- oder Versicherungsberater und ist insbesondere nicht zur geschäftsmäßigen Hilfeleistung in Steuersachen im Sinne des § 3 StBerG befugt. Durch die Nutzung der Software kommt keine Beratungsbeziehung zustande. Berechnungen, Befunde und Hinweise sind rein modellhaft und stellen keine Empfehlung im rechtlichen, steuerlichen, anlage- oder versicherungsbezogenen Sinne dar. Keine Gewähr, kein Support, Haftung im gesetzlich zulässigen Umfang ausgeschlossen (Vorsatz und grobe Fahrlässigkeit sowie Schäden an Leben, Körper und Gesundheit ausgenommen; § 521 BGB bleibt unberührt). Vor jeder Umsetzung steuerlicher, rechtlicher, anlage- oder versicherungsbezogener Entscheidungen ist eine individuelle Prüfung durch eine zugelassene Berufsperson erforderlich (Steuerberater, Wirtschaftsprüfer, Rechtsanwalt, Anlageberater nach WpHG, Vermittler nach § 34d GewO).
© 2026 Andreas Ebert · Freeware zur persönlichen Nutzung · Bezug: www.privatbilanz.de
Eingaben
Tragen Sie hier Ihre persönlichen Angaben und die Annahmen für die Rechnung ein. Das kleine Fahren Sie mit der Maus über das Zeichen, dann erscheint eine Erklärung zum Feld. -Zeichen neben einem Feld blendet eine kurze Erklärung ein. Die allgemeinen Annahmen (Rendite, Inflation, Alter bei Rentenbeginn) gelten zunächst für alle vier Vergleichswege. Weiter unten lassen sie sich bei Bedarf je Produkt abweichend einstellen.
Wie finde ich diese Werte? — kurze Orientierungshilfe
Zu versteuerndes Einkommen. Der Wert steht im letzten Einkommensteuerbescheid im Festsetzungsteil, dort ausdrücklich als „zu versteuerndes Einkommen“ bezeichnet. Liegt kein Bescheid vor: Bei abhängig Beschäftigten fällt das zu versteuernde Einkommen in aller Regel deutlich niedriger aus als der Bruttojahreslohn, weil unter anderem die Sozialversicherungs beiträge, die Werbungskosten und Sonderausgaben abgezogen werden. Eine genaue Umrechnung aus dem Bruttolohn hängt von zu vielen Einzelfaktoren ab, um sie hier seriös abzubilden — verlässlich ist allein der Steuerbescheid.
Steuersatz auf den letzten Euro (Grenzsteuersatz). Die folgende Tabelle gibt eine grobe Orientierung für Alleinstehende im Grundtarif, ohne Solidaritätszuschlag und ohne Kirchensteuer. Die Zwischenwerte sind gerundete Näherungen; belastbar sind vor allem die drei Eckpunkte (Grundfreibetrag, Spitzensteuersatz, oberste Tarifstufe).
| Zu versteuerndes Einkommen im Jahr | Grenzsteuersatz (ungefähr) |
|---|---|
| bis rund 12.000 € | 0 % — Grundfreibetrag |
| rund 15.000 € | etwa 25 % |
| rund 25.000 € | etwa 30 % |
| rund 35.000 € | etwa 35 % |
| rund 50.000 € | etwa 40 % |
| ab rund 68.000 € | 42 % — Spitzensteuersatz |
| ab rund 278.000 € | 45 % |
Zu beachten: Bei Zusammenveranlagung von Eheleuten oder eingetragenen Lebenspartnern gilt das Ehegattensplitting; die genannten Einkommensschwellen verdoppeln sich dann näherungsweise. Solidaritätszuschlag und Kirchensteuer erhöhen die Belastung des letzten Euro zusätzlich. Maßgeblich bleibt stets der individuelle Steuerbescheid — die Tabelle dient nur der ersten Einordnung.
Die geförderten Wege bringen in der Ansparphase eine Steuererstattung mit; der Privat-ETF nicht. Wählen Sie hier, wie das Modell diese Erstattung behandelt. Die Wahl beeinflusst den Vergleichswert spürbar — die Voreinstellung „gleicher Bruttobeitrag" zeigt die Erstattung nur an, ohne sie weiter anzulegen.
Tragen Sie hier ein, wie viel Sie monatlich in den jeweiligen Weg einzahlen würden. Damit ein Vergleich entsteht, sollten mindestens zwei Wege einen Beitrag größer null haben. Wege, die Sie nicht nutzen, lassen Sie auf 0 stehen. Unter dem Beitrag lässt sich je Weg eine jährliche Steigerung der Sparrate (Dynamisierung) einstellen. Die vier Wege sind durchgehend farblich gekennzeichnet — dieselben Farben finden sich im Tab Vergleich wieder.
Hier legen Sie je Weg fest, wie das angesparte Geld im Ruhestand genutzt wird — als gleichmäßige Auszahlung, lebenslange Rente, Einmalbetrag oder Mischform. Die Wahl verändert die jährliche Auszahlung, die Steuerlast und damit den Vergleichswert deutlich; was erlaubt ist, ist je Weg gesetzlich unterschiedlich.
Die lebenslange Leibrente zahlt monatlich weniger, dafür bis zum Lebensende; der Auszahlplan zahlt mehr, endet aber zum Auszahlende, und ein verbleibendes Restkapital ist vererbbar. Maßgeblich ist die persönliche Einschätzung zur eigenen Lebenserwartung.
Bei einer förderschädlichen Verwendung sind die erhaltenen Zulagen und die darüber hinausgehenden Steuerermäßigungen zurückzuzahlen (§ 93 Absatz 1 Einkommensteuergesetz). Das verbleibende Kapital gilt nach Abzug der Zulagen als Leistung nach § 22 Nummer 5 Satz 3 Einkommensteuergesetz: besteuert wird der Unterschiedsbetrag zur Summe Ihrer Eigenbeiträge. Bei mindestens zwölf Jahren Vertragsdauer wird er nur zur Hälfte angesetzt, wenn die Auszahlung nach Vollendung des maßgeblichen Lebensjahres erfolgt: 60 bei Vertragsabschluss vor 2012, sonst 62 (§ 20 Absatz 1 Nummer 6 Satz 2 Einkommensteuergesetz in der für den Vertrag geltenden Fassung). Das Altersvorsorgedepot kann frühestens 2027 abgeschlossen werden; dort gilt stets 62.
Riester-Bestandsdaten (aus Standmitteilung und Steuerbescheiden). Diese Angaben werden nur ausgewertet, wenn oben „Bestehender Vertrag" gewählt ist — dann sind sie alle erforderlich. Ein bewusst eingetragener Wert 0 zählt als Angabe, ein leeres Feld nicht. Die Angaben wirken ausschließlich in dieser Auswertung, nicht im Vier-Wege-Vergleich.
Normalerweise gelten für alle vier Wege dieselben allgemeinen Annahmen von weiter oben. Wenn ein einzelner Weg mit anderen Werten gerechnet werden soll — etwa eine vorsichtigere Rendite für das Altersvorsorgedepot oder höhere Kosten bei einem alten Riester-Vertrag — können Sie das hier einschalten. Die Rendite vor Kosten lässt sich getrennt für die Anspar- und die Auszahlphase angeben; die Kosten gelten für beide Phasen. Solange der Schalter aus ist, gelten die allgemeinen Annahmen.
Vergleich der vier Wege
Je Weg eine Spalte: oben die beiden Kennzahlen Endkapital und Barwert, darunter der Detailkasten mit der vollständigen Rechenkette. Wo im Eingaben-Tab eigene Werte aktiviert sind, gelten für das betreffende Produkt abweichende Renditen und Kosten. Der Barwert diskontiert die Nettoauszahlungen auf den Renteneintritt; er ist die Kennzahl, die Produkte mit unterschiedlicher Auszahlmechanik vergleichbar macht.
noch nicht berechnet
| Eigenschaft | Privat-ETF | AV-Depot | Riester | Rürup |
|---|---|---|---|---|
| Liquidität in der Ansparphase | jederzeit | gebunden bis 65 | gebunden | gebunden |
| Beleihbarkeit | grundsätzlich ja | nein | nein | nein |
| Vererbbarkeit (Kapital) | voll | eingeschränkt (Rentengarantiezeit / Restkapital) | eingeschränkt | grds. nicht (Hinterbliebenenrente möglich) |
| Bürgergeld-Schutz § 12 SGB II | grds. anrechenbar | geschützt | geschützt | geschützt |
| Verwertung in Grundsicherung § 90 SGB XII | verwertbar | grds. geschützt | grds. geschützt | geschützt |
| Förderschädliche Verwendung | irrelevant | Rückforderung Förderung | Rückforderung Förderung | grds. nicht möglich |
| Auszahlbeginn | jederzeit | frühestens 65 | 62/63 (vertragsabhängig) | 62 (gesetzl. Mindest) |
Norm-Hinweis: § 12 Abs. 1 Nr. 3 SGB II (Bürgergeld), § 90 Abs. 2 Nr. 2 SGB XII (Grundsicherung), § 851c ZPO (Pfändungsschutz Altersvorsorgeverträge). Tabellarische Darstellung ohne Anspruch auf vollständige Wiedergabe des Einzelfalls.
Zahlungsströme
Diese Ansicht macht sichtbar, was Jahr für Jahr tatsächlich fließt: in der Ansparphase der eigene Beitrag und die staatliche Förderung, in der Auszahlphase die Brutto-Auszahlung, die darauf entfallende Steuer, ein etwaiger Kranken- und Pflegeversicherungsbeitrag und der Nettobetrag. Wählen Sie oben den Weg, dessen Zahlungsströme Sie betrachten möchten.
Steuersatz-Szenarien
Sensitivität der Vergleichswerte gegenüber dem Steuersatz auf den letzten Euro im Ruhestand. Drei Szenarien werden parallel berechnet — niedrig 18 %, mittel 28 %, hoch 38 %. Alle übrigen Parameter (Rendite, Kosten, Beiträge, Inflation, Diskont) bleiben unverändert. Die historische Tarifentwicklung seit 1960 dient als Modellkontext: Verschiebungen um fünf bis zehn Prozentpunkte über einen 25- bis 40-jährigen Anlagehorizont sind nicht ungewöhnlich.
| Szenario | Grenzsatz Ruhestand | Privat-ETF (Barwert) | AV-Depot (Barwert) | Riester (Barwert) | Rürup (Barwert) | Modell-Spitzenreiter |
|---|
Der Privat-ETF reagiert nicht auf den Ruhestand-Grenzsatz (Abgeltungsteuer 25 % fix); seine Barwerte sind in allen drei Spalten identisch. Riester und das Altersvorsorgedepot reagieren am stärksten, weil ihre Auszahlungen voll bzw. anteilig nach § 22 Nr. 5 EStG mit dem persönlichen Grenzsatz besteuert werden.
Die Grafik zeigt fünf Reihen in Fünf-Jahres-Schritten. Die durchgezogene Spitzensteuersatz-Linie ist der höchste reguläre Grenzsteuersatz nach § 32a Einkommensteuergesetz; er liegt seit 2005 bei 42 %. Die durchgezogene Linie Höchststeuersatz — umgangssprachlich „Reichensteuer" — ist die 2007 eingeführte zusätzliche Tarifstufe von 45 % für sehr hohe Einkommen; davor existierte sie nicht, weshalb diese Linie beim Stützpunkt 2010 einsetzt. Zu jeder dieser beiden Linien gibt es eine gestrichelte Variante in derselben Farbe: sie zeigt den Satz einschließlich Solidaritätszuschlag. Der Zuschlag erhöht die Belastung um 5,5 % des Steuerbetrags — aus 42 % werden so rund 44,3 %, aus 45 % rund 47,5 %. Im Tooltip wird der Soli-Wert in Klammern bei der jeweiligen Hauptlinie ausgewiesen. Die rechte Achse misst alle Steuersatz-Linien in Prozent.
Die graue gestrichelte Linie (linke Achse) zeigt, ab welchem Vielfachen des durchschnittlichen Bruttojahresgehalts der Spitzensteuersatz greift: 1965 erst beim rund 15-fachen, heute bereits beim etwa 1,9-fachen — der Spitzensteuersatz trifft also längst nicht mehr nur Spitzenverdiener. Belastbare Stützwerte (1965, 1980, 1990, 2000, 2017) stammen vom Institut der deutschen Wirtschaft Köln; die Zwischenjahre sind näherungsweise interpoliert. Hinweis zur Bezugsgröße: Die zitierfähige Quelle misst am durchschnittlichen Bruttogehalt aller Arbeitnehmer. Bezogen allein auf Vollzeitbeschäftigte läge der heutige Faktor noch etwas niedriger; ein durchgehender, belastbarer Median-Zeitverlauf liegt nicht vor. Quelle der Steuersätze: § 32a Einkommensteuergesetz in den jeweiligen Fassungen sowie die Tarifhistorie des Bundesministeriums der Finanzen.
Auswertung
Auswertung — nicht Empfehlung. Das Modell zeigt die Vorzugswürdigkeit der vier Wege in neutraler Sprache und unter Offenlegung der zugrunde liegenden Annahmen. Maßgröße ist der Barwert; was er aussagt, erläutert der Abschnitt weiter unten.
Dargestellt ist der abgezinste Barwert der Nettoauszahlungen je Weg — also der unten erläuterte Vergleichswert. Je höher der Balken, desto mehr ist die gesamte spätere Auszahlung, auf heutige Kaufkraft und den Renteneintritt umgerechnet, im Modell wert. Nur Wege mit einem Beitrag größer null werden dargestellt.
Die vier Wege zahlen das Ersparte sehr unterschiedlich aus: der eine als Einmalbetrag, der andere als lebenslange Rente, ein dritter als Auszahlplan über zwanzig Jahre. Solche Zahlungsströme lassen sich nicht unmittelbar vergleichen — 1.000 Euro heute sind mehr wert als 1.000 Euro in zwanzig Jahren, weil Geld zwischenzeitlich an Kaufkraft verliert und angelegt werden könnte.
Der Barwert löst dieses Problem. Er rechnet jede künftige Netto-Auszahlung auf einen gemeinsamen Stichtag — den Renteneintritt — zurück und bereinigt sie um die Geldentwertung. Eine Zahlung, die erst spät fließt, zählt dadurch weniger als eine frühe Zahlung gleicher Höhe. Die Summe all dieser zurückgerechneten Beträge ist der Barwert. Vereinfacht: Er beziffert, wie viel die gesamte spätere Auszahlung eines Weges aus heutiger Sicht wert ist.
- Sie ersetzt keine steuerliche, rechtliche, anlage- oder versicherungsbezogene Beratung.
- Sie berücksichtigt nicht die individuelle Risikoneigung, Liquiditätsplanung und Lebenssituation.
- Sie unterstellt eine konstante steuerliche und sozialrechtliche Rahmenlage über die gesamte Laufzeit. Das ist realitätsfern; die Sensitivität gegenüber Steuersatzänderungen wird in Tab Steuersatz-Szenarien geprüft.
- Sie modelliert die Kosten als Pauschalwert. Echte Anbieter weichen davon ab.
- Der Privat-ETF wird steuerlich vereinfacht gerechnet, und zwar mit
gegenläufigen Vereinfachungen — beide werden hier genannt, damit
nicht der Eindruck einer einseitigen Verzerrung entsteht:
- Zugunsten des ETF: Die Vorabpauschale (§ 18 Investmentsteuergesetz) ist im Modell auf null gesetzt, und die Steuer auf Auszahlungen nutzt eine über den gesamten Bestand gemittelte Gewinnquote statt der gesetzlichen Reihenfolge „zuerst angeschafft, zuerst veräußert" (§ 20 Absatz 4 Satz 7 Einkommensteuergesetz).
- Zulasten des ETF: Der Sparer-Pauschbetrag (§ 20 Absatz 9 Einkommensteuergesetz, 1.000 € je Person und Jahr) wird nicht angesetzt. Grund: Das Werkzeug weiß nicht, ob er bereits durch andere Kapitalerträge verbraucht ist; ihn ungeprüft anzurechnen wäre eine stillschweigende Annahme zugunsten des ETF. Im Standardfall werden dadurch rund 260 € Steuer je Auszahljahr zu viel angesetzt — etwa 2,7 % des ETF-Barwerts. Wer den Freibetrag tatsächlich noch frei hat, darf den ETF also etwas besser einschätzen, als das Werkzeug ihn ausweist.
Druckreport
Der Druckreport stellt die gewählten Auswertungsteile als mehrseitiges Dokument zusammen. Wählen Sie unten, welche Abschnitte enthalten sein sollen; die Vorschau darunter aktualisiert sich sofort. Über die Schaltfläche „Druckreport drucken" oder „Drucken" oben rechts wird ausschließlich dieser Bericht gedruckt — Kopf, Tab-Leiste und Bedienelemente werden ausgeblendet.
Die Abschnitte Steuersatz-Szenarien und Zahlungsströme sind umfangreich und standardmäßig nicht ausgewählt. Jeder Abschnitt beginnt im Druck auf einer neuen Seite.
Administration
Dieser Bereich dient der Qualitätssicherung. Die Plausibilitätsprüfung läuft automatisch bei jeder Berechnung mit und kontrolliert die aktuell erfassten Werte auf typische Fehler und Unstimmigkeiten. Der Selbsttest prüft die Rechenregeln des Werkzeugs gegen feste Erwartungswerte; er muss eigens gestartet werden. Beide Routinen ersetzen keine fachliche Durchsicht, sie helfen aber, offensichtliche Probleme früh zu erkennen.
Diese Prüfung sieht sich die im Tab Eingaben erfassten Werte an und meldet Unstimmigkeiten — etwa einen Renteneintritt vor dem heutigen Alter, fehlende Beiträge oder einen unrealistisch gewählten Parameter. Sie wird bei jeder Neuberechnung automatisch aktualisiert. Hinweise, die nach fachlicher Durchsicht in Ordnung sind, lassen sich über das Kästchen geprüft als erledigt markieren; diese Markierung bleibt beim Speichern und Laden erhalten.
Wird mit der ersten Berechnung gefüllt.
Transparenznachweis der lokalen Verarbeitung: erzwungene Netzwerksperre (Content-Security-Policy mit connect-src 'none') und Auflistung der tatsächlich geladenen Ressourcen. Das Werkzeug sendet keine Eingaben oder Ergebnisse automatisch nach außen. Die Prüfung lässt sich auch über den Status oben links im Kopf öffnen.
Der Selbsttest rechnet feste Beispielfälle durch und vergleicht das Ergebnis mit dem erwarteten Wert. Er prüft die steuerlichen und rechtlichen Grundregeln, die innere Schlüssigkeit der Berechnung und das Verhalten der einzelnen Auszahlwege. Anders als die Plausibilitätsprüfung hängt er nicht von den Eingaben ab und wird nur auf Knopfdruck ausgeführt.
Noch nicht ausgeführt.
Die folgenden Quellen liegen den gesetzlich fixierten Größen und der Berechnungslogik des Werkzeugs zugrunde. Maßgeblich ist stets der jeweils aktuelle Gesetzes- und Verwaltungsstand; die Angaben geben den Stand zum Bearbeitungszeitpunkt wieder.
| Gegenstand | Quelle / Fundstelle |
|---|---|
| Altersvorsorgedepot — Förderung, Auszahlung, Standardprodukt | Gesetz zur Reform der privaten Altersvorsorge (Altersvorsorgereformgesetz), vom Deutschen Bundestag beschlossen am 27.03.2026, vom Bundesrat bestätigt am 08.05.2026; Inkrafttreten der Förderung zum 01.01.2027 |
| Förderparameter im Einzelnen — Grundzulage, Kinderzulage, Berufseinsteigerbonus, Mindesteigenbeitrag | Fragen-und-Antworten-Katalog des Bundesministeriums der Finanzen zur Reform der privaten Altersvorsorge, bundesfinanzministerium.de (Bereich „FAQ") |
| Steuerlicher Abzug der Beiträge (Sonderausgaben) | § 10 und § 10a Einkommensteuergesetz |
| Besteuerung der Auszahlungen, Renten und Teilkapitalauszahlungen | § 22 Nummer 1 und Nummer 5 Einkommensteuergesetz |
| Keine Fünftelregelung bei Teilkapitalauszahlung | Bundesfinanzministerium, Schreiben vom 05.10.2023 (Bundessteuerblatt I 2023 Seite 1726, Randziffer 128); ersetzt das Schreiben vom 21.12.2017 (Bundessteuerblatt I 2018 Seite 93). In Fortentwicklung Bundesfinanzhof, Urteil vom 30.10.2025, Aktenzeichen X R 25/23, sowie Senatsurteile vom 20.09.2016, X R 23/15, vom 11.06.2019, X R 7/18, und vom 06.05.2020, X R 24/19 (Maßstab der tatsächlichen Atypik statt allein der vertraglichen Gestaltung des Kapitalwahlrechts) |
| Einkommensteuertarif, Spitzen- und Höchststeuersatz | § 32a Einkommensteuergesetz in den jeweiligen Fassungen; Tarifhistorie des Bundesministeriums der Finanzen (Lohn- und Einkommensteuerrechner) |
| Einkommensschwelle für den Spitzensteuersatz im Zeitverlauf | Institut der deutschen Wirtschaft Köln, Gutachten zu Belastungswirkungen der Einkommensteuer (2017); Stützwerte als Näherung, siehe Hinweis bei der Grafik im Tab Steuersatz-Szenarien |
| Sparer-Pauschbetrag, Abgeltungsteuer, Vorabpauschale | § 20 Absatz 9 und § 32d Einkommensteuergesetz (Sparer-Pauschbetrag, Abgeltungsteuer); § 18 Investmentsteuergesetz (Vorabpauschale); Basiszins jährlich durch das Bundesministerium der Finanzen festgesetzt nach § 18 Absatz 4 Investmentsteuergesetz |
| Besteuerung der Auszahlung — Ertragsanteil, Unterschiedsbetrag und hälftiger Ansatz (12/60- bzw. 12/62-Regel) | § 22 Nummer 5 Satz 2 Einkommensteuergesetz: Buchstabe a (Ertragsanteil nach § 22 Nummer 1 Satz 3 Buchstabe a Doppelbuchstabe bb, nur bei lebenslanger Rente), Buchstabe c (Auffangtatbestand für alle übrigen Leistungen — Unterschiedsbetrag unter entsprechender Anwendung von § 20 Absatz 1 Nummer 6 Einkommensteuergesetz). Hälftiger Unterschiedsbetrag nach § 20 Absatz 1 Nummer 6 Satz 2 in der jeweils für den Vertrag geltenden Fassung: zwölf Jahre Vertragsdauer und Auszahlung nach Vollendung des 60. Lebensjahres (Verträge vor dem 01.01.2012) beziehungsweise des 62. Lebensjahres (Verträge ab 2012, Übergangsregelung § 52 Einkommensteuergesetz) |
| Förderschädliche Verwendung — Rückzahlungsbetrag und Besteuerung | § 93 Absatz 1 Einkommensteuergesetz (Rückzahlung der Zulagen und der nach § 10a Absatz 4 gesondert festgestellten Steuerermäßigungen; Satz 2 auch für bestimmte Auszahlungen nach Beginn der Auszahlungsphase); § 94 Einkommensteuergesetz (Verfahren über zentrale Stelle und Anbieter); § 22 Nummer 5 Satz 3 Einkommensteuergesetz (ausgezahltes gefördertes Altersvorsorgevermögen gilt nach Abzug der Zulagen als Leistung im Sinne des Satzes 2); Schreiben des Bundesministeriums der Finanzen zur steuerlichen Förderung der privaten Altersvorsorge, Randnummern 147 bis 149 |
Wo Rechtslage und Verwaltungsauffassung zum Bearbeitungszeitpunkt noch nicht abschließend geklärt sind — insbesondere bei der Beitragspflicht zur Kranken- und Pflegeversicherung auf Auszahlungen aus dem Altersvorsorgedepot — ist dies an der betreffenden Stelle ausdrücklich vermerkt.
Änderungen v2026.11.1 gegenüber v2026.11.0 (Standard-Patch, fünfundzwanzigster externer Prüfbericht 27.07.2026)
Die Zuordnung je Kind wirkt jetzt auch im Riester-Bestand, und Bedienhandlungen setzen die Kinderangaben nicht mehr zurück. Der fünfundzwanzigste Prüfbericht fand zwei hohe Befunde — beide Folgelücken der in v2026.11.0 eingeführten Erfassung je Kind. Keine neuen Felder, keine Schema-Änderung; daher ein Standard-Patch.
- H-01 (hoch) — Riester-Bestand ignorierte die Zuordnung je Kind.
_kinderzulageBetragImJahrund_riesterKinderzulageVollbehielten den alten globalen Frühausstieg (kinder_zuordnung === 'partner'), während das Altersvorsorgedepot überaktiveKinderImJahrbereits richtig je Kind filterte. Im Mischfall „ein Kind mir, eines dem Partner" ergab der Riester-Bestand je nach globaler Vorgabe 775 € oder 175 € Gesamtzulage statt richtig 475 € — ±300 € pro Jahr, mit Folgewirkung auf Mindesteigenbeitrag, Kürzungsfaktor, Endkapital, Nettoaufwand und Rangfolge. In der Zuordnungsmatrix des Prüfers wichen 52 von 120 Fällen ab. Beide Funktionen filtern jetzt über_kindZuordnung; Altstände ohne Angabe je Kind folgen weiter der globalen Vorgabe. Warum die 88 grünen Tests das nicht sahen: A53 prüfte nur die HilfsfunktionaktiveKinderImJahr— nicht deren Riester-Verbraucher. Der neue A54 geht durch das vollständige Ergebnis voncalcRiesterund verlangt, dass die globale Vorgabe bei gesetzter Zuordnung je Kind keinen Einfluss hat — einschließlich Teilzulage bei zu niedrigem Eigenbeitrag und Geburtsjahren vor 2008. - H-02 (hoch) — Bedienhandlungen setzten die neuen Felder zurück.
Die Zustandssicherung in
renderKinderRowserfasste nur Geburtsjahr, Modus und Endjahr;restauriereAlleExperteWertestellte ebenfalls nur diese drei wieder her. Schon das Erhöhen der Kinderzahl von 2 auf 3 — oder ein Wechsel Einsteiger/Experte — stellte alle Zuordnungen still auf „mir" und alle Pflege-Kennzeichen auf „ja". Beide Pfade sichern und restaurieren jetzt sämtliche Kindereigenschaften. - M-01 (mittel) — Druckbericht und Plausibilität nur global.
Deckblatt und Eingabenliste des Druckberichts gaben pauschal „dieser Person"
oder „dem Partner" aus; P11 prüfte alle Kinder oder keines, P16 erklärte
alle als einheitlich zugeordnet. Eine gemeinsame Auswertung
(
_kinderZuordnungStat) liefert jetzt getrennt: erfasste Kinder, dieser Person zugeordnete, dem Partner zugeordnete und für die Pflegeversicherung berücksichtigte. Der Bericht weist den Mischfall als solchen aus („1 dieser Person · 1 dem Partner"). - L-01 (niedrig) — Schemahistorie unvollständig. Die
Historie am
SCHEMA_VERSION-Block endete bei Schema 2, obwohl die Konstante 3 lautet. Schema 3 ist jetzt dokumentiert; der Export-Kommentar verweist auf die EINE Historie statt sie zu wiederholen — genau solches Auseinanderlaufen zweier Beschreibungen war der Befund. Die Warnschwelle des Imports bleibt bewusst bei Schema < 2: Nur der Übergang 1 → 2 änderte die Bedeutung bestehender Daten; Schema 3 ergänzt Felder mit rückwärtsverträglichen Vorgaben. - Prüfumfang: Selbsttest jetzt 88 Prüfungen (A54); Produktionspfad jetzt 190 — neu sind die echten Bedienpfade: Kinderzahl erhöhen und senken, Moduswechsel in beide Richtungen, Export-Import-Rundlauf der neuen Felder und die Druckbericht-Ausweisung des Mischfalls. Zwei Mutationstests belegen die Wirksamkeit: Ohne Je-Kind-Filter schlägt A54 fehl („775 € / 775 €"), ohne Zustandssicherung schlagen sieben Produktionspfadprüfungen fehl („mir/mir/true/true") — jeweils mit Prüfstand-Status 1.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Behebung von Prüfberichtsbefunden am bestehenden Merkmal, ohne neue Funktion, ohne neue Eingabefelder und ohne Schema-Änderung. Die Referenzbarwerte sind unverändert. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil-, Diagramm- und Druckabnahme.
Änderungen v2026.11.0 gegenüber v2026.10.1 (Feature-Release, vierundzwanzigster externer Prüfbericht 27.07.2026)
Die Kinderangaben werden jetzt je Kind erfasst — Zulagen-Zuordnung und Berücksichtigung in der Pflegeversicherung. Der vierundzwanzigste Prüfbericht bestätigte die Rechenkorrektur der Vorversion und fand drei hohe sowie einen mittleren Befund in der Erfassung der Kinder. Zwei neue Angaben je Kind und eine fachliche Schema-Version machen dies zum Feature-Release.
- H-01 (hoch) — Kinderzulage war nur global zuzuordnen. Das
Werkzeug kannte „alle Kinder mir" oder „alle dem Partner". Nach
§ 85 Abs. 2 EStGund dem BMF-Schreiben vom 05.10.2023 (Rz. 52) kann der Antrag jedoch für jedes einzelne Kind gestellt werden. Der reale Fall „ein Kind mir, eines dem Partner" war nicht darstellbar und ergab je nach Schalterstellung 300 € Kinderzulage zu viel oder zu wenig pro Jahr — mit Wirkung auf Förderung, Steuerwirkung, Endkapital, Nettoaufwand und Rangfolge. Jede Kinderzeile hat jetzt ein eigenes Feld „Zulage an"; der bisherige Schalter bleibt als Vorgabe für neu erfasste Kinder und für Altstände. Nachgerechnet: gemischte Zuordnung ergibt jetzt 300 € statt 600 € oder 0 €. - M-01 (mittel) — Adoptiv- und Stiefkinder.
§ 55 Abs. 4 SGB XIschließt sie unter Umständen vom Pflegeversicherungs-Abschlag aus; maßgeblich sind Adoptionszeitpunkt, Eheschließung und Haushaltsaufnahme. Eine automatische Subsumtion wäre für ein Vergleichswerkzeug unverhältnismäßig — jede Kinderzeile trägt daher ein Kästchen „zählt für Pflege-V." mit Erläuterung der Voraussetzungen. Vorbelegung und Verhalten bei fehlender Angabe: berücksichtigungsfähig, wie bisher. Wichtig und eigens geprüft: Die Zulagen-Zuordnung lässt den Abschlag unberührt — er knüpft an die eigene Elternschaft an, nicht daran, wer die Zulage erhält. - H-02 (hoch) — Altstände trugen die geänderte Bedeutung weiter.
Mit v2026.10.1 änderte sich die Bedeutung der Kinderliste (alle Kinder statt
nur zulagenberechtigte), ohne dass ein Import das bemerkt hätte. Neu ist eine
fachliche Schema-Version
_meta.schema, bewusst getrennt von der Programmversion: Sie zählt nur hoch, wenn sich die Bedeutung gespeicherter Felder ändert. Sicherungen vor Schema 2 lösen jetzt einen ausdrücklichen Prüfhinweis aus — fehlende Kinder lassen sich nicht automatisch ergänzen, deshalb wird zum Vervollständigen aufgefordert statt stillschweigend übernommen. Aktueller Stand: Schema 3. - H-03 (hoch) — Hilfetext widersprach der neuen Eingabelogik. Neben dem Feld zur Elterneigenschaft stand weiterhin, das Kinderfeld zähle nur Kinder mit Kindergeldanspruch und wer ausschließlich erwachsene Kinder habe, solle dort 0 eintragen. Das hätte den in v2026.10.1 behobenen Fehler erneut ausgelöst: Bei drei 22- bis 24-jährigen Kindern gingen 0,50 Beitragssatzpunkte verloren. Text und Kurzhilfe sind berichtigt.
- Regressionstest A53 deckt beides ab: die Wertemenge der Zuordnung aus einer einzigen Quelle, den Kernfall „ein Kind je Elternteil", den Rückfall von Altdaten auf die Vorgabe, die Unabhängigkeit von Zuordnung und Pflege-Abschlag, das Ausschlusskennzeichen sowie die typstrenge Schemaprüfung. Selbsttest jetzt 87 Prüfungen. Der Produktionspfad-Prüfstand prüft zusätzlich die Migrationswarnung für alte Sicherungen und dass der eigene Export die Schema-Version aus der Programmkonstante trägt — jetzt 182 Prüfpunkte. Mutationstest: Zuordnung zurück auf global → A53 schlägt fehl, Prüfstand Status 1.
Versionsschritt nach den Versionierungsregeln: Feature-Release (MAJOR + 1, MINOR = 0) — zwei neue Eingabefelder je Kind und eine neue fachliche Schema-Version. Ältere Sicherungen bleiben ladbar: Fehlt die Angabe je Kind, gilt die globale Vorgabe, und der Import weist ausdrücklich darauf hin. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil-, Diagramm- und Druckabnahme.
Änderungen v2026.10.1 gegenüber v2026.10.0 (Standard-Patch, dreiundzwanzigster externer Prüfbericht 27.07.2026)
Der in v2026.10.0 eingeführte Eltern-Abschlag wirkt jetzt auch auf Kapitalzahlungen — und die Eingabemaske fragt die dafür nötigen Kinder vollständig ab. Der dreiundzwanzigste Prüfbericht fand zwei hohe Befunde, beide am neuen Merkmal der Vorversion. Keine neue Funktion, keine neuen Eingabefelder, keine Änderung der Datenstruktur; daher ein Standard-Patch.
- H-02 (hoch) — Abschlag fehlte bei Einmal-, Teilkapital- und
Schlusszahlung. Der zeitabhängige Satz war nur bei laufender Rente
wirksam. Kapitalzahlungen trugen weiterhin den ungekürzten Satz — obwohl der
Kommentar zu
_kvpvSatzStromausdrücklich ein Element „für den Einmalbetrag" vorsah. Behoben: Der über 120 Monate verteilte Beitrag von Altersvorsorgedepot und Riester wird jahrweise gebildet und barwertgewichtet gemittelt (_kvpvEinmalBarwertsatz); die sofort fällige Kapitalzahlung des Privat-ETF trägt den Satz des Rentenbeginnjahres, die Schlusszahlung den des letzten Auszahljahres. Die Sätze treffen die unabhängig nachgerechneten Werte des Prüfberichts exakt (18,091126 % statt 18,414299 % bei Altersvorsorgedepot und Riester, 9,735847 % beim ETF). Rückwärtsverträglich: Ohne Kinder unter 25 ergibt sich auf 10⁻¹⁴ genau das frühere Verfahren — die Änderung verschiebt keine Fälle, die sie nicht betrifft. - H-01 (hoch) — Eingabemaske führte zu unvollständigen Kinderangaben.
Das Feld hieß „Anzahl Kinder mit Zulagenanspruch" und erläuterte: „Gemeint
sind Kinder, für die Kindergeld bezogen wird." § 55 SGB XI stellt dagegen
allein auf Kinder unter 25 ab. Wer der Beschreibung folgte, ließ ältere
Kinder ohne Kindergeldanspruch weg und bekam einen zu hohen Beitrag
ausgewiesen.
Bewusst nicht umgesetzt wurde die vorgeschlagene zweite Kinderliste.
Zwei Listen derselben Kinder können auseinanderlaufen — genau diese
Doppelpflege hat in dieser Berichtsreihe bereits drei Befunde verursacht
(Fördermodi v2026.9.6, Zahlungsstrom v2026.9.11, Beitragssatz v2026.9.12).
Sie ist hier auch nicht nötig: Die Zulagen laufen über
aktiveKinderImJahr, das je Kind die Förderdauer auswertet — ein Kind ohne laufenden Anspruch erzeugt dort automatisch keine Zulage. Eine vollständige Liste ist also für beide Zwecke richtig. Geändert wurden daher Beschriftung und Erläuterung: „Anzahl Ihrer Kinder", mit ausdrücklicher Trennung der beiden Regeln und dem Hinweis, dass für die Pflegeversicherung allein das Geburtsjahr zählt. - M-01 (mittel) — Liesmich-Haupttext nannte weiter 8,70 %. Der Abschnitt zur Kranken- und Pflegeversicherung enthielt unverändert die in v2026.10.0 als falsch erkannte Rechnung, während das Änderungsprotokoll derselben Datei sie bereits richtigstellte. Der Abschnitt ist neu gefasst: beitragsfrei bei Pflichtversicherung, 20,50 / 21,10 % bei freiwilliger Mitgliedschaft samt Eltern-Abschlag, und die Sätze der gesetzlichen Rente ausdrücklich als nicht gerechnete Abgrenzung.
- Regressionstest A52 rechnet die Sätze für Kapitalzahlungen mit einer eigenen Formel nach — nicht mit den Helfern des Werkzeugs — und prüft zusätzlich die Rückwärtsverträglichkeit ohne Kinder sowie die Beitragsfreiheit bei Pflichtversicherung. Selbsttest jetzt 86 Prüfungen. Anmerkung zur Sorgfalt: Die erste Fassung dieses Tests enthielt bei der Schlusszahlung eine Tautologie — der Sollwert wurde aus dem Prüfling zurückgerechnet und hätte immer bestanden. Der Gewinnanteil der Schlusszahlung wird deshalb jetzt als eigener Rückgabewert ausgewiesen und unabhängig geprüft. Mutationstest: Mit wieder konstantem Einmalsatz schlägt A52 fehl, und der Prüfstand endet mit Status 1.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Behebung von Prüfberichtsbefunden am bestehenden Merkmal, ohne neue Funktion, ohne neue Eingabefelder und ohne Änderung der Datenstruktur. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil-, Diagramm- und Druckabnahme.
Änderungen v2026.10.0 gegenüber v2026.9.15 (Feature-Release, zweiundzwanzigster externer Prüfbericht 27.07.2026)
Die Pflegeversicherung berücksichtigt jetzt den Eltern-Abschlag für mehrere Kinder unter 25 Jahren — und zwar zeitabhängig. Der zweiundzwanzigste Prüfbericht fand eine fehlende sozialversicherungsrechtliche Regel und einen falschen Beitragssatz in Dokumentation und Selbsttests. Weil der Beitragssatz dafür erstmals jahresabhängig wird, ist das nach den Versionierungsregeln ein Feature-Release und kein Standard-Patch.
- M-01 — Eltern-Abschlag zur Pflegeversicherung fehlte.
Nach
§ 55 Absatz 3 Sätze 4 und 5 SGB XIvermindert sich der Beitragssatz „für jedes Kind ab dem zweiten Kind bis zum fünften Kind um jeweils einen Abschlag in Höhe von 0,25 Beitragssatzpunkten bis zum Ablauf des Monats, in dem das jeweilige Kind das 25. Lebensjahr vollendet hat". Das Werkzeug kannte nur „Elternteil" und „kinderlos" und setzte für Eltern stets 3,60 %. Die frühere Begründung — in der Auszahlphase seien Kinder „typischerweise" über 25 — trägt nicht: Das Werkzeug lässt einen Rentenbeginn ab 60 zu, kennt die Geburtsjahre der Kinder und rechnet lange Auszahlungsreihen. Freiwillig gesetzlich Versicherte mit mehreren jüngeren Kindern zahlten dadurch auf alle vier Wege bis zu 1,0 Prozentpunkt zu viel. Umgesetzt zeitabhängig: Der Satz wird je Auszahljahr bestimmt und läuft aus, sobald das jeweilige Kind 25 wird. Ein einmal am Rentenbeginn festgelegter Satz hätte den Auslauf nicht abgebildet. - Wie die Umsetzung den bestehenden Vertrag wahrt. Der
KVPV_SATZ_VERTRAGbleibt gültig: Die Rechenkerne bestimmen den Satz, die Darstellung multipliziert nur. Ergänzt wurdekvpv_satz_strom— der wirksame Satz je Auszahljahr, bereits produktskaliert (beim Privat-ETF also mit dem Gewinnanteil). Die Nettorente bleibt als typischer Jahreswert erhalten; die Entlastung der frühen Jahre geht als eigener Betrag in Summe und Barwert ein, diskontiert mit derselben Konvention wie die übrigen Auszahlungen. Gegenprobe: Die Netto-Summe des Zahlungsstroms trifftsumme_nettoexakt. - M-02 — falscher Eigenanteil in der Krankenversicherung der
Rentner.
kvpvSatz('kvdr', …)lieferte 8,70 % / 9,30 %, begründet mit „halber Krankenversicherungsbeitrag 3,65 %". Die Hälfte von 14,6 % ist jedoch 7,30 %; und der Satz beschreibt die gesetzliche Rente, die dieses Werkzeug gar nicht als beitragspflichtige Einnahme führt. Der Wert wurde von keiner Rechenfunktion verwendet — alle vier setzen bei Pflichtversicherung hart 0 —, stand aber in der Liesmich-Datei, im Änderungsprotokoll und in zwei Selbsttests, die ihn als gesetzeskonform bestätigten. Statt eine unbenutzte Zahl zu korrigieren, gibt der Zweig jetzt die tatsächliche Modellaussage zurück: 0. Zur Einordnung im Quelltext vermerkt: Aus einer gesetzlichen Rente trägt der Rentner nach§ 249a Satz 1 SGB Vdie Hälfte von Beitrag und Zusatzbeitrag und die Pflegeversicherung allein — 12,35 % beziehungsweise 12,95 %. A49 und D7 sind entsprechend neu aufgebaut; D7b prüft ergänzend den Beitrag bei freiwilliger Mitgliedschaft. - Regressionstests: neu A51 — Staffel 0 / 0 / 0,25 / 0,50 /
0,75 / 1,00 Prozentpunkte, Deckelung beim fünften Kind, Auslaufen mit dem
25. Lebensjahr, unbrauchbare Angaben ohne Wirkung, kein Abschlag auf einen
Satz von null, und die Entlastung im Barwert. A48 rechnet sein Szenario jetzt
mit drei Kindern, sodass der zeitabhängige Satz die Zerlegung jeder
Zahlungszeile durchläuft — zuvor lief es mit
kinder: 0und hätte einen fehlenden oder falsch indizierten Abschlag nie bemerkt. Selbsttest jetzt 85 Prüfungen. Mutationstest: Mit wieder entferntem Abschlag schlägt A51 fehl, und der Prüfstand endet mit Status 1.
Versionsschritt nach den Versionierungsregeln: Feature-Release (MAJOR + 1, MINOR = 0) — der Beitragssatz wird erstmals jahresabhängig, wofür der Rechenkern-Vertrag um einen Satzstrom erweitert wurde. Keine neuen Eingabefelder, keine Änderung der Datenstruktur. Modellgrenze: Gerechnet wird kalenderjahrgenau, das Gesetz stellt auf den Monat ab; die Abweichung beträgt höchstens 0,25 Beitragssatzpunkte in einem einzigen Jahr. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil-, Diagramm- und Druckabnahme.
Änderungen v2026.9.15 gegenüber v2026.9.14 (Standard-Patch, einundzwanzigster externer Prüfbericht 26.07.2026)
Der Prüfstand meldet einen fehlgeschlagenen Selbsttest jetzt auch als Fehler an das Betriebssystem. Der einundzwanzigste Prüfbericht stellte an der Anwendung selbst keinen Fehler fest. Beide Befunde betrafen die Qualitätssicherung — und der wichtigere davon war ernst. Keine Änderung am Rechenkern; die Referenzbarwerte sind unverändert.
- M-01 (mittel) — fehlgeschlagene Selbsttests endeten mit
Erfolgsstatus.
run_audit.cjssetzte einen Fehlerstatus nur bei fehlgeschlagenen Produktionspfadprüfungen (Status 1) und bei fehlendem jsdom (Status 2). Ein fehlgeschlagener eingebauter Selbsttest wurde zwar im Protokoll ausgewiesen, der Prozess endete aber mit Status 0 — eine Automatik hätte den Lauf als bestanden gewertet und ausgeliefert. Besonders unangenehm: Sämtliche Mutationstests dieser Berichtsreihe liefen genau darüber. Sie belegten, dass ein Test den wieder eingebauten Fehler erkennt — dass der Prüfstand ihn nicht meldet, blieb dabei unbemerkt. Ein Prüfstand, der einen erkannten Fehler nicht weitergibt, ist als Freigabekriterium wertlos. Der Status wird jetzt unmittelbar nach dem Selbsttest gesetzt, zusammen mit einer Meldung auf der Fehlerausgabe, die die betroffenen Testkennungen nennt. Status 1 (Prüfung fehlgeschlagen) wird von Status 2 (Prüfung nicht ausgeführt) nicht mehr überschrieben. Gegenprobe: Mit wieder eingebautem Leerpfad-Fehler endet der Lauf jetzt mit Status 1 und der Meldung „1 eingebaute(r) Selbsttest(s) fehlgeschlagen: A50". - N-01 (niedrig) — wirkungslose Feldnamen in den Selbsttests.
A46, A48, A49 und A50 setzten
rentenalterundplanalter;_mkTestInpkennt jedochalter_eintrittundalter_ende. Die Werte landeten als wirkungslose Zusatzfelder im Objekt, sodass stillschweigend die Vorgabewerte galten. Für die geprüften Invarianten änderte das nichts — die Testdaten entsprachen aber nicht dem, was der Testcode zu sagen schien. In allen acht Fundstellen berichtigt. - N-01, zweiter Teil — beide Leerpfad-Auslöser geprüft. Der vorgezogene Rückgabepfad hat zwei Auslöser: kein Beitrag oder keine Ansparjahre. A50 erzeugte bisher nur den ersten; der zweite galt als „mittelbar mit abgedeckt" — das ist eine Annahme, keine Prüfung. A50 erzeugt jetzt beide ausdrücklich (der zweite über einen Renteneintritt im Modellstartjahr), prüft vorab, dass der Leerpfad tatsächlich ausgelöst wurde, und deckt damit 24 statt 12 Leerpfade ab.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Korrektur an Prüfstand und Testdaten ohne Änderung an Berechnung, Funktionsumfang, Eingabefeldern oder Datenstruktur. Selbsttest 83 Prüfungen, Produktionspfad 177. Prozessstatus des Prüfstands: 0 = bestanden, 1 = eine Prüfung fehlgeschlagen (Selbsttest und/oder Produktionspfad), 2 = Produktionspfad mangels jsdom nicht ausgeführt. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil-, Diagramm- und Druckabnahme.
Änderungen v2026.9.14 gegenüber v2026.9.13 (Standard-Patch, zwanzigster externer Prüfbericht 26.07.2026)
Auch der Leerpfad ohne Riester-Beitrag nennt den Versicherungsstatus jetzt richtig. Der zwanzigste Prüfbericht stellte keinen Rechen-, Rangfolge-, Import-, Export- oder Berichtsfehler mehr fest und stufte die Fassung als bedingt freigabefähig ein. Der letzte verbliebene Befund war eine Beschriftung. Keine Änderung am Rechenkern, keine neuen Felder; daher ein Standard-Patch.
- N-01 (niedrig) — Leerpfad behauptete pauschal „KV-frei".
Wird kein Riester-Beitrag erfasst, verlässt
calcRiesterdie Berechnung über einen vorgezogenen Rückgabepfad. Dieser trug weiterhin den festen Kennzeichnergefördert · gebunden · KV-frei— auch für freiwillig gesetzlich Versicherte, für die die Riester-Auszahlung seit v2026.9.9 beitragspflichtig gerechnet wird. Der reguläre Pfad war damals umgestellt worden, dieser nicht. Rechnerisch folgenlos, weil ohne Beitrag keine Auszahlung entsteht; die sichtbare Aussage widersprach jedoch der Unterscheidung, die das Werkzeug an allen anderen Stellen sorgfältig trifft. Der Leerpfad verwendet jetzt denselben Ausdruck wie der reguläre Pfad, statt den Kennzeichner ein zweites Mal fest zu verdrahten. Zwei zugehörige Kommentare — im Kopf voncalcRiesterund incashflowWeg— behaupteten ebenfalls noch pauschale Beitragsfreiheit und sind berichtigt. - Regressionstest A50. Er prüft die Leerpfade aller vier Wege über alle drei Versicherungsarten: Bei freiwilliger Versicherung darf kein Weg „KV-frei" behaupten, bei Pflichtversicherung kein Weg „KV-pflichtig", und Leerpfad und regulärer Pfad müssen denselben Kennzeichner führen. Diese Lücke war für A46 und A48 unerreichbar, weil beide nur Fälle mit Auszahlung untersuchen. Ein Mutationstest belegt die Wirksamkeit: Mit wieder festverdrahtetem Kennzeichner schlägt A50 fehl und weist den Widerspruch aus („ohne Beitrag: KV-frei, mit Beitrag: KV-pflichtig"), während alle 177 Produktionspfadprüfungen grün bleiben. Selbsttest jetzt 83 Prüfungen.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Berichtigung einer Beschriftung samt Regressionstest, ohne Änderung an Berechnung, Funktionsumfang, Eingabefeldern oder Datenstruktur. Die Referenzbarwerte sind unverändert. Damit ist der letzte offene Programmbefund erledigt; als einzige Freigabevoraussetzung verbleibt die manuelle Abnahme in einem echten Browser (Darstellung, Mobilansicht, Tastatur, Diagramme, Druck).
Änderungen v2026.9.13 gegenüber v2026.9.12 (Standard-Patch, neunzehnter externer Prüfbericht 26.07.2026)
Die rechtliche Begründung zum Beitragssatz wird präzisiert — die Rechenergebnisse bleiben unverändert. Der neunzehnte Prüfbericht bestätigte die Beitragssatzkorrektur der Vorversion in allen vier Wegen als richtig, beanstandete aber die Begründung: Sie war zu weit gefasst und hätte Nutzerinnen und Nutzer in die Irre führen können. Keine Änderung am Rechenkern, keine neuen Felder; daher ein Standard-Patch.
- M-01 (mittel) — zu weit gefasste Rechtsbegründung. Das
Werkzeug behauptete an mehreren sichtbaren Stellen,
§ 247 SGB Vgelte „nur für Versicherungspflichtige" und bei freiwilliger Mitgliedschaft entscheide „allein der Krankengeldanspruch". Das ist in dieser Allgemeinheit falsch:§ 240 Abs. 2 Satz 5 SGB Vordnet ausdrücklich an, dass „die §§ 238a, 247 Satz 1 und 2 und § 248 Satz 1 und 2 … entsprechend" gelten. Für die gesetzliche Rente und für Versorgungsbezüge gilt daher auch bei freiwilliger Mitgliedschaft der allgemeine Satz von 14,6 %. Die Zahlen bleiben richtig, weil die Einordnung produktbezogen ist: Die vier verglichenen Wege sind private Vorsorge und damit sonstige beitragspflichtige Einnahmen nach§ 240 Abs. 1; für diese entscheidet der Krankengeldanspruch, der mit dem Bezug einer Altersvollrente endet (§ 50 Abs. 1), sodass§ 243mit 14,0 % greift. Berichtigt wurden Eingabehilfe, gemeinsamer Ergebnishinweis,kvpvSatz-Kommentar, A49-Begründung, Änderungshistorie und Liesmich-Datei. Alle nennen jetzt ausdrücklich die Abgrenzung zur gesetzlichen Rente und zu Versorgungsbezügen. - N-01 (niedrig) — Druckbericht führte die verworfene Bezeichnung weiter. Die Eingabemaske wurde in v2026.9.12 von „voller Beitrag" auf „ermäßigter Satz 14,0 % + Zusatz + Pflege" umgestellt; der Druckbericht — der für Weitergabe und Ablage bestimmt ist — zeigte weiterhin „voller Beitrag". Beide Texte lagen an getrennten Stellen. Neu ist deshalb eine Produktionspfadprüfung, die beide Beschriftungen gegeneinander abgleicht, statt nur eine von beiden zu prüfen; ein Mutationstest belegt, dass sie anschlägt.
- N-02 (niedrig) — veraltete Kommentare und Testbeschreibung. Der Selbsttest A46 nannte in Kommentar und Erwartungstext weiterhin 21,70 %, obwohl der Satz jetzt 21,10 % beträgt. A46 bleibt bewusst ohne literale Satzangabe: Er ist ein reiner Gleichbehandlungstest — die Höhe des Satzes prüft A49 als einzige maßgebliche Quelle. Genau das steht jetzt dort, statt einer Zahl, die beim nächsten Mal wieder veraltet.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Präzisierung ohne Änderung an Berechnung, Funktionsumfang, Eingabefeldern oder Datenstruktur. Selbsttest 82 Prüfungen, Produktionspfad jetzt 177. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil-, Diagramm- und Druckabnahme.
Änderungen v2026.9.12 gegenüber v2026.9.11 (Standard-Patch, achtzehnter externer Prüfbericht 26.07.2026)
Für freiwillig gesetzlich Versicherte gilt jetzt der ermäßigte Krankenversicherungsbeitrag von 14,0 % statt des allgemeinen von 14,6 %. Der achtzehnte Prüfbericht bestätigte die Behebung des Zahlungsstromfehlers, fand aber einen fachlichen Fehler, der seit Einführung der Beitragsoption unbemerkt geblieben war und alle vier Wege betrifft. Keine neuen Felder, keine Änderung der Datenstruktur; daher ein Standard-Patch.
- M-01 (mittel) — falscher Krankenversicherungsbeitrag. Das
Werkzeug setzte 14,6 % an. Richtig sind für die hier verglichenen
privaten Leistungen 14,0 %. (Die ursprünglich hier abgedruckte
Begründung war zu weit gefasst und wurde im neunzehnten Bericht berichtigt —
siehe den folgenden Änderungsblock.) Maßgeblich ist eine
produktbezogene Einordnung: Die vier Wege sind weder Renten
der gesetzlichen Rentenversicherung noch Versorgungsbezüge, sondern sonstige
beitragspflichtige Einnahmen nach
§ 240 Abs. 1 SGB V. Für diese richtet sich der Satz nach dem Krankengeldanspruch; dieser endet nach§ 50 Abs. 1 SGB Vmit dem Bezug einer Vollrente wegen Alters („nach Beginn dieser Leistungen entsteht ein neuer Krankengeldanspruch nicht"), und§ 243 SGB Vgewährt Mitgliedern ohne Krankengeldanspruch den ermäßigten Satz von 14,0 %. Da das Werkzeug ausschließlich die Auszahlphase ab Rentenbeginn modelliert, ist das der Regelfall. Neue Sätze: 20,50 % für Eltern und 21,10 % für Kinderlose (zuvor 21,10 % und 21,70 %). Die Barwerte aller vier Wege waren dadurch systematisch zu niedrig — im Referenzfall zwischen 623 € (Privat-ETF) und 1.205 € (Altersvorsorgedepot). - Warum die bestehenden Prüfungen das nicht bemerkt haben.
Der Selbsttest A46 und die Produktionspfadprüfungen bezogen ihre Sollgröße aus
kvpvSatz— also aus der geprüften Funktion selbst. Sie folgten jeder Satzänderung blind und blieben grün. Ein Test, der seine Erwartung vom Prüfling bezieht, prüft nichts. Neu ist deshalb der Selbsttest A49, der die Sätze literal festnagelt (20,50 / 21,10 / 8,70 / 9,30 %), den Kinderlosen-Zuschlag auf genau 0,6 Prozentpunkte prüft und ausdrücklich gegenprüft, dass der ermäßigte Satz unter dem allgemeinen liegt. Ein Mutationstest belegt die Wirksamkeit: Mit wieder eingesetztem Satz von 14,6 % schlägt A49 fehl — während die 174 Produktionspfadprüfungen unverändert grün blieben. - Benutzerauswahl und Erläuterung berichtigt. Die Bezeichnung „voller Beitrag" vermischte die alleinige Beitragstragung mit der Wahl zwischen allgemeinem und ermäßigtem Satz. Sie lautet jetzt „ermäßigter Satz 14,0 % + Zusatz + Pflege". Der Hilfetext leitet die Rechtslage her und benennt den nicht abgebildeten Sonderfall: Wer in der Auszahlphase keine Altersvollrente bezieht — etwa Selbstständige mit reinem Rürup-Vertrag — kann Krankengeld gewählt haben und zahlt dann 14,6 %.
- N-01 (niedrig) — veraltete Kommentare. Zwei Codekommentare behaupteten weiterhin pauschal „Riester ist KV-frei" und widersprachen damit dem seit v2026.9.9 korrigierten Rechenweg. Ersetzt durch die einheitliche Aussage: beitragsfrei in der Krankenversicherung der Rentner, beitragspflichtig als sonstige Einnahme nach § 240 SGB V bei freiwilliger Mitgliedschaft.
- N-02 (niedrig) — Schreibfehler „Sondertwert" in der Liesmich-Datei berichtigt.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Behebung eines fachlichen Fehlers samt Text- und Testkorrektur, ohne neue Funktion, ohne neue Eingabefelder und ohne Änderung der Datenstruktur. Selbsttest jetzt 82 Prüfungen, Produktionspfad 174. Nicht umgesetzt (wäre ein Feature-Release): eine gesonderte Auswahl für den allgemeinen Satz bei tatsächlichem Krankengeldanspruch. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil-, Diagramm- und Druckabnahme.
Änderungen v2026.9.11 gegenüber v2026.9.10 (Standard-Patch, siebzehnter externer Prüfbericht 26.07.2026)
Der Zahlungsstrom weist Kranken- und Pflegeversicherungsbeiträge jetzt als solche aus, statt sie der Steuer zuzuschlagen. Der siebzehnte Prüfbericht stellte keine kritischen oder hohen Fehler fest. Der verbliebene mittlere Befund war eine Folgelücke der Korrektur aus v2026.9.9: Der Rechenkern wurde berichtigt, die davon getrennte Darstellungsfunktion nicht. Keine neuen Felder, keine Änderung der Datenstruktur; daher ein Standard-Patch.
- M-01 (mittel) — Zahlungsstrom ordnete die Beiträge der Steuer zu.
cashflowWegleitete die Beitragspflicht selbst her (wegKey === 'av' || wegKey === 'ruerup') und führte Riester daher weiter als beitragsfrei. Weil die Steuer dort als Rest gebildet wird (brutto − netto − kvpv), fiel der gesamte Beitrag in die Spalte „Steuer"; die Beitragsspalte verschwand ganz, weil alle Werte null waren. Im Referenzfall wies die Tabelle 104.079,38 € Steuer und 0,00 € Beiträge aus statt 58.636,27 € und 45.443,11 €. Nettoauszahlung, Barwert und Rangfolge waren richtig — die Erläuterung, die Tabelle und das Diagramm nicht. Bei einem Werkzeug, das gerade Steuer- und Beitragslast auseinanderhalten soll, wiegt das schwer. - Wurzelbehandlung statt Minimalkorrektur. Es wäre genügt, den
Weg
riesterin die Bedingung aufzunehmen. Dieselbe Doppelpflege hatte jedoch bereits den Vorbefund verursacht — die Regel war schlicht zweimal umgesetzt. Neu gilt derKVPV_SATZ_VERTRAG: Jeder Rechenkern liefert drei wirksame Sätze (laufende Rente, Einmalbetrag einschließlich des Barwertfaktors nach § 229 Abs. 1 Satz 3 SGB V, Schlusszahlung); die Darstellung rechnet nur nochbrutto × Satzund leitet nichts mehr selbst her. Die parallele Fachlogik ist damit beseitigt, nicht nur berichtigt. - Regressionstests: neuer Selbsttest A48 — er prüft
jede Zahlungszeile jedes Wegs in jeder Auszahlform
gegen den im Rechenkern ausgewiesenen Satz. Wichtig dabei: Die Identität
brutto = steuer + kvpv + nettowar auch vorher erfüllt und ist als Prüfung allein wertlos — geprüft wird deshalb die Übereinstimmung mit dem Kern. Ein Gegentest stellt sicher, dass überhaupt Beiträge anfallen. Ein Mutationstest belegt die Wirksamkeit: Mit wieder eingebauter alter Regel schlägt A48 fehl und weist „Summe Steuer 104079.38, Summe KV/PV 0.00" aus. Dazu fünf Produktionspfadprüfungen für Spalte, Zeilenzerlegung, Summe, Diagrammreihe und die Gegenprobe bei Pflichtversicherung. Jetzt 81 Selbsttests und 174 Produktionspfadprüfungen. - Modellgrenze deutlicher benannt. Der volle Beitragssatz auf die private Auszahlung ist eine Vergleichsannahme: Beitragsbemessungsgrenze und bereits beitragspflichtige andere Alterseinkünfte sind nicht abgebildet, die tatsächliche Mehrbelastung ist meist geringer. Der Hinweis steht jetzt an einer Stelle und wird von allen Wegen verwendet. Rürup erklärte seinen Abzug als einziger Weg bisher gar nicht — auch das ist behoben.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Behebung eines Darstellungsfehlers und Beseitigung der doppelten Fachlogik ohne neue Funktion, ohne neue Eingabefelder und ohne Änderung der Datenstruktur. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil-, Diagramm- und Druckabnahme.
Änderungen v2026.9.10 gegenüber v2026.9.9 (Standard-Patch, Nachlauf zur Eigenprüfung 26.07.2026)
Zwei Befunde der Eigenprüfung wurden nachgeprüft und bewusst nicht umgesetzt — die vorgeschlagene Korrektur hätte geschadet. Stattdessen sichert eine neue Prüfung das bestehende Verhalten ab. Keine Änderung am Rechenkern, keine neuen Felder; daher ein Standard-Patch.
- N-01 — Vorschlag widerlegt:
NaNbleibt der Sentinel für „kein Kalenderjahr". Die Eigenprüfung hatte beanstandet, dass leere Riester-Jahresfelder alsNaNim Ergebnisobjekt stehen, und empfohlen, sie aufnullzu normalisieren. Die Nachprüfung hat das widerlegt:Number.isInteger(NaN)istfalse,Number(null)ist jedoch0und damitNumber.isInteger-tauglich. Mitnullhätte ein leeres Feld als gültiges Kalenderjahr gegolten, und die Nutzerin hätte die sachlich falsche Meldung „Der Vertragsbeginn darf nicht vor 2002 liegen" erhalten statt des zutreffenden Hinweises, dass gar kein Jahr eingetragen ist. DasNaNist hier also Absicht, nicht Versehen. - N-02 — Vorschlag widerlegt:
estTarifGrund(NaN)bleibtNaN. Ein Wächter, der bei ungültiger Bemessungsgrundlage 0 € zurückgäbe, würde einen Fehler in eine plausibel aussehende Nullsteuer verwandeln und ihn damit verdecken. Über die Oberfläche ist der Fall ohnehin nicht erreichbar, weil alle Felder geklemmt sind. - Absicherung gegen einen „Aufräum"-Eingriff. Neu sind der
Selbsttest A47 (Semantik der Eingabeprüfung) und drei Produktionspfad-
prüfungen, die über das echte Formularfeld und
getInputs()laufen. Bemerkenswert am Vorgehen: Ein Mutationstest zeigte, dass A47 den Eingriff allein nicht bemerken kann — er übergibtNaNvon Hand und läuft gar nicht durchjahrRoh. Erst die Produktionspfadprüfung schlägt an und weist dann genau die irreführende Meldung nach. Selbsttest jetzt 80 Prüfungen, Produktionspfad 169.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Ergänzung von Regressionsprüfungen ohne neue Funktion, ohne neue Eingabefelder und ohne Änderung der Datenstruktur. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil-, Diagramm- und Druckabnahme.
Änderungen v2026.9.9 gegenüber v2026.9.8 (Standard-Patch, interne Eigenprüfung 26.07.2026)
Die Riester-Auszahlung trägt jetzt Kranken- und Pflegeversicherungsbeiträge wie die übrigen Wege. Eine vollständige Eigenprüfung — Rechenkerne gegen unabhängig neu geschriebene Implementierungen, 6.000 Wegrechnungen mit Zufallsparametern, gezielte Suche nach Widersprüchen zwischen Code und eigener Dokumentation — förderte einen systematischen Fehler zutage, den fünfzehn externe Prüfberichte nicht gefunden haben. Keine neuen Felder, keine Änderung der Datenstruktur; daher ein Standard-Patch.
- H-01 (hoch) — Riester rechnete als einziger Weg ohne Kranken- und
Pflegeversicherung.
calcRiesterzog niemals Beiträge ab, währendcalcAV,calcRuerupundcalcETFdas taten. Bei der Auswahl „Freiwillig gesetzlich versichert (voller Beitrag)" war die Riester-Nettorente dadurch um 21,10 % (kinderlos 21,70 %) zu hoch. Das Werkzeug widersprach damit seiner eigenen Begründung: Im Kommentar zucalcRuerupstand bereits, dass bei freiwillig Versicherten § 240 Sozialgesetzbuch Fünftes Buch greift und der volle Abzug richtig bleibt — eine private Riester-Rente ist ebenso Einkunft wie eine Rürup-Rente. Bei Pflichtversicherung in der Krankenversicherung der Rentner bleibt sie dagegen zu Recht beitragsfrei (§ 229 SGB V, abschließende Aufzählung der Versorgungsbezüge). Auswirkung auf die Rangfolge: Im geprüften Standardfall wies das Werkzeug Riester mit 124.604 € Barwert vor dem Altersvorsorgedepot (106.320 €) aus; tatsächlich liegt Riester mit 87.050 € dahinter. Der Vergleich vertauschte also zwei Ränge — bei einem Werkzeug, dessen Zweck der Vergleich ist. Behoben für Rente und Einmal-/Teilkapitalbetrag; letzterer nach derselben Konvention wie im Altersvorsorgedepot (Barwert der auf 120 Monate verteilten Last, § 229 Abs. 1 Satz 3 SGB V). Der Kennzeichner „gefördert · KV-frei" lautet jetzt versicherungsabhängig „KV-frei" oder „KV-pflichtig". - Neue Prüfklasse: Invarianten über alle Wege. Der Fehler blieb so lange unentdeckt, weil stets jeder Weg für sich geprüft wurde — einzeln betrachtet war Riester unauffällig. Neu ist deshalb der Selbsttest A46 und eine entsprechende Produktionspfadprüfung, die eine Invariante quer über alle vier Wege erzwingen: Die Bruttorente muss von der Versicherungsart unabhängig sein, bei Pflichtversicherung darf kein Weg belastet werden, bei freiwilliger Versicherung muss jeder Weg den Abzug tragen (der Privat-ETF nur auf dem Gewinnanteil). Ein Gegentest stellt sicher, dass die Prüfung nicht bestünde, wenn alle Wege den Abzug verlören. Die Wirksamkeit wurde durch einen Mutationstest belegt: Mit wieder eingebautem Fehler schlägt A46 fehl und weist „Riester 0,00 %, AV 21,70 %, Rürup 21,70 %" aus.
- M-01 (mittel) — einseitige Offenlegung beim Privat-ETF. Der Abschnitt zu den Vereinfachungen nannte nur die Vorabpauschale (auf null gesetzt), die den ETF begünstigt, und schloss mit „kann dadurch geringfügig zu günstig erscheinen". Der ebenfalls fehlende Sparer-Pauschbetrag (§ 20 Abs. 9 EStG) wirkt in die Gegenrichtung — rund 260 € zu viel angesetzte Steuer je Auszahljahr, etwa 2,7 % des ETF-Barwerts — und blieb unerwähnt. Beide Richtungen werden jetzt benannt. Der Freibetrag wird bewusst weiterhin nicht angesetzt, weil das Werkzeug nicht weiß, ob er bereits durch andere Kapitalerträge verbraucht ist; ihn ungeprüft anzurechnen wäre eine stillschweigende Annahme zugunsten des ETF. Eine Erfassung wäre ein neues Eingabefeld und damit ein Feature-Release.
- M-02 (mittel) — unvollständiger Hinweis beim Riester-Höchstbetrag. Der Hinweis nannte bei Beiträgen über 2.100 €/Jahr nur die fehlende Abzugsfähigkeit. Dass der überschießende Anteil in der Auszahlphase dennoch voll statt nur mit dem Ertragsanteil besteuert wird — eine Modellgrenze, die gegen Riester wirkt —, steht jetzt ebenfalls dort, samt Empfehlung, für einen belastbaren Vergleich höchstens 175 €/Monat anzusetzen.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Behebung eines Berechnungsfehlers und zweier Offenlegungslücken ohne neue Funktion, ohne neue Eingabefelder und ohne Änderung der Datenstruktur. Selbsttest jetzt 79 Prüfungen, Produktionspfad 166. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil-, Diagramm- und Druckabnahme.
Änderungen v2026.9.8 gegenüber v2026.9.7 (Standard-Patch, Browserabnahme zum sechzehnten Prüfbericht 26.07.2026)
Zwei Tabellen scrollen jetzt selbst, statt die ganze Seite zu verschieben. Der sechzehnte Prüfbericht stellte keine Programmfehler mehr fest und stufte die Fassung als technisch freigabefähig ein; offen blieb allein die manuelle Abnahme in einem echten Browser (Q-01). Diese Abnahme wurde nachgeholt — dabei trat ein Darstellungsfehler zutage, den eine Prüfumgebung ohne Layout-Engine grundsätzlich nicht finden kann.
- Q-01 (Darstellung) — zwei Tabellen ohne quer scrollbare
Umhüllung. Von zehn Tabellen lagen acht in einem
div.tbl-wrap(overflow-x: auto; max-width: 100%), zwei jedoch nicht: die Rangfolge-Tabelle im Reiter „Auswertung" (rund 936 px breit) und die Grenzsteuersatz-Tabelle im Reiter „Eingaben". Auf einem 360 px breiten Gerät schoben sie deshalb die gesamte Seite waagerecht, statt selbst zu scrollen — die Bedienung auf dem Mobilgerät wurde dadurch spürbar erschwert. Beide sind jetzt umschlossen wie alle übrigen Tabellen. - Prüfstand: Neuer Produktionspfad-Prüfpunkt, der die Regel
festhält — jede Tabelle des Dokuments muss in einem
tbl-wrapliegen. Breiten sind ohne Layout-Engine nicht messbar, die Umhüllung selbst ist aber strukturell prüfbar. Der Prüfpunkt fand unmittelbar die zweite betroffene Tabelle, die bei der Sichtprüfung im Browser übersehen worden war. Jetzt 158 Prüfpunkte. - In der Browserabnahme ausdrücklich bestätigt: Die
Diagramme zeichnen auf einer echten Canvas-Fläche (fünf Diagramme, gültiger
2D-Kontext, rund 20 % Flächendeckung bei erzwungenem Zeichnen) mit den
erwarteten Werten. Das Verhalten der Zahlenfelder entspricht in der echten
Browser-Engine exakt der Prüfumgebung — einschließlich der Erkenntnis, dass
auch
" 2007 "mit Leerzeichen vom Feld verworfen würde; die in v2026.9.7 eingeführte Kanonisierung fängt das ab. Keine Konsolenfehler.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Behebung
eines Darstellungsfehlers ohne neue Funktion, ohne neue Eingabefelder und ohne
Änderung der Datenstruktur. Weiterhin offen (organisatorisch): die Abnahme in
Chrome, Edge, Firefox und Safari mit Tastatur-, Screenreader- und Druckprüfung.
Die Vorschauumgebung dieser Abnahme meldet visibilityState: hidden,
weshalb Chart.js seinen aufgeschobenen Erstanstrich dort nicht ausführt; das ist
eine Eigenschaft der Prüfumgebung, kein Verhalten der Anwendung.
Änderungen v2026.9.7 gegenüber v2026.9.6 (Standard-Patch, sechzehnter externer Prüfbericht 26.07.2026)
Kinderjahre werden vor der Wiederherstellung kanonisiert — Prüfung und Anzeige sind jetzt dieselbe Rechnung. Der sechzehnte Prüfbericht stellte keine hohen Befunde mehr fest. Der verbliebene mittlere Befund lag wieder an der Grenze zwischen Importprüfung und sichtbarem Formularzustand, betraf aber nicht mehr den Modus, sondern die Jahreswerte. Keine neuen Felder, keine Änderung der Datenstruktur; daher ein Standard-Patch.
- M-01 (mittel) — Kinderjahre wurden numerisch geprüft, aber als
ungeprüfter Rohwert wiederhergestellt. Die Vorabprüfung wertete
Geburts- und Endjahr über
_parseNum(String(roh))aus; die Wiederherstellung schrieb danach den unveränderten Rohwert in das Zahlenfeld. Das sind zwei verschiedene Darstellungen desselben Werts, und sie fielen auseinander:"2007,0"bestand die Prüfung als 2007, das Browser-Zahlenfeld kann das Komma aber nicht aufnehmen und wurde leer — gerechnet und exportiert wurde 0, die nominale Förderung fiel über 25 Jahre von 21.000 € auf 13.500 € (7.500 € Abweichung) bei einem Import, der Erfolg meldete."2.007"blieb sichtbar als 2.007 stehen, während 2007 gerechnet wurde. Und[2007, 0]ergab überString()ebenfalls „2007,0" und bestand die Prüfung, obwohl ein Feld kein skalarer Jahreswert ist. Behoben durch_kindJahrKanonischals einzige Stelle, an der ein Kinder-Jahreswert ausgewertet wird, undpruefeKinderListe, das nicht nur prüft, sondern die kanonische Liste zurückgibt — der Import schreibt ausschließlich diese. Nichtskalare Datentypen werden abgelehnt; eine echte JSON-Zahl läuft nicht mehr durch die Tausenderpunkt-Heuristik (die Zahl 2.007 ist die Dezimalzahl 2,007 und damit kein Kalenderjahr); abweichende Schreibweisen werden in der Importmeldung benannt, wie bei den übrigen Zahlenfeldern.validiereKinderListebleibt als dünne Hülle über derselben Rechnung erhalten. - Angrenzend behoben: Altwert im verborgenen Förderende. Führte eine Sicherungsdatei kein eigenes Förderende (Wert 0), blieb ein Altwert der vorherigen Belegung im ausgeblendeten Feld stehen und wäre wieder exportiert worden. Auch das Leeren ist eine Übernahme; das Feld wird jetzt gesetzt.
- Regressionstests: neuer Selbsttest A45g — kanonische Angaben, lokalisierte Schreibweisen, die Meldung der Anpassung, die Unterscheidung zwischen JSON-Zahl und Zahlentext sowie die Ablehnung von Feldern, Objekten, Wahrheitswerten und Sonderwerten. Selbsttest jetzt 78 Prüfungen. Der Produktionspfad-Prüfstand deckt zusätzlich fünf Schreibweisen des Geburtsjahrs und drei des Förderendes mit dem Nachweis „sichtbarer Wert = gerechneter Wert = exportierter Wert" ab, sechs typstrenge Ablehnungen samt unveränderter Formularzustände, die benannte Anpassungsmeldung, den Altwertfall und die wirtschaftliche Parität von 21.000 € — jetzt 157 Prüfpunkte.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Umsetzung von Prüfberichtsbefunden ohne neue Funktion, ohne neue Eingabefelder und ohne Änderung der Datenstruktur. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil- und Druckabnahme einschließlich der Diagrammzeichnung.
Änderungen v2026.9.6 gegenüber v2026.9.5 (Standard-Patch, fünfzehnter externer Prüfbericht 26.07.2026)
Der Fördermodus eines Kindes wird beim Import geprüft, statt still umgedeutet zu werden. Der fünfzehnte Prüfbericht stellte keine hohen Befunde mehr fest. Der verbliebene mittlere Befund lag im selben Eingabepfad wie zuvor, betraf aber ein anderes Feld: nicht das Endjahr, sondern den Modus selbst. Keine neuen Felder, keine Änderung der Datenstruktur; daher ein Standard-Patch.
- M-01 (mittel) — unbekannter Fördermodus wurde als erfolgreicher Import
still auf „bis 18" gesetzt. Die Prüfung der Kinderliste kannte die
zulässigen Modi gar nicht; die Wiederherstellung fiel bei jedem unbekannten Wert
stillschweigend auf
std18zurück und meldete „Import erfolgreich". Eine Sicherung mitmodus: "CUSTOM"und Förderende 2090 wurde damit über 25 Ansparjahre ohne Kinderzulage gerechnet — nominal 13.500 € statt 21.000 € Förderung im Altersvorsorgedepot, also 7.500 € Abweichung bei einem Import, der Erfolg meldete. Ursache war, dass die Wertemenge an vier Stellen getrennt gepflegt war (Prüfung, Wiederherstellung,_leseKinderListe, Auswahlliste) und dabei auseinanderlaufen konnte. Behoben durch eine einzige QuelleKIND_MODIsamt BeschriftungenKIND_MODUS_TEXT, aus der auch die Auswahlliste erzeugt wird; ein vorhandener, aber unbekannter Modus wird jetzt atomar abgelehnt. Ein fehlender Modus bleibt als Altdatenfall zulässig (Sicherungen vor v2026.3.0 führten kein solches Feld), wird nach „bis 18" migriert und die Migration in der Importmeldung ausdrücklich benannt. Geprüft wird zudem der Datentyp: Ein Feld["custom"]ergäbe als Zeichenkette „custom" und käme sonst durch, obwohl es dem Schema nicht entspricht. - N-01 (niedrig) — eigenes Förderende konnte vor dem Geburtsjahr liegen. Beide Jahre wurden nur gegen ihre eigenen Grenzen geprüft, ihre Beziehung nicht. Geburtsjahr 2050 mit Förderende 2020 galt als gültig und ergab schlicht kein förderfähiges Jahr. Ein Förderende im Geburtsjahr bleibt zulässig — das Modell rechnet kalenderjahrgenau, eine strengere Mindestdauer wäre eine fachliche Annahme.
- N-02 (niedrig) — Prüfstand überlagerte sein Ergebnis mit erwartbaren Canvas-Meldungen. Die Dokumentumgebung stellt keine Zeichenfläche bereit; Chart.js meldete das bei jedem Rechenlauf (rund 205 kB Ausgabe je Lauf). Diese erwartbaren Meldungen werden jetzt über eine kontrollierte Konsole getrennt gezählt statt ausgegeben; unerwartete Laufzeitmeldungen schlagen dagegen als eigener Prüfpunkt fehl. Der Prüfstand weist außerdem ausdrücklich aus, dass aus einem grünen Lauf keine Aussage über die Diagrammzeichnung folgt.
- Regressionstests: neue Selbsttests A45e (Modusliste und Beschriftungen sind deckungsgleich — der Test schlägt fehl, sobald die Quellen wieder auseinanderlaufen) und A45f (Ablehnung unbekannter Modi nach Ursache, Altdatenfall, Beziehungsprüfung). Selbsttest jetzt 77 Prüfungen. Der Produktionspfad-Prüfstand deckt zusätzlich die Ablehnung von sieben ungültigen Modusangaben samt unveränderter Formularzustände ab, alle vier zulässigen Modi mit Import-Export-Import, die benannte Altdaten-Migration, die Beziehungsprüfung sowie die wirtschaftliche Parität (21.000 € gegen 13.500 €) — jetzt 117 Prüfpunkte.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Umsetzung von Prüfberichtsbefunden ohne neue Funktion, ohne neue Eingabefelder und ohne Änderung der Datenstruktur. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil- und Druckabnahme einschließlich der Diagrammzeichnung.
Änderungen v2026.9.5 gegenüber v2026.9.4 (Standard-Patch, vierzehnter externer Prüfbericht 26.07.2026)
Ein verborgen mitgeführtes Förderende wird jetzt in jedem Fördermodus geprüft. Der vierzehnte Prüfbericht stellte keine hohen Befunde mehr fest. Der verbliebene mittlere Befund war eine Folgelücke der in v2026.9.4 eingeführten Kinderlistenprüfung: Sie sah das eigene Förderende nur dann an, wenn der Fördermodus bereits „eigenes Endjahr" war. Keine neuen Felder, keine Änderung der Datenstruktur; daher ein Standard-Patch.
- M-01 (mittel) — das eigene Förderende wurde nur im Modus „eigenes Endjahr"
geprüft. Ein Wert, den der Import in einem anderen Fördermodus
(
std18,ausb25,behindert) verborgen mitführte, galt als unbeachtlich und kam ungeprüft durch — er wurde jedoch in das verborgene Feld geschrieben. Wechselte die Anwenderin oder der Anwender später auf „eigenes Endjahr", zeigte das Feld etwa 9999, während_leseKinderListeintern auf die Feldobergrenze 2090 klemmte: sichtbarer Wert ungleich gerechneter Wert, über 25 Jahre nominal bis zu 7.500 € Kinderzulage im Altersvorsorgedepot und 4.625 € bei Riester. Behoben durch zwei einander ergänzende Maßnahmen:validiereKinderListeprüft ein vorhandenes Förderende jetzt unabhängig vom Modus und benennt im Fehlertext, warum der Wert auch außerhalb von „eigenes Endjahr" beanstandet wird; zusätzlich normalisiert der Moduswechsel auf „eigenes Endjahr" das Feld sichtbar, sodass ein Altbestand aus früheren Ständen nicht unbemerkt weiterwirkt. Dafür wurde_clampFieldOnChangeaus dem Ereignisblock in den Modulrumpf gehoben — als blockgebundene Konstante wäre der Aufruf sonst wirkungslos geblieben. - N-01 (niedrig) — Prüfstand ohne feste Abhängigkeitsauflösung. Dem
Prüfstand fehlte eine
package-lock.json; jsdom war nicht installiert, sodass die 38 Produktionspfadprüfungen bei der Auslieferung übersprungen wurden (Fehlerstatus 2). Ergänzt wurden ein vollständiges Lockfile mit Integritätsprüfsummen und ein Skriptfreigabelauf(npm ci && node run_audit.cjs). - Regressionstests: neuer Selbsttest A45d — alle drei Fördermodi gegen die Endjahre 2019, 2028,5 und 9999, dazu die Gegenproben (kein Wert, 0, gültiges Jahr) und die Prüfung des erläuternden Fehlertexts. Selbsttest jetzt 75 Prüfungen. Der Produktionspfad-Prüfstand deckt zusätzlich alle neun Kombinationen aus Modus und verborgenem Endjahr im Import ab, den Wechsel jedes Modus auf „eigenes Endjahr" mit dem Nachweis „sichtbarer Wert = gerechneter Wert = exportierter Wert" sowie einen Import-Export-Import-Durchlauf (jetzt 77 Prüfpunkte).
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Umsetzung von Prüfberichtsbefunden ohne neue Funktion, ohne neue Eingabefelder und ohne Änderung der Datenstruktur. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil- und Druckabnahme.
Änderungen v2026.9.4 gegenüber v2026.9.3 (Standard-Patch, dreizehnter externer Prüfbericht 26.07.2026)
Die Ganzzahlregel gilt jetzt auch für dynamische und Einsteigerfelder. Der dreizehnte Prüfbericht stellte keine hohen Befunde mehr fest. Der verbliebene mittlere Befund betraf denselben Grundfehler — sichtbarer Wert ungleich gerechneter Wert — in einem benachbarten, finanziell wirksamen Eingabepfad. Keine neuen Felder, keine Änderung der Datenstruktur; daher ein Standard-Patch.
- M-01 (mittel) — Kinder- und Einsteigerfelder waren von der Ganzzahlregel
ausgenommen. Die in v2026.9.3 eingeführte Prüfung stützte sich auf eine
statische Feldliste und erfasste weder die erst zur Laufzeit erzeugten Kinderfelder
(
kind_<n>_geburtsjahr,_austrittsjahr) noch die Einsteigerfelder. Ein importiertes Kinder-Geburtsjahr 2007,5 blieb sichtbar stehen, wurde von_leseKinderListeperparseIntaber auf 2007 abgeschnitten — mit unmittelbarer Förderwirkung: 185 € statt 300 € Riester-Kinderzulage je anspruchsberechtigtem Jahr. Ein eigenes Förderende 9999 lief zudem an der sichtbaren Obergrenze 2090 vorbei. Behoben durch: ein gemeinsames PrädikatistGanzzahlFeld(statische Liste + Muster für die dynamischen Kinderfelder + Einsteigerfelder); eine Schema- und Grenzprüfung der verschachtelten Kinderliste (validiereKinderListe), die im Import vor jeder Zustandsänderung greift; Rundung statt Abschneiden in_leseKinderListesamt Erzwingen der Feldgrenzen; und die gemeinsame Grenz-/Rundungsbehandlung auch im delegierten Änderungsereignis der Kinderzeilen sowie im Einsteiger-Modus (dort zusätzlich Rundung stattparseIntinegRechne). - N-01 (niedrig) — Versionswahl des Prüfstands sortiert numerisch.
findLatestTargetverglich Dateinamen als Zeichenfolgen; bei gleichzeitig vorhandenen Ständen_2026_9_3und_2026_9_10hätte es_9_3als neuesten gewählt und einen veralteten Stand geprüft. Jetzt werden Jahr, Major und Minor numerisch verglichen. - Regressionstests: A45b prüft jetzt das Prädikat statt einer Feldliste — einschließlich dynamischer Kinderfelder und der Gegenprobe, dass Geld-, Prozent- und Auswahlfelder nicht erfasst werden; A45c prüft die Schema- und Grenzprüfung der Kinderliste. Selbsttest jetzt 74 Prüfungen. Der Produktionspfad- Prüfstand deckt zusätzlich die sechs Reproduktionsfälle des Berichts sowie die Gegenprobe „sichtbares Kinderjahr = gerechnetes Kinderjahr = angesetzte Zulage" ab (jetzt 38 Prüfpunkte).
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Umsetzung von Prüfberichtsbefunden ohne neue Funktion, ohne neue Eingabefelder und ohne Änderung der Datenstruktur. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil- und Druckabnahme.
Änderungen v2026.9.3 gegenüber v2026.9.2 (Standard-Patch, zwölfter externer Prüfbericht 26.07.2026)
Zwei Umgehungspfade an der Eingabegrenze geschlossen. Beide Befunde lagen vor der eigentlichen Berechnung und konnten daher mehrere Ausgaben zugleich verfälschen. Keine neuen Felder, keine Änderung der Datenstruktur — daher ein Standard-Patch.
- H-01 (hoch) — Teilimporte umgingen die atomare Bestandsprüfung. Die
Prüfung lief nur, wenn der importierte Datensatz selbst
in_ri_modusenthielt. Bei einem Teilimport ohne diesen Schlüssel entfiel sie, und die Riester-Jahresfelder liefen doch durch die allgemeine Grenzwertnormalisierung: ein importierter Vertragsbeginn 2027 wurde auf 2026 verschoben, wodurch sich Vertragsdauer (9 statt 25 Jahre), Altersgrenze (62 statt 60) und damit die ausgewiesene Steuer (6.733 € statt 3.367 €) änderten. Der Kandidatenmodus wird jetzt aus dem Importwert oder — wenn dieser fehlt — aus dem bereits aktiven Formularzustand gebildet. Zusätzlich sind die beiden Riester-Jahresfelder von der allgemeinen Normalisierung ausgenommen: sobald sie im Import vorkommen, werden sie strikt als ganzes Kalenderjahr geprüft und bei Verstoß abgelehnt. - M-01 (mittel) — Dezimalwerte erzeugten gemischte Zeitachsen.
Semantisch ganzzahlige Felder (Kalenderjahre, Lebensalter, Kinderzahl) akzeptierten
Dezimalwerte. Ein Startjahr 2027,5 ergab 24,5 Ansparjahre: geschlossene Formeln
rechneten mit 24,5, die jahresweisen Schleifen der Zahlungsreihe liefen 24-mal —
Ergebnis und Zahlungsreihe wichen um 1.800 € voneinander ab. Jetzt greift dieselbe
Regel in allen Pfaden: der Import lehnt gebrochene Werte ab
(
GANZZAHL_FELDER), das Änderungsereignis rundet sichtbar, undgetPhasenmacht die abgeleiteten Phasenlängen als letzte Schutzschicht ganzzahlig — damit können Ergebniskern, Förderung, Zahlungsreihe und Druckbericht nicht mehr auf unterschiedlichen Zeitrastern beruhen. - N-01 (niedrig) — Prüfstand ist reproduzierbar und meldet Lücken hart.
Dem Prüfverzeichnis liegt jetzt eine
package.jsonmit gesperrter jsdom-Version bei. Der Prüflauf endet mit Fehlerstatus 2, wenn die Produktionspfadtests mangels jsdom übersprungen werden, und mit Status 1, wenn einer von ihnen fehlschlägt — ein grünes Protokoll kann damit keine nicht ausgeführte Pflichtprüfung mehr verdecken. Die Produktionspfadtests decken zusätzlich die vier Teilimporte aus H-01 und die Dezimalfälle aus M-01 ab (jetzt 23 Prüfpunkte). - Regressionstests: A45 (ganzzahlige Phasenlängen; eingezahlter Betrag im Ergebnis = Summe der Zahlungsreihe) und A45b (Vollständigkeit der Ganzzahl-Feldliste). Selbsttest jetzt 73 Prüfungen.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Umsetzung von Prüfberichtsbefunden ohne neue Funktion, ohne neue Eingabefelder und ohne Änderung der Datenstruktur. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil- und Druckabnahme.
Änderungen v2026.9.2 gegenüber v2026.9.1 (Standard-Patch, elfter externer Prüfbericht 26.07.2026)
Der Importpfad hält jetzt durchgängig, was v2026.9.1 nur für zwei Felder eingelöst hatte. Die Vorversion beseitigte die stille Umdeutung von Jahreswerten nur bei den beiden Riester-Jahresfeldern; derselbe Fehlertyp bestand für alle übrigen Zahlenfelder im JSON-Import fort. Keine neuen Felder und keine Änderung der Datenstruktur — daher ein Standard-Patch.
- H-01 (hoch) — importierte Zahlen wichen sichtbar von den gerechneten ab. Der Import schrieb Rohwerte in die Felder; die Berechnung klemmte sie intern auf die Feldgrenzen, ohne die Anzeige zu berichtigen, und meldete trotzdem Erfolg. Ein sichtbares Startjahr 2025 wurde als 2027 gerechnet, eine sichtbare Rendite von 99 % als 20 %, ein sichtbares zu versteuerndes Einkommen von 1 Mrd € als 100 Mio €. Zahlenfelder werden beim Import jetzt gegen ihre Grenzen normalisiert, der normalisierte Wert wird sichtbar gesetzt und jede Anpassung in der Importmeldung einzeln benannt („angepasst … angezeigter Wert entspricht jetzt dem gerechneten"). Bewusst normalisiert statt abgelehnt, damit ältere Sicherungen ladbar bleiben, deren Werte nach späteren Feldbegrenzungen außerhalb liegen können. Ausgenommen bleiben die beiden Riester-Jahresfelder: sie steuern die steuerliche Einordnung und werden weiterhin atomar abgelehnt statt verschoben.
- M-01 (mittel) — Riester-Import prüft jetzt den vollständigen Kandidaten.
Der Import prüfte die beiden Jahre nur einzeln gegen ihr Intervall — nicht ihre
Beziehung zueinander und nicht die Vollständigkeit des Bestands. Ein Vertragsbeginn
2025 mit Stichtag 2024 sowie ein leerer Vertragsbeginn galten daher als „erfolgreich"
importiert und wurden erst anschließend von der Auswertung gesperrt. Jetzt wird vor
jeder Zustandsänderung der Kandidatenzustand mit derselben Funktion geprüft, die auch
Rechenkern und Anzeige verwenden (
validiereRiesterBestand), einschließlich Präsenzprüfung aller Pflichtfelder. Der ungenutzte dritte Parameter dieser Funktion wurde entfernt. - N-01 (niedrig) — Prüfskript deckt die zugesagten Pfade tatsächlich ab.
Die Dokumentation nannte eine externe Absicherung des Eingabe- und Importpfads, die im
mitgelieferten
qa_toolpruefung/run_audit.cjsnicht enthalten war. Das Skript prüft nun in einer echten Dokumentumgebung: sichtbare Normalisierung, die Invariante „angezeigter Wert = gerechneter Wert" über alle Zahlenfelder, die atomare Ablehnung widersprüchlicher und unvollständiger Bestände sowie die konkrete Anzeigemeldung. Fehlt jsdom, weist die Ausgabe diese Lücke ausdrücklich aus, statt eine Abdeckung vorzutäuschen. Die Aussage in der Liesmich-Datei wurde entsprechend berichtigt.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Umsetzung von Prüfberichtsbefunden ohne neue Funktion, ohne neue Eingabefelder und ohne Änderung der Datenstruktur. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil- und Druckabnahme.
Änderungen v2026.9.1 gegenüber v2026.9.0 (Standard-Patch, zehnter externer Prüfbericht 26.07.2026)
Der angezeigte Wert ist jetzt immer auch der gerechnete Wert. Der zehnte Prüfbericht deckte zwei Wege auf, über die ungültige Jahresangaben still zu einem scheinbar gültigen Ergebnis führten. Alle Befunde sind umgesetzt. Keine neuen Felder und keine Änderung der Datenstruktur — daher ein Standard-Patch.
- H-01 (hoch) — Stichtagsjahr nach dem Modellstart führte zur Doppelerfassung. Ein Vertragswert per 2034 wurde bei Modellstart 2027 akzeptiert und mit dem vollständigen Beitrags- und Förderstrom ab 2027 addiert — obwohl ein Wert von 2034 diese Jahre bereits enthält. Im geprüften Fall wurden dadurch über 13.000 € zusätzlich ausgewiesen. Das Stichtagsjahr darf jetzt nicht nach dem Beginn der Modellrechnung liegen; die Feldobergrenze wurde entsprechend gesetzt.
- H-02 (hoch) — unzulässige Jahre wurden still auf die Feldgrenzen umgedeutet.
Die Formulareinlesung klemmte Jahreswerte über
_clampToBoundsauf das HTML-Intervall: ein sichtbares 2001 wurde intern zu 2002, ein sichtbares 2027 zu 2026. Damit wich die Anzeige vom gerechneten Wert ab — im Fall 2027 → 2026 verlängerte sich die Vertragsdauer sogar über die Zwölfjahresgrenze und kippte den vollen in einen hälftigen Steueransatz. Jahresfelder werden jetzt roh gelesen und über eine gemeinsame Prüfung validiert; ungültige Werte werden abgelehnt statt zurechtgebogen. Auch der JSON-Import prüft die Jahre vor jeder Zustandsänderung und schlägt bei ungültigen Werten fehl, ohne den bisherigen Stand zu verändern — zuvor meldete er „Import erfolgreich", während sichtbarer und interner Wert auseinanderfielen. - M-01 (mittel) — Ursache abgelehnter Eingaben wird benannt. Zuvor
behauptete die Anzeige einen fehlenden Beitrag, obwohl Beitrag und Bestandsangaben
vorlagen und lediglich der Vertragsbeginn kein ganzes Kalenderjahr war. Rechenkern,
Anzeige und Import nutzen jetzt dieselbe Prüfung
(
validiereRiesterBestand) und die Oberfläche nennt den konkreten Grund je Feld. Die Sperre betrifft nur den Riester-Weg; eine unabhängig gültige Depotberechnung bleibt sichtbar. - N-01 (niedrig) — Stichtagskonvention erläutert. Der Vertragswert gilt als Stand zu Beginn des angegebenen Kalenderjahres; fortgeschrieben wird in vollen Jahresperioden. Ein unterjähriger Stichtag wird bewusst nicht erfasst.
- Regressionstests: A44 (gemeinsame Jahresvalidierung mit konkreten
Fehlertexten); A43 um die Ablehnung eines Stichtags nach dem Modellstart erweitert.
Selbsttest jetzt 71 Prüfungen. Der reale Eingabepfad (Formularfeld →
getInputs→ Rechenkern → Anzeige) sowie der JSON-Import werden zusätzlich über das externe Prüfskript abgesichert — der eingebaute Selbsttest läuft bewusst ohne Oberflächenzugriff, weshalb er die frühere stille Umdeutung nicht erfassen konnte.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Umsetzung von Prüfberichtsbefunden ohne neue Funktion, ohne neue Eingabefelder und ohne Änderung der Datenstruktur. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil- und Druckabnahme.
Änderungen v2026.9.0 gegenüber v2026.8.0 (Feature-Release, neunter externer Prüfbericht 26.07.2026)
Die Riester-Bestandslogik wird belastbar. Der neunte Prüfbericht beanstandete erneut ausschließlich die Kündigungs-Auswertung. Kernpunkt: Ein Ergebnis durfte nicht vollständig aussehen, wenn der zugrunde liegende Datenbestand unvollständig ist. Alle fünf Befunde sind umgesetzt. Ältere JSON-Sicherungen bleiben verlustfrei ladbar; die neuen Felder sind additiv.
- H-01 (hoch) — beitragsfrei gestellte Riester-Verträge werden gerechnet. Bisher brach die Auswertung ab, sobald kein künftiger Monatsbeitrag erfasst war. Ein Bestandsvertrag kann aber beitragsfrei gestellt sein und trotzdem Vermögen enthalten — gerade dann liegt die Kündigungsfrage besonders nahe. Für Riester genügt jetzt entweder ein künftiger Beitrag oder ein vollständig erfasster Bestand; gerechnet wird dann allein das fortgeschriebene Vertragsvermögen. Für das Altersvorsorgedepot bleibt es beim Beitragserfordernis, weil es frühestens 2027 abgeschlossen werden kann.
- H-02 (hoch) — Teilbefüllung führt nicht mehr zu einem scheinbar vollständigen Ergebnis. Zuvor genügte ein einziges ausgefülltes Bestandsfeld, um den Warnhinweis zu unterdrücken; die übrigen historischen Größen gingen stillschweigend mit null in die Rechnung ein. Neu ist ein ausdrücklicher Modus („Modellvertrag ab Startjahr" oder „Bestehender Vertrag"). Im Bestandsmodus müssen alle Angaben erfasst sein; fehlt etwas, wird nicht gerechnet, sondern es werden die fehlenden Felder einzeln benannt. Die Prüfung ist präsenzbasiert: ein bewusst eingetragener Wert 0 zählt als Angabe, ein leeres Feld nicht.
- M-01 (mittel) — eigenes Stichtagsjahr für den Vertragswert. Das neue Feld „Vertragswert per (Jahr)" gibt an, auf welches Jahr sich das Guthaben bezieht. Fortgeschrieben wird ab diesem Jahr statt pauschal ab dem Startjahr der Modellrechnung — ein aus der Standmitteilung übernommener Wert verlor sonst ein Jahr Wertentwicklung (im geprüften Fall rund 5,7 %).
- M-02 (mittel) — Vertragsbeginn wird validiert. Er steuert Altersgrenze und Zwölfjahresfrist und muss daher ein plausibles ganzes Kalenderjahr sein: Riester ist seit 2002 möglich, ein Beginn in der Zukunft ist ausgeschlossen. Gebrochene Werte wie 2011,5 werden abgelehnt; das Eingabefeld beginnt jetzt bei 2002 statt 1990.
- N-01 (niedrig) — Erläuterungstexte an die Logik angeglichen. Der Einleitungstext nennt nicht mehr pauschal die „12/62-Regel", sondern die vertragsabhängige Altersgrenze (60 vor 2012, sonst 62). Der Hilfetext zum Kündigungsalter beschreibt nicht mehr die frühere stille Begrenzung auf den Rentenbeginn, sondern die jetzige Ablehnung. Die Quellenübersicht spricht entsprechend von der 12/60- bzw. 12/62-Regel.
- Regressionstests: A40 (beitragsfreier Bestand rechnet; ohne Bestand und beim Altersvorsorgedepot weiterhin keine Auswertung), A41 (Teilbefüllung sperrt die Rechnung), A42 (Vertragsbeginn 2011,5 / NaN / 2001 / Zukunftsjahr abgelehnt), A43 (Fortschreibung ab Stichtagsjahr, Stichtag vor Vertragsbeginn abgelehnt); A38/A39 an den ausdrücklichen Bestandsmodus angepasst. Selbsttest jetzt 70 Prüfungen.
Versionsschritt nach den Versionierungsregeln: Feature-Release (MAJOR + 1, MINOR = 0) — neue Bedienelemente (Modusauswahl, Stichtagsjahr) und ein neu unterstützter Fall (beitragsfreier Bestandsvertrag). Kein Schema-Bump: ältere Sicherungen laden verlustfrei. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil- und Druckabnahme.
Änderungen v2026.8.0 gegenüber v2026.7.0 (Feature-Release, achter externer Prüfbericht 26.07.2026)
Korrektur und Vervollständigung der Kündigungs-Auswertung. Der achte Prüfbericht beanstandete ausschließlich die in v2026.7.0 neu eingeführte Auswertung zur förderschädlichen Verwendung — die übrigen Rechenwege blieben unbeanstandet. Alle fünf Befunde sind umgesetzt. Da hierfür neue Eingabefelder hinzukommen, ist dies ein Feature-Release. Ältere JSON-Sicherungen bleiben verlustfrei ladbar (die neuen Felder sind rein additiv und optional); ein Schema-Bump ist daher nicht erforderlich.
- H-01 (hoch) — Riester-Bestandsverträge werden jetzt als Bestand gerechnet. Bisher unterstellte die Auswertung auch für den ausdrücklich als „Bestand" bezeichneten Riester-Vertrag einen erst ab dem Startjahr neu aufgebauten Vertrag — für einen real bestehenden Vertrag ein anderer Sachverhalt. Neu erfassbar sind Vertragsbeginn, aktueller Vertragswert, bisherige Eigenbeiträge, bisher erhaltene Zulagen und bisherige Steuerermäßigungen. Das vorhandene Guthaben wird bis zum Kündigungszeitpunkt fortgeschrieben; die historischen Beträge gehen nominal in Bemessung und Rückzahlung ein. Entscheidend ist zudem der Vertragsbeginn für die Altersgrenze der hälftigen Besteuerung: vor dem 01.01.2012 abgeschlossene Verträge 60 Jahre, ab 2012 abgeschlossene 62 Jahre (§ 20 Absatz 1 Nummer 6 Satz 2 EStG in der für den Vertrag geltenden Fassung). Die Zwölfjahresfrist zählt ab dem tatsächlichen Vertragsbeginn. Fehlen die Angaben, weist die Auswertung ausdrücklich darauf hin, dass ein Modellvertrag gerechnet wird. Das Altersvorsorge- depot bleibt bei 62, weil es frühestens 2027 abgeschlossen werden kann.
- H-02 (hoch) — Kündigung ab Rentenbeginn wird nicht mehr still zurückgesetzt. Ein Alter ab dem Rentenbeginn wurde bisher kommentarlos auf den Rentenbeginn gesetzt und trotzdem mit Rückforderung gerechnet — das beantwortete eine andere als die gestellte Frage. Solche Eingaben werden jetzt mit klarer Meldung abgelehnt. Der Hinweis nennt, dass eine nicht zugelassene Kapitalauszahlung auch nach Beginn der Auszahlungsphase schädlich sein kann (§ 93 Absatz 1 Satz 2 EStG), ihre saubere Abbildung aber eine eigene Fallunterscheidung erfordert und hier bewusst unterbleibt.
- M-01 (mittel) — Kündigungsalter nur noch ganzzahlig. Ein gebrochener Wert (etwa 55,5 aus manueller Eingabe oder Import) erzeugte gemischte Zeitbasen: die Beitragssumme rechnete mit 13,5 Jahren, die jahresweisen Zulagen- und Erstattungsströme mit 13. Nicht ganzzahlige Werte werden jetzt abgelehnt.
- N-01 (niedrig) — Härtung der Rechenfunktion. Direkte Aufrufe mit
undefined,NaNoderInfinitylieferten unbrauchbare Ergebnisobjekte beziehungsweise rechneten still den Rentenbeginn. Die Endlichkeits- und Ganzzahligkeitsprüfung steht jetzt in der Rechenfunktion selbst und nicht nur in der Oberfläche. - N-02 (niedrig) — Quellenübersicht ergänzt. Aufgenommen sind jetzt §§ 93 und 94 EStG, § 22 Nummer 5 Satz 2 und 3 EStG, die Übergangsregelung zur Altersgrenze sowie das BMF-Schreiben zur steuerlichen Förderung der privaten Altersvorsorge (Randnummern 147 bis 149).
- Regressionstests: A37 (Ablehnung gebrochener, nicht endlicher und außerhalb des zulässigen Bereichs liegender Alter), A38 (Altersgrenze 60 gegenüber 62 nach Vertragsbeginn 2010/2012, Alter 59 bis 62), A39 (Grenzfall exakt zwölf Jahre Vertragsdauer sowie Wirkung der Bestandsdaten). Selbsttest jetzt 66 Prüfungen.
Versionsschritt nach den Versionierungsregeln: Feature-Release (MAJOR + 1, MINOR = 0) — neue Eingabefelder und neue Rechenfähigkeit für Bestandsverträge. Kein Schema-Bump: ältere Sicherungen laden verlustfrei, die neuen Felder sind optional und additiv. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil- und Druckabnahme.
Änderungen v2026.7.0 gegenüber v2026.6.4 (Feature-Release, neue Auswertung)
Neue Auswertung „Vorzeitige Kündigung: was bleibt nach Rückforderung der Förderung?" Bisher benannte das Werkzeug die förderschädliche Verwendung nur qualitativ in der Eigenschaften-Tabelle („Rückforderung Förderung"). Jetzt wird sie für Altersvorsorgedepot und Riester (Bestand) durchgerechnet. Datenstruktur unverändert; JSON-Sicherungen bleiben kompatibel.
- Rechtsfolgen (§ 93 Abs. 1, § 94 und § 22 Nr. 5 Satz 3 EStG). Zurückzuzahlen sind die erhaltenen Zulagen und die gesondert festgestellten Steuerermäßigungen — nominal, ohne Verzinsung. Das verbleibende Kapital gilt nach Abzug der Zulagen als Leistung im Sinne des § 22 Nr. 5 Satz 2 EStG; steuerpflichtig ist davon der Unterschiedsbetrag zur Summe der eigenen Beiträge.
- 12/62-Regel gilt auch hier. Bei mindestens zwölf Jahren Vertragslaufzeit und Auszahlung nach Vollendung des 62. Lebensjahres ist nur die Hälfte des Unterschiedsbetrags steuerpflichtig; sonst der volle Betrag. Die Auswertung weist aus, ob die Bedingung erfüllt ist — und andernfalls, woran es liegt.
- Frei wählbarer Zeitpunkt. Ein neues Eingabefeld „Kündigung mit Alter" erlaubt jeden Zeitpunkt der Ansparphase; Werte ab dem Rentenbeginn werden auf den Rentenbeginn begrenzt, weil die Auszahlung dann regulär erfolgt. Vor dem Rentenbeginn wird mit dem Grenzsteuersatz des Erwerbslebens gerechnet.
- Konsistenz zur Hauptrechnung. Der Kapitalstand zum Kündigungszeitpunkt wird über dieselbe Engine mit verkürzter Ansparphase ermittelt; verwendet werden die je Weg tatsächlich angesetzten (bei „gleicher Nettoaufwand" skalierten) Eingaben.
- Einordnung und Warnhinweis. Ausgewiesen wird, ob die verbleibende Auszahlung über oder unter den eigenen Einzahlungen liegt. Ein Hinweis nennt Beitragsfreistellung und Übertragung als die in der Regel schonenderen Wege ohne Rückforderung. Nicht berücksichtigt sind Stornokosten des Anbieters sowie Sonderfälle wie die Wohn-Riester-Verwendung.
- Regressionstests: A35 (Rückzahlung, Unterschiedsbetrag und Nettoauszahlung schlüssig) und A36 (12/62-Bedingung, Grenzsteuersatz des Erwerbslebens, Abweisung eines Kündigungsalters im laufenden Jahr). Selbsttest jetzt 63 Prüfungen.
Versionsschritt nach den Versionierungsregeln: Feature-Release (MAJOR + 1, MINOR = 0) — neue Auswertung mit eigenem Eingabefeld; kein Schema-Bump, Datenstruktur unverändert.
Änderungen v2026.6.4 gegenüber v2026.6.3 (Standard-Patch, fachliche Korrektur)
12/62-Regel für den nicht geförderten Topf. Bisher besteuerte das Werkzeug den nicht geförderten Topf in jeder Auszahlform mit dem Leibrenten-Ertragsanteil (z. B. 17 % bei Rentenbeginn 67). Dieser setzt jedoch eine lebenslange Rente voraus (§ 22 Nr. 5 Satz 2 Buchst. a i. V. m. § 22 Nr. 1 Satz 3 EStG). Für alle übrigen Auszahlformen greift der Auffangtatbestand § 22 Nr. 5 Satz 2 Buchst. c EStG: maßgeblich ist der Unterschiedsbetrag unter entsprechender Anwendung von § 20 Abs. 1 Nr. 6 EStG. Datenstruktur unverändert.
- Betroffene Auszahlformen. Neben der Kapitalauszahlung (Einmalbetrag, „30 % vorab") auch der befristete Auszahlplan bis zum Auszahlende — er ist keine Leibrente und wurde bisher zu Unrecht mit dem Ertragsanteil begünstigt.
- Neue Bemessungsgrundlage. Steuerpflichtig ist nur der Gewinn: Auszahlung abzüglich der darauf entfallenden eingezahlten nicht geförderten Beiträge (Beitragsanteil über 1.800 €/Jahr), nicht mehr der volle Auszahlbetrag mit Ertragsanteil. Beim Auszahlplan trägt jede Jahrestranche den Gewinn anteilig (gleiche proportionale Zuordnung wie beim Privat-ETF).
- 12/62-Regel. Vom Unterschiedsbetrag ist nur die Hälfte steuerpflichtig, wenn die Vertragslaufzeit mindestens 12 Jahre beträgt und die Auszahlung nach Vollendung des 62. Lebensjahres erfolgt; andernfalls der volle Unterschiedsbetrag. Besteuert wird mit dem persönlichen Grenzsteuersatz im Ruhestand.
- Unverändert: Die lebenslange Rente aus dem nicht geförderten Topf bleibt bei der Ertragsanteilsbesteuerung — dort war und ist die Behandlung korrekt; das gilt auch für die Verrentung der restlichen 70 % im Modus „30 % vorab". Der geförderte Topf wird weiterhin voll nach § 22 Nr. 5 EStG besteuert.
- Sichtbarkeit. Das Ergebnis nennt je Auszahlform ausdrücklich, ob die 12/62-Bedingung erfüllt ist — und falls nicht, woran es liegt (Laufzeit oder Alter). Der Ertragsanteil wird nur noch dort ausgewiesen, wo er tatsächlich gilt. Der Grundlagen-Tab erläutert beide Besteuerungswege getrennt.
- Regressionstests: A32 (Bedingungslogik inklusive der Grenzfälle exakt 12 Jahre und exakt Alter 62), A33 (Bemessung des Unterschiedsbetrags) und A34 (Auszahlplan: gleiche Bruttorente wie die Leibrente, aber Besteuerung nach der 12/62-Regel). Selbsttest jetzt 61 Prüfungen.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — fachliche Präzisierung einer bestehenden Berechnung, kein neuer Funktionsumfang, keine Änderung an Datenstruktur oder Oberflächenaufbau.
Änderungen v2026.6.3 gegenüber v2026.6.2 (Standard-Patch, siebter externer Prüfbericht 21.07.2026)
Drei redaktionelle Textkorrekturen (Dokumentationsparität). Der Prüfbericht stellte keine Rechen- oder Laufzeitfehler fest (bedingte Freigabe). Die Berechnung war in allen drei Fällen bereits korrekt; betroffen waren ausschließlich Begleittexte. Keine Änderung an Datenstruktur oder Berechnungsengine (Standard-Patch, MINOR + 1).
- F-01 (mittel) — Rürup-Höchstbetrag in der Liesmich-Datei. Die Produktbeschreibung nannte noch „ca. 29.500 € ledig / 59.000 € verheiratet". Der Höchstbetrag nach § 10 Abs. 3 EStG beträgt 2026 tatsächlich 30.826 € für Ledige und 61.652 € bei Zusammenveranlagung — die Werte, mit denen die Anwendung ohnehin rechnet (Selbsttest A7/A15). Liesmich korrigiert.
- F-02 (niedrig) — Besteuerung großer Einmalauszahlungen in der Liesmich-Datei. Der Text beschrieb eine harte 42-%-Schwelle ab 30.000 €. Tatsächlich verwendet das Modell bis 20.000 € den eingestellten Ruhestands-Grenzsteuersatz, leitet zwischen 20.000 € und 40.000 € linear auf 42 % über (Glättung des früheren Cliff-Effekts, Befund B-21) und rechnet ab 40.000 € mit mindestens 42 %. Liesmich an die tatsächliche Logik angepasst.
- F-03 (niedrig) — Begünstigtenkreis im Altersvorsorgedepot-Wegweiser. Der Schritt „Prüfen, ob Sie förderberechtigt sind" nannte pauschal „Selbstständige, die eine Steuererklärung abgeben". Präzisiert auf Selbstständige unter 67 Jahren mit Einkünften nach § 15 oder § 18 Abs. 1 Nr. 1–3 EStG, die für das Beitragsjahr eine Steuererklärung abgegeben haben — konsistent zum bereits korrekten Begünstigtenüberblick an anderer Stelle.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — redaktionelle Korrekturen und Quellenpräzisierung ohne Eingriff in Datenstruktur oder Funktionsumfang. Weiterhin offen (organisatorisch): die manuelle Browser-Abnahme (Safari, mobile Breiten, Druck, Tastaturbedienung) — headless nicht durchführbar.
Änderungen v2026.6.2 gegenüber v2026.6.1 (Standard-Patch, sechster externer Prüfbericht 21.07.2026)
Ein mittlerer und ein niedriger Befund aus dem sechsten Prüfbericht. Der Prüfbericht erteilte eine bedingte Freigabe ohne hohe oder kritische Restbefunde. Beide Korrekturen berühren die Datenstruktur nicht (Standard-Patch, MINOR + 1).
- F-01 (mittel) — veralteter Text im Altersvorsorgedepot-Leitfaden. Der Wegweiser forderte, die „Verkündung der genauen Förderbedingungen im Bundesgesetzblatt" abzuwarten — obwohl das Altersvorsorgereformgesetz bereits verkündet ist (BGBl. 2026 I Nr. 156 vom 29.05.2026), wie an anderer Stelle korrekt ausgewiesen. Der Schritt trennt jetzt verkündeten Rechtsstand und noch ausstehende Marktverfügbarkeit. Der Folgeschritt unterscheidet zudem sauber zwischen dem Mindesteigenbeitrag von 120 €/Jahr (Voraussetzung für die Zulagen) und der beitragsproportionalen Zulagenhöhe (volle Grundzulage 540 € erst bei 1.800 € Eigenbeitrag; Kinderzulage bis 300 € je Kind). Die Berechnung war nicht betroffen.
- F-02 (niedrig) — Ganz-Euro-Abrundung im Einkommensteuertarif. § 32a
Abs. 1 EStG rundet das zu versteuernde Einkommen und den Steuerbetrag auf volle Euro ab.
estTarifGrundrechnete bisher mit dem ungerundeten Wert und lieferte Centbeträge (Abweichung < 1 €/Jahr). Jetzt wird — wie gesetzlich vorgesehen — auf volle Euro abgerundet; das Splittingverfahren2 · estTarifGrund(zvE/2)bleibt gültig. - Regressionstest: A31 sichert die Ganz-Euro-Abrundung des Tarifs ab (Selbsttest jetzt 58 Prüfungen).
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — redaktionelle Korrektur eines Leitfadentexts und fachliche Präzisierung der Tarifrundung, kein neuer Funktionsumfang, kein Schema-Bump, Datenstruktur unverändert. Hinweis: Die vom Prüfbericht zusätzlich geforderte manuelle Browser-Abnahme (Safari, mobile Breiten, Druck) steht als organisatorischer Schritt weiterhin aus; sie ist headless nicht durchführbar.
Änderungen v2026.6.1 gegenüber v2026.6.0 (Standard-Patch, fünfter externer Prüfbericht 21.07.2026)
Vier hohe und ein mittlerer Befund aus dem fünften Prüfbericht. Sie betrafen Zeitreihen- und Zustandsübergänge, die in den statischen Startjahrespfaden von v2026.6.0 bereits korrekt waren. Datenstruktur unverändert; Korrekturen ohne neuen Funktionsumfang (Standard-Patch, MINOR + 1). Die Selbsttests decken die Zeitreihen jetzt mit ab.
- H-01 (hoch) — „gleicher Nettoaufwand" bei Beitragsdynamik. Die Skalierung stellt den Nettoaufwand exakt nur im ersten Beitragsjahr gleich; bei aktivierter Dynamik wächst der Bruttobeitrag proportional, die am Förderhöchstbetrag gedeckelte Steuererstattung jedoch nicht. Der Modus heißt jetzt „gleicher Nettoaufwand (erstes Beitragsjahr)", und der Vergleich weist beim jeweiligen geförderten Weg die kumulierte Abweichung des tatsächlichen Nettoaufwands zum Privat-ETF-Zielstrom aus. Ohne Dynamik (u. a. im Einsteiger-Modus) ändert sich nichts.
- H-02 (hoch) — Riester-Mindesteigenbeitrag nach Kinderzulagen-Ende.
Zulagenanspruch und Mindesteigenbeitrag (§ 86 EStG) werden jetzt kalenderjahrgenau aus
den im jeweiligen Jahr anspruchsberechtigten Kindern bestimmt
(
_riesterZulagenImJahr). Läuft die Kinderzulage aus, steigt der Mindesteigenbeitrag und die verbleibende Grundzulage wird ggf. anteilig gekürzt — bisher lief sie mit dem zu günstigen Startjahr-Faktor weiter (im geprüften Fall rund 1.856 € zu hohes Endkapital). - H-03 (hoch) — Cashflow-/Steuersatz-Szenarien verwarfen die Netto-Skalierung.
Die je Weg tatsächlich verwendeten (bei „gleicher Nettoaufwand" skalierten) Eingaben
werden jetzt im Ergebnis mitgeführt (
inputsJeWeg) und von der Cashflow- Steuersatzvariante sowie der Szenariotabelle genutzt. Eine reine Änderung des Ruhestandssteuersatzes verändert das Ansparendkapital nicht mehr. - H-04 (hoch) — Versionsmigration alter Einsteiger-Sicherungen. Der
Einsteiger-Status
eg_grvhatte in v2026.5.2 die Werte „ja"/„nein"; seit v2026.6.0 vier Statusgruppen. Der Import migriert jetzt „ja" → gesetzliche Rentenversicherung und „nein" → keine Basisversorgung (übernimmt das damals berechnete Ergebnis; Beamte/Versorgungswerk bitte neu auswählen). Migrierte und wegen unbekannter Werte nicht übernommene Felder werden in der Importmeldung benannt. Klarstellung zur v2026.6.0-Notiz „JSON kompatibel": Für Einsteiger-Sicherungen aus v2026.5.2 galt das ohne diese Migration nicht — mit v2026.6.1 ist es behoben. - M-01 (mittel) — Cashflow-Tabelle: Erstattungsstrom und Startjahr. Die Tabelle nutzt jetzt den jahrweisen tatsächlichen Erstattungsstrom (immer berechnet, nicht nur im Schatten-ETF-Modus) statt des konstanten Startjahreswerts; das erste Ansparjahr trägt wieder das Startjahr (bisher Startjahr + 1).
- Regressionstests: A26/A27 (Nettoaufwand-Drift und Erstjahrestreffer), A28 (Riester-Grundzulage nach Kindergeldende), A29 (steuersatzunabhängiges Szenario- Endkapital), A30 (Cashflow-Startjahr und -Erstattungsstrom). Selbsttest jetzt 57 Prüfungen.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Korrekturen an Zeitreihen- und Zustandsübergängen samt Import-Migration, kein neuer Funktionsumfang, kein Schema-Bump, Datenstruktur unverändert.
Änderungen v2026.6.0 gegenüber v2026.5.2 (Feature-Release, vierter externer Prüfbericht 19.07.2026)
Konsolidierung der Förderberechnung und fünf hohe Prüfbefunde. Der vierte
Prüfbericht deckte auf, dass Fördergrößen an mehreren Stellen (Anzeige, Endkapital, Cashflow,
Schatten-ETF, Netto-Skalierung) getrennt nachgebaut waren und frühere Korrekturen dadurch
nur einzelne Kopien trafen. Die Förderlogik von Altersvorsorgedepot und Riester ist jetzt je
in eine gemeinsame Jahresfunktion (_avFoerderungJahr, _riesterZulagen)
zusammengeführt, die alle Stellen nutzen. Datenstruktur unverändert; JSON-Sicherungen bleiben
kompatibel. Der Versionsschritt ist wegen der Engine-Umstellung und der neuen Einsteiger-Funktion
ein Feature-Release (MAJOR + 1, MINOR = 0).
- H-01 (hoch) — Netto-Skalierung „gleicher Nettoaufwand" für Altersvorsorgedepot
und Riester. Der skalierte Bruttobeitrag zog bisher den vollen Tarifvorteil
ab. Tatsächlich fließen die Zulagen in den Vertrag, nicht aufs Konto — erstattet wird nur der
die Zulagen übersteigende Vorteil (Günstigerprüfung
max(0, Tarifvorteil − Zulagen)). Dadurch war der Bruttobeitrag zu hoch skaliert und der reale Nettoaufwand lag über dem ETF-Ziel (mit zwei Kindern rund +95 %). Jetzt trifft der Nettoaufwand aller geförderten Wege das ETF-Ziel. Rürup (keine Zulagen) war korrekt und bleibt unverändert. - H-02 (hoch) — Grundzulage des Altersvorsorgedepots im Vertrag. Die gestaffelte Grundzulage (50 ct/€ bis 360 €, 25 ct/€ bis 1.800 €, max. 540 €) wurde im Endkapital konstant mit dem Startjahreswert aufgezinst. Bei aktivierter Dynamisierung wächst sie jetzt jahrweise mit dem Beitrag — konsistent zum bereits jahrweisen Schatten-ETF-Strom.
- H-03 (hoch) — Riester-Kürzungsfaktor der 4-%-Schwelle. Startet der Beitrag unter der Mindesteigenbeitragsschwelle und steigt per Dynamisierung darüber, laufen die anteiligen Zulagen jahrweise gegen 100 %. Grund- und Kinderzulage werden jetzt je Ansparjahr mit dem Beitrag dieses Jahres gekürzt (Endkapital und Schatten-ETF), nicht konstant mit dem Startjahr-Faktor.
- H-04 (hoch) — Kinderzulage des Altersvorsorgedepots je Kind. Der
beitragsbezogene Deckel galt fälschlich für die Summe aller Kinder
(
min(n × 300, Eigenbeitrag)). Nach dem Altersvorsorgereformgesetz gilt er je Kind: schon 300 €/Jahr Eigenbeitrag genügen für die volle 300-€-Zulage je Kind (n × min(Eigenbeitrag, 300)). Familien mit kleinen Beiträgen wurden bisher um bis zu zwei Drittel unterschätzt. - H-05 (hoch) — Einsteiger-Modus: Beamte und Versorgungswerke. Die bisherige Ja/Nein-Frage zur gesetzlichen Rentenversicherung stellte Beamte und Pflichtmitglieder berufsständischer Versorgungswerke mit vollem Rürup-Höchstbetrag frei — beide verbrauchen den gemeinsamen Höchstbetrag § 10 Abs. 3 EStG jedoch genauso. Die Frage ist jetzt vierteilig (gesetzliche Rente / Versorgungswerk / Beamtin oder Beamter / keine Basisversorgung). Für die ersten drei wird eine Basisvorsorge (≈ 18,6 % des Bruttoentgelts bis zur Beitragsbemessungs- grenze; bei Beamten die fiktive Kürzung nach § 10 Abs. 3 Satz 3 EStG) angesetzt; nur Selbstständige ohne Pflichtvorsorge erhalten den vollen Höchstbetrag. Für Versorgungswerk und Beamte weist ein Hinweis auf den Näherungscharakter und den geringen Rürup-Spielraum hin.
- Regressionstests: A21/A22 (Netto-Skalierung AV/Riester über Günstiger- prüfung), A23 (gestaffelte AV-Grundzulage), A24 (je-Kind-Kinderzulage), A25 (jahrweiser Riester-Kürzungsfaktor); A12 an das je-Kind-Recht angepasst. Selbsttest jetzt 52 Prüfungen.
Versionsschritt nach den Versionierungsregeln: Feature-Release (MAJOR + 1, MINOR = 0) — Umstellung der Berechnungsengine auf gemeinsame Förder-Jahresfunktionen und neue Einsteiger-Statusabfrage; kein Schema-Bump, Datenstruktur unverändert.
Änderungen v2026.5.2 gegenüber v2026.5.1 (Standard-Patch, dritter externer Prüfbericht 19.07.2026)
Behebung von drei Folgebefunden aus v2026.5.1. Alle drei betrafen Laufzeitpfade neben den bereits korrigierten Kernrechnungen. Datenstruktur unverändert; JSON-Sicherungen bleiben kompatibel.
- H-01 (hoch, vollständig behoben) — Startjahr wurde beim Laden auf 2026 zurückgesetzt. Eine Initialisierung beim Seitenaufbau (DOMContentLoaded) überschrieb den 2027-Boden aus v2026.5.1 wieder mit dem laufenden Jahr. Diese Stelle ist jetzt ebenfalls auf frühestens 2027 gesetzt. Zusätzlich bricht die Berechnung nun hart ab (fail-closed), wenn das Altersvorsorgedepot mit einem Beitrag aktiv ist und das Startjahr vor 2027 liegt — ein bloßer Plausibilitätshinweis reicht dafür nicht. Damit erhält das Altersvorsorgedepot kein unzulässiges Förderjahr 2026 mehr.
- H-02 (hoch) — Rürup-Basisvorsorge im Schnellrechner und im Nettovergleich.
Der Schnellrechner fragt jetzt „Zahlen Sie in die gesetzliche Rentenversicherung ein?"
und schätzt bei „Ja" den Rentenversicherungsbeitrag (inkl. Arbeitgeberanteil,
18,6 % bis zur Beitragsbemessungsgrenze) aus dem Einkommen und rechnet ihn auf den
gemeinsamen Höchstbetrag an — Angestellte erhalten so keine überhöhte Rürup-Steuer-
ersparnis mehr. Zusätzlich verwendet die Brutto-Netto-Skalierung im Modus „gleicher
Nettoaufwand" (
_skalierterInputs) jetzt dieselbe marginale Höchstbetrags- formel wie die Hauptrechnung; der skalierte Rürup-Weg hat damit tatsächlich denselben Nettoaufwand wie der Privat-ETF. - H-03 (hoch) — Grundzulage im Schatten-ETF jahrweise. Die Altersvorsorgedepot-Grundzulage wächst gestaffelt mit dem Eigenbeitrag; bei dynamisierten Beiträgen wird sie jetzt in der Günstigerprüfung des Schatten-ETF- Erstattungsstroms Jahr für Jahr aus dem dynamisierten Beitrag neu berechnet, statt den Startjahreswert konstant abzuziehen. Das behebt eine Überhöhung des geförderten Wegs im Schatten-ETF-Modus (im geprüften Fall rund 5.000 €).
- N-01 (niedrig) — Prüfskript. Die Zusatzproben in
qa_toolpruefung/run_audit.cjsrufen jetzt ausschließlich den Produktionspfad auf (Riester-Kinderzulage über_riesterKinderBetrag, Rürup-Beispiel mit gesetzter Basisvorsorge) und weisen ein echtes bestanden/nicht bestanden aus. - Regressionstests: A19 (Rürup-Nettoaufwand-Skalierung mit Basisvorsorge) und A20 (jahrweise AV-Grundzulage im Schatten-ETF-Strom). Selbsttest jetzt 47 Prüfungen.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Korrekturen an Laufzeitpfaden, kein neuer Funktionsumfang, kein Schema-Bump. Weiterhin offen (nachrangig): der optionale versicherungsmathematische Rentenfaktor für Riester/Rürup sowie die Live-Prüfmatrix in echten Browsern.
Änderungen v2026.5.1 gegenüber v2026.5.0 (Standard-Patch, externer Prüfbericht 19.07.2026)
Umgesetzte Befunde einer zweiten adversariellen Toolprüfung. Zwei Korrekturen mit unmittelbarem Bezug zur Kernaussage sowie mehrere Robustheits-, Transparenz- und Zugänglichkeitsverbesserungen. Datenstruktur unverändert; JSON- Sicherungen aus den Vorfassungen lassen sich weiter einlesen.
- H-01 (hoch) — Altersvorsorgedepot frühestens 2027. Das Altersvorsorgedepot kann erst ab dem 01.01.2027 gefördert werden. Der Beginn der Ansparphase (Startjahr) ist jetzt auf frühestens 2027 begrenzt (Voreinstellung und Minimum 2027; der Einsteiger-Modus setzt ebenfalls mindestens 2027). Damit starten alle vier Wege unter gleichen Bedingungen; das Altersvorsorgedepot erhält keine unzulässige Förderung mehr für 2026. Ein über JSON-Import gesetztes früheres Startjahr wird durch einen harten Plausibilitätsfehler (P20) kenntlich gemacht.
- H-02 (hoch) — Einsteiger-Vergleichsbasis. Der Schnellrechner verwendet jetzt die methodisch fairste Basis „gleicher Nettoaufwand" (statt „gleicher Bruttobeitrag", der den Privat-ETF systematisch zu ungünstig erscheinen ließ) und weist die verwendete Methode im Ergebnis ausdrücklich aus.
- H-03 (hoch) — Obergrenzen und Endlichkeits-Guard. Die Geld- eingabefelder (Beiträge, Einkommen, Basisvorsorge) haben nun fachlich vertretbare Höchstwerte, und vor dem Rendern wird geprüft, dass alle Kernergebnisse endlich sind. Extrem große, formal gültige Eingaben führen damit zu einem klaren Fehler- hinweis statt zu einer teils „∞ €", teils „0 €" dargestellten Ausgabe.
- M-01 (mittel) — Basiszins-Feld. Da die Vorabpauschale in dieser Version bewusst nicht gerechnet wird, ist das bislang folgenlose Eingabefeld „Basiszins für die Vorabpauschale" jetzt deaktiviert und ausdrücklich als Informationswert gekennzeichnet.
- M-02 (mittel) — Leibrenten-Kennzeichnung. Der Schnellrechner weist jetzt klar aus, dass Riester und Rürup als kapitalverzehrender Auszahlplan bis zum Endalter gerechnet werden; eine reale lebenslange Versicherer-Leibrente folgt einem Rentenfaktor und biometrischen Rechnungsgrundlagen und kann abweichen. Die 20-/30-Jahres-Werte sind eine Modell-Näherung, kein garantierter Rentenbetrag.
- M-03 (mittel) — Zugänglichkeit. Alle Formular-Eingabe- und Auswahlfelder im Experten-Modus sind jetzt über for/id programmatisch mit ihrer Beschriftung verknüpft (49 Labels).
- M-04 (mittel) — Audit-Skript. Das Prüfskript qa_toolpruefung/run_audit.cjs ermittelt die Zieldatei jetzt versionssicher (Argument oder neueste passende Datei) und verwendet die aktuelle Schnittstelle der Schatten-ETF-Funktion.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Korrekturen und Transparenz-/Zugänglichkeitsverbesserungen ohne neue Funktion, neuen Tab oder Engine-Umstellung, kein Schema-Bump. Noch offen (nachrangig): der optionale, versicherungsmathematische Rentenfaktor für Riester/Rürup sowie die Live-Prüfmatrix in echten Browsern (Touch, Screenreader, Zoom, Druck, mobile Breakpoints), die headless nicht belastbar prüfbar ist.
Änderungen v2026.5.0 gegenüber v2026.4.0 (Feature-Release, externer Prüfbericht 18.07.2026)
Umgesetzte Befunde einer adversariellen Toolprüfung. Drei fachlich erhebliche Rechenkorrekturen, zwei neue optionale Expertenfelder sowie mehrere Robustheits- und Transparenzverbesserungen. Die Datenstruktur bleibt kompatibel; JSON-Sicherungen aus den 2026.3.x/4.0-Fassungen lassen sich unverändert einlesen.
- H-01 (hoch) — Rürup: gemeinsamer Höchstbetrag § 10 Abs. 3 EStG. Der Höchstbetrag (30.826 € ledig / 61.652 € zusammenveranlagt) ist ein gemeinsamer Höchstbetrag für alle Basisvorsorgeaufwendungen. Ein neues optionales Feld „Bereits genutzter Basisvorsorge-Höchstbetrag (Rürup)" nimmt die bereits genutzten Beiträge auf (bei Angestellten die gesetzliche Rentenversicherung inklusive Arbeitgeberanteil). Der abziehbare Rürup-Anteil ist dann min(Basis + Rürup, Höchstbetrag) − min(Basis, Höchstbetrag). Leer/0 = Selbstständige ohne gesetzliche Rentenversicherung → bisheriges Verhalten (voller Höchstbetrag). Zuvor wurde die Rürup-Steuerersparnis für Angestellte zu hoch ausgewiesen.
- H-02 (hoch) — Schatten-ETF am Förderdeckel begrenzt. Die Steuererstattung wird für den Schatten-ETF jetzt jahrweise berechnet und an den gesetzlichen Förder-/Abzugsdeckeln begrenzt (Altersvorsorgedepot 1.800 € + Zulagen, Riester 2.100 €, Rürup gemeinsamer Höchstbetrag). Bisher wurde die Startjahr- Erstattung pauschal mit der Beitragsdynamik fortgeschrieben und wuchs dadurch über den Deckel hinaus — der Schatten-ETF-Modus überbewertete geförderte Wege.
- H-03 (hoch) — Riester-Kinderzulage 185 €/300 € nach Geburtsjahr. Nach § 85 Abs. 1 EStG beträgt die Kinderzulage 185 € je vor 2008 geborenem Kind und 300 € je ab 2008 geborenem Kind. Sie wird jetzt je Kind aus dem erfassten Geburtsjahr bestimmt (volle Zulage, anteilige Kürzung, Mindesteigenbeitrag und Kapitalstrom). Das Altersvorsorgedepot bleibt beim neuen Recht (bis 300 € je Kind, keine Geburtsjahr-Staffel).
- M-01 (mittel) — Elterneigenschaft Pflegeversicherung entkoppelt. Neues Kästchen „Elterneigenschaft (Pflegeversicherung)". Der Kinderlosenzuschlag von 0,6 Prozentpunkten (§ 55 Abs. 3 SGB XI) entfällt bei Eltern dauerhaft, auch wenn alle Kinder erwachsen sind — er wird nicht mehr allein aus der Zahl aktuell zulagen- berechtigter Kinder abgeleitet.
- M-02 (mittel) — Rangfolge-Disclosure. Im Tab Auswertung wird ausgewiesen, dass der Privat-ETF steuerlich vereinfacht gerechnet wird (Vorabpauschale im Modell null; Durchschnitts-Gewinnquote statt jahrgangsweisem FIFO) und die Rangfolge bei engem Barwertabstand (Richtwert unter 5 %) nicht entscheidungsfest ist.
- M-03 (mittel) — Import-Robustheit. JSON-Import prüft jetzt die Dateigröße (max. 2 MB), den obersten Datentyp (Objekt) und die Tool-Kennung im _meta-Block.
- M-05 (mittel) — Navigation auf schmalen Bildschirmen. Der Abstand der klebenden Tab-Leiste folgt jetzt der tatsächlichen Kopfhöhe (ResizeObserver), sodass ein umgebrochener Kopf die Tabs nicht mehr überdeckt.
- M-04 (teilweise) / N-01 — Zugänglichkeit und Parser. Das Sicherheitsprüfung-Panel hat jetzt role="dialog", aria-modal, eine Fokusfalle, Escape-Schließen und Fokus- rückgabe. Der Zahlenparser weist angehängten Text („12abc") als ungültig zurück.
- N-02 — Regressionstests. Neue Selbsttests A15 (Rürup-Höchstbetrag mit Basisvorsorge), A16 (Riester 185/300), A17 (Schatten-ETF-Deckel), A18 (PV-Elterneigenschaft); der zu weite Riester-Förderquoten-Korridor (D4) ist auf den tatsächlichen Wert (~47,5 %) verengt. Selbsttest jetzt 45 Prüfungen.
Noch offen (nachrangig, „vorzugsweise"): die vollständige Formular-Label-Verknüpfung (for) und Tab-Rollen (role="tablist") sowie die Live-Prüfmatrix in echten Browsern (Touch, Bildschirmleser, Druck, mobile Breakpoints) — headless nicht abschließend prüfbar. Versionsschritt nach den Versionierungsregeln: Feature-Release (MAJOR + 1, MINOR = 0) wegen der zwei neuen Eingabefelder und der Engine-Umstellung; kein Schema-Bump.
Änderungen v2026.4.0 gegenüber v2026.3.4 (Feature-Release, Sicherheits-/Transparenzmerkmal)
Neues zentrales Sicherheits-/Transparenzmerkmal — identisch zur Referenzimplementierung der Finanzstruktur Vermögensplanung. Es macht die bereits bestehende Eigenschaft „rein lokale Verarbeitung" sichtbar und sichert sie technisch ab. Drei sauber getrennte Ebenen:
- Netzwerksperre (Ebene c). Eine fest im Dokumentkopf gesetzte, restriktive Content-Security-Policy (default-src 'none'; … connect-src 'none'; base-uri 'none'; form-action 'none') unterbindet fetch, XHR, WebSocket, EventSource und sendBeacon — vom Browser erzwungen. Die Policy ist bewusst eine Netzwerksperre, kein XSS-Schutz: 'unsafe-inline' und data: sind für das Inline-Skript, die Inline-Styles und die eingebetteten Schriften/Bilder dieser Single-File-Anwendung erforderlich.
- Ressourcen-Nachweis (Ebene d). Über die Resource-Timing-API wird gemessen, welche Ressourcen tatsächlich geladen wurden — bei korrekt eingebetteten Inhalten 0 externe Ressourcen. Misst statt zu behaupten.
- Umgebungsstatus (Ebene a). Online/Offline wird ausschließlich als Kontext gezeigt, ausdrücklich gekennzeichnet als „kein Datenfluss-Beleg".
Sichtbare Architektur: Ein neuer, klickbarer Status oben links im Kopf trägt — gekoppelt an die gemessene CSP, nicht an den Online-Status — die Beschriftung „🔒 Lokal · keine autom. Übertragung" (grün) bzw. bei fehlender Sperre „⚠ Lokal · CSP prüfen" (Bernstein). Klick öffnet das Sicherheitsprüfung-Panel (entkoppeltes Modal, nicht an das Admin-Gating gebunden), das die Ebenen a/c/d im Klartext abarbeitet. Ein zweiter, gleichwertiger Einstiegspunkt steht im Tab Administration im Block „Sicherheit".
Sprachregelung: durchgängig „keine automatische Datenübertragung" — die anklickbaren Impressum-/Datenschutz-Links (Navigation) bleiben erlaubt und sind im CSP-Sinn keine „Verbindung".
Neue Selbsttest-Kategorie N: N1 (CSP gesetzt), N2 (connect-src 'none' aktiv), N3 (default-src 'none'), N4 (0 externe Ressourcen via Resource-Timing). Der Online-Status (Ebene a) wird bewusst nicht getestet — umgebungsabhängig.
Härtung „Als HTML sichern": Ein während des Speicherns offenes Sicherheitsprüfung-Panel wird — analog zum Impressum-Panel — vor dem Klonen des Dokuments geschlossen, damit das Overlay nicht in die gespeicherte Datei eingebettet wird (Befund der Toolprüfung Juni 2026, im Release behoben).
Versionsschritt nach den Versionierungsregeln der Finanzstruktur-Programmfamilie: Feature-Release (MAJOR + 1, MINOR = 0) — neue Funktion. Keine Datenstruktur-Änderung, kein Schema-Bump; JSON-Sicherungen aus den 2026.3.x-Fassungen lassen sich unverändert einlesen. Verbindliches Auslieferungs-Gate: vollständiger manueller Klick-Durchlauf mit aktiver CSP (Charts/SVG, „Als HTML sichern", JSON-Im-/Export, externe Links) ohne CSP-Verstöße in der Browser-Konsole.
Änderungen v2026.3.4 gegenüber v2026.3.3 (Standard-Patch, Rechtsstands-Aktualisierung)
Aktualisierung des Rechtsstands und ergänzende Information:
- Verkündung im Bundesgesetzblatt nachgetragen. Das Altersvorsorgereformgesetz wurde am 29.05.2026 im Bundesgesetzblatt verkündet (BGBl. 2026 I Nr. 156, ausgefertigt 26.05.2026); Inkrafttreten der wesentlichen Teile zum 01.01.2027. Die bisherige Angabe „Verkündung im Bundesgesetzblatt steht noch aus" war damit überholt und ist an allen Anzeige- und Druckstellen (Kopfzeile, Tab Start, Tab Administration, Druckreport, Impressum-Datenstand) durch die BGBl-Fundstelle ersetzt. Die Förderparameter und sämtliche Berechnungen bleiben unverändert.
- Neuer Informationsabschnitt „Aktuelle Entwicklung — Stand Juni 2026". Im Tab Start fasst ein neuer Kasten den praktischen Stand zusammen: Gesetz verkündet, Produkte erst ab 2027; noch keine abschlussfähigen Angebote und keine veröffentlichten Rentenfaktoren; Zertifizierung durch das Bundeszentralamt für Steuern; kosten- gedeckeltes Standardprodukt (höchstens 1 % Effektivkosten); vorgesehene Vergleichsplattform; Auszahlbeginn 65 bis 70; Beitragsfreiheit laufender Leistungen in der Krankenversicherung der Rentner (wie bei Riester) bei weiterhin offener SV-Behandlung von Einmal- und Teilkapitalauszahlungen.
- Druckreport-Versionsnummer korrigiert. Deckblatt und Auswertungs-
kopf des Druckreports wiesen noch „v2026.3.0" aus (bei der Einführung der zentralen
Versionskonstante übersehen, Befund T-03). Beide ziehen die Version jetzt aus
TOOL_VERSION.
Versionsschritt nach den Versionierungsregeln der Finanzstruktur-Programmfamilie: Standard-Patch (MINOR + 1), redaktionelle Rechtsstands-Aktualisierung ohne Eingriff in Datenstruktur oder Berechnungslogik. JSON-Sicherungen aus v2026.3.0 bis v2026.3.3 lassen sich unverändert einlesen.
Änderungen v2026.3.3 gegenüber v2026.3.2 (Standard-Patch, externer Prüfbericht und Lizenzhygiene)
Korrekturen und fachliche Präzisierungen:
- T-01 (Härtung) — Zahlenparser gegen Infinity.
_parseNumgab überparseFloatbisher Eingaben wie „Infinity" und „-Infinity" unbemerkt durch. Bei den sechs numerischen Eingabefeldern ohnemax-Attribut (zu versteuerndes Einkommen, Bruttoentgelt-Vorjahr, die vier Monatsbeiträge) hätte ein präparierter JSON-Import oder ein Paste so unendliche Werte in die Berechnung einspeisen können —_clampToBoundshätte ohnemaxnicht gegriffen. Jetzt defensiv als NaN abgefangen; der Bedienpfad fällt auf den letzten gültigen Wert zurück. - T-02 (Roundtrip) — Vergleichsbasis im JSON-Export.
Die Vergleichsbasis ist eine Radio-Gruppe und war nicht in der
ID-basierten Export-Logik enthalten; die zuletzt gewählte Basis ging
beim JSON-Roundtrip verloren und fiel auf den HTML-Default
„gleicher Bruttobeitrag" zurück. Wird jetzt separat als
_vgl_basisexportiert und importiert (Whitelist-geprüft, analog zur Schema-Härtung B-20). - T-03 (Hygiene) — Zentrale Versionskonstante.
Die Versionsnummer war an mehreren Stellen redundant gepflegt
(Header-Kommentar, DOM-Anzeige, JSON-Meta) — der JSON-Meta-Wert hing
bisher zwei Stufen hinterher. Eingeführt ist jetzt eine zentrale
Konstante
TOOL_VERSION; die DOM-Anzeige im Tab Administration und die_meta.versionim JSON-Export ziehen die Versionsnummer von dort. - U-01 + R-01 — Tooltip-Klarstellungen Auszahlphase. Der Tooltip zur Auszahlform des Altersvorsorgedepots stellt nun ausdrücklich klar, dass „Lebenslange Rente" und „Auszahlplan" beide als annuitätische Auszahlung bis zum eingestellten Auszahlendalter modelliert werden — eine reale Versicherer-Leibrente nutzt biometrische Tafeln und Rentenfaktoren und kann abweichen. Beim Auszahlmodus „30 % vorab, Rest als Rente" weist der Tooltip jetzt außerdem auf die lineare Interpolation des Grenzsteuersatzes auf den Einmalbetrag im Korridor 20.000 bis 40.000 € hin (Befund B-21). Der Riester-Tooltip ist parallel präzisiert.
- Erweiterter Selbsttest: B11 prüft zusätzlich, dass „Infinity" und „-Infinity" als ungültig zurückgewiesen werden.
- Lizenzhygiene OFL-1.1. Der Drittkomponenten-Eintrag im Impressum nennt jetzt für jede eingebettete Schrift den Copyright- Inhaber (DM Sans: © Google Fonts; JetBrains Mono: © JetBrains s.r.o.) sowie den vollständigen Link auf den Lizenztext der SIL Open Font License 1.1 (scripts.sil.org/OFL). Damit sind die beiden harten Pflichten der OFL — Copyright-Hinweis und Lizenzverweis — bei der Weitergabe der HTML-Datei vollständig erfüllt; das Einbetten einer Schrift in eine ausgelieferte Single-File-HTML zählt als Weitergabe der Fontsoftware im Sinne der OFL. Auch der Fallback auf System-Schriftarten ist im Impressum-Text ergänzt. Berechnungslogik unberührt.
Versionsschritt nach den Versionierungsregeln der Finanzstruktur- Programmfamilie: Standard-Patch (MINOR + 1), keine Datenstruktur-Änderung, kein Schema-Bump. JSON-Sicherungen aus v2026.3.0 bis v2026.3.2 lassen sich unverändert einlesen; ältere Sicherungen verlieren lediglich die Vergleichsbasis (T-02 wirkt nur in Vorwärtsrichtung), der Importpfad fällt dafür sauber auf den DOM-Default zurück.
Editorische Pflege Juni 2026 (keine Versionsanhebung)
Impressum/Datenschutz redaktionell aktualisiert (Stand: Juni 2026). Editorische Pflege ohne Auswirkung auf Berechnungslogik, Rechenkerne oder fachliche Aussagen. Versionsstand bleibt unverändert v2026.3.3.
- Datenschutz-Block gekürzt. Der bisher im Impressum ausführlich abgebildete Datenschutz-Block (PayPal- und SEPA-Verarbeitung, Aufbewahrungsfristen nach § 147 Abgabenordnung und § 257 Handelsgesetzbuch, Rechtsgrundlagen) ist auf eine Kurzfassung mit Verweis auf die Datenschutzerklärung unter www.privatbilanz.de/datenschutz.html reduziert. Die ausführlichen Angaben werden zentral auf der Webseite gepflegt; das vermeidet inhaltliche Divergenzen zwischen Tool und Webseiten-Datenschutzerklärung.
- Verantwortlicher nach Artikel 4 Nummer 7 Datenschutz-Grundverordnung explizit benannt. Ergänzt um den Klarstellungssatz, dass Andreas Ebert (Anschrift wie oben) Verantwortlicher ist.
- Antwortzeit-Zusage für E-Mail ergänzt. Unmittelbar nach der Kontaktangabe wird zugesichert, dass Anfragen in der Regel innerhalb von zwei Werktagen beantwortet werden. Damit ist § 5 Absatz 1 Nummer 2 Digitale-Dienste-Gesetz (unmittelbare und schnelle Kommunikation) erfüllt, ohne dass eine Telefonnummer offengelegt werden muss.
Stabilitätsregeln beibehalten: § 5 Digitale-Dienste-Gesetz (nicht ersetzt durch das seit 14.05.2024 außer Kraft getretene Telemediengesetz), § 18 Absatz 2 Medienstaatsvertrag, kein Hinweis auf die zum 20.07.2025 abgeschaltete Online-Streitbeilegungs-Plattform (Verordnung (EU) 2024/3228), keine Klausel nach § 36 Verbraucherstreitbeilegungsgesetz (mangels unternehmerischer Tätigkeit nach § 14 Bürgerliches Gesetzbuch), Verweis auf § 521 Bürgerliches Gesetzbuch im Haftungsausschluss unverändert.
Änderungen v2026.3.2 gegenüber v2026.3.1 (Standard-Patch, externer Prüfbericht)
Korrekturen und fachliche Präzisierungen:
- F-NEU-01 (Bugfix) — Parser-Symmetrie bei mehreren Punkten.
_parseNumentfernte bei mehreren Punkten ohne Komma bisher alle Punkte unbedingt; die Eingabe „1.23.45" wurde stillschweigend zu 12345 umgedeutet. Das spiegelte den 2026.3.1-Fix B-NEU-02 für mehrere Kommas nicht symmetrisch wider. Jetzt wird die Eingabe nur akzeptiert, wenn das deutsche 3er-Gruppen-Muster (1.000,1.000.000, …) sauber erfüllt ist; sonst wird sie wie ein US-Tausenderkomma als ungültig zurückgewiesen und fällt im Bedienpfad defensiv auf den letzten gültigen Wert zurück. - F-NEU-02 (Hinweistext) — Riester im Modus „gleicher Nettoaufwand".
Die Brutto-Netto-Skalierung deckelt den Riester-Beitrag auf 175 €/Monat
(§ 10a Einkommensteuergesetz, 2.100 €/Jahr inklusive Zulagenanspruch).
Wäre für ein dem Privat-ETF entsprechendes Netto ein höherer Brutto-
Beitrag erforderlich, fand der Vergleich bisher stillschweigend am
Höchstbeitrag statt — der Modus wirkte für Riester unsichtbar wirkungslos.
Im Hinweistext der Riester-Spalte erscheint jetzt der erforderliche
ungedeckelte Brutto-Beitrag und der Verweis auf den gesetzlichen
Höchstbetrag. Die Modell-Konvention selbst bleibt unverändert
(kein ungeförderter Riester-Topf — vgl. Block-Kommentar in
_skalierterInputs). - P-NEU-02 (Plausibilitätsprüfung) — Negative Netto-Anspar-Rendite. Liegt für mindestens einen Weg mit Beitrag größer null die Rendite vor Kosten in der Ansparphase unter den Produktkosten, fällt das Endkapital mathematisch korrekt unter die Summe der Beiträge. Das ist eine ungewöhnliche, aber zulässige Konstellation und wird jetzt als Plausibilitätshinweis P19 sichtbar gemacht — damit der Nutzer nicht ein Eingabeversehen oder einen Berechnungsfehler vermutet.
- Erweiterter Selbsttest: B11 prüft zusätzlich die Symmetrie bei mehreren Punkten (Fälle „1.23.45" und „1.2.3.4" werden jetzt als ungültig zurückgewiesen).
Versionsschritt nach den Versionierungsregeln der Finanzstruktur- Programmfamilie: Standard-Patch (MINOR + 1), keine Datenstruktur-Änderung, kein Schema-Bump. JSON-Sicherungen aus v2026.3.0 und v2026.3.1 lassen sich unverändert einlesen.
Änderungen v2026.3.1 gegenüber v2026.3.0 (Standard-Patch, zwei externe Prüfberichte)
Korrekturen und fachliche Präzisierungen:
- B-NEU-03 (Bugfix) — Inkonsistenz zwischen Cashflow-Engine und
Kennzahlen-Engine beim Privat-ETF. Die Hilfsfunktion
_nettoRenditenzog beim Privat-ETF zusätzlich einen pauschalen Vorabpauschalen-Renditeabzug ab, obwohlcalcETFdiesen Abzug nach Befund B-05 (Mai 2026) auf null gesetzt hat — die Anrechnung der bereits gezahlten Vorabpauschalen-Steuer auf die Schlusssteuer nach § 19 Absatz 1 Investmentsteuergesetz ist ohne jahresweise Buchführung nicht sauber abbildbar; die schlanke Lösung ist konsequent der Verzicht auf den Anspar-Abzug in beiden Engines. Folge des bisherigen Ungleichlaufs: das im Tab Zahlungsströme ausgewiesene Anspar-Endkapital lag beim Privat-ETF rund 6,6 Prozent unter dem in den Kennzahlen-Karten ausgewiesenen Wert (bei Standardparametern 212.810 € statt 227.902 €), und das Auszahl- Restkapital lief in den Modi „annuitaet" und „linear" vor dem eingestellten Auszahlende auf null. Korrektur:_nettoRenditenfolgt jetzt für alle vier Wege der gleichen Konvention (Rendite vor Kosten − Produktkosten). Validiert über die Cashflow-Identitätbrutto = steuer + kvpv + nettosowie den Abgleich Cashflow-Endkapital = Engine-Endkapital. - B-NEU-02 (Bugfix) — Parser für deutsche Zahlenformate. Mehrere Kommas ohne Punkt (etwa „1,234,567" aus US-Quellen) wurden bisher still als „1.234" verstanden: der Ersatz „erstes Komma → Punkt" griff nur einmal, parseFloat brach am zweiten Komma ab. Die Eingabe wird jetzt als ungültig zurückgewiesen; im Bedienpfad fällt num() defensiv auf den letzten gültigen Wert zurück, numStrict() greift auf den vorgesehenen Default. Sichtbar für Anwender bei Paste aus US-Excel, US-CSV oder ähnlichen Quellen.
- B-NEU-01 (Härtung) — Ertragsanteilstabelle § 22 EStG. Die Tabelle endete bisher bei 75 Jahren und gab für höhere Eintrittsalter pauschal 11 % zurück. Im Tool ist das Eingabefeld auf max="75" begrenzt und num() clamped zusätzlich; der Pfad ist unter normaler Bedienung nicht erreichbar. Die Tabelle wurde dennoch entsprechend § 22 Nummer 1 Satz 3 Buchstabe a Doppelbuchstabe bb Einkommensteuergesetz bis Alter 97 (0 %) fortgeschrieben, damit ein versehentliches Heraufsetzen der DOM-Grenze (etwa für Rürup-Hinausschiebungsoptionen) nicht mehr zu einem stillschweigend falschen Ertragsanteil führt.
- P-NEU-01 (Plausibilitätsprüfung) — Geburtsjahr in der
Zukunft. Ein Geburtsjahr nach dem Startjahr der Ansparphase
wird jetzt als harter Fehler ausgewiesen (P18). Bisher fing P1 das
Folgeproblem nur, wenn dadurch zusätzlich
alter_eintritt ≤ alter_jetztverletzt wurde; im Standardfall (Renteneintritt 67) blieb die Eingabe sonst unauffällig, obwohl ein negatives Alter zu Beitragsbeginn inhaltlich absurd ist. - F-NEU-01 — Klarstellung Rürup-Auszahlung. Der Hinweis- text und das Auszahl-Label zur Rürup-Rente weisen jetzt ausdrücklich darauf hin, dass die Auszahlung modellseitig als kapitalverzehrende Annuität bis zum eingestellten Auszahlendalter gerechnet wird (gleiche Konvention wie der Auszahlplan des Altersvorsorgedepots, damit beide Wege unter identischen Lebenserwartungsannahmen vergleichbar sind). Eine reale Versicherer-Leibrente nutzt biometrische Tafeln und Rentenfaktoren und fällt typischerweise niedriger aus.
- F-NEU-02 — Symmetrie der Höchstbetrags-Hinweise bei Riester. Bei Rürup wird ein die Höchstbeträge nach § 10 Absatz 3 EStG übersteigender Beitrag ausdrücklich als „steuerlich nicht abzugsfähig" ausgewiesen. Bei Riester war das Gegenstück implizit (die Min-Funktion in der Sonderausgaben- Berechnung deckelte sauber, machte das aber nicht sichtbar). Der Hinweis- text weist jetzt analog auf den Höchstbetrag § 10a EStG hin (2.100 €/Jahr inklusive Zulagenanspruch).
- Neue Selbsttests: A14 (Ertragsanteil-Fortsetzung über Alter 75 hinaus, vier Stützstellen aus der amtlichen Tabelle), B11 (_parseNum erkennt US-Tausenderkomma als ungültig und liefert NaN).
Versionsschritt nach den Versionierungsregeln der Finanzstruktur- Programmfamilie: Standard-Patch (MINOR + 1), keine Datenstruktur-Änderung, kein Schema-Bump. JSON-Sicherungen aus v2026.3.0 lassen sich unverändert einlesen.
Änderungen v2026.3.0 gegenüber v2026.2.1 (Funktionserweiterung Mai 2026)
Neue Funktionen und fachliche Verfeinerungen:
- N-01 — Förderdauer der Kinderzulage. Die Kinderzulage wird nicht mehr pauschal über die gesamte Ansparphase angesetzt, sondern nur in den Jahren, in denen für das jeweilige Kind ein Kindergeldanspruch besteht. Je Kind werden Geburtsjahr und Förderdauer erfasst: bis 18 (Regelfall), bis 25 (Ausbildung/Studium), unbefristet (behindertes Kind) oder ein eigenes Endjahr. Rechtsgrundlage: Anknüpfung an das Kindergeld (bisher § 85 Einkommensteuergesetz; im Altersvorsorgereformgesetz fortgeführt). Zusätzlich begrenzt eine Beitragsdeckung die Kinderzulage auf die förderfähigen Eigenbeiträge (100 % der Beiträge, höchstens 1.800 €). Wirkung: Bei langem Anlagehorizont fällt die zuvor systematische Überzeichnung des geförderten Topfes (Altersvorsorgedepot und Riester) weg.
- N-02 — Kranken-/Pflegeversicherung des Altersvorsorgedepots. Bei Pflichtversicherung in der Krankenversicherung der Rentner wird die Auszahlung aus dem Altersvorsorgedepot analog zur Riester-Rente beitragsfrei behandelt (private Altersvorsorge, kein Versorgungsbezug nach § 229 Sozialgesetzbuch Fünftes Buch) — konsistent zur Basisrente. Vorbehalt: Die Sozialversicherungsträger haben sich dazu noch nicht abschließend geäußert; die Erläuterung im Eingabefeld weist darauf hin.
- N-03 — Startjahr der Berechnung. Das Startjahr der Ansparphase ist nun ein Eingabefeld (Voreinstellung: laufendes Jahr) statt fest des Systemjahres. Es bestimmt Alter zu Beginn, Zahl der Ansparjahre und — über die Zuordnung Ansparjahr → Kalenderjahr — die Förderdauer der Kinderzulage.
- Plausibilitätsprüfung P11 prüft jetzt je Kind, ob im Ansparzeitraum (noch) ein Kindergeldanspruch besteht, und weist auf fehlende Geburtsjahre hin. Neue Selbsttests A10–A12 sichern die Förderdauer- und Beitragsdeckungslogik ab.
- N-01b (Bugfix, gleiche Version). In der jahresweisen Cashflow-Darstellung wurde die Kinderzulage zuvor als konstanter Jahreswert über die gesamte Ansparphase fortgeschrieben — trotz gesetzten Förderendes. Behoben: Der Cashflow verwendet nun denselben jahresweisen Zulagenstrom wie die Endkapital-Berechnung; die Kinderzulage endet im Cashflow mit dem Kindergeldanspruch, und das in der Ansparphase aufgebaute Kapital stimmt mit dem ausgewiesenen Endkapital überein. Die Jahreslabels des Cashflows folgen jetzt dem Startjahr.
- B-02c (Bugfix, gleiche Version). Die Vergleichsbasis (gleicher Bruttobeitrag / gleicher Nettoaufwand / Schatten-ETF) wirkt sich auf die geförderten Wege nur aus, soweit eine Steuerersparnis modelliert wird. Ohne zu versteuerndes Einkommen — und bei der Netto-Basis zusätzlich ohne Grenzsteuersatz im Erwerbsleben — liefern alle drei Basen für Altersvorsorgedepot und Riester praktisch dasselbe Ergebnis (rechnerisch korrekt). Bisher fehlte dazu jede Rückmeldung, was wie ein Fehler wirkte. Der Hinweis unter den Optionen weist jetzt ausdrücklich auf diese Konstellationen hin.
- N-04 (Auszahlphase, gleiche Version). Neue eigenständige Auswertung „Altersvorsorgedepot: Auszahlung mit oder ohne Absicherung" im Abschnitt zur Auszahlung. Sie stellt die lebenslange Leibrente (berechnet über einen einstellbaren Rentenfaktor, Vorgabe 27 € je 10.000 € Kapital) dem zeitlich begrenzten Auszahlplan gegenüber und weist das Break-even-Alter aus, ab dem sich die Langlebigkeitsabsicherung kumuliert lohnt. Bewusst getrennt vom Vier-Wege-Vergleich; alle Beträge brutto. Ein Hinweis nennt weitere, gesetzlich mögliche Auszahlvarianten; das Programm wird erweitert, sobald belastbare Marktangebote vorliegen.
Änderungen v2026.2.1 gegenüber v2026.1.4 (Prüfung Mai 2026, Patch Mai 2026)
Kritische und hochrelevante Korrekturen:
- B-01 Sozialversicherungsbeiträge in der Auszahlphase auf den Stand 2026 aktualisiert. KVdR jetzt 8,70 % (halber KV 3,65 % + halber durchschnittlicher Zusatzbeitrag 1,45 % + voller Pflege- versicherungs-Beitrag 3,60 % nach § 55 Absatz 1 Sozialgesetzbuch Elftes Buch). Freiwillig gesetzlich Versicherte 21,10 %. Kinderlose KVdR 9,30 %.
- B-02 Drei wählbare Vergleichsbasen — gleicher Bruttobeitrag, gleicher Nettoaufwand (Skalierung der Beiträge bis zum Förderhöchstbetrag), Schatten-ETF für die Steuererstattung der geförderten Wege.
- B-03 Eingabevalidierung mit Fallback auf den letzten gültigen Wert; harter Ausstieg in recalcAll bei unplausiblen Phasen.
- B-04 ETF-Restkapital-Steuer wird konsistent zur Tranchen-Steuer berechnet (Doppelverrechnung des Einzahlungsbetrags beseitigt).
- B-05 Vorabpauschale: Doppelverrechnung durch Entfernung des Renditeabzugs aufgehoben (jahresweise Buchführung im Modell nicht abbildbar; Effekt im niedrigen einstelligen Prozentbereich dokumentiert).
- B-06 Tariffunktion § 32a Einkommensteuergesetz ersetzt die lineare Multiplikation von Sonderausgabenabzug mit dem Grenzsteuersatz — wirkt sich insbesondere bei Rürup ergebnisrelevant aus.
- B-07 Riester-4-Prozent-Schwelle: pauschaler Aufschlag 1,30 · zvE als Schätzung des Bruttoentgelts, Plausibilitätshinweis P17.
- B-08 Rentenbarwert monatlich vorschüssig statt jährlich nachschüssig.
Mittlere Schweregrade:
- B-09 Hinweistext zum konstanten Grenzsteuersatz in der Auswertung.
- B-10 Einmal- und Teilkapitalauszahlungen über 30.000 € werden mit dem Spitzensteuersatz (42 %) belegt, wenn dieser höher liegt als der eingestellte grenzsatz_rente.
- B-11 Debouncing aller Eingabe-Listener (200 ms); egRentenLauf rechnet ohne recalcAll-Umweg.
- B-12 importJson setzt das Disabled-Attribut der Override- Felder auf die korrekten Feld-Identifikatoren.
- B-13 Spalte „Kaufkraft heute" in der Rangfolge der Auswertung — macht den Inflationseffekt über Anspar- und Auszahlphase sichtbar.
- B-14 KV-Beitrag auf ETF-Erträge bei freiwilliger GKV (Beitragsverfahrensgrundsätze Selbstzahler).
- B-15 KV-/PV-Beitrag auf AV-Depot-Einmalauszahlung wird entsprechend § 229 Absatz 1 Satz 3 Sozialgesetzbuch Fünftes Buch auf 120 Monate verteilt (Barwertfaktor).
Niedrige Schweregrade:
- B-16 speichernAlsHTML arbeitet jetzt auf einem Klon; das Live-DOM wird nicht mehr mit veralteten Attributen aufgebläht.
- B-17 Leere Override-Felder fallen auf den jeweiligen Globalwert zurück.
- B-18 Tooltip-Hover-Brücke: Tooltip schließt sich nicht mehr, wenn die Maus auf den Tooltip-Text wechselt.
- B-19 Stepper-Pfeile auch auf Safari ausgeblendet (Webkit-Pseudoelemente).
- B-20 Edge Case jahre_auszahl = 0 implizit durch B-03 abgedeckt.
- B-21 Deutsches Zahlenformat „1.234,56" wird in Eingabefeldern akzeptiert.
- B-22 Chart-Fallback überlagert das Canvas, statt es zu überschreiben.
Erweiterung des Selbsttests: Kategorie D mit acht Tests gegen externe Referenzwerte (Sparplan-Endwert, Rürup-Steuerersparnis, Riester-Förderquote, Barwertkonventionen, Realwertberechnung, Sozialversicherungsbeitrag KVdR, Konsistenz der ETF-Restkapital-Steuer).
Nachtrag Quellenkorrektur (Mai 2026):
- Q-01 Fehlzitat „Bundesfinanzhof, Urteil vom 06.12.2017, Aktenzeichen VIII R 18/14" durchgängig ersetzt. Das Aktenzeichen VIII R 18/14 betraf ein anderes Verfahren (Werbungskostenabzug bei Abgeltungsteuer) und führte nicht zu einem Sachurteil; das Datum 06.12.2017 gehört zu einem BMF-Schreiben, nicht zu einer Gerichtsentscheidung. Korrekte Belegstelle für die Aussage „keine Fünftelregelung bei Teilkapitalauszahlung": vergleiche unten Q-04 (richtige BMF-Stelle) und Q-05 (Fortentwicklung der höchstrichterlichen Rechtsprechung).
- Q-02 Fehlzitat „§ 18a Investmentsteuergesetz" in der Quellentabelle korrigiert auf § 18 Investmentsteuergesetz (Vorabpauschale). Zugleich saubere Trennung zwischen Einkommensteuergesetz (Sparer-Pausch- betrag § 20 Absatz 9, Abgeltungsteuer § 32d) und Investmentsteuergesetz (Vorabpauschale § 18, Basiszins § 18 Absatz 4) wiederhergestellt.
- Q-03 Verweis auf das Urteil des Bundessozialgerichts vom 23.07.2014, Aktenzeichen B 12 KR 26/12 R (Befund B-22, Quellcode-Kommentar im Rürup-Berechnungsblock) entfernt. Das Urteil betraf privat fortgeführte Pensionskassen aus betrieblicher Altersversorgung, nicht private Basis- oder Riester-Renten. Die Beitragsfreiheit privater Basisrenten in der Kranken- versicherung der Rentner ergibt sich bereits unmittelbar aus dem abschließenden Charakter der Aufzählung in § 229 Sozialgesetzbuch Fünftes Buch; einer sondergerichtlichen Klarstellung bedarf es insoweit nicht.
Nachtrag Quellenkorrektur (v2026.2.1):
- Q-04 Falsches BMF-Schreiben durchgängig ersetzt. Bisher zitiert: „BMF-Schreiben vom 06.12.2017, Bundessteuerblatt I 2018 Seite 147, Randziffer 147". Dieses Schreiben (IV C 5 – S 2333/17/10002) betrifft die lohnsteuerliche Behandlung von Zusagen auf Leistungen der betrieblichen Altersversorgung und nicht die hier maßgebliche private Altersvorsorge (Altersvorsorgedepot, Riester, Rürup). Einschlägig ist das Anwendungsschreiben zur steuerlichen Förderung der privaten Altersvorsorge: BMF-Schreiben vom 05.10.2023, Bundessteuerblatt I 2023 Seite 1726, Randziffer 128 (Aktenzeichen IV C 3 – S 2015/22/10001:001) — dieses Schreiben ersetzt das frühere Anwendungsschreiben vom 21.12.2017, Bundessteuerblatt I 2018 Seite 93.
- Q-05 Rechtsprechungsfortentwicklung ergänzt. Das bisher zitierte Senatsurteil Bundesfinanzhof vom 20.09.2016, X R 23/15 (Bundessteuerblatt II 2017 Seite 347) wurde durch die Senatsurteile vom 11.06.2019, X R 7/18 (Bundessteuerblatt II 2019 Seite 583), vom 06.05.2020, X R 24/19 (Bundessteuerblatt II 2021 Seite 141), und durch das Senatsurteil vom 30.10.2025, X R 25/23 in einem zentralen Punkt fortentwickelt: Nicht mehr das vertraglich von Anfang an eingeräumte Kapitalwahlrecht ist entscheidendes Tatbestandsmerkmal, sondern die tatsächliche Atypik — also die statistische Häufigkeit, mit der das Kapitalwahlrecht ausgeübt wird. Im Ergebnis bleibt die Aussage „keine Fünftelregelung bei Teilkapitalauszahlung" tragfähig, weil die Statistik eine häufige Ausübung belegt. Die Begründungslinie hat sich aber verschoben; sämtliche Zitatstellen wurden entsprechend ergänzt.
- Q-06 Beitragssatz zur sozialen Pflegeversicherung in der Auszahlphase auf den Stand 2026 aktualisiert: 3,60 Prozent (Eltern, ein Kind) statt bisher 3,40 Prozent. Der Beitragssatz wurde durch Rechtsverordnung vom 20.12.2024 (Bundesgesetzblatt 2024 I Nummer 446) zum 01.01.2025 von 3,40 auf 3,60 Prozent angehoben und bleibt zum 01.01.2026 unverändert. Zugleich Anpassung des durchschnittlichen Zusatzbeitragssatzes zur Krankenversicherung auf 2,90 Prozent (2026). KVdR-Eigenanteil damit 8,70 Prozent (Eltern) bzw. 9,30 Prozent (Kinderlose); freiwillig gesetzlich Versicherte 21,10 Prozent.
- Q-07 Falsche Normangabe im Kommentar korrigiert. Für die Beitragshöhe zur sozialen Pflegeversicherung war bisher „§ 59 Absatz 1 Sozialgesetzbuch Elftes Buch" zitiert. § 59 Sozialgesetzbuch Elftes Buch regelt jedoch die Beitragstragung (wer zahlt), nicht die Beitragshöhe; diese steht in § 55 Absatz 1 Sozialgesetzbuch Elftes Buch. Norm in allen Tooltips und Quellcode-Kommentaren ersetzt.
- Q-08 § 229 Absatz 1 Satz 3 Sozialgesetzbuch Fünftes Buch (Verteilung einer einmaligen Kapitalleistung auf 120 Monate) im Quellcode- Kommentar zur Einmalauszahlung aus dem Altersvorsorgedepot stärker als Modellannahme gekennzeichnet. § 229 Sozialgesetzbuch Fünftes Buch erfasst dem Wortlaut nach nur Versorgungsbezüge (Betriebsrenten, Pensionen, Direktversicherungen, Pensionskassen, berufsständische Versorgungs- einrichtungen); das Altersvorsorgedepot ist ein privates Produkt. Eine gesetzliche oder höchstrichterliche Festlegung zur sozialversicherungs- rechtlichen Behandlung von Einmalauszahlungen aus dem Altersvorsorgedepot steht aus.
Nachtrag Rechtsstand 2026 (v2026.2.1):
- R-01 Einkommensteuertarif § 32a Einkommensteuergesetz auf
den amtlichen Stand für den Veranlagungszeitraum 2026 umgestellt. Die
Konstante
STEUER_TARIF_2026enthielt bisher die Eckwerte und Polynomkoeffizienten des Veranlagungszeitraums 2025. Mit dem Steuerfortentwicklungsgesetz vom 23.12.2024 (Bundesgesetzblatt 2024 I Nummer 449, in Kraft ab 01.01.2026) wurden zur Kompensation der kalten Progression der Grundfreibetrag auf 12.348 Euro (statt 12.096 Euro), das Ende der ersten Progressionszone auf 17.799 Euro (statt 17.443 Euro) und das Ende der zweiten Progressionszone auf 69.878 Euro (statt 68.480 Euro) angehoben. Auch die Polynomkoeffizienten beider Progressionszonen und die linearen Konstanten der Zonen drei und vier wurden gesetzlich neu gefasst. Sämtliche Werte inSTEUER_TARIF_2026entsprechen jetzt der gesetzlichen Fassung des § 32a Absatz 1 Einkommensteuergesetz für 2026 (vgl. Bundesfinanzministerium, Lohnsteuerhandbuch 2026). Die Stetigkeit an den Zonengrenzen folgt unmittelbar aus dem Gesetz; eine eigene Glättungsableitung der Zone-2-Konstante ist nicht mehr erforderlich. Die Korrektur wirkt sich übersteuerersparnisAusAbzugauf alle drei geförderten Wege aus; bei Rürup mit hohen Sonderausgabenabzügen ist die ausgewiesene Steuerersparnis am stärksten betroffen. - R-02 Rürup-Höchstbetrag § 10 Absatz 3 Einkommensteuergesetz
auf den amtlichen Wert 2026 umgestellt. Der bisherige Modellwert „29.500 Euro
(Ledige) / 59.000 Euro (Verheiratete) – Schätzung" wurde durch den
gesetzlich abgeleiteten Wert 30.826 Euro (Ledige) bzw. 61.652 Euro
(Zusammenveranlagung) ersetzt. Grundlage ist die Beitragsbemessungsgrenze
der knappschaftlichen Rentenversicherung West, die durch die
Sozialversicherungs-Rechengrößenverordnung 2026 (Bundesgesetzblatt 2025 I,
verkündet am 26.11.2025) auf 10.400 Euro/Monat (124.800 Euro/Jahr)
festgesetzt wurde. § 10 Absatz 3 Satz 1 Einkommensteuergesetz multipliziert
diesen Wert mit dem Beitragssatz der knappschaftlichen Rentenversicherung
(24,7 Prozent) und rundet das Ergebnis auf den vollen Euro auf:
124.800 Euro × 0,247 = 30.825,60 Euro, aufgerundet 30.826 Euro. Zugleich
wurde der bislang an sechs Stellen hartkodierte Betrag in eine zentrale
Konstante
RUERUP_HOECHSTBETRAG_2026überführt, damit künftige jährliche Anpassungen an einer einzigen Stelle gepflegt werden können. Selbsttest A7 (Rürup-Höchstbetrag) und Selbsttest D3 (Rürup-Steuerersparnis nach § 32a Einkommensteuergesetz) wurden entsprechend nachgezogen. - R-03 Voreinstellung „Basiszins für die Vorabpauschale" auf den amtlichen Wert für das Steuerjahr 2026 angehoben. Die bisherige Voreinstellung von 2,0 Prozent entsprach in etwa dem Niveau der Jahre 2023 und 2024. Das Bundesministerium der Finanzen hat den Basiszins zum 2. Januar 2026 mit Schreiben vom 13.01.2026 (IV C 1 – S 1980/00230/012/001) auf 3,20 Prozent festgesetzt. Maßgebliche Norm ist § 18 Absatz 4 Investmentsteuergesetz. Die Vorabpauschale für 2026 gilt nach § 18 Absatz 3 Investmentsteuergesetz beim Anleger als am ersten Werktag des Folgejahres – also am 04.01.2027 – zugeflossen. Das Eingabefeld kann weiterhin manuell angepasst werden, wenn ein abweichender Wert modelliert werden soll.
Nachtrag methodische Korrekturen (v2026.2.1):
- R-04 Eingabe-Synchronisation bei leeren Feldern. Die
Funktion
_clampFieldOnChangehatte bei einer leeren Eingabe (Parse-ErgebnisNaN) den Frühaustieg ohne UI-Korrektur gewählt. Die Berechnung lief intern mit dem letzten gültigen Wert ausLAST_VALIDweiter, das Eingabefeld blieb jedoch leer — der Nutzer sah keinen Wert, das Werkzeug rechnete mit einem ihm nicht sichtbaren Vorgängerwert. Die Korrektur stellt das leere Feld auf den tatsächlich verwendetenLAST_VALID-Wert zurück, sodass Anzeige und Berechnung wieder zwingend übereinstimmen. - R-05 Skalierungsdeckel im Modus „Gleicher Nettoaufwand"
für das Altersvorsorgedepot.
_skalierterInputsdeckelte den hochskalierten Bruttobeitrag bisher auf den geförderten Topf (1.800 Euro/Jahr = 150 Euro/Monat). Damit wurde der nach dem Altersvorsorgereformgesetz mit zusätzlich bis zu 5.040 Euro/Jahr zulässige ungeförderte Topf am Vergleichseingang abgeschnitten, obwohlendwertSparplanGedeckeltdie Topf-Trennung im Berechnungskern korrekt vornimmt (Beiträge über 1.800 Euro fließen automatisch in den ungeförderten Topf und werden in der Auszahlphase nur mit dem Ertragsanteil nach § 22 Nummer 5 Einkommensteuergesetz besteuert). Der Deckel wurde auf den gesetzlichen Gesamtdeckel 6.840 Euro/Jahr (570 Euro/Monat) angehoben. Bei Riester bleibt der Deckel bei 2.100 Euro/Jahr, weilcalcRiesterkeine Topf-Trennung modelliert und eine Anhebung den Bruttomehrbetrag fälschlich als geförderten Beitrag interpretieren würde; bei Rürup bleibt es beim amtlichen Höchstbetrag. Der Plausibilitätshinweis im UI wurde entsprechend angepasst. - R-06 Steueranzeige in der Tabelle „Zahlungsströme" bei
Einmalauszahlung aus dem Altersvorsorgedepot. In
calcAVwird die KV-/PV-Beitragslast aus der Einmalauszahlung gemäß § 229 Absatz 1 Satz 3 Sozialgesetzbuch Fünftes Buch (Verteilung auf 120 Monate) als Barwert dieser über zehn Jahre verteilten Last angesetzt; der Faktor ergibt sich aus_verteilungsBarwertfaktor(10, diskont)und liegt bei einem Diskont von 2 Prozent bei rund 0,898. Der Nettobetrageinmal_nettoenthält damit den abgezinsten KV-Anteil. Im Cashflow-Tab wurde der KV-/PV-Beitrag jedoch nominal in voller Höhe ausgewiesen; die als Residual gebildete Steuer (brutto − netto − kvpv) fiel dadurch systematisch zu niedrig aus — bei einer 30-Prozent-Teilkapitalauszahlung von 30.000 Euro und Krankenversicherung der Rentner um etwa 265 Euro, bei freiwillig gesetzlich Versicherten um etwa 640 Euro. Die Korrektur wendet denselben Barwertfaktor auch in der Tabellenanzeige an, sodass die Zerlegungbrutto = steuer + kvpv + nettokonsistent bleibt. Wirkt sich ausschließlich auf das Altersvorsorgedepot aus (Rürup ohne Einmalbetrag, Riester KV-frei).