diff --git a/docs/superpowers/specs/2026-07-20-ausbaustufe-5-design.md b/docs/superpowers/specs/2026-07-20-ausbaustufe-5-design.md
new file mode 100644
index 0000000..14b35dc
--- /dev/null
+++ b/docs/superpowers/specs/2026-07-20-ausbaustufe-5-design.md
@@ -0,0 +1,157 @@
+# Design — Ausbaustufe 5: Deutsche Formate, Posten-Bearbeitung, Szenario-Ende (v0.6.0)
+
+> Status: vom Nutzer freigegeben (Chat 2026-07-20). Umsetzungsplan folgt unter
+> `docs/superpowers/plans/`. Datenschutz-Regel aus `CLAUDE.md` gilt: konkrete
+> Empfängernamen/Beträge des Demo-Szenarios stehen nur im Chat und in der
+> Live-Datenbank, nicht in diesem Dokument, nicht in Commits, nicht im Ledger.
+
+## Ziel
+
+Drei Nutzeranforderungen an die Web-GUI des Finanzberatungs-Tools:
+
+1. **Deutsche Formate** — Beträge werden deutsch angezeigt (`1.234,56 €`)
+ und deutsch eingegeben (Komma-Dezimaltrenner); englische GUI-Begriffe
+ (`monthly`, `annuity`, `percent`, …) werden übersetzt.
+2. **Wiederkehrende Posten** — Felder `Start`/`Ende` in der GUI sichtbar und
+ pflegbar (Modell/API/Engine können das bereits); jeder Posten bekommt
+ einen `Bearbeiten`-Button. Inline-Bearbeitung zusätzlich für
+ Einmalposten, Kredite und den Szenario-Kopf (Nutzerentscheidung).
+3. **Szenarien** — Modifikator-Art `Ende` (Posten endet innerhalb des
+ Szenarios an einem Datum, ohne den Posten selbst zu ändern) und
+ szenario-eigene Einmalzahlungen. Demo-Szenario „Best Case" wird nach dem
+ Release live angelegt und durchgerechnet.
+
+## Nutzerentscheidungen (Chat 2026-07-20)
+
+- Szenario-Ende als **neue Modifikator-Art `ende`** mit Datumsfeld (nicht
+ als Gültigkeitszeitraum aller Modifikatoren).
+- Einmalzahlung im Demo-Szenario ist **szenario-spezifisch** → neues Feature
+ „Szenario-Einmalzahlungen".
+- Formate: **Zahlen + deutsche Begriffe** (API-Werte bleiben englisch).
+- Bearbeiten-Buttons für: wiederkehrende Posten, Einmalposten, Kredite,
+ Szenario-Kopf.
+
+## Teil 1 — Deutsche Formate
+
+**Anzeige.** Neuer Jinja-Filter `eur` in `app/routers/gui.py`
+(`templates.env.filters["eur"]`), reine `Decimal`-Formatierung ohne
+`locale`-Modul (Container-Locale unzuverlässig): Vorzeichen, Tausenderpunkt,
+Komma, zwei Nachkommastellen. Ersetzt alle `'%.2f'|format(...)`-Stellen in
+`index.html`, `salden.html`, `transactions.html`, `planning.html`,
+`_preview_table.html`. Prozentwerte (Kredit-Zins) analog mit Komma.
+Der per JavaScript nachgeladene Tilgungsplan (`planning.html`,
+`loadLoanSchedule`) formatiert mit
+`toLocaleString('de-DE', {minimumFractionDigits: 2, maximumFractionDigits: 2})`.
+
+**Eingabe.** Die json-form-Extension in `base.html` lernt
+`data-type="amount"`: Whitespace/€ entfernen; enthält der Wert ein Komma →
+Tausenderpunkte entfernen, Komma→Punkt; ohne Komma bleibt der Wert
+unverändert (Punkt-Eingaben funktionieren weiter). Alle
+Betrags-``-Felder (Fixposten, Einmalposten, Kredit, Modifikator-Wert,
+Szenario-Einmalzahlung) bekommen `data-type="amount"` und deutsche
+Platzhalter (`-49,99`). Versteckte Felder der Vorschlags-Übernahme bleiben
+ohne `data-type="amount"` (Server liefert Punktformat). Die JSON-API bleibt
+strikt Punkt-Dezimal — Tests, Skripte und Grafana sind nicht betroffen.
+
+**Begriffe.** Zentrales Mapping als Jinja-Global `de_label` (Definition in
+`gui.py`): `monthly→monatlich`, `quarterly→vierteljährlich`,
+`yearly→jährlich`, `annuity→Annuität`, `bullet→endfällig`,
+`percent→Prozent`, `absolute→Absolut`, `remove→Entfällt`, `ende→Ende`.
+Dropdown-`