"use client"; import { SlidersHorizontal } from "lucide-react"; import { formatChf } from "@/lib/format"; import { SYSTEM_PARAMETERS, type ParameterGroup, type SystemParameter } from "@/lib/constants"; const GROUPS: { key: ParameterGroup; title: string; intro: string }[] = [ { key: "AHV", title: "AHV", intro: "Diese Werte legt der Bund fest. Sie ändern sich periodisch – der Stand ist je Parameter ausgewiesen.", }, { key: "Vorsorge", title: "Berufliche und gebundene Vorsorge", intro: "Höchstbeträge und Umwandlung. Der Umwandlungssatz ist ein Vorschlag und pro Ereignis überschreibbar.", }, { key: "Steuern", title: "Steuersätze", intro: "Bewusst pauschale Vorschlagswerte, keine Steuerberechnung: Die tatsächlichen Sätze sind kantonal, progressiv und vom Einzelfall abhängig. Sie lassen sich pro Ereignis überschreiben.", }, ]; function formatValue(p: SystemParameter): string { switch (p.unit) { case "CHF": return `${formatChf(p.value)} CHF`; case "%": return `${p.value} %`; case "Jahre": return `${p.value} Jahre`; default: return String(p.value); } } // Zeigt die Systemparameter mit Wert, Bedeutung, Herleitung und Quelle (Roadmap Nr. 41). // Die Einträge stammen direkt aus constants.ts -- dieselbe Datenquelle, aus der auch // gerechnet wird. Ein Abdriften zwischen Anzeige und Rechnung ist damit ausgeschlossen. export function SystemParametersView() { return (

Systemparameter

Alle fest hinterlegten Grössen, mit denen das Tool rechnet – inklusive Herleitung und Quelle. Sie stammen aus derselben Datei, aus der auch die Berechnung liest; was hier steht, ist also garantiert das, was gerechnet wird.

{GROUPS.map((g) => { const rows = SYSTEM_PARAMETERS.filter((p) => p.group === g.key); if (rows.length === 0) return null; return (

{g.title}

{g.intro}

{rows.map((p) => (
{p.label} {formatValue(p)}

{p.meaning}

{p.derivation && (

Herleitung: {p.derivation}

)}
Quelle: {p.source} Stand: {p.validFrom} {p.editablePerEvent && pro Ereignis überschreibbar}
))}
); })}

Die drei Steuersätze werden sowohl als Vorschlag im Eingabefeld als auch in der Berechnung als Rückfallwert verwendet – damit ein nicht angetippter Wert nicht fälschlich als 0 % gerechnet wird.

); }