Erklärungen zu Kalkulations-Formeln, Tabs und Designentscheidungen. Für konkrete Fragen zu einem Feld siehe auch die (?)-Tooltips direkt im Editor.
Die Basiskalkulation ersetzt die historische Excel-Datei, mit der bisher die Wirtschaftlichkeit neuer Butlers-Standorte in DE / AT / CH bewertet wurde. Das Tool rechnet bitgenau gegen die Excel-Referenz (Parity-Tests in lib/calc/engine.test.ts) und erweitert sie um Szenarien, Mehrjahr-Betrachtung, CPI-Index und Validierung.
Inputs werden pro Standort in einem Plan gespeichert. Jeder Plan kann beliebig viele Versionen (Snapshots) haben. Zwischen zwei Versionen hält das Tool einen Auto-Save-Draft, sodass ungespeicherte Änderungen nicht verloren gehen.
Ein Plan durchläuft vier Zustände:
Der Status ist unabhängig von der Versionsnummer. Auch ein APPROVED-Plan kann weiter editiert werden — der Auto-Save-Draft bleibt erhalten, bis er als neue Version gespeichert oder verworfen wird.
Pro Plan gibt es drei editierbare Szenarien. Das Base-Szenario entspricht den Inputs ohne Overlay und liefert die Parity zur Excel-Referenz. Best und Worst überlagern Base mit optionalen Deltas auf:
baseRentLeere Felder = Base-Wert unverändert übernehmen. Das aktive Szenario bestimmt, welche Kennzahlen rechts im Ergebnis-Panel angezeigt werden; die Mini-Vergleichsleiste zeigt alle drei gleichzeitig.
Zur Umrechnung Brutto → Netto verwendet das Tool je Land einen Default-Faktor:
Teile des deutschen Butlers-Sortiments unterliegen dem ermäßigten Steuersatz (7% statt 19%) — historisch v.a. Bücher und Lebensmittel. Der Mischsatz 1,185 bildet diese Mischung im Bestandsgeschäft näherungsweise ab und stammt 1:1 aus der Excel-Referenz.
Für Vergleichsrechnungen gegen reines 19%-Sortiment kann im Tab Stammdaten ein Faktor-Override eingetragen werden (z.B. 1,19). Ohne Override greift der Landes-Default.
Die Mindestmiete p.M. ist definiert als:
Mindestmiete = Ø Grundmiete p.M. + Umsatzmiete p.a. / 12
= Σ Nettomiete / 12 + (Nettoumsatz × RevenueRent-%) / 12Sie gibt den monatlichen Mietaufwand inklusive anteiliger Umsatzmiete an. Die Ø-Grundmiete ergibt sich aus Σ Nettomiete / 12 (Mietstaffel + CPI über das betrachtete Jahr).
Hinweis: Die Excel-Datei verwendet in Zelle M47 fälschlich nur L47/12 (Umsatzmiete/12). Das Tool korrigiert dies bewusst, damit die Kennzahl das widerspiegelt, was im Vertragsgespräch als Untergrenze argumentiert wird.
Bei Neueröffnung liegt der Umsatz in den ersten Monaten typischerweise unter dem Normalbetrieb. Der Rampup-Toggle im Tab Monatsverteilung multipliziert die Anteils-% mit einem 12-stelligen Faktor (Default 70/80/85/90/95/100/…/100%).
Rampup wirkt nur in Jahr 1. Ab Jahr 2 (sichtbar im Mehrjahr-Tab) werden die Anteile ohne Rampup-Skalierung verwendet. Bei aktivem Rampup wird der Jahres-Brutto aus der Summe der skalierten Monate gerechnet, nicht aus dem Input-Feld „Bruttoumsatz p.a.".
Die Miete wird als Staffel modelliert, damit Vertragsformen wie „ab Monat 25 steigt die Grundmiete auf 5.500 €" oder „jährliche VPI-Anpassung 2% ab Jahr 2" korrekt abgebildet werden.
fromMonth=25, amount=5500).Die effektive Miete pro Monat wird als base × (1 + CPI)^(Jahr − CPI-Startjahr + 1) berechnet (für Jahre ≥ CPI-Startjahr, sonst Faktor 1).
Der Mehrjahr-Tab zeigt Bruttoumsatz, Nettoumsatz, Rohertrag, Personal, Nettomiete und Jahresergebnis für die nächsten 3, 5 oder 10 Jahre. Wichtige Mechaniken:
Für realistische Planungen sollte Personal/Werbung bei signifikanter Änderung über die Jahre über ein Szenario (z.B. Worst) modelliert werden — das Overlay gilt dann für alle Jahre.
Jede Änderung geht sofort in den Auto-Save-Draft und wird alle 30s an die DB geschickt (Plan.draftInputs). Der Draft ist kein Snapshot: die aktive Version bleibt unverändert, bis du explizit „Version speichern" klickst.
„Version speichern" legt einen unveränderlichen PlanVersion-Datensatz an (Label + Notiz optional) und setzt den Draft zurück. Alte Versionen bleiben unter Versions-Historie erreichbar und sind read-only.
Unter /reference werden Peer-Daten aus den Butlers-Filialen als Snapshots pro Land/Jahr vorgehalten. Der Editor nutzt sie in zwei Formen:
Imports laufen über /admin/reference (Admin-only).
Jede gespeicherte Version lässt sich als PDF exportieren — mit Versionsnummer, Zeitstempel und Autor im Kopf. Aus dem Editor selbst wird der aktuelle Draft-Stand als „ENTWURF"-PDF exportierbar sein (Kennzeichnung im Dokument).
fromMonth; der aktuell geltende Eintrag ist der letzte mit fromMonth ≤ aktueller Vertragsmonat. Grundmiete gilt bis zum ersten Staffel-Eintrag.