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.
- Angekündigt, aber noch nicht abschlussfähig. Zahlreiche Banken, Neobroker, Fondsgesellschaften und Versicherer haben Altersvorsorgedepots für den 01.01.2027 angekündigt, viele bereits mit Kostenangaben — beim Standarddepot teils deutlich unter dem gesetzlichen Höchstwert von 1 %. Alle Angaben stehen unter dem Vorbehalt der Zertifizierung; abschließen lässt sich vor dem 01.01.2027 noch nichts. Verbindliche Rentenfaktoren für die lebenslange Rente liegen weiterhin nicht vor. Der im Werkzeug für die Auswertung „mit oder ohne Absicherung" verwendete Rentenfaktor (Vorgabe 27 € je 10.000 €) bleibt daher eine Modellannahme ohne Marktbeleg.
- Zertifizierung und Standarddepot. Jedes Produkt muss vom Bundeszentralamt für Steuern zertifiziert sein, bevor es angeboten werden darf. Ab dem 01.01.2027 geschieht das grundsätzlich ohne vollständige Vorabprüfung unter dem Vorbehalt des Widerrufs; auf Antrag und gegen eine höhere Gebühr ist eine vollständige Vorabprüfung möglich, dann ohne Widerrufsvorbehalt (§ 5 Abs. 4 Altersvorsorgeverträge-Zertifizierungsgesetz, AltZertG). Der Vorbehalt endet regulär zwei Jahre, für bis Ende 2028 eingegangene Anträge vier Jahre nach Ablauf des Kalenderjahres, in dem die Zertifizierungsnummer versandt wurde (§ 5 Abs. 1, § 14 Abs. 7 AltZertG). Wer Garantieprodukte oder Altersvorsorgedepots anbietet, muss zugleich mindestens ein Standarddepot anbieten — selbst oder über einen kooperierenden Anbieter (§ 1 Abs. 3 AltZertG) —, dessen Effektivkosten höchstens 1,0 % pro Jahr betragen; für diese Verträge sind die Effektivkosten auszuweisen (§ 2a AltZertG).
- Vergleich der Angebote. Eine staatliche Vergleichsplattform ist nicht vorgesehen. Anbieter und Zertifizierungsstelle müssen Muster-Produktinformationen veröffentlichen; auf dieser Grundlage können Dritte Vergleiche anbieten (Antwort der Bundesregierung, Bundestagsdrucksache 21/6726 vom 25.06.2026).
- Öffentliches Standarddepot. Das Gesetz erlaubt der Bundesregierung, ein Standarddepot durch einen öffentlichen Träger anbieten zu lassen; dafür ist eine Rechtsverordnung nötig, die noch nicht vorliegt. Einen Träger und einen Starttermin hat die Bundesregierung bislang nicht genannt. Ob ein öffentliches Angebot zum 01.01.2027 bereitsteht, ist offen.
- Auszahlung. Der Auszahlbeginn ist frühestens mit Vollendung des 65. Lebensjahres möglich (früher nur, wenn vorher eine Leistung aus einem gesetzlichen Alterssicherungssystem beginnt, etwa die gesetzliche Altersrente), spätestens mit dem 70. Lebensjahr. Zulässig sind eine lebenslange Leibrente oder ein Auszahlplan, der frühestens mit Vollendung des 85. Lebensjahres endet; bis zu 30 % des Kapitals können zu Beginn der Auszahlungsphase gesondert ausgezahlt werden.
- Kranken- und Pflegeversicherung. Pflichtversicherte in der Krankenversicherung der Rentner zahlen auf Leistungen aus dem Altersvorsorgedepot keine Beiträge, auch nicht auf Teilkapital: Beitragspflichtig sind dort nur die gesetzliche Rente, Versorgungsbezüge und Arbeitseinkommen (§ 237 SGB V), und Leistungen aus gefördertem Altersvorsorgevermögen zählen nicht zu den Versorgungsbezügen (§ 229 Abs. 1 SGB V). Das Werkzeug bildet das ab (Schalter im Tab Eingaben). Bei freiwillig gesetzlich Versicherten sind die Auszahlungen beitragspflichtig. Offen ist dort, wie Einmal- und Teilkapitalauszahlungen aus dem Altersvorsorgedepot zeitlich zu verteilen sind; hierzu fehlt bislang eine ausdrückliche Festlegung. Das Werkzeug verteilt sie in Anlehnung an § 229 SGB V auf 120 Monate — als ausgewiesene, vorsichtige Modellannahme.
- Was sich noch ändern kann. Ein Anwendungsschreiben des Bundesfinanzministeriums zur neuen Förderung ist bislang nicht veröffentlicht; es kann Auslegungsfragen — etwa zur Besteuerung von Kapital- und Teilkapitalauszahlungen aus dem nicht geförderten Teil — noch klären. Zertifizierungsdetails und die Produktlandschaft entwickeln sich bis zum Start und danach weiter. 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.
- Rechtsstand wird nicht fortgeschrieben: Alle steuerlichen und sozialrechtlichen Größen bleiben über die gesamte Laufzeit auf ihrem heutigen Stand — insbesondere der gemeinsame Höchstbetrag § 10 Abs. 3 EStG (30.826 € / 61.652 €), der Einkommensteuertarif § 32a EStG, die Beitragssätze zur Kranken- und Pflegeversicherung sowie die Zulagenbeträge. In der Wirklichkeit steigt der Höchstbetrag jährlich mit der Beitragsbemessungsgrenze (die Lohnentwicklung 2026 lag bei 4,25 %), und der Tarif wird regelmäßig an die Inflation angepasst. Die Rechnung unterschätzt dadurch bei hohen Rürup-Beiträgen den steuerlich abziehbaren Spielraum und überschätzt die Steuerlast im Ruhestand. Die Zulagenbeträge sind dagegen gesetzlich feste Nominalbeträge und steigen ohne Gesetzesänderung ohnehin nicht. Die nächste turnusmäßige Anpassung der Rechengrößen erfolgt mit der Sozialversicherungs-Rechengrößenverordnung 2027 (Herbst 2026).
- Ü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.12.16 gegenüber v2026.12.15 (Standard-Patch, Befunde der unabhängigen Prüfung)
Zwei Textkorrekturen. Keine Änderung an Rechenergebnissen oder gespeicherten Daten; daher ein Standard-Patch.
- BUG-037 (niedrig, wieder geöffnet) — Zertifizierung zu pauschal. Der Absatz „Zertifizierung und Standarddepot" im Start-Reiter nennt jetzt die Ausnahme der vollständigen Vorabprüfung auf Antrag (§ 5 Abs. 4 AltZertG), den Fristbeginn des Widerrufsvorbehalts (nach Ablauf des Kalenderjahres der Versendung der Zertifizierungsnummer; § 5 Abs. 1, § 14 Abs. 7) und beschränkt die Pflicht zum Standarddepot sowie den Kostenausweis auf die gesetzlich erfassten Verträge (§ 1 Abs. 3, § 2a). Gefunden von Codex am 17.10.2026.
- BUG-038 (niedrig) — Druckbericht. Unter „Kranken-/Pflegevers. im Ruhestand" stand bei Pflichtversicherten „pflichtversichert (halber Beitrag)", gerechnet wird aber — zutreffend — beitragsfrei. Die Beschriftung entspricht jetzt der Eingabemaske. Gefunden von Codex am 17.10.2026.
Änderungen v2026.12.15 gegenüber v2026.12.14 (Standard-Patch, redaktionelle Aktualisierung)
Start-Reiter: aktuelle Entwicklung auf Stand Oktober 2026. Keine Änderung an Rechenergebnissen oder gespeicherten Daten; daher ein Standard-Patch.
- BUG-037 (niedrig) — Vergleichsplattform. Der Kasten „Aktuelle Entwicklung" kündigte zum Start eine unabhängige, digitale Vergleichsplattform an. Das Gesetz sieht keine vor, und die Bundesregierung hat erklärt, eine Vergleichsplattform bei der Zertifizierungsstelle sei nicht vorgesehen; Vergleiche bieten Dritte auf Grundlage der veröffentlichten Muster-Produktinformationen an (Bundestagsdrucksache 21/6726). Berichtigt.
- Stand Oktober 2026. Angekündigte Angebote mit Kostenangaben (noch nicht abschlussfähig, Rentenfaktoren weiter offen), Zertifizierung unter Widerrufsvorbehalt, Pflicht zum Standarddepot, offenes öffentliches Standarddepot, Auszahlbeginn auch mit einer früher beginnenden gesetzlichen Altersrente, 30-%-Teilkapital, Kranken- und Pflegeversicherung nach Versichertengruppe getrennt, ausstehendes Anwendungsschreiben. Eine Änderung des Gesetzes seit der Verkündung ist nicht ersichtlich (Recherche vom 17.10.2026).
Änderungen v2026.12.14 gegenüber v2026.12.13 (Standard-Patch, Befund der unabhängigen Prüfung)
Beim Laden gilt die zuletzt gewählte Datei. Keine neuen Funktionen und keine Änderung an Rechenergebnissen oder gespeicherten Daten; daher ein Standard-Patch.
- BUG-036 (mittel) — überholter Dateiimport. Wählte man mit „Daten laden" eine Datei und noch während des Lesens eine zweite, übernahm der Lesevorgang, der zuletzt fertig wurde. Ein verspätet gelesener älterer Stand konnte so den neueren Fall und danach erfasste Eingaben überschreiben; eine anschließende Sicherung trug ihn weiter, und eine überholte Fehlermeldung ersetzte die neuere Erfolgsmeldung. Jetzt verwirft ein überholter Lesevorgang sein Ergebnis und seine Meldung. Gefunden von Codex am 15.10.2026.
Prüfstand: Eine neue Prüfung startet über das echte Dateiauswahlfeld zwei Ladevorgänge und stellt ihre Abschlüsse in allen Reihenfolgen zu — mit Folgeeingabe, ungültiger Datei, Lesefehler und Sicherung — in beiden Bedienmodi.
Änderungen v2026.12.13 gegenüber v2026.12.12 (Standard-Patch, Maßnahme des Strukturaudits)
Steuerregel für Einmalbeträge an einer Stelle. Keine neuen Funktionen und keine Änderung an Rechenergebnissen, Anzeige oder gespeicherten Daten; daher ein Standard-Patch.
- SA-006 — gemeinsamer Helfer. Der Steuersatz für Einmal- und Teilkapitalauszahlungen (bis 20.000 € der Steuersatz im Ruhestand, ab 40.000 € mindestens 42 %, dazwischen linear übergeleitet) stand wortgleich zweimal in der Berechnung — beim Altersvorsorgedepot und bei Riester. Er steht jetzt in einer Funktion, die beide Wege nutzen; die 42 % kommen aus dem hinterlegten Steuertarif. Eine künftige genauere Berechnung ist damit nur noch an einer Stelle umzusetzen.
Prüfstand: Die Ergebnisse sind über alle Eingabekombinationen des Vergleichs bitgleich mit v2026.12.12, mit Teilkapitalbeträgen unter 20.000 €, im Übergangsbereich und über 40.000 €. Eine neue Prüfung rechnet die Regel an festen Werten nach und hält fest, dass sie nur an einer Stelle steht.
Änderungen v2026.12.12 gegenüber v2026.12.11 (Standard-Patch, Maßnahme des Strukturaudits)
Fördergrenzen an einer Stelle. Keine neuen Funktionen und keine Änderung an Rechenergebnissen, Anzeige oder gespeicherten Daten; daher ein Standard-Patch.
- SA-003 — Fördergrenzen zentral. Der geförderte Eigenbeitrag zum
Altersvorsorgedepot (1.800 € je Jahr), der dort höchstens einzahlbare Beitrag (6.840 €) und
der Riester-Höchstbetrag (2.100 €) standen als feste Zahl an 16 Stellen der Berechnung. Sie
stehen jetzt an einer Stelle (
FOERDERGRENZEN_2026), wie schon der Steuertarif und der Rürup-Höchstbetrag. Ändert der Gesetzgeber eine dieser Grenzen, ist nur noch diese Stelle nachzuziehen — dazu die Texte, die die Beträge nennen. Die Werte selbst sind unverändert.
Prüfstand: Die Ergebnisse sind über 1.728 Eingabekombinationen (Vergleichsbasen, Beiträge unter, an und über den Grenzen, Familienstand, Kinder, Einkommen, Auszahlformen) bitgleich mit v2026.12.11. Eine neue Prüfung hält fest, dass die drei Grenzen nirgends sonst als feste Zahl in der Berechnung stehen.
Änderungen v2026.12.11 gegenüber v2026.12.10 (Standard-Patch, Befund des Strukturaudits)
Bei der Vergleichsbasis mit parallelem ETF geht die Aufstellung jetzt auf. Keine neuen Funktionen, keine Änderung an Rechenergebnissen oder gespeicherten Daten; daher ein Standard-Patch.
- BUG-035 (niedrig) — paralleler ETF nicht ausgewiesen. Bei der Vergleichsbasis „gleicher Bruttobeitrag plus Steuererstattung im parallelen ETF" enthielten Endkapital, Summe netto und Barwert der geförderten Wege den parallelen ETF, die Topf-Aufteilung, die Rente und der Tab Zahlungsströme dagegen nur den Vertrag. Die Karte im Tab Vergleich ging dadurch nicht auf, und der Tab Zahlungsströme zeigte ohne Erklärung andere Summen. Vergleich und Druckreport weisen den parallelen ETF jetzt gesondert aus („davon im Vertrag", „davon paralleler ETF"), der Tab Zahlungsströme sagt, dass er nur den Vertrag zeigt. Gefunden im Strukturaudit vom 15.10.2026.
Prüfstand: Die angezeigten Teilbeträge ergeben zusammen die angezeigten Summen, und der Vertragsanteil stimmt mit dem Tab Zahlungsströme überein; ohne parallelen ETF erscheint keine zusätzliche Zeile.
Änderungen v2026.12.10 gegenüber v2026.12.9 (Standard-Patch, Befund der eigenen Abnahme der Mobilansicht)
Auf dem Telefon bleibt die Seite wieder in der Bildschirmbreite. Keine neuen Funktionen, keine Änderung an Rechenwegen, Eingaben oder gespeicherten Daten; daher ein Standard-Patch.
- BUG-033 (niedrig) — seitlicher Überlauf in der Mobilansicht. Bei 375 Pixel Breite war die Seite in den Tabs „Eingaben", „Zahlungsströme" und im Schnellrechner breiter als der Bildschirm: Geschlossene Erklärtexte nahe am rechten Rand belegten trotz Unsichtbarkeit ihre Breite, die Schaltfläche „Weiter zu ‚Was nun?'" brach nicht um, und zwei Gegenüberstellungen im Tab „Eingaben" (mit und ohne Absicherung; förderschädliche Verwendung, sobald auch Riester bespart wird) blieben zweispaltig, obwohl die zweite Spalte nicht mehr auf den Bildschirm passte. Die Seite ließ sich dadurch seitlich verschieben, und die Schaltfläche „Impressum & Hinweise" rutschte aus dem Bild. Der Hauptbereich beschneidet seitlichen Überlauf jetzt, die Schaltfläche bricht um, und die beiden Gegenüberstellungen stehen auf schmalen Bildschirmen untereinander. Auf Tablet und Rechner bleibt die Darstellung unverändert.
Prüfstand: Regel für den Hauptbereich vorhanden; in beiden Modi und allen Tabs keine Schaltfläche mit langem Text ohne Umbruch und kein fest mehrspaltiges Raster ohne Anpassung an die Breite. Im echten Browser bei 375, 768 und 1400 Pixeln nachgemessen: alle Tabs in Bildschirmbreite, nichts Sichtbares abgeschnitten, alle geöffneten Erklärtexte vollständig sichtbar.
Änderungen v2026.12.9 gegenüber v2026.12.8 (Standard-Patch, Befund des eigenen Kontrollaudits)
Eine HTML-Sicherung enthält keine Lademeldung der vorherigen Sitzung mehr. Keine neuen Funktionen, keine Änderung an Rechenwegen, Importdaten oder gesicherten Eingaben; daher ein Standard-Patch.
- BUG-032 (niedrig) — Lademeldung in der HTML-Sicherung festgehalten. Wer „Als HTML sichern" wählte, solange die Meldung nach dem Laden einer Datei noch zu sehen war (3,5 bzw. 6 Sekunden), fand diese Meldung in der gespeicherten Datei wieder — und dort blendete sie sich nie aus. Nach einem abgelehnten Import stand so in einer einwandfrei geöffneten Datei dauerhaft „Import fehlgeschlagen". Die Meldung wird jetzt nicht mehr mitgesichert; am Bildschirm bleibt sie bis zu ihrem regulären Ausblenden stehen.
Prüfstand: Sichern während sichtbarer Erfolgs- und Fehlermeldung: Die Datei enthält die Meldung nicht, die geöffnete Sicherung zeigt keine, die laufende Sitzung zeigt sie weiter. Kontrolle: Eine beim Öffnen der Sicherung neu entstehende Meldung (angepasste Expertenwerte) erscheint wie bisher.
Änderungen v2026.12.8 gegenüber v2026.12.7 (Standard-Patch, Befund der unabhängigen Prüfung von v2026.12.7)
Eine neue Lademeldung bleibt wieder ihre volle Zeit sichtbar. Keine neuen Funktionen, keine Änderung an Rechenwegen, Importdaten oder gespeicherten Daten; daher ein Standard-Patch.
- BUG-031 (niedrig) — alte Ausblendung versteckte eine neue Meldung. Die Meldung nach dem Laden einer Datei blendet sich nach 3,5 Sekunden (Erfolg) bzw. 6 Sekunden (Fehler) innerhalb von 0,4 Sekunden aus. Lud man genau in diesen 0,4 Sekunden die nächste Datei, verschwand deren Meldung fast sofort wieder, weil der zweite Ausblendschritt der alten Meldung nicht abgebrochen wurde. Jetzt werden beide Schritte abgebrochen; jede Meldung hat ihre eigene Anzeigedauer. Gefunden von der unabhängigen Prüfung.
Prüfstand: Erfolg und Fehler als erste und zweite Meldung, die zweite vor, während und nach der Ausblendung der ersten — sichtbar bis zum Ende der eigenen Anzeigedauer, danach regulär ausgeblendet; zusätzlich ein Ablauf über den echten Ladeweg mit echter Wartezeit.
Änderungen v2026.12.7 gegenüber v2026.12.6 (Standard-Patch, Befund der unabhängigen Prüfung von v2026.12.6)
Ein schneller Wechsel in den Schnellrechner kostet ihn nicht mehr sein eigenes letztes Ergebnis. Keine neuen Funktionen, keine Änderung an Rechenwegen oder gespeicherten Daten; daher ein Standard-Patch.
- BUG-024 (niedrig, fünfte Fassung) — verzögerte Neuberechnung nach dem Moduswechsel. Eine Eingabe im Expertenmodus wird mit 200 Millisekunden Verzögerung neu gerechnet. Wechselte man innerhalb dieser Zeit in den Schnellrechner, lief die Neuberechnung dort ab und ersetzte dessen Ergebnis durch ein zahlengleiches, das nicht mehr als eigenes Ergebnis des Schnellrechners erkannt wurde. Die nächste unvollständige Angabe zeigte dann „kein gültiges Ergebnis" statt des letzten eigenen Ergebnisses. Die verzögerte Neuberechnung entfällt jetzt nach einem Moduswechsel; die Eingabe ist zu diesem Zeitpunkt bereits gerechnet. Gefunden von der unabhängigen Prüfung.
Prüfstand: Schneller und langsamer Wechsel in allen vier Lebenssituationen mit anschließender unvollständiger Eingabe; Rückkehr zum Experten innerhalb der Verzögerung. Der Zufallsprüfer kennt den schnellen Wechsel als Bedienschritt und prüft zusätzlich, dass ein gültiges Ergebnis im Schnellrechner als dessen eigenes gekennzeichnet ist.
Änderungen v2026.12.6 gegenüber v2026.12.5 (Standard-Patch, Befund der unabhängigen Prüfung von v2026.12.5)
Ein gescheiterter Import stellt den Schnellrechner jetzt auch in seinem Verhalten vollständig wieder her. Keine neuen Funktionen, keine Änderung an Rechenwegen oder gespeicherten Daten; daher ein Standard-Patch.
- BUG-012 (mittel, siebte Fassung) — Herkunft des Ergebnisses beim Rücksprung. Seit v2026.12.5 merkt sich der Schnellrechner, für welche Lebenssituation er ein Ergebnis gerechnet hat; bei unvollständigen Angaben zeigt er nur ein solches eigenes Ergebnis weiter. Scheiterte ein Import erst spät, stellte der Rücksprung Eingaben und Zahlen zwar richtig her, aber ohne diese Herkunft. Die nächste unvollständige Eingabe verwarf dann das eigene letzte Ergebnis und zeigte den Hinweis „kein gültiges Ergebnis" (gemessen in allen vier Lebenssituationen, z. B. Privat-ETF 95.989 € verworfen). Die Herkunft gehört jetzt zum gesicherten Stand und wird beim Rücksprung wiederhergestellt; ein geladener Fall übernimmt sie nicht. Gefunden von der unabhängigen Prüfung.
Prüfstand: Rücksprung nach spätem Importfehler in allen vier Lebenssituationen, an zwei Fehlerstellen, gegen eine Kontrollsitzung ohne Fehler — vollständiges Ergebnis einschließlich Herkunft und anschließend eine unvollständige Eingabe ohne dazwischen liegende Neuberechnung. Der Zufallsprüfer verändert den geprüften Zustand nicht mehr selbst, erzeugt nun auch späte Importfehler und verlangt eine Mindestzahl ausgewerteter Fälle je Regel.
Änderungen v2026.12.5 gegenüber v2026.12.4 (Standard-Patch, Befund aus dem eigenen Kontrollaudit)
Der Schnellrechner zeigt bei unvollständigen Angaben nur noch sein eigenes letztes Ergebnis. Keine neuen Funktionen, keine Änderung an Rechenwegen oder gespeicherten Daten; daher ein Standard-Patch.
- BUG-024 (mittel, vierte Fassung) — Zahlen eines anderen Falls im Schnellrechner. Sind die Angaben unvollständig (etwa ein Geburtsjahr ohne Ansparphase), zeigt das Werkzeug das zuletzt gültige Ergebnis. Im Schnellrechner war das nicht immer sein eigenes: Wurde das Geburtsjahr vor der Wahl der Lebenssituation eingegeben, erschien das Ergebnis der Vorgabewerte des Expertenmodus (verheiratet, 300 €) unter „ledig ohne Kinder"; nach einem Wechsel der Lebenssituation blieben die Zahlen der vorher gewählten stehen; und nach dem Laden einer Schnellrechner-Sicherung ohne gewählte Lebenssituation erschien ein Ergebnis aus deren Expertenwerten, das zu keinem gezeigten Fall gehörte. Jetzt zeigt der Schnellrechner ein eingefrorenes Ergebnis nur, wenn er es selbst für dieselbe Lebenssituation gerechnet hat — sonst den Hinweis „kein gültiges Ergebnis", ebenso die Ergebnis-Tabs des Expertenmodus. Gefunden mit einer neuen Prüfung, die zufällige Folgen von Bedienschritten durchläuft und nach jedem Schritt prüft, dass keine Anzeige zu einem anderen Stand gehört.
Änderungen v2026.12.4 gegenüber v2026.12.3 (Standard-Patch, Befund der unabhängigen Prüfung von v2026.12.3)
Auch der Schnellrechner zeigt nach dem Laden keine Zahlen eines anderen Falls mehr. Keine neuen Funktionen, keine Änderung an Rechenwegen oder gespeicherten Daten; daher ein Standard-Patch.
- BUG-024 (mittel, dritte Fassung) — Schnellrechner-Ausgabe nach dem Laden. v2026.12.1 hatte die Ergebnis-Tabs des Experten geschützt, die getrennte Ergebnisanzeige des Schnellrechners nicht. Wurde ein Schnellrechner-Fall mit unvollständigen Eingaben geladen, blieben dort Rangfolge, Summen und Rententabelle des vorher bearbeiteten Falls stehen (gemessen: Privat-ETF 95.989 € des Paar-Falls mit 150 € unter den geladenen Angaben 1940 und 500 €) — auch nach Sicherung als HTML und Neuöffnen. Jetzt zeigt der Schnellrechner in diesem Fall den Hinweis „kein gültiges Ergebnis"; er erscheint auch im Ausdruck. Mitbehoben: Brachte eine Datei geänderte Schnellrechner-Angaben ohne eigenes Profil mit, rechnete der Schnellrechner nicht neu und zeigte die Zahlen der vorherigen Angaben — jetzt rechnet er neu. Wird eine Experten-Sicherung in eine Schnellrechner-Sitzung geladen, wird dessen dann verborgene alte Ausgabe entfernt, damit sie nicht unsichtbar in HTML-Sicherungen mitreist. Beim Bearbeiten von Hand und bei einem abgelehnten Import bleibt die Anzeige wie bisher. Gefunden von der unabhängigen Prüfung.
Prüfstand: Zwei verschiedene Schnellrechner-Fälle, eigener Export des unvollständigen Falls, Laden in den anderen, sichtbare Ausgabe geprüft — dann HTML sichern und neu öffnen. Kontrollen: gültige Eingabe zeigt die Zahlen des geladenen Falls, ein abgelehnter Import lässt die Ausgabe unverändert, nach dem Laden einer Experten-Datei steht die alte Ausgabe weder im Dokument noch in der HTML-Sicherung. An der vorigen Fassung schlagen drei dieser Prüfungen an.
Änderungen v2026.12.3 gegenüber v2026.12.2 (Standard-Patch, Befund aus der Browserabnahme)
Tabellen werden im Druck nicht mehr abgeschnitten. Keine neuen Funktionen, keine Änderung an Rechenwegen oder gespeicherten Daten; daher ein Standard-Patch.
- BUG-030 (mittel) — Rollbalken und abgeschnittene Spalten im Druck. Die Tabellen liegen in einem Rahmen, der auf schmalen Bildschirmen quer scrollt. Im Druck waren zwei Tabellen breiter als die Seite — die Rangfolge im Tab Auswertung (680 statt 646 Bildpunkte) und die Szenarientabelle im Tab Steuersatz-Szenarien (751 statt 646). Gedruckt wurde ein Rollbalken, und die rechten Spalten fehlten; auf Papier lässt sich nicht scrollen. Ursache waren Spaltenüberschriften, die nicht umbrechen durften. Im Druck dürfen sie das jetzt; alle Tabellen passen, im Browser gemessen auch mit großen Beträgen. Die Bildschirmansicht ist unverändert. Der Fehler bestand schon länger; sichtbar wurde er, nachdem die Diagramme nicht mehr über die Tabellen ragen (BUG-029). Gefunden bei der Browserabnahme durch den Produktverantwortlichen.
Änderungen v2026.12.2 gegenüber v2026.12.1 (Standard-Patch, Befund aus der Browserabnahme)
Diagramme werden wieder vollständig gedruckt. Keine neuen Funktionen, keine Änderung an Rechenwegen oder gespeicherten Daten; daher ein Standard-Patch.
- BUG-029 (mittel) — Diagramme im Druck zerschnitten. Beim Drucken eines Tabs mit Diagrammen (Vergleich, Zahlungsströme, Steuersatz-Szenarien, Auswertung) behielten die Diagramme ihre Bildschirmgröße: Im Browser gemessen ragte jedes der fünf Diagramme 641 Bildpunkte über den rechten Seitenrand und 140 Bildpunkte in den folgenden Inhalt. Die Diagramme passen sich der Fenstergröße an, das Druckbild entsteht aber, bevor sie das tun. Jetzt werden sie unmittelbar vor dem Druck auf die Druckgröße gebracht (Seitenbreite, 220 Bildpunkte hoch, doppelte Pixeldichte für ein scharfes Bild) und danach zurückgesetzt; eine zusätzliche Druckregel hält jedes Diagramm in seinem Rahmen und unverzerrt, falls ein Browser die Neubemessung nicht auslöst. Gefunden bei der Browserabnahme durch den Produktverantwortlichen.
Prüfstand: Die Druckbehandlung wird mit einem Stellvertreter-Diagramm geprüft; die erwartete Druckgröße leitet die Prüfung aus den Stilregeln des Werkzeugs ab (Seitenrand, Karte, Druckhöhe), nicht aus der Behandlung selbst. Die tatsächliche Zeichnung ist im Browser gemessen: vorher 1.287 × 360 Bildpunkte in einem Rahmen von 646 × 220, jetzt 645 × 220, gezeichnet, Seitenverhältnis erhalten.
Änderungen v2026.12.1 gegenüber v2026.12.0 (Standard-Patch, Befunde der unabhängigen Prüfung von v2026.12.0)
Nach dem Laden eines unvollständigen Stands erscheint kein Ergebnis eines anderen Falls mehr. Keine neuen Funktionen, keine Änderung an Rechenwegen oder gespeicherten Daten; daher ein Standard-Patch.
- BUG-024 (mittel, wieder geöffnet) — Ergebnis eines anderen Falls nach Sicherung und Laden. Sind die Eingaben unvollständig, rechnet das Werkzeug nicht und zeigt das zuletzt gültige Ergebnis. Innerhalb einer Sitzung ist das richtig — über eine Sicherung hinweg nicht: Wer im Expertenmodus mit unvollständigen Eingaben in den Schnellrechner wechselte, dort sicherte und die Sicherung später lud, sah nach dem Wechsel zum Experten die Zahlen des Schnellrechners (ETF-Barwert 95.988,89 € statt 237.675,27 €). Ebenso zeigte das Laden einer Experten-Datei mit unvollständigen Eingaben das Ergebnis des Falls, der vor dem Laden bearbeitet wurde. Eine Sicherung trägt kein Ergebnis mit, und ein Ergebnis ungeprüft aus einer Datei zu übernehmen, schiede aus. Jetzt gilt: Gibt es für einen geladenen, geöffneten oder aus einer Sicherung zurückgeholten Stand mit unvollständigen Eingaben kein zugehöriges Ergebnis, zeigen die Ergebnis-Tabs statt Zahlen einen Hinweis, bis die Eingaben vollständig sind. Beim Bearbeiten von Hand bleibt es beim zuletzt gültigen Ergebnis des eigenen Falls. Gefunden von der unabhängigen Prüfung.
- BUG-028 (niedrig) — Hinweise beim Öffnen einer HTML-Sicherung. Mitgesicherte Experten-Werte außerhalb der Feldgrenzen wurden beim Öffnen einer HTML-Sicherung richtig angepasst, aber ohne Meldung; beim Laden der JSON-Sicherung erschien sie. Jetzt in beiden Fällen. Gefunden von der unabhängigen Prüfung.
Prüfstand: Die beiden Befunde lagen in Verkettungen, deren Teilpfade einzeln geprüft waren. Neu geprüft werden deshalb die ganzen Ketten: Fehlerzustand → Schnellrechner → Sicherung (JSON und HTML) → Laden → Experte; Laden unvollständiger Dateien in gültige und unvollständige Sitzungen; Öffnen einer HTML-Sicherung mit unvollständigen Eingaben mit anschließendem abgelehnten Import; das Wiedererscheinen des Ergebnisses nach Vervollständigen der Eingaben; die Meldung beim HTML-Öffnen. An der vorigen Fassung schlagen sieben dieser Prüfungen an.
Änderungen v2026.12.0 gegenüber v2026.11.11 (Feature-Release: Umbau von Laden, Rücksprung und Moduswechsel; Expertenwerte in Sicherungen aus dem Schnellrechner)
Laden, Rücksprung und Moduswechsel beruhen jetzt auf einer einzigen Beschreibung des Werkzeugstands — und eine Sicherung aus dem Schnellrechner enthält die Experten-Werte. Der innere Aufbau des Imports wurde umgestellt, und es kommt eine Funktion hinzu; daher ein Feature-Release. Rechenwege und Rechtsstand sind unverändert, das Datenschema bleibt 3.
- Neu (DF-001) — Experten-Werte in Sicherungen aus dem Schnellrechner. Wer im Experten-Modus Werte erfasst, in den Schnellrechner wechselt und dort sichert, fand seine Experten-Angaben bisher nach dem Laden nicht wieder: Sie waren nur für die laufende Sitzung zwischengespeichert. Jetzt tragen „Daten sichern" und „Als HTML sichern" sie mit; beim Wechsel in den Experten-Modus kehren sie zurück. Beim Laden werden sie genauso geprüft wie jede andere Angabe der Datei: Werte außerhalb der Feldgrenzen werden angepasst und mit dem Vorsatz „Expertenwerte:" benannt; ungültige Werte lehnen beim Laden einer JSON-Sicherung den ganzen Import ab, beim Öffnen einer HTML-Sicherung wird der Mangel benannt und nichts davon übernommen. Hinweis zur Weitergabe: Eine solche Sicherung enthält damit auch die Experten-Angaben, nicht nur den sichtbaren Schnellrechner-Fall.
- BUG-023 (hoch) — geleerte Felder rechneten mit einem verdeckten Wert. Setzte das Werkzeug selbst ein Feld auf leer — beim Rückwechsel in den Experten-Modus oder beim Laden einer Datei mit leerem Feld —, blieb das Feld leer, gerechnet wurde aber mit einem früheren Wert, den niemand sah. Gemessen: Ein leeres Vorjahresbrutto wurde nach einem Abstecher in den Schnellrechner mit 27.500 € gerechnet (Riester-Barwert 68.694,83 € statt 66.819,41 €); eine Datei mit leerem ETF-Beitrag rechnete mit dem zuvor eingetippten Beitrag weiter. Ein leer geschriebenes Feld bedeutet jetzt „keine Angabe" — beim Vorjahresbrutto greift wieder die Schätzung aus dem zu versteuernden Einkommen (Faktor 1,30, Hinweis P17). Leert der Nutzer ein Feld selbst, stellt das Werkzeug es wie bisher sichtbar auf den verwendeten Wert zurück.
- BUG-025 (hoch) — Start im Einsteiger-Modus: Der Wechsel zum Experten verwarf den eigenen Fall. Wer das Werkzeug im Einsteiger-Modus begann, seinen Fall erfasste und dann in den Experten-Modus wechselte, fand dort nicht seinen Fall, sondern die Vorgabewerte (etwa „verheiratet" und 300 € statt „ledig" und 500 €). Die Wahl im Startdialog legte eine Sicherung der Vorgabewerte an, als wären es erfasste Experten-Werte. Jetzt bleibt der Fall beim Wechsel erhalten. Wer vorher im Experten-Modus gearbeitet hat, erhält wie bisher seine Experten-Werte zurück.
- BUG-024 (mittel) — Moduswechsel bei unvollständigen Eingaben. Sind die Eingaben unvollständig, rechnet das Werkzeug nicht und zeigt das zuletzt gültige Ergebnis. Nach einem Abstecher in den Schnellrechner zeigten die Tabs danach dessen Zahlen (etwa zu versteuerndes Einkommen 45.000 € und zwei Kinder) unter den Experten-Feldern (65.000 €, keine Kinder). Jetzt wieder das Experten-Ergebnis.
- BUG-027 (niedrig) — Hilfetext zum Vorjahresbrutto. Er beschrieb für ein leeres Feld noch die Näherung vor Mai 2026 (zu versteuerndes Einkommen ohne Aufschlag, „tendenziell zu niedrig"). Gerechnet wird seit Befund B-07 mit dem Faktor 1,30; der Hilfetext sagt das jetzt. Die Rechnung ändert sich nicht.
- Umbau. Der Stand des Werkzeugs — Felder, Kinderzeilen, Hinweise, Modus, Profil, zuletzt gültige Werte, Ansicht, eingefrorenes Ergebnis — ist an einer Stelle beschrieben. Der Import baut daraus erst den vollständigen Zielstand und übernimmt ihn in einem Schritt; scheitert etwas, stellt derselbe Weg den Vorstand her. Der Moduswechsel sichert über dieselbe Beschreibung; die zweite, von Hand gepflegte Feldliste ist entfallen. Mitgesichert werden dabei jetzt auch die Überschreibungswerte je Weg; der Schnellrechner verändert sie nicht, im Ergebnis ändert sich dadurch nichts.
- Randfall. Eine Datei ohne Kinderliste mit leerem Feld „Anzahl Kinder" zeigt nach dem Laden die tatsächlich verwendete Kinderzahl statt eines leeren Feldes.
Prüfstand: Ein Sicherheitsnetz hält das Verhalten des Imports für 39 Dateien aus drei Ausgangslagen fest (117 Fälle) und prüft, dass jeder Fehler an jeder Stelle eines Imports den Vorstand unverändert lässt (973 Läufe in voller Tiefe). Neu sind die Prüfungen des Zustandskatalogs, des Moduswechsels hin und zurück, der mitgesicherten Experten-Werte und eine Zählung, die im Import keinen direkten Schreibzugriff mehr zulässt. BUG-023 und BUG-024 fand die neue Prüfung des Moduswechsels, BUG-025 und BUG-027 die sachliche Durchsicht der Texte; an der vorigen Fassung schlagen alle 19 Prüfungen des Moduswechsels an.
Begleittext (BUG-026, niedrig): Die Liesmich.txt nannte „Werte außerhalb der Feldgrenzen" pauschal als Ablehnungsgrund des Imports. Abgelehnt werden nur Jahresangaben der Kinder und des Riester-Bestands außerhalb ihres Bereichs; andere Zahlen werden auf die Grenze angepasst und benannt. Der Text ist berichtigt.
Änderungen v2026.11.11 gegenüber v2026.11.10 (Standard-Patch, eigene Messung zum Rücksprung des Imports)
Ein abgewiesener Import lässt jetzt auch im Zustand „Eingaben unvollständig" die angezeigten Ergebnisse unverändert. Keine neuen Funktionen, keine Änderung an Rechenwegen oder gespeicherten Daten; daher ein Standard-Patch.
- BUG-012 (mittel, wieder geöffnet) — eingefrorene Ergebnisse im Fehlerzustand. Sind die Eingaben unvollständig (etwa ein Geburtsjahr ohne Ansparphase), rechnet das Werkzeug nicht und zeigt unter dem Warnbanner die zuletzt gültigen Ergebnisse. Scheiterte in diesem Zustand ein Import erst spät, stellte der Rücksprung zwar die Eingaben wieder her — die Tabs zeigten danach aber die Zahlen der abgewiesenen Datei. Gemessen: ETF-Barwert 390.024 € statt 237.675 €, Leibrente 231 € statt 342 € im Monat, bei der Zusage, der Stand bleibe unverändert. Im Fehlerzustand gehört das zuletzt gültige Ergebnis jetzt zum gesicherten Stand; der Rücksprung zeichnet die Tabs damit neu. Danach ist der gesamte sichtbare Text wieder identisch. Mitbehoben: Der Rücksprung stellt jede der beiden Reiterleisten (Schnellrechner und Experte) exakt zurück, nicht nur die sichtbare.
Prüfstand: Das Sicherheitsnetz des Imports vergleicht jetzt auch den gesamten sichtbaren Text und prüft den Rücksprung aus einer dritten Ausgangslage, dem Fehlerzustand. An der vorigen Fassung schlagen 35 Läufe an, an dieser keiner.
Änderungen v2026.11.10 gegenüber v2026.11.9 (Standard-Patch, Befund aus der Zustandsprüfung des Umbaus)
Das Feld „Endjahr" erscheint nur noch dort, wo es auch wirkt. Für den Umbau des Imports entsteht eine neue Prüfung, die den gesamten sichtbaren Zustand des Werkzeugs vergleicht — auch, welche Felder ein- oder ausgeblendet sind. Sie fand einen Anzeigefehler in den Kinderangaben. Keine neuen Funktionen, keine Änderung an Rechenwegen oder gespeicherten Daten; daher ein Standard-Patch.
- BUG-022 (mittel) — sichtbares, aber wirkungsloses Feld „Endjahr".
Bei jedem neu gezeichneten Kind stand das Feld „Endjahr" sichtbar da, auch im
Fördermodus „bis 18", in dem sein Wert nicht verwendet wird. Ein dort eingetragenes
Förderende änderte kein Ergebnis — wer es eingab, musste aber annehmen, es werde
berücksichtigt. Ursache: Das Element erhielt beim Zeichnen zwei
style-Angaben; nach HTML-Standard gilt dann die erste, die zweite („ausblenden") wurde verworfen. Erst ein Moduswechsel oder das Zurückschreiben einer Sicherung blendete das Feld aus — die Anzeige hing also davon ab, was vorher geschah. Die Sichtbarkeit wurde an vier Stellen mit drei verschiedenen Regeln gesetzt; jetzt gilt eine Regel an allen vier Stellen: sichtbar nur im Modus „eigenes Endjahr". Die Ergebnisse ändern sich dadurch nicht.
Prüfstand: 276 Prüfungen im Bedienpfad (zuvor 273), 88 eingebaute Selbsttests und das Sicherheitsnetz des Imports. Die neuen Prüfungen folgen dem Bedienweg — neu zeichnen, Modus wechseln, erneut zeichnen — und schlagen an der vorigen Fassung an.
Änderungen v2026.11.9 gegenüber v2026.11.8 (Standard-Patch, Befunde aus dem neuen Sicherheitsnetz des Imports)
„Daten laden" nimmt jetzt jede Sicherung an, die „Daten sichern" geschrieben hat — auch einen noch unfertigen Arbeitsstand. Vor dem geplanten Umbau des Imports wurde ein Sicherheitsnetz gebaut, das das Verhalten des Imports vollständig festhält und prüft. Es fand gleich beim ersten Lauf einen schweren Fehler: In fünf Fällen wies das Werkzeug seine eigene Sicherung zurück. Keine neuen Funktionen, keine neuen Eingabefelder, keine Schema-Änderung; daher ein Standard-Patch.
- BUG-020 (hoch) — die eigene Sicherung wurde abgelehnt. Das Formular lässt Angaben zu, die noch unvollständig oder widersprüchlich sind: ein Kind ohne Geburtsjahr, ein eigenes Förderende ohne Jahr, ein Förderende vor dem Geburtsjahr eines künftigen Kindes, einen halb ausgefüllten Riester-Bestand oder ein Stichjahr vor dem Vertragsbeginn. „Daten sichern" schreibt sie in die Datei — „Daten laden" lehnte dann aber die ganze Datei ab. Da das Werkzeug keine andere Speicherung hat, war die Sicherung für den Nutzer damit wertlos. Ursache: Der Import prüfte strenger, als das Formular erlaubt. Seitdem gilt eine einfache Regel: Was das Formular aufnehmen kann, stellt der Import wieder her; was es nicht aufnehmen kann, lehnt er ab. Solche Angaben werden wie gesichert übernommen und in der Meldung benannt; das Werkzeug erklärt sie dort, wo es sie auch im Formular erklärt. Beim Riester-Bestand bleibt die Auswertung „Vorzeitige Kündigung" gesperrt, bis die Angaben stimmen — der Vergleich der vier Wege verwendet die Bestandsangaben nicht und rechnet unverändert. Weiterhin abgelehnt werden gebrochene Jahre, Werte außerhalb der Feldgrenzen und unbekannte Modi. Zu früheren Prüfberichten: Einzelne dieser Ablehnungen gingen auf frühere Befunde zurück. Deren Anliegen war, dass nichts still übernommen oder umgedeutet wird — das bleibt gewahrt: Umgedeutet wird nichts, und jede unvollständige Angabe steht in der Meldung.
- BUG-021 (niedrig) — ein Fehler beim Sichern des Vorzustands blieb stumm. Scheiterte der Import schon beim Festhalten des bisherigen Stands, tat er nichts und zeigte auch keine Meldung. Jetzt meldet er das; geändert ist zu diesem Zeitpunkt nichts.
Das neue Sicherheitsnetz (Schritt 0 des geplanten Umbaus) hält das Verhalten des Imports an 39 Dateien aus zwei Ausgangslagen fest, lässt zwölf im Formular herstellbare Stände durch „Daten sichern" und „Daten laden" laufen und löst an jeder Stelle, die ein erfolgreicher Import aufruft, einmal einen Fehler aus. In 785 solchen Läufen blieb der Stand kein einziges Mal verändert. Die Behebung änderte im Golden Master genau die sechs beabsichtigten Fälle — die übrigen 72 blieben gleich.
Änderungen v2026.11.8 gegenüber v2026.11.7 (Standard-Patch, vierter unabhängiger Prüfbericht [Codex] vom 27.09.2026)
Ein abgewiesener Import gibt die zwischengespeicherten Experten-Werte jetzt in jedem Fall zurück. Der vierte unabhängige Prüfbericht bestätigte die Behebungen BUG-016 bis BUG-019 und fand in BUG-012 einen letzten Restfall. Diese Fassung schließt ihn und zusätzlich eine Nebenwirkung derselben Ursache, die bei der systematischen Nachmessung auffiel. Keine neuen Funktionen, keine neuen Eingabefelder, keine Schema-Änderung; daher ein Standard-Patch.
- BUG-012 (mittel, wieder geöffnet) — der Kurzweg verlor die Expertensicherung. Wer im Schnellrechner arbeitet, dessen Experten-Eingaben liegen für die Sitzung zwischengespeichert bereit. Ein Import verwirft diese Zwischenspeicherung früh. Scheiterte er danach, obwohl sich kein Feld geändert hatte, nahm der Rücksprung einen Kurzweg — und übersprang dabei die Rückgabe der Zwischenspeicherung. Gemessen: gesicherter Expertenfall 1971/321 €, Import mit unveränderter Sparrate scheitert spät, Meldung „Der bisherige Stand bleibt unverändert." — beim nächsten Wechsel in den Expertenmodus aber 1985/150 €. Die Zwischenspeicherung wird jetzt in jedem Zweig zurückgegeben, und die Zusage im Meldungstext prüft sie mit. Mitbehoben: Scheiterte ein Import nach einem Moduswechsel, stellte der Rücksprung den Modus her, öffnete aber einen anderen Tab als zuvor (gemessen: „Start" statt „Vergleich"). Der geöffnete Tab gehört jetzt zum gesicherten Stand.
Zur Arbeitsweise: Diesmal wurden nicht nur die gemeldeten Fälle nachgestellt, sondern alle Zustandsänderungen erfasst, die der Import vor einem möglichen Fehler vornimmt, und für vier Kombinationen aus Ausgangs- und Dateimodus gemessen, welche davon der Rücksprung noch nicht abdeckte. Es waren genau zwei: die Expertensicherung und der geöffnete Tab.
Prüfstand: 275 Prüfungen im Bedienpfad (zuvor 261) und 88 eingebaute Selbsttests. Die neuen Prüfungen arbeiten mit einem Paar, das den Kurzweg erzwingt oder vermeidet: Ohne die Behebung fallen genau die beiden Fälle des Kurzwegs, der Fall mit abweichendem Wert besteht.
Änderungen v2026.11.7 gegenüber v2026.11.6 (Standard-Patch, Druckabnahme im echten Browser)
Das Erstellungsdatum wird im gedruckten Bericht jetzt zweistellig geschrieben. Die Abnahme der Druckausgabe — der zweite Teil der Browserabnahme, die der Prüfstand grundsätzlich nicht leisten kann — brachte einen Befund in der Darstellung. Keine neuen Funktionen, keine Änderung an Rechenwegen oder gespeicherten Daten; daher ein Standard-Patch.
- BUG-019 (niedrig) — zwei Datumsformate in einem Dokument. Auf
dem Deckblatt stand „Erstellt am 27.9.2026" unmittelbar über dem Rechtsstand
„… vom 29.05.2026". Ursache:
toLocaleDateString('de-DE')liefert in gängigen Browsern ein einstelliges Tages- und Monatsfeld. Deutsche Schriftstücke schreiben das Datum zweistellig (DIN 5008). Alle vier Ausgabestellen — Deckblatt, Druckfußzeile, Kopf der Auswertung und die Angabe „Aufruf am" in der Administration — ziehen die Schreibweise nun aus einer einzigen Stelle.
Druckabnahme (ABN-001, zweiter Teil): Die Druckregeln wurden am A4-Satzspiegel nachgestellt (182 mm Textbreite bei 14 mm Seitenrand). Ergebnis: In allen acht druckbaren Tabs ragt kein Element über die Seitenbreite hinaus; Kopfzeile und Tabs werden ausgeblendet, Deckblatt und Fußzeile erscheinen. Der Druckreport wird bei jeder Eingabeänderung neu erzeugt — gedruckt wird nie ein veralteter Stand. Die Abschnittsauswahl wirkt wie beschrieben und stellt den vorherigen Umfang vollständig wieder her. Nicht abschließend prüfbar bleibt, wie sich die Diagramme beim tatsächlichen Druck verhalten: Das erfordert eine echte Druckvorschau am Bildschirm.
Prüfstand: 261 Prüfungen im Bedienpfad (zuvor 259) und 88 eingebaute Selbsttests. Die beiden neuen Prüfungen messen die Schreibweise an allen vier Ausgabestellen, nicht nur an der Hilfsfunktion; der Wiedereinbau des Fehlers lässt sie an allen vier anschlagen.
Änderungen v2026.11.6 gegenüber v2026.11.5 (Standard-Patch, dritter unabhängiger Prüfbericht [Codex] vom 20.09.2026 und erste Abnahme in einem echten Browser)
Ein abgewiesener Import hinterlässt jetzt auch im Gedächtnis der Felder nichts, und die Erklärungstexte sind erstmals ohne Maus erreichbar. Der dritte unabhängige Prüfbericht bestätigte drei der vier Behebungen der Vorfassung und hielt zwei Restfälle fest. Zusätzlich wurde das Werkzeug erstmals in einem echten Browser abgenommen — die Prüfung, die der Prüfstand grundsätzlich nicht leisten kann. Sie bestätigte die Diagramme und brachte zwei eigene Befunde zur Bedienung ohne Maus. Keine neuen Funktionen, keine neuen Eingabefelder, keine Schema-Änderung; daher ein Standard-Patch.
- BUG-012 (mittel, wieder geöffnet) — der abgewiesene Wert überlebte im Gedächtnis der Felder. Zum Stand gehören nicht nur Felder, Kinderzeilen, Bestätigungen, Modus und Profil, sondern auch die zuletzt gültigen Werte der Eingabefelder und die bereits gezeichnete Auswertung des Schnellrechners. Gemessen: Nach einem abgewiesenen Import stand im Gedächtnis ein Budget von 999 €/Monat aus der fremden Datei; beim nächsten Leeren des Feldes wurde es sichtbar und hob den ETF-Jahresbeitrag von 1.800 € auf 11.988 € — bei der Zusage, der bisherige Stand bleibe unverändert. In einem zweiten Fall blieb eine bereits gezeichnete Auswertung mit den Zahlen der abgewiesenen Datei stehen, während Felder und Ergebnis längst zurückgestellt waren. Beides gehört jetzt in den gesicherten Stand — und damit auch in die Prüfung, die der Zusage vorausgeht.
- BUG-017 (mittel, eigene Browserabnahme) — Erklärungstexte nur mit der Maus. Die 54 Erklärungstexte hingen an einem Zeichen, das nicht fokussierbar war; die im Stilblatt vorhandene Regel für den Tastaturfokus konnte deshalb nie greifen, und der Text stand an keiner anderen Stelle. Wer ohne Maus arbeitet — mit Tastatur, Fingertipp oder Bildschirmleseprogramm —, kam an keine einzige Erklärung. Jedes Zeichen ist nun fokussierbar, benannt und mit seinem Text verknüpft; der Tastaturfokus ist sichtbar, ESC schließt wieder. Zweiter Teil: Auf schmalen Geräten ragte der Text über den rechten Rand — bei 375 px Breite 43 von 52 Texten, bis zu 154 px weit. Solange er nur per Maus erschien, fiel das nicht auf; mit dem neuen Zugang wäre er dort unlesbar. Er wird beim Öffnen in das Sichtfeld geschoben (danach gemessen: 0 von 52).
- BUG-018 (niedrig, eigene Browserabnahme) — der Startdialog war nur optisch ein Dialog. Der Fokus blieb beim Laden außerhalb, der verdeckte Hintergrund war mit der Tabulatortaste bedienbar, und es fehlten Dialogsemantik und Beschriftungsbezug. Wer ohne Maus arbeitet, bediente also ein Formular, das er nicht sehen kann, ohne zu erfahren, dass zuerst eine Wahl ansteht. Der Dialog ist jetzt als solcher ausgezeichnet, übernimmt den Fokus, hält ihn bis zur Wahl und blendet den Hintergrund für Hilfsmittel aus. Die Eingabetaste ESC schließt bewusst nicht: Die Wahl ist erforderlich.
- BUG-016 (niedrig) — die Anleitung benannte die falsche Vergleichszahl. Sie beschrieb das Balken-Ranking des Schnellrechners als Vergleich nach der Netto-Auszahlsumme. Sortiert wird jedoch nach dem Barwert der Nettoauszahlungen; die nominale Summe steht nur als zweite Zahl daneben. Im Beispiel unterscheiden sich beide um 25.000,39 €. Die Ergebnisseite des Werkzeugs war richtig — die Anleitung nicht.
Erste Abnahme in einem echten Browser (ABN-001, teilweise erledigt): Alle fünf Diagramme werden gezeichnet, und ihre Werte stimmen auf den Cent mit dem Rechenkern überein (Endkapital, Nominalsumme und Barwert je Weg). Keine Laufzeitmeldungen. 76 der 77 Bedienelemente tragen eine zugängliche Benennung; das eine ohne Benennung ist dauerhaft ausgeblendet und nicht erreichbar. Offen bleiben die Druckvorschau und die Abnahme mit einem echten Bildschirmleseprogramm.
Prüfstand: 258 Prüfungen im Bedienpfad (zuvor 241) und 88 eingebaute Selbsttests. Die siebzehn neuen Prüfungen decken die vier Befunde dauerhaft ab; sieben Mutationen bauten die Fehler einzeln wieder ein und schlugen jeweils bei der zuständigen Prüfung an. Die Anleitung wird mitgeprüft: Wenn das Ranking nach dem Barwert sortiert, darf sie nichts anderes behaupten.
Änderungen v2026.11.5 gegenüber v2026.11.4 (Standard-Patch, zweiter unabhängiger Prüfbericht [Codex] vom 20.09.2026)
Ein abgebrochener Import führt jetzt auch Ansicht und Profilwahl zurück, und der neue Deckelhinweis benennt jede gesetzliche Grenze so, wie sie im Gesetz steht. Der zweite unabhängige Prüfbericht bestätigte die Behebungen der Vorfassung im Kern, meldete aber vier Restfälle: zwei davon in genau den Stellen, die v2026.11.4 neu eingeführt hatte. Diese Fassung schließt alle vier. Keine neuen Funktionen, keine neuen Eingabefelder, keine Schema-Änderung; daher ein Standard-Patch.
- BUG-012 (mittel, wieder geöffnet) — der Rücksprung erfasste die Ansicht nicht. Eine Sicherung des Schnellrechners schaltet beim Laden zuerst die Ansicht um und wählt das Profil, bevor die Felder geschrieben werden. Scheiterte die Datei erst danach, blieb das Werkzeug im Schnellrechner stehen, mit dem Profil aus der abgewiesenen Datei — während die Meldung zusagte, der bisherige Stand bleibe unverändert. Ansicht und Profilwahl gehören jetzt in denselben Sicherungsstand wie die Felder und werden mitgeprüft, bevor die Zusage überhaupt ausgesprochen wird. Zur Reihenfolge: Die Ansicht wird zuerst zurückgestellt und erst danach die Feldsicherung eingespielt — umgekehrt überschrieb der Ansichtswechsel die gerade zurückgeholten Werte mit den importierten (im Versuch: 777 € statt 321 € ETF-Beitrag). Die Profilwahl wird dabei nur noch angezeigt und nicht neu gerechnet; Anzeige und Berechnung der Profilwahl sind dafür getrennt.
- BUG-014 (mittel, wieder geöffnet) — 570 € sind keine Fördergrenze. Der in v2026.11.4 eingeführte Hinweis nannte für alle Wege dieselbe Formulierung („gefördert sind höchstens …"). Für das Altersvorsorgedepot ist das falsch: Dort sind 6.840 €/Jahr (570 €/Monat) einzahlbar, gefördert aber nur 1.800 €/Jahr (150 €/Monat). Bei Rürup ist die Grenze eine steuerliche Abzugsgrenze (30.826 €/Jahr für Ledige, § 10 Abs. 3 EStG), bei Riester tatsächlich eine Fördergrenze (2.100 €/Jahr, § 10a EStG). Jeder Weg trägt die Art seiner Grenze jetzt selbst und wird entsprechend benannt; beim Altersvorsorgedepot steht der geförderte Teil daneben. Eine richtige Zahl mit falscher Begründung ist ein eigener Fehler, weil die Begründung angezeigt wird.
- BUG-015 (mittel, neu) — ein erfolgreicher Import konnte die HTML-Sicherung unbrauchbar machen. Der Profilwert aus der Datei wurde ungeprüft übernommen. Ein Wert, der kein Profilname ist, blieb bis zum Speichern unentdeckt und ließ die HTML-Sicherung scheitern — der Import galt da längst als erfolgreich. Der Wert wird jetzt gegen die vier zulässigen Profile geprüft; ein unbekannter Wert wird im Hinweis benannt und übergangen, statt die ganze Datei abzulehnen: Er betrifft nur die Ansicht, nicht die Rechengrößen.
- BUG-013 (niedrig, wieder geöffnet) — Leeren vor der ersten Profilwahl. Die Felder des Schnellrechners sind schon bedienbar, bevor ein Profil gewählt ist; die Rechnung steigt dann aber vorzeitig aus — und mit ihr das in v2026.11.4 ergänzte Merken des zuletzt gültigen Werts. Wer als Allererstes das Geburtsjahr leerte, sah weiterhin ein leeres Feld, während später mit der Vorgabe gerechnet wurde. Das Merken steht jetzt vor diesem Ausstieg und wird zusätzlich einmal beim Start ausgeführt.
Prüfstand: 241 Prüfungen im Bedienpfad (zuvor 226) und 88 eingebaute Selbsttests. Die fünfzehn neuen Prüfungen decken die vier Befunde dauerhaft ab; jede wurde durch Wiedereinbau des Fehlers auf Wirksamkeit geprüft. Die Erwartungs- werte des Deckelhinweises stammen aus dem Gesetz, nicht aus der geprüften Funktion.
Änderungen v2026.11.4 gegenüber v2026.11.3 (Standard-Patch, unabhängiger Prüfbericht [Codex] vom 11.09.2026 und Nachtrag vom 20.09.2026)
Der Schnellrechner sagt jetzt, wenn gleicher Aufwand nicht möglich ist — und ein abgelehnter Import lässt den Stand wirklich unangetastet. Die unabhängige Prüfung bestätigte die vier Behebungen der Vorfassung (BUG-008 bis BUG-011) und meldete zugleich drei offene Punkte: einen wieder geöffneten, einen neuen hohen und den bereits bekannten niedrigen Befund. Diese Fassung schließt alle drei. Keine neuen Funktionen, keine neuen Eingabefelder, keine Schema-Änderung; daher ein Standard-Patch.
- BUG-014 (hoch) — Gleichheitszusage trotz gedeckelter Beiträge. Der Schnellrechner vergleicht bei gleichem Nettoaufwand und erklärte ohne Einschränkung, jeder Weg koste unter dem Strich gleich viel. Tatsächlich begrenzt das Gesetz mehrere Wege: Bei einem Budget von 1.000 €/Monat kostet das Altersvorsorgedepot real 544,88 € und Riester 126,64 € im Monat — 455,12 € beziehungsweise 873,36 € des Budgets bleiben unberücksichtigt. Die nötigen Angaben lagen seit v2026.3.2 je Weg vor, wurden im Einsteiger aber nicht ausgewertet. Das Ergebnis weist jetzt je betroffenem Weg den tatsächlichen Aufwand, das ungenutzte Budget und den für gleichen Aufwand nötigen Bruttobeitrag aus; die Methodenaussage wird entsprechend eingeschränkt. Auch Eingabehilfe und Begleittext sind berichtigt. Zur Häufigkeit: Bei Riester greift der Deckel schon ab etwa 150 €/Monat Budget, also im Normalfall — nicht nur in Extremfällen.
- BUG-012 (mittel, wieder geöffnet) — abgelehnter Import veränderte den Stand. Der in v2026.11.3 eingeführte Rücksprung lief auch dann, wenn die Datei schon vor dem ersten Schreibzugriff abgewiesen wurde, und spielte dabei einen normalisierten Stand zurück: Ein leer gelassenes Kindergeburtsjahr wurde zu 2022, die Riester-Zulage stieg von 175 € auf 475 €, das Endkapital um 11.683,02 €. Ebenso gingen abgehakte Plausibilitätshinweise verloren, die der Snapshot gar nicht erfasste — beides bei der Meldung „Der bisherige Stand bleibt unverändert.". Jetzt sichert eine verlustfreie Rohwert-Sicherung alle Felder, Kinderzeilen und Bestätigungen (leer bleibt leer), der Rücksprung läuft nur bei tatsächlicher Änderung, und die Zusage im Meldungstext wird nicht mehr behauptet, sondern durch einen Vergleich geprüft. Mitbehoben: Dieselbe verlustbehaftete Sicherung steckte im Moduswechsel — auch dort blieb ein leeres Geburtsjahr nicht leer. Beide Wege nutzen nun dieselbe Schreibstelle.
- BUG-013 (niedrig) — geleerte Felder im Schnellrechner. Ein geleertes Geburtsjahr oder eine geleerte Kinderzahl blieben sichtbar leer, während intern 1985 beziehungsweise ein Kind gerechnet wurde. Ursache: Die Einsteiger-Felder werden an der zentralen Zahleneinlesung vorbei gelesen, sodass die vorhandene Rückschreibung des zuletzt gültigen Werts (Befund R-04) für sie nie griff. Der zuletzt gültige Wert wird jetzt gemerkt; angezeigter und gerechneter Wert stimmen wieder überein.
Absicherung: Selbsttest weiterhin 88 Prüfungen, Produktionspfad jetzt 226 — zwölf neue Prüfungen, jede mit einer Vorbedingung, die ein leeres Bestehen ausschließt. Besonderheit bei BUG-012: Weil ein früh abgelehnter Import nichts mehr anfasst, wäre der verlustfreie Rücksprung durch diesen Fall allein nicht belegt — eine zusätzliche Prüfung erzwingt deshalb den Rücksprung bei leerem Feld. Mutationsnachweise: leere Werte nicht zurückschreiben, Bestätigungen nicht sichern, Einsteiger-Werte nicht merken, Deckel nicht erkennen — jede Mutation lässt genau ihre Prüfungen fallen, Rückgabewert 1.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1). Offen bleiben die Designfrage DF-001 zur Sicherung aus dem Einsteiger-Modus und die manuelle Browser-, Mobil-, Diagramm- und Druckabnahme. Für HTML-Sicherungen älterer Fassungen gilt der Hinweis der Vorfassung unverändert: Sie bringen ihren eigenen Ladecode mit.
Änderungen v2026.11.3 gegenüber v2026.11.2 (Standard-Patch, unabhängiger Prüfbericht [Codex] und eigene Kontrollaudits 10.09.2026)
Gesicherte und geladene Fälle kommen wieder vollständig zurück. Diese Fassung behebt die fünf Befunde des unabhängigen Prüfberichts vom 10.09.2026 — vier hoch, einer mittel. Den ersten davon (BUG-008) hatten die eigenen Kontrollaudits zeitgleich gefunden. Gemeinsam ist allen, dass Zustand beim Moduswechsel, beim Sichern oder beim Laden verloren ging oder durch überholte Werte ersetzt wurde. Keine neuen Funktionen, keine neuen Eingabefelder, keine Schema-Änderung; daher ein Standard-Patch.
- BUG-008 (hoch) — Laden überschrieb den gesicherten Fall. Zwei Wege
mit derselben Wirkung. Teil A: Wurde der Einsteiger-Modus in einer Sitzung
auch nur einmal benutzt, trug jede spätere Sicherung aus dem Expertenmodus dessen
Fallwahl mit. Beim Öffnen der HTML-Datei und beim Laden der JSON-Datei rief das
Werkzeug daraufhin ohne Modusprüfung
egWaehleFallauf, undegRechneersetzte sämtliche Expertenangaben durch den typisierten Fall (verheiratet → ledig, 73.000 € → 45.000 €, zwei Kinder → keine). Beide Lesestellen prüfen jetzt den Modus. Teil B: Wer im Einsteiger-Modus eine Datei lud, bekam sie sofort durch die beim Moduswechsel angelegte Expertensicherung ersetzt, bei der Meldung „Import erfolgreich.". Ein erfolgreicher Import verwirft diese Sicherung jetzt; ein abgelehnter lässt sie unberührt. - BUG-009 (hoch) — Einsteiger-Rententabelle mit falschen Beiträgen. Der Schnellrechner vergleicht bei gleichem Nettoaufwand und erhöht dafür die Bruttobeiträge der geförderten Wege (Rürup 150 € → 233,97 €). Die Monatsrententabelle las dagegen die unskalierten 150 € erneut ein: Rürup 361 € statt 564 € bei 20 Jahren, daneben ein Ranking, das mit 564 € rechnete. Sie nutzt jetzt dieselben Eingaben je Weg wie der Vergleich.
- BUG-010 (hoch) — Rückwechsel änderte die Vergleichsbasis. Der Einsteiger stellt die Vergleichsbasis auf „gleicher Nettoaufwand"; die Sicherung beim Moduswechsel kannte die Radiogruppe nicht. Nach der Rückkehr stand ein Expertenfall mit gleichem Bruttobeitrag still auf Nettovergleich — Rürup-Barwert 77.572,85 € → 111.662,49 €, der führende Weg wechselte. Die Vergleichsbasis wird jetzt mitgesichert.
- BUG-011 (hoch) — HTML-Sicherung verlor das Startjahr. Beim Öffnen setzte die Initialisierung das Startjahr stets auf das laufende Jahr, mindestens 2027. Aus 2035 wurde 2027, aus 17 wurden 25 Ansparjahre, das ETF-Endkapital verdoppelte sich nahezu. Ab dieser Fassung gesicherte Dateien sind als solche gekennzeichnet und behalten ihr Jahr.
- BUG-012 (mittel) — fehlgeschlagener Import hinterließ halbe Übernahmen. Der Import beschrieb jede im Dokument vorhandene ID. Traf ein Schlüssel das Dateiauswahlfeld, brach er mit „Import fehlgeschlagen" ab — nachdem andere Felder bereits geschrieben waren. Jetzt werden nur Felder des Datenschemas übernommen; unbekannte Angaben werden übergangen und gezählt, damit auch Sicherungen künftiger Fassungen ladbar bleiben. Schlägt ein Import dennoch fehl, kehrt das Werkzeug vollständig zum Vorzustand zurück, einschließlich Ergebnis.
Wichtig für bereits vorhandene HTML-Sicherungen: Eine als HTML gesicherte Datei enthält den Programmstand ihrer eigenen Fassung und öffnet sich deshalb weiterhin mit dem alten Ladeverhalten. Eine Sicherung aus dem Expertenmodus nach vorheriger Einsteiger-Nutzung zeigt dann den Einsteiger-Fall, ein abweichendes Startjahr springt auf das laufende Jahr. Solche Dateien werden durch diese Fassung nicht repariert; die Angaben sind mit dieser Fassung neu zu erfassen und zu sichern. JSON-Sicherungen älterer Fassungen lädt diese Fassung dagegen korrekt.
Absicherung: Selbsttest weiterhin 88 Prüfungen, Produktionspfad jetzt 214. Die Sicherungsrundläufe vergleichen den gesamten Feldzustand statt einer Auswahl und stellen ihre Vorgeschichte selbst her; jede neue Prüfung hat eine Vorbedingung, die ein leeres Bestehen ausschließt. Jede Behebung ist einzeln mutationsgeprüft. Das Nachweisprogramm des Prüfberichts bestätigt sieben seiner acht Prüfpunkte; der achte erwartet bei einem unbekannten Schlüssel die Ablehnung der ganzen Datei, was hier bewusst anders gelöst ist (siehe BUG-012).
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1). Bekannt und offen: BUG-013 (niedrig — ein geleertes Feld im Schnellrechner rechnet mit einem verdeckten Standardwert), die Designfrage DF-001 zur Sicherung aus dem Einsteiger-Modus und die manuelle Browser-, Mobil-, Diagramm- und Druckabnahme.
Änderungen v2026.11.2 gegenüber v2026.11.1 (Standard-Patch, eigener Kontrollaudit 10.09.2026)
Der Einsteiger-Modus rechnete mit Kinderangaben, nach denen er nie gefragt hat. Diese Fassung geht nicht auf einen externen Prüfbericht zurück, sondern auf den eigenen Kontrollaudit nach der Freigabe von v2026.11.1 — verbunden mit einer Rechtsstandsprüfung zum 10.09.2026. Keine neuen Funktionen, keine neuen Eingabefelder, keine Schema-Änderung; daher ein Standard-Patch.
- BUG-005 (hoch) — der Einsteiger-Modus übernahm stumm die
Kinderangaben aus dem Expertenmodus. Der Schnellrechner fragt weder
Geburtsjahr noch Fördermodus noch Zulagen-Zuordnung ab;
egRechneverließ sich darauf, dassrenderKinderRowskonservative Vorgaben setzt (Kinder, geboren im Startjahr − 5, Förderung bis 18, Zulage an die anfragende Person). Tatsächlich übernahm die Funktion die zuletzt im Expertenmodus erfassten Werte. Wer zuvor im Expertenmodus etwas anderes eingetragen hatte, bekam auf dieselben Einsteiger-Antworten ein anderes Ergebnis:Bis zu 14.883 € Unterschied im Barwert bei identischer Beantwortung — ohne jeden sichtbaren Anlass, weil die Kinderzeilen im Einsteiger-Modus gar nicht angezeigt werden. Der Aufrufer entscheidet jetzt ausdrücklich, ob vorhandene Werte übernommen oder die Vorgaben neu gesetzt werden; der Einsteiger setzt zurück. Die im Expertenmodus erfassten Angaben gehen dabei nicht verloren —Sollzustand (ohne Vorgeschichte) 600 €/Jahr Kinderzulage Riester 103.322 € AV 119.013 € zuvor „Zulage an: Partner" 0 €/Jahr 97.755 € 106.304 € zuvor Geburtsjahr 1990 — 97.755 € 106.304 € zuvor Fördermodus „bis Jahr 2028" 600 €/Jahr 88.440 € 104.130 € setModesichert sie vor dem Wechsel und stellt sie bei der Rückkehr vollständig wieder her (in beide Richtungen geprüft). Zur Herkunft: Die Übernahme des Geburtsjahres bestand schon lange; die Korrektur H-02 in v2026.11.1 hat sie auf Zuordnung und Pflege-Kennzeichen ausgedehnt und den Fehler damit verschärft. Für den Expertenmodus ist jenes Verhalten richtig und bleibt unverändert — falsch war, dass der Einsteiger denselben Pfad ohne eigenen Bedarf mitbenutzte. - BUG-006 (niedrig) — Rententabelle des Einsteigers ohne
Querscroll-Rahmen. Sie entsteht erst zur Laufzeit und war deshalb die
einzige Tabelle, die der Prüfstand nie zu Gesicht bekam; sie lag als einzige
nicht in einem
tbl-wrap. Drei Spalten mit langen Überschriften schoben auf schmalen Geräten die gesamte Seite quer — ausgerechnet im Einsteiger-Modus. Dieselbe Lücke hatte der neunte Bericht bereits für zwei statische Tabellen festgestellt; gefunden wurde sie jetzt, weil die neue Prüfung den Einsteiger-Modus erstmals wirklich durchrechnet. - BUG-007 (niedrig) — fehlende Offenlegung zum eingefrorenen Rechtsstand. Die Modellannahmen nannten nicht, dass sämtliche steuerlichen und sozialrechtlichen Größen über die gesamte Laufzeit auf dem heutigen Stand bleiben. Das ist jetzt genannt, mit Richtung der Verzerrung: Der Höchstbetrag § 10 Abs. 3 EStG steigt jährlich mit der Beitragsbemessungsgrenze, bleibt hier aber bei 30.826 € — die Rechnung unterschätzt daher bei hohen Rürup-Beiträgen den abziehbaren Spielraum.
Rechtsstandsprüfung zum 10.09.2026 — kein Anpassungsbedarf. Geprüft wurde insbesondere die Rentenanpassung zum 01.07.2026: Die Renten stiegen um 4,24 %, der aktuelle Rentenwert von 40,79 € auf 42,52 € je Entgeltpunkt (Haltelinie 48 % nach dem Rentenpaket 2025). Das Werkzeug führt keinen Rentenwert und keine gesetzliche Rente als Rechengröße — es vergleicht vier private Vorsorgewege —, sodass die Anpassung keine Rechnung berührt. Ebenfalls geprüft: das GKV-Beitragssatzstabilisierungsgesetz vom 10.07.2026 (Anhebung der Beitragsbemessungsgrenze um zusätzlich 300 €/Monat für 2027) — die Beitragsbemessungsgrenze ist im Modell ausdrücklich nicht abgebildet, die verwendeten Beitragssätze (14,0 % ermäßigt, 14,6 % allgemein, 2,9 % Zusatzbeitrag, 3,6 % Pflege) bleiben unverändert. Die Rechengrößen 2027 werden erst im Herbst 2026 verkündet.
Versionsschritt nach den Versionierungsregeln: Standard-Patch (MINOR + 1) — Fehlerbehebung ohne neue Funktion, ohne neue Eingabefelder und ohne Schema-Änderung. Selbsttest weiterhin 88 Prüfungen, Produktionspfad jetzt 195 (vier neue Prüfungen des Einsteiger-Pfades; die Tabellenprüfung erfasst nun auch dynamisch erzeugte Tabellen). Beide Korrekturen sind mutationsgeprüft. Weiterhin offen (organisatorisch): die manuelle Browser-, Mobil-, Diagramm- und Druckabnahme.
Ä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).